summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/chemplants/chemplants-doc.tex
blob: 10d862c9a2abbddf2e52f7d40267d3b345f8f970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% chemplants-doc.tex
%% Copyright 2018-2019 Elia Arnese Feffin
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in
% 	http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
% 
% The Current Maintainer of this work is Elia Arnese Feffin.
% The Current Maintainer can be reached at the e-mail: elia24913@me.com.
%
% This work consists of the files chemplants.sty, chemplants-doc.tex
% and chemplants-changes.tex, together with the derived files
% chemplants-doc.pdf and chemplants-changes.pdf.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%: Primary Settings

\documentclass[12pt]{article}						% Document Class
\usepackage[T1]{fontenc}								% Font Encoding
\usepackage[utf8]{inputenc}							% Input Encoding
\usepackage[italian,english]{babel}					% Document Language

%: Page Geometry

\usepackage[a4paper]{geometry}						% Page Geometry
	\geometry{top=2.0cm,bottom=2.5cm}
	\geometry{left=2.75cm,right=2.75cm}
	\geometry{heightrounded}

%: Colors

\usepackage{guit}									% GuIT Logo
	\definecolor{LinkColor}{rgb}{%					% Link Color
		0.116, 0.565, 1.000%
	}
	\definecolor{URLColor}{rgb}{%					% URL Color
		1.000, 0.250, 0.250%
	}
	\definecolor{CiteColor}{rgb}{%					% Citation Color
		0.235, 0.700, 0.444%
	}

%: Text

\usepackage{microtype}								% Micro Typography
\usepackage{relsize}								% Text Rescale
	\newcommand{\foreignformat}{%					% Foreign Text Format
		\itshape%
	}
	\providecommand*{\ap}[1]{%						% Upright Superscript
		\textormath{\textsuperscript{#1}}{^{\mathrm{#1}}}%
	}
	\providecommand*{\ped}[1]{%						% Upright Subscript
		\textormath{$_{\mbox{\fontsize\sf@size\z@\selectfont#1}}$}{_\mathrm{#1}}%
	}
	\newcommand{\italiano}[1]{%						% Italian Text
		\foreignlanguage{italian}{\foreignformat #1}%
	}
	\newcommand*{\ac}[1]{%							% Acronyms
		\textsmaller{#1}%
	}
\raggedbottom										% Raggedbottom Document

%: Sectioning and Contents

\setcounter{secnumdepth}{2}							% Section Heads Level
\setcounter{tocdepth}{2}								% TOC Level
%\renewcommand{\subsubsection}[1]{}					% Gobbles Any \subsubsec

%: Figures

\usepackage{graphicx}								% External Images

%: Floats

\usepackage{caption}								% Captions
	\captionsetup{%
		font=small,%
		labelfont={bf},%
		format=hang,%
		tableposition=top,%
		figureposition=bottom%
	}
\usepackage{float}									% Floats
	\floatplacement{table}{htp}						% Tables Placement
	\floatplacement{figure}{htp}						% Figures Placement

%: Bibliography

\usepackage[autostyle,italian=guillemets]{csquotes}	% Citations
\usepackage[%
	useprefix,%
	hyperref,%
	url=true,%
	language=auto,%
	autolang=hyphen,%
	bibstyle=numeric,%
	citestyle=authoryear%
]{biblatex}											% Bibliography
\begin{filecontents}{chemplants-bd.bib}
@book{cacciatore:disegno,
	title			= {Manuale di disegno di impianti chimici},
	author			= {Cacciatore, Alfonso and Calatozzolo, Mariano},
	date			= {2018},
	publisher		= {Edisco},
	location		= {Torino},
	isbn			= {978\,88\,441\,2085\,6},
	langid			= {italian},
}
@book{cremer:tikz,
	title			= {A Very Minimal Introduction to \TikZ},
	author			= {Cr\'emer, Jacques},
	date			= {2011},
	url				= {http://cremeronline.com/LaTeX/minimaltikz.pdf},
	langid			= {english},
}
@book{fiadrino:tikz,
	title			= {Introduzione all'uso di \TikZ\ in ingegneria},
	author			= {Fiandrino, Claudio},
	date			= {2014},
	url				= {http://www.guitex.org/home/images/doc/GuideGuIT/introingtikz.pdf},
	langid			= {italian},
}
@book{pantieri:latexpedia,
	title			= {\LaTeX pedia},
	author			= {Pantieri, Lorenzo},
	date			= {2017},
	url				= {http://www.lorenzopantieri.net/LaTeX_files/LaTeXpedia.pdf},
	langid			= {italian},
}
@book{pantieri:artedi,
	title			= {L'arte di disegnare con \LaTeX},
	author			= {Pantieri, Lorenzo and Gordini, Tommaso},
	date			= {2014},
	langid			= {italian},
}
@manual{tantau:tikz,
	title			= {\TikZ\ and \PGF\ Manual},
	subtitle		= {Version 3.1.1},
	author			= {Tantau, Till},
	date			= {2019},
	url				= {http://ctan.mirror.garr.it/mirrors/CTAN/graphics/pgf/base/doc/pgfmanual.pdf},
	langid			= {english},
}
@manual{unichim:impianti,
	title			= {Impianti chimici},
	subtitle		= {Simboli e sigle per schemi e disegni},
	number			= {Manuale N.~6},
	author			= {\ac{UNICHIM}},
	date			= {1994},
	location		= {Milano},
	langid			= {italian},
}
\end{filecontents}
\bibliography{chemplants-bd}							% Bibliography Database

%: Chemical Process Schemes

\usepackage{chemplants}								% Process Schemes
	\tikzset{every node/.style={font=\footnotesize}}
	\tikzset{anchor mark/.pic=%						% Anchor Point
		{%
		\draw [red]
			(-2.828pt,0) -- (2.828pt,0)
			(0,-2.828pt) -- (0,2.828pt);
		}%
	}
	\tikzset{node mark/.pic=%						% Remarkable Node
		{%
		\draw [blue]
			(-2pt,-2pt) -- (2pt,2pt)
			(2pt,-2pt) -- (-2pt,2pt);
		}%
	}

%: Math

\usepackage{amsmath}								% Math Package
	\renewcommand{\vec}[1]{\boldsymbol{#1}}			% Vectors
	\newcommand*{\flow}[1]{\dot{#1}}					% Flow-Rate

%: Physics

\usepackage{siunitx}								% Measurement Units
	\sisetup{exponent-product={\cdot}}

%: Chemistry

\usepackage{chemmacros}								% Chemistry Utilities
	\chemsetup{formula=chemformula,greek=textgreek}

%: Codes

\usepackage{listings}								% Listings
	\lstset{escapeinside={£!}{!£}}
	\newcommand*{\meta}[1]{%							% Metacode
		$\langle$\textrm{\textit{#1}}$\rangle$%
	}
	\lstnewenvironment{chpcode}[1][]{%				% chemplats Code
		\lstset{%
			basicstyle=\small\ttfamily,%
			frame=none,%
			numbers=none,%
			%numberstyle=\footnotesize,%
			tabsize=4,%
			showstringspaces=false,%
			language=[LaTeX]TeX,%
			keywordstyle=\color{black},%
			commentstyle=\color{black},%
			gobble=4,%
			#1%
		}%
	}{}
	\newcommand*{\chpn}[1]{\texttt{#1}}				% chemplats Node
	\newcommand*{\chpp}[1]{\texttt{#1}}				% chemplats Unit
	\newcommand*{\chps}[1]{\texttt{#1}}				% chemplats Path Style
	\newcommand*{\chpa}[1]{\texttt{#1}}				% chemplats Pic Argument
	\newcommand*{\chemplants}{chemplants}
	\newcommand*{\TikZ}{Ti\textit{k}Z}
	\newcommand*{\CircuiTikZ}{Circui\TikZ}
	\newcommand*{\PGF}{PGF}
	\newcommand*{\UNICHIM}{\ac{UNICHIM}}
	\newcommand*{\siunitx}{siunitx}
	\newcommand*{\chemformula}{chemformula}
	\newcommand*{\babel}{babel}
	\newcommand*{\TeXlive}{\TeX live}
	\newcommand*{\MiKTeX}{MiK\TeX}

%: Cross References

\newcommand*{\figurerefname}{}
\addto\captionsenglish{\renewcommand*{\figurerefname}{figure}}
\newcommand*{\fref}[1]{\figurerefname~\ref{#1}}
\newcommand*{\listingrefname}{}
\addto\captionsenglish{\renewcommand*{\listingrefname}{listing}}
\newcommand*{\lref}[1]{\listingrefname~\ref{#1}}

%: Hyper References

\usepackage{url}									% Web Sites
\usepackage[hyperfootnotes=false]{hyperref}			% Hyperlinks
	\hypersetup{%
		linkbordercolor=LinkColor,%
		urlbordercolor=URLColor,%
		citebordercolor=CiteColor}
	\newcommand{\mail}[1]{%							% eMail as Hypertext
		\href{mailto:#1}{\texttt{#1}}%
	}
\usepackage[all]{hypcap}								% Captions References

%: Bookmarks

\usepackage{bookmark}								% PDF Bookmarks
	\bookmarksetup{%
		numbered,%
		open,%
		depth=3%
	}

%: Document Informations

\title{The chemplants package}
\author{Elia Arnese Feffin\footnote{e-mail: \mail{elia24913@me.com}}}
\date{Version \chpversion\ -- \chpdate}

%: PDF Properties

\hypersetup{pdfinfo={%
	Title={The chemplants package},%
	Author={Elia Arnese Feffin},%
	Subject={version \chpversion},%
	Creator={pdfLaTeX},%
	Producer={TeXShop with LaTeX Compiler}%
}}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	
%: Document Start

\begin{document}									% Document Begins	

%: Frontpage

\pdfbookmark[1]{Frontpage}{fronts}					% Frontpage Bookmark

\maketitle											% Title

\begin{abstract}
The \chemplants\ package offers tools to draw simple or barely complex schemes of
chemical processes. Process units and styles for streams and utilities are
defined to be a sort of extension of the \TikZ\ package, thus a basic knowledge
of the logic of this powerful tool is required to profitably use \chemplants.
\end{abstract}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pdfbookmark[1]{\contentsname}{tabcon}				% Contents Bookmark

\tableofcontents									% Table of Contents

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Motivations}

The \chemplants\ package had birth during my bachelor's degree in Chemical
Engineering at the University of Padova. I discovered \LaTeX\ during the first
year and I started using it to write my lecture notes, my reports and almost
every document I had to produce; the more I used it, the more I explored the
boundless universe of extensions available, both using them and studying relative
documentation (and guides). Soon, I encountered one the most beautiful and
complex packages of the \LaTeX\ distribution: the \TikZ\ package.

Programmed drawing really changed the way I look at technical drawings and
schematic representation. \TikZ\ gives the author the possibility to use one
program only to produce written documents and the drawings they require, allowing
a perfect integration between them. I used this extremely powerful tool to draw
schematics of mechanics, sketches of diagrams and electrical circuits (with
another powerful package based on \TikZ: \CircuiTikZ).

At a certain point, as a chemical engineering student, I had the need to start
drawing schematics of chemical processes in the forms of a block flow diagram
(\ac{BFD}) or of a process flow diagram (\ac{PFD}). \ac{BFD}s are not an issue
since they are very simple, but \ac{PFD}s require specific symbols for the
representation of process units. I looked for a long time for a \CircuiTikZ-like
package useful for chemical plants, but nothing seems to be available to this
aim.

At that point \chemplants\ kicked in, starting as a simple idea: to use \TikZ,
in particular the possibility to define custom styles and pics, to fix a standard
set of symbols to be used with \TikZ\ drawing commands, symbols meant to be
easy-to-use and easy-to-modify. Initially, just the units I had the need to
represent were considered, but then the set of definitions started growing and a
more flexible code structure was required, thus the real birth of the package
took place. This happened during the first year of my master's degree.

As already told, the motivations of the \chemplants\ package are to fill a lack
in the \LaTeX\ packages tree and to give everyone the possibility to draw
schematics of chemical processes, particularly \ac{PFD}s, in a simple way. A
basic knowledge of \TikZ\ is clearly required.

All of the symbols and styles defined are based on the \UNICHIM\ regulation,
the Italian code to draw chemical processes diagrams. It takes its name from
the homolog association: \italiano{associazione per l'unificazione del settore
dell'industria chimica}.  This package is not pretentious enough to strictly
follow \UNICHIM, also because this regulation defines parameters to draw
schematics way more complex than \ac{PFD}s. Anyway, \UNICHIM\ is still the
guiding light of the representation of units and streams defined by
\chemplants.

\section{Starting Point}

\subsection{Licensing}

The \chemplants\ package is covered by the \LaTeX\ Project Public License
(\ac{LPPL}), version 1.3c or later. Basically, this means that users are free to
use, modify and distribute any part of the package. More accurate and detailed
informations can be found into the license itself, the latest version of which
is available at \url{http://www.latex-project.org/lppl.txt}.

\subsection{Installation}

The package is supplied as a simple zip archive containing the
\verb|chemplants.sty| file, the main code of the package, and the
\verb|chemplants_doc.pdf| file, the documentation (this file), together with its
source code. The simplest way to make the package work is to place
\verb|chemplants.sty| into the same directory of the \verb|.tex| file that uses
\chemplants, a solution useful to users who do not want to go along a full
installation.

A better installation procedure for users who adopt the \TeXlive\ distribution
on a Linux-like system (including MacOS) consists in looking for the main
directory of the distribution and following the path:
\begin{chpcode}
	../texlive/texmf-local/tex/latex/
\end{chpcode}
in which a new folder called \verb|chemplants| should be created. The file
\verb|chemplants.sty| should be placed into that folder. After that, it is
necessary to let \TeX\ know that the tree structure is changed and that a new
package is available, hence it is necessary to type in the terminal of the
system:
\begin{chpcode}
	sudo texhash
\end{chpcode}
and to wait for the magic to be done (the insertion of the user password may be
required after this instruction). Another option is to let the \verb|tlmgr|
utility do all the work, moving the terminal action to the directory in which
\verb|chemplants.sty| is (\verb|cd| instruction) and typing:
\begin{chpcode}
	sudo tlmgr install chemplants
\end{chpcode}

For a Windows system running \TeXlive\ it should work the same way, but commands
have to be typed in the prompt removing the \verb|sudo| prefix, used by
Linux-like systems. Finally, \MiKTeX\ should provide a custom package manager to
handle the \TeX\ tree structure, so \chemplants\ have to be installed in the way
\MiKTeX\ manager usually handles new packages.

\subsection{Basic Knowledge Required}

In order to profitably use the \chemplants\ package, a basic knowledge of the
\TikZ\ package is required. There are a lot of excellent introductory guides to
this gigantic package and for every doubt there is also the enormous and
excellent documentation of the package: \cite{tantau:tikz}. For impatient
readers, \cite{cremer:tikz} (available on \ac{CTAN} into the \TikZ\ package
directory) offers a short but useful introduction to \TikZ.

Italian language users can find on the internet some very useful guides
to learn the bases of \TikZ\ (and more of what is needed to use \chemplants). A
short but effective introduction is given in a dedicated chapter of
\cite{pantieri:latexpedia}, derived from a previous article of the same author:
\cite{pantieri:artedi}. Users who want to be really surprised by the capability
of \TikZ, besides the full documentation aforementioned, can check
\cite{fiadrino:tikz}, an excellent guide available on the \GuIT\ website (the
Italian \TeX\ and \LaTeX\ users group).

Finally, readers interested on \UNICHIM\ regulations can easily find some
tables on the internet, or a more interesting source of information in
\cite{cacciatore:disegno}. This book reports a selection of tables coming form
\cite{unichim:impianti}, the official \UNICHIM\ manual, mainly the ones
concerning process units, styles for streams and control instrumentation; there
are also some examples of \ac{PFD}s.

\subsection{Purposes of the Package}

Having mentioned the \UNICHIM\ regulation, it is important to spend a couple
of words more about the aim of this package. The \chemplants\ package is meant
to help users which have a basic knowledge of \TikZ\ in representing schemes of
chemical processes and plants in a simple way. This requires to access to symbols
for process units, styles for streams and, possibly, symbols and styles for
control instrumentation. These three elements, plus a rudimental mechanism to
set the main parameters of the drawing, are what \chemplants\ provides.

This package is not meant to produce representation of complex units or of very
specialised equipments such as the Linde column used in air distillation plants
or the Casale reactor used in ammonia synthesis. A fine representation of units
like the two just mentioned requires more than a simple symbol to be placed
somewhere in a \ac{PFD}, but a complex and detailed scheme, which goes beyond the
scope of \chemplants. Moreover, complex drawings like these are not that common,
so they do not need to be defined as pics in order to be extensively used and
easily modified. Users in the need to represent specialised schematics should
exploit the basic and advanced features of the \TikZ\ package in a more general
way, rather than asking \chemplants\ to do it for them.

\section{Streams and Utilities}

Streams to be used in \ac{BFD}s and \ac{PFD}s can be obtained by means of the
\verb|\draw| command of \TikZ\ to represent lines with the operator \verb|--|.
The graphicas aspect of a stream is defined as a \TikZ\ style and can be applied
to any \verb|\draw| command as an option to the command itself. Although not
explicitly showed, all of the following example instructions are intended to be
used within a \verb|tikzpicture| environment.

\subsection{Main Stream}

A main stream indicates the main path of a process, the one prime matters
follow to be transformed into the desired products. It is defined as a style
called \chps{main stream}, to be applied to the \verb|\draw| command:
\begin{chpcode}
	\draw[main stream] (0,0) -- (2,0);
\end{chpcode}
and yields an arrow of \verb|semithick| thickness:
\begin{center}
\begin{tikzpicture}
	\draw[main stream] (0,0) -- (2,0);
\end{tikzpicture}
\end{center}
As for all of the \TikZ\ arrows declared through the \verb|->| option, the tip
is present only on the last point of the path:
\begin{center}
\begin{tikzpicture}
	\draw[main stream] (0,0) -- (1,0) -- (1,1) -| (2,0);
\end{tikzpicture}
\end{center}
so every main stream (arrow) to be represented requires its own \verb|\draw|
command.

\subsection{Secondary Stream}

A secondary stream indicates a process stream different from the main one, still
very important to the process, though not as the principal line (reactants
recycle is an example). It is defined as a style called \chps{secondary stream},
to be applied to the \verb|\draw| command:
\begin{chpcode}
	\draw[secondary stream] (0,0) -- (2,0);
\end{chpcode}
and yields an arrow of \verb|thin| thickness:
\begin{center}
\begin{tikzpicture}
	\draw[secondary stream] (0,0) -- (2,0);
\end{tikzpicture}
\end{center}

\subsection{Utility Stream}

A utility stream indicates all of the streams different from the main and
secondary ones, but anyway useful to the process (at least in a \ac{PFD}), such
as heating steam or cooling water. It is defined as a style called
\chps{utility stream}, to be applied to the \verb|\draw| command:
\begin{chpcode}
	\draw[utility stream] (0,0) -- (2,0);
\end{chpcode}
and yields an arrow of \verb|very thin| thickness (the standard one in \TikZ):
\begin{center}
\begin{tikzpicture}
	\draw[utility stream] (0,0) -- (2,0);
\end{tikzpicture}
\end{center}

The standard arrow tip defined for \chps{main stream}, \chps{secondary stream}
and \chps{utility stream} styles (and for everything else in \chemplants\ that
has an arrow tip) is the \verb|stealth| arrow of \TikZ. This can be changed, as
a lot of other graphical parameters can. The way such customisations can be
achieved will be discussed after the introduction of all units.

\subsection{Signal}

In a \ac{PFD}, it is possibile to sketch also the main paths of the control
system of a chemical plant. Controllers are connected to units and to actuators
through a signal line, which in a \ac{PFD} is intended as a generic signal (no
distinction between pneumatic, electric and so on). It is defined as a style
called \chps{signal}, to be applied to the \verb|\draw| command:
\begin{chpcode}
	\draw[signal] (0,0) -- (2,0);
\end{chpcode}
and yields a line of \verb|very thin| thickness with parallel and oblique short
lines placed at regular intervals:
\begin{center}
\begin{tikzpicture}
	\draw[signal] (0,0) -- (2,0);
\end{tikzpicture}
\end{center}

It should be notice that \chps{signal} style is not very flexible. Markings
start \SI{5}{\mm} after the path initial point and are spaced by \SI{5}{\mm},
ending at least \SI{5}{\mm} before the final point of the path. Thus, the optimal
result is obtained if a path has a length which is a multiple of \SI{5}{\mm}.
Otherwise, there will be an ``uncovered portion'' of the path. For example, the
code:
\begin{chpcode}
	\draw[signal] (0,2) -- (2,2);
	\draw[signal] (0,1) -- (1.8,1);
	\draw[signal] (0,0) -- (2.2,0);
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\draw[signal] (0,2) -- (2,2);
	\draw[signal] (0,1) -- (1.9,1);
	\draw[signal] (0,0) -- (2.1,0);
\end{tikzpicture}
\end{center}
The top line only yields the correct graphical result. Notice also that the
minimum length a \chps{signal} path should have is \SI{1}{\mm}, which results
into a short signal with a single mark on its middle point.

Sometimes the \chps{signal} style is not flexible enough, such as for very short
paths. For this specific aim, a \chps{short signal} style is defined, to be used
in the same way of the standard \chps{signal}, but it places a single mark in
the middle of the path:
\begin{center}
\begin{tikzpicture}
	\draw[short signal] (0,0) -- (0.5,0);
\end{tikzpicture}
\end{center}
so it is recommended when a signal shorter than \SI{1}{\cm} has to be drawn.

\subsection{Hidden Streams and Components}

Although not really considered by the \UNICHIM\ regulation, it is sometimes
useful to show streams and components within a unit. Two special styles are
defined to this aim.

The \chps{hidden stream} style is defined to be applied to the \verb|\draw|
command:
\begin{chpcode}
	\draw[main stream, hidden stream] (0,0) -- (2,0);
\end{chpcode}
and yields a \verb|dashed| line with no specified thickness, so it has to be
used with either \chps{main stream} or \chps{utility stream} to draw the arrow
of the right thickness:
\begin{center}
\begin{tikzpicture}
	\draw[main stream, hidden stream] (0,0) -- (2,0);
\end{tikzpicture}
\end{center}

The \chps{hidden component} style is defined to be applied to the \verb|\pic|
command to draw components within a unit (in the way that will be introduced
later):
\begin{chpcode}
	\pic[hidden component] at (0,0) {valve=main};
\end{chpcode}
and yields the required unit represented not with a solid line, but with a
\verb|densely dotted| pattern:
\begin{center}
\begin{tikzpicture}
	\pic[hidden component] at (0,0) {valve=main};
\end{tikzpicture}
\end{center}

\section{Process Units}

Process units are defined as pics. A pic is a \TikZ\ object that represents a
simple draw to be placed at certain coordinates through the \verb|\pic| command.
The advantages of using a pic to define a standard symbol are the easiness of
use and of modification of the symbol itself, if needed.

In order to define a pic, it is important to specify the starting point and, of
course, the code that draws the pic. The starting point is the most important
point of the pic since it is its anchor, the point that will be placed to the
coordinates declared by the \verb|\pic| command. The drawing code defines,
instead, the dimensions of the pic and its default orientation (and the line
thickness, \verb|thick| by default in \chemplants).

The two features just introduced imply to specify what is the logic of the
pics defined by \chemplants. The main anchor is almost always defined as the
centre of the symbol (or as an important point close to it). This choice let all
of the transformation options defined by \TikZ\ to be applied to the pics
representing the units, so a high flexibility in placing and orienting units is
granted. However, there is also a drawback in this approach: the coordinates of
the main anchor of the pic cn be established, but the coordinates of the points
in which streams touch the unit have to be calculated by hand.

The problem just highlighted was the main trouble of the \chemplants\ package.
This issue was fixed redefining units in a more cleaver way and using more
advanced tools of the \TikZ\ package. I would like to explain a little bit of
history of the package before going on.

When I started to define units, since they where few and very simple (and since I
was not that able in programmed drawing), pics contained the simple geometrical
description of the symbols. This was easy to do, but it had the great
disadvantage of forcing the user (only me at that time) to manually calculate
coordinates for the placement of units and for streams connections. In a certain
way, the problem is also an opportunity because it forces the drawer to
accurately plan the layout of the schematics, but it is silly and very
time-consuming in large and complex drawings.

My dream was to build a simple automatic interface like the \CircuiTikZ\
one, which uses the \verb|to| operator of \TikZ\ in a very clever way (within a
custom environment of the package). Anyway, electric networks schematics are
simpler than chemical processes drawing under this aspect: a great part of
electrical components, such as resistors, capacitors and inductors, are bipoles,
which means with one input and one output only, just two connections points. In
chemical plants, most of the units are not simple bipoles, but can have a wide
variety of inlet and outlet streams connected in variable points. Due to this
necessity, I was not able to find a simple solution during the very first writing
of the package code.

After some researches, I saw the light: coordinate nodes. The \TikZ\ package
offers the possibility to define a pic with some internal coordinate nodes,
special points to which a name can be assigned. In this way it is not necessary
to calculate by hand the position of the remarkable points of a unit, but it is
enough to know the names of the coordinate nodes which represent them to snap a
stream on those points. Moving a unit will then move also anchors, so the snap
will be held. Finally, \TikZ\ let a pic to be prefixed with a name that
univocally identifies the pic. This name is prefixed also to anchors declared
in the pic definition, hence also anchors are univocally determined, avoiding to
snap a stream to the wrong unit.

\subsection{Understanding Symbols}

Units defined by \chemplants\ can be two different kinds of pics:
\begin{itemize}
	\item simple pic objects, which can be used by just calling them through a
		\verb|\pic| command;
	\item pic objects with a mandatory argument, in which the pic name called
		through the \verb|\pic| command has to be followed by a specification.
\end{itemize}
The second category is particularly useful to draw similar units distinguished
by some details, such as different columns types, or to let units to be
sensible to the context, for example units that have to be drawn with different
thicknesses. A third possibility is to give a text argument to the pic that has
to be represented inside the pic itself; this is particularly useful for control
instruments.

\subsubsection{The General Pic Syntax}

A pic is a \TikZ\ object which can be called by the \verb|\pic| command. The
general syntax of the command is more or less:
\begin{chpcode}
	\pic [£!\meta{options}!£] (£!\meta{identifier}!£) at (£!\meta{coordinate}!£) {£!\meta{name}!£};
\end{chpcode}
where:
\begin{itemize}
	\item \meta{options} is a list of options to be passed to the pic and it
		is, as the name says, an optional argument;
	\item \meta{identifier} is a user-defined name assigned to the pic that
		should univocally determine it and that will be prefixed, together with
		a dash, \verb|-|, to all of the nodes names (it is an optional argument
		for the pic, but mandatory if one wants to access the node features);
	\item \meta{coordinates} is whichever expression \TikZ\ recognises as a
		specification of the coordinates on its canvas;
	\item \meta{name} is the name of the pic to be drawn.
\end{itemize}
This syntax holds true for simple pics only. Units defined as pics with arguments
have a similar syntax, but with an extra argument:
\begin{chpcode}
	\pic [£!\meta{options}!£] (£!\meta{identifier}!£) at (£!\meta{coordinate}!£) {£!\meta{name}!£=£!\meta{type}!£};
\end{chpcode}
where \meta{type} is the argument to be passed to the \meta{name} unit and which
specifies some features of the unit itself. The usage of these syntaxes will
be clearer in the future, when examples will be shown.

\subsubsection{Common Nodes}

In the following, units defined by \chemplants\ are listed, described and shown.
In order to profitably draw units it is important to know where their anchors
and nodes are, what their dimensions are and which is their default orientation.
Units will be drawn and some information will be given in the meanwhile:
\begin{itemize}
	\item drawings will be shown in their default orientation;
	\item anchors will be represented on units by a little
		\textcolor{red}{red cross};
	\item remarkable nodes, the ones defined by the pic code, will be
		represented on units by a little \textcolor{blue}{blue cross} with an
		abbreviation of the name of the node on its side;
	\item dimensions will be marked on drawings, both total dimensions and
		distances from the important points to the anchor.
\end{itemize}

Only instructions to produce the ``raw units'' will be shown, so, in order to
avoid confusion, three units will be presented: a ``pure'' unit; a unit marked
with dimensions; a unit marked with the nodes.

What concerns the names of the remarkable nodes which will be used in the
following require a clarification. As a general rule, nine standard names are
used to identify \chemplants\ nodes. These names are long for the sake of
clearance, but they will be abbreviated in this discussion just to limit the
space they require. A short list:
\begin{itemize}
	\item the node \chpn{anchor} is always placed where the pic is anchored and
		it will be never marked by a name, but only by the small red cross
		mentioned above;
	\item the node \chpn{left} is placed on the left limit of the unit, in its
		centre, and will be indicated using the abbreviated name \chpn{l};
	\item the node \chpn{bottom left} is placed on the left limit of the unit,
		in its lower useful point, and will be indicated using the abbreviated
		name \chpn{bl};
	\item the node \chpn{bottom} is placed on the lower limit of the unit, in
		its centre, and will be indicated using the abbreviated name \chpn{b};
	\item the node \chpn{bottom right} is placed on the right limit of the unit,
		in its lower useful point, and will be indicated using the abbreviated
		name \chpn{br};
	\item the node \chpn{right} is placed on the right limit of the unit, in its
		centre, and will be indicated using the abbreviated name \chpn{r};
	\item the node \chpn{top right} is placed on the right limit of the unit,
		in its upper useful point, and will be indicated using the abbreviated
		name \chpn{tr};
	\item the node \chpn{top} is placed on the upper limit of the unit, in
		its centre, and will be indicated using the abbreviated name \chpn{t};
	\item the node \chpn{top left} is placed on the left limit of the unit,
		in its upper useful point, and will be indicated using the abbreviated
		name \chpn{tl}.
\end{itemize}

Taking as example a tank, full names of the nodes, shown on the unit on the left,
will be indicated using abbreviated names, as on the unit on the right:
\begin{center}
\begin{tikzpicture}
\pic (T1) at (0,0) {tank};
	\pic at (T1-anchor) {anchor mark};
	\pic at (T1-left) {node mark};
	\pic at (T1-bottom left) {node mark};
	\pic at (T1-bottom) {node mark};
	\pic at (T1-bottom right) {node mark};
	\pic at (T1-right) {node mark};
	\pic at (T1-top right) {node mark};
	\pic at (T1-top) {node mark};
	\pic at (T1-top left) {node mark};
	\node[left] at (T1-left) {\chpn{left}};
	\node[left] at (T1-bottom left) {\chpn{bottom left}};
	\node[below] at (T1-bottom) {\chpn{bottom}};
	\node[right] at (T1-bottom right) {\chpn{bottom right}};
	\node[right] at (T1-right) {\chpn{right}};
	\node[right] at (T1-top right) {\chpn{top right}};
	\node[above] at (T1-top) {\chpn{top}};
	\node[left] at (T1-top left) {\chpn{top left}};
	\pic (T2) at (8,0) {tank};
	\pic at (T2-anchor) {anchor mark};
	\pic at (T2-left) {node mark};
	\pic at (T2-bottom left) {node mark};
	\pic at (T2-bottom) {node mark};
	\pic at (T2-bottom right) {node mark};
	\pic at (T2-right) {node mark};
	\pic at (T2-top right) {node mark};
	\pic at (T2-top) {node mark};
	\pic at (T2-top left) {node mark};
	\node[left] at (T2-left) {\chpn{l}};
	\node[left] at (T2-bottom left) {\chpn{bl}};
	\node[below] at (T2-bottom) {\chpn{b}};
	\node[right] at (T2-bottom right) {\chpn{br}};
	\node[right] at (T2-right) {\chpn{r}};
	\node[right] at (T2-top right) {\chpn{tr}};
	\node[above] at (T2-top) {\chpn{t}};
	\node[left] at (T2-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}

It should be noticed that not all of the ``boundary nodes'' are defined for
every unit. Usually they are all present in a rectangle-shaped unit, such as a
tank, but in circle-shaped units the ``corner nodes'' are not present.
Furthermore, units represented by strange symbols can have some special nodes to
indicate their remarkable points. Special nodes will be discussed, both with
extended and abbreviated names, describing units which require them.

It is important to recall that to access the node features of pics it is
mandatory to assign an identifier to the \verb|\pic| command. Assuming that
such identifier is \chpn{T}, then one can access to all of the nodes inside the
pic thanks to it using them as coordinates nodes (as they are). Also interposing
a dash, \verb|-|, is fundamental. For example \chpn{T-bottom right} used as
coordinate identifies the point of the \chpn{bottom right} node of the pic
identified (prefixed) by \chpn{T}.

\subsubsection{A Command to Show Measures}

By the way, \chemplants\ defines a command to draw dimensions: \verb|\measure|.
This command has to be used directly within a \verb|tikzpicture| environment
(also without the final semicolon) and requires three mandatory arguments:
start point coordinates, end point coordinates and the text of the measure.
Coordinates can be declared in any way recognised by \TikZ, while the text can
be anything that can be placed into a \TikZ\ node.

The default appearance of a measure is a grey \verb|thin| line with flat tips.
The measure is yield as text placed in the middle of the line, sloped in its
direction and always below it. Anyway, \verb|\measure| accepts an optional
argument in which any anchor specification that can be passed to a \TikZ\ node
can be used. The most useful is \verb|above|, which moves the text of a measure
above the line.

Some examples using the \siunitx\ package (but also normal text will work).
The code:
\begin{chpcode}
	\measure{(0,0)}{(2,0)}{\SI{2}{\cm}}
	\measure{(0,1.2)}{(0,0.2)}{\SI{1}{\cm}}
	\measure{(1,0.2)}{(1,1.2)}{\SI{1}{\cm}}
	\measure[above]{(2,1.2)}{(2,0.2)}{\SI{1}{\cm}}
	\measure[above]{(0,1.4)}{(2,1.4)}{\SI{2}{\cm}}
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\measure{(0,0)}{(2,0)}{\SI{2}{\cm}}
	\measure{(0,1.2)}{(0,0.2)}{\SI{1}{\cm}}
	\measure{(1,0.2)}{(1,1.2)}{\SI{1}{\cm}}
	\measure[above]{(2,1.2)}{(2,0.2)}{\SI{1}{\cm}}
	\measure[above]{(0,1.4)}{(2,1.4)}{\SI{2}{\cm}}
\end{tikzpicture}
\end{center}
It is important to notice that the value of the measure is not calculated
automatically, but it must be passed as an argument. This is useful to indicate,
for example, the length of a pipe or the real dimensions of a unit in a process
scheme.

\subsection{Fluids and Solids Storage}

\subsubsection{Tank}

A tank is a generic recipient useful to store process fluids or solids. A generic
symbol is defined for a process tank and it can be used with no distinction on
its shape, which is represented by a rectangle with rounded bases. It is defined
as a simple pic called \chpp{tank}:
\begin{chpcode}
	\pic at (0,0) {tank};
\end{chpcode}
and yields a vertical tank anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-4,0) {tank};
	\pic at (0,0) {tank};
	\measure{(-1,-1.7)}{(1,-1.7)}{\SI{20}{\mm}}
	\measure{(-1.2,1.5)}{(-1.2,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.2,0.915)}{(1.2,0)}{\SI{9.15}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (4,0) {tank};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins. This point is identified by the
\chpn{top right} node and by its analogs.

The \chpp{tank} pic is generic and it is useful to represent process tanks.
Storage tanks can be represented with the same pic, but there are also some
specific symbols.

\subsubsection{Cone Roof Tank}

A cone roof tank is a large tank placed on the ground and useful to store
process fluids or solids. As the name says, it has a cone-shaped roof. It is
defined as a simple pic called \chpp{cone tank}:
\begin{chpcode}
	\pic at (0,0) {cone tank};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a cone-shaped
roof:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {cone tank};
	\pic at (0,0) {cone tank};
	\measure{(-1.5,-1.7)}{(1.5,-1.7)}{\SI{30}{\mm}}
	\measure{(-1.7,1.5)}{(-1.7,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.7,1.1)}{(1.7,0)}{\SI{11}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-1.4)}{\SI{14}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (5,0) {cone tank};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the bottom right indicates the distance from the middle of
the tank to the point where the outlet stream should be connected. This point is
identified by the \chpn{bottom right} node and by its analogous node on the left.

\subsubsection{Dome Roof Tank}

A dome roof tank is the same of a cone roof tank, but, clearly, it has a
dome-shaped roof. It is defined as a simple pic called \chpp{dome tank}:
\begin{chpcode}
	\pic at (0,0) {dome tank};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a dome-shaped
roof:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {dome tank};
	\pic at (0,0) {dome tank};
	\measure{(-1.5,-1.7)}{(1.5,-1.7)}{\SI{30}{\mm}}
	\measure{(-1.7,1.5)}{(-1.7,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.7,0.7)}{(1.7,0)}{\SI{7}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-1.4)}{\SI{14}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (5,0) {dome tank};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the top right indicates the distance from the middle of the
tank to the point where the curvature begins, while the measure on the bottom
right indicates the distance from the middle of the tank to the point where the
outlet stream should be connected. This last point is identified by the
\chpn{bottom right} node and by its analogous node on the left.

\subsubsection{Floating Roof Tank}

A floating roof tank is a large tank placed on the ground and useful to store
process fluids or solids. It has the advantage to change in volume depending on
how much it is filled, which allows to compensate pressure unbalances during
the filling and the draining of the tank, also to avoid the formation of a gas
pocket above the stored substance. It is defined as a simple pic called
\chpp{floating roof tank}:
\begin{chpcode}
	\pic at (0,0) {floating roof tank};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a sketch of the
floating roof:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {floating roof tank};
	\pic at (0,0) {floating roof tank};
	\measure{(-1.5,-1.7)}{(1.5,-1.7)}{\SI{30}{\mm}}
	\measure{(-1.7,1.5)}{(-1.7,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.7,1.2)}{(1.7,0)}{\SI{12}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-1.4)}{\SI{14}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (5,0) {floating roof tank};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the bottom right indicates the distance from the middle of
the tank to the point where the outlet stream should be connected. This point is
identified by the \chpn{bottom right} node and by its analogous node on the left.

\subsubsection{Bell GasHolder}

Tanks introduced so far can be used to represent general systems to store either
solids, liquids and gases. For gases storage, a specific kind of tanks exists,
which is designed to control the gas pressure in a simple way: gasholders.

The most common gasholder uses a bell-shaped floating roof to expand and contract
its volume depending on the amount of gas to be stored. It is defined as a simple
pic called \chpp{bell gasholder}:
\begin{chpcode}
	\pic at (0,0) {bell gasholder};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a sketch of
the bell-shaped floating roof:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {bell gasholder};
	\pic at (0,0) {bell gasholder};
	\measure{(-1.5,-1.7)}{(1.5,-1.7)}{\SI{30}{\mm}}
	\measure{(-1.7,1.5)}{(-1.7,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.7,0.7)}{(1.7,0)}{\SI{7}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-1.4)}{\SI{14}{\mm}}
	\measure[above]{(-1.45,1.7)}{(1.45,1.7)}{\SI{29}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (5,0) {bell gasholder};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the top indicates the width of the moving roof, th measure
on the top right indicates the distance from the middle of the gasholder to the
point where the curvature begins and the measure on the bottom right indicates
the distance from the middle of the gasholder to the point where a stream should
be connected. This last point is identified by the \chpn{bottom right} node and
by its analogous node on the left.

It should be quite obvious that \chpn{left} and \chpn{right} nodes, falling on
the roof rails, are not meant to be used for stream connections, but just to
labelling purposes or for control instrumentation connections.

\subsubsection{Dry GasHolder}

Another kind of gasholder is the so called dry gasholder, where there is a fixed
structure that contains an ``expandable ballon'' in which the gas is stored. It
is defined as a simple pic called \chpp{dry gasholder}:
\begin{chpcode}
	\pic at (0,0) {dry gasholder};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a sketch of the
ballon inside it:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {dry gasholder};
	\pic at (0,0) {dry gasholder};
	\measure{(-1.5,-1.2)}{(1.5,-1.2)}{\SI{30}{\mm}}
	\measure{(-1.7,1.0)}{(-1.7,-1.0)}{\SI{20}{\mm}}
	\measure[above]{(1.7,0.5)}{(1.7,0)}{\SI{5}{\mm}}
	\measure[above]{(2.2,0)}{(2.2,-0.9)}{\SI{9}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (T) at (5,0) {dry gasholder};
	\pic at (T-anchor) {anchor mark};
	\pic at (T-left) {node mark};
	\pic at (T-bottom left) {node mark};
	\pic at (T-bottom) {node mark};
	\pic at (T-bottom right) {node mark};
	\pic at (T-right) {node mark};
	\pic at (T-top right) {node mark};
	\pic at (T-top) {node mark};
	\pic at (T-top left) {node mark};
	\pic at (T-dome top) {node mark};
	\node[left] at (T-left) {\chpn{l}};
	\node[left] at (T-bottom left) {\chpn{bl}};
	\node[below] at (T-bottom) {\chpn{b}};
	\node[right] at (T-bottom right) {\chpn{br}};
	\node[right] at (T-right) {\chpn{r}};
	\node[right] at (T-top right) {\chpn{tr}};
	\node[above] at (T-top) {\chpn{t}};
	\node[left] at (T-top left) {\chpn{tl}};
	\node[above] at (T-dome top) {\chpn{dt}};
\end{tikzpicture}
\end{center}
where the measure on the top right indicates the distance from the middle of the
gasholder to the top of the internal balloon, while the measure on the bottom
right indicates the distance from the middle of the gasholder to the point where
a stream should be connected. This last point is identified by the
\chpn{bottom right} node and by its analogous node on the left.

A special node is defined for the \chpp{dry gasholder}: usually the inlet stream
is connected to one bottom side of the balloon, on the \chpn{bottom right} node
or on the \chpn{bottom left} node, while the outlet is connected to the top of
the dome (and not to the top of the containing structure). This special node is
called \chpn{dome top} and it is marked in the above drawing using the
abbreviated name \chpn{dt}. This node can be called in the usual way: for
example, in a \chpn{dry gasholder} identified as \chpn{G} the node is
\chpn{G-dome top}.

\subsection{Fluid Handling}

Fluid handling devices are essential to chemical plants because it is always
necessary to move a fluid, from one place to another against pressure drops
generated by pipes or units.

Fluid handling units used in the chemical industry are basically classified
considering the kind of fluid they can move, either a liquid or a gas. On the
basis of this classification, there is a main distinction between pumps for
liquids and equipments to move gases. The latter are furthermore distinguished
with respect to the pressure rise a unit can achieve: fans, blowers and
compressors.

\subsubsection{Centrifugal Pump}

A pump is a mechanical machine useful to move a liquid and to increase its
pressure. The most simple and widely used pump is a simple kinetic machine known
as centrifugal pump. It is defined as a simple pic called
\chpp{centrifugal pump}:
\begin{chpcode}
	\pic at (0,0) {centrifugal pump};
\end{chpcode}
and yields a circle, in which centre there is the anchor, supported by a 
triangular base and containing a little circle representing the inlet nozzle:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {centrifugal pump};
	\pic at (0,0) {centrifugal pump};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.4)}{(-0.7,-0.6)}{\SI{10}{\mm}}
	\measure[above]{(-0.4,0.6)}{(0.4,0.6)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0)}{(0.7,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (P) at (3,0) {centrifugal pump};
	\pic at (P-anchor) {anchor mark};
	\pic at (P-left) {node mark};
	\pic at (P-bottom) {node mark};
	\pic at (P-right) {node mark};
	\pic at (P-top) {node mark};
	\node[left] at (P-left) {\chpn{l}};
	\node[below] at (P-bottom) {\chpn{b}};
	\node[right] at (P-right) {\chpn{r}};
	\node[above] at (P-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the inlet of the pump
to its base, while the measure on the top indicates the diameter of the circle.

Nodes are defined only for the remarkable outlet points of the pump, but not for
its inlet: this is placed on the anchor point, so it should not be difficult to
find it (use the \chpn{anchor} node to snap purposes). Anyway, it should be
noticed that the centrifugal pump, together with the fan that will be introduced
later on, is the only unit that requires the inlet to be placed in the centre of
the symbol, while other units do not. Finally, the \chpn{bottom} node is not
really meant to connect streams, but it could be exploited to labelling purposes.

The centrifugal pump is for sure the most widely used one, but its applications
are quite limiting with respect to the pressure rise and the kind of treatable
liquid. Other pumps exist, such as the ones belonging to the volumetric machines:
these are mainly rotary pumps and reciprocating pumps.

\subsubsection{Rotary Pump}

Rotary pumps are themselves a large family of machines, but \UNICHIM\ defines
a generic symbol to represent them all. It is defined as a simple pic called
\chpp{rotary pump}:
\begin{chpcode}
	\pic at (0,0) {rotary pump};
\end{chpcode}
and yields an oblong circle supported by a triangular base and containing the
sketch of two little circle, where the anchor is in the centre of the lowest
one:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {rotary pump};
	\pic at (0,0) {rotary pump};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.9)}{(-0.7,-0.6)}{\SI{13}{\mm}}
	\measure[above]{(-0.4,1.1)}{(0.4,1.1)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0.25)}{(0.7,0)}{\SI{2.5}{\mm}}
	\measure[above]{(1.2,0)}{(1.2,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (P) at (3,0) {rotary pump};
	\pic at (P-anchor) {anchor mark};
	\pic at (P-left) {node mark};
	\pic at (P-bottom) {node mark};
	\pic at (P-right) {node mark};
	\pic at (P-top) {node mark};
	\node[left] at (P-left) {\chpn{l}};
	\node[below] at (P-bottom) {\chpn{b}};
	\node[right] at (P-right) {\chpn{r}};
	\node[above] at (P-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where measures on the right indicate the distance from the inlet of the pump
(placed on its boundary, either \chpn{left} or \chpn{right} nodes) to its
anchor, \SI{2.5}{\mm}, and the distance form the anchor of the pump to its
base, \SI{6}{\mm}, while the measure on the top indicates the width of the body.

\subsubsection{Liquid Ring Pump}

As told before, the \chpp{rotary pump} is generic, so it can be used to
represent gear pumps, lobe pumps, screw pumps, hollow disc pumps and other
similar machines. A remarkable exception of a rotary pump not representable by
means of the generic symbol is the liquid ring pump, useful to aspire a fluid
rather than to compress it, hence to generate vacuum. It is defined as a simple
pic called \chpp{liquid ring pump}:
\begin{chpcode}
	\pic at (0,0) {liquid ring pump};
\end{chpcode}
and yields a circle, in which centre there is the anchor, supported by a
triangular base and containing a smaller circle representing the liquid ring:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {liquid ring pump};
	\pic at (0,0) {liquid ring pump};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.4)}{(-0.7,-0.6)}{\SI{10}{\mm}}
	\measure[above]{(-0.4,0.6)}{(0.4,0.6)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0)}{(0.7,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (P) at (3,0) {liquid ring pump};
	\pic at (P-anchor) {anchor mark};
	\pic at (P-left) {node mark};
	\pic at (P-bottom) {node mark};
	\pic at (P-right) {node mark};
	\pic at (P-top) {node mark};
	\node[left] at (P-left) {\chpn{l}};
	\node[below] at (P-bottom) {\chpn{b}};
	\node[right] at (P-right) {\chpn{r}};
	\node[above] at (P-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the inlet of the pump
(placed on its boundary) to its base, while the measure on the top indicates the
diameter of the circle.

\subsubsection{Reciprocating Pump}

The other category of volumetric pumps are the reciprocating ones, which work
through the classical principle of cylinder and piston. A generic reciprocating
pump is defined as a simple pic called \chpp{reciprocating pump}:
\begin{chpcode}
	\pic at (0,0) {reciprocating pump};
\end{chpcode}
and yields a square, in which centre there is the anchor, supported by a
squared base:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {reciprocating pump};
	\pic at (0,0) {reciprocating pump};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.4)}{(-0.7,-0.6)}{\SI{10}{\mm}}
	\measure[above]{(-0.4,0.6)}{(0.4,0.6)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0)}{(0.7,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (P) at (3,0) {reciprocating pump};
	\pic at (P-anchor) {anchor mark};
	\pic at (P-left) {node mark};
	\pic at (P-bottom) {node mark};
	\pic at (P-right) {node mark};
	\pic at (P-top) {node mark};
	\node[left] at (P-left) {\chpn{l}};
	\node[below] at (P-bottom) {\chpn{b}};
	\node[right] at (P-right) {\chpn{r}};
	\node[above] at (P-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the inlet of the pump
(placed on its boundary) to its base, while the measure on the top indicates the
length of the side side of the square.

\subsubsection{Fan}

Liquid handling equipments are done, so the description can move to gas handling
units. As told before, these are mainly distinguished on the basis of the
pressure rise they can achieve, but also on their working principle.

If it is simply required to move a gas, without a significant pressure rise, a
fan or, at most, a blower, is enough. These two units are simple kinetic machines
similar to a centrifugal pump and both of them are defined by \UNICHIM\ as a
single symbol, which in \chemplants\ can be found under the name of \chpp{fan}:
\begin{chpcode}
	\pic at (0,0) {fan};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a squared
vertex, supported by a triangular base and containing a little circle
representing the inlet nozzle:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {fan};
	\pic at (0,0) {fan};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.4)}{(-0.7,-0.6)}{\SI{10}{\mm}}
	\measure[above]{(-0.4,0.6)}{(0.4,0.6)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0)}{(0.7,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (F) at (3,0) {fan};
	\pic at (F-anchor) {anchor mark};
	\pic at (F-left) {node mark};
	\pic at (F-bottom) {node mark};
	\pic at (F-right) {node mark};
	\pic at (F-top) {node mark};
	\pic at (F-outlet) {node mark};
	\node[left] at (F-left) {\chpn{l}};
	\node[below] at (F-bottom) {\chpn{b}};
	\node[right] at (F-right) {\chpn{r}};
	\node[above] at (F-top) {\chpn{t}};
	\node[above right] at (F-outlet) {\chpn{o}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the inlet of the fan
(this time again placed in its centre) to its base, while the measure on the top
indicates the diameter of the circle.

A special node is defined for the \chpp{fan}: the squared vertex indicates the
outlet of the unit, thus it is identified by the \chpn{outlet} node, indicated
as \chpn{o} in the above representation. As for the centrifugal pump, the
\chpn{anchor} node should be used to snap the inlet stream to the fan.

\subsubsection{Centrifugal Compressor}

When a gas needs a high pressure rise, there is no other way but using a
compressor. The only kinetic machine useful to compress a gas that has a
symbol defined by \chemplants\ is the centrifugal compressor. It is defined as a
simple pic called \chpp{centrifugal compressor}:
\begin{chpcode}
	\pic at (0,0) {centrifugal compressor};
\end{chpcode}
and yields a cone frustum, in which middle there is the anchor, supported by a
squared base:
\begin{center}
\begin{tikzpicture}
	\pic at (-4,0) {centrifugal compressor};
	\pic at (0,0) {centrifugal compressor};
	\measure{(-1.0,-0.8)}{(1.0,-0.8)}{\SI{20}{\mm}}
	\measure{(-1.7,0.4)}{(-1.7,-0.6)}{\SI{10}{\mm}}
	\measure{(-1.2,0.4)}{(-1.2,-0.4)}{\SI{8}{\mm}}
	\measure[above]{(-0.9,0.6)}{(0.9,0.6)}{\SI{18}{\mm}}
	\measure[above]{(1.2,0.2)}{(1.2,-0.2)}{\SI{4}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (4,0) {centrifugal compressor};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-right) {node mark};
	\pic at (C-inlet bottom) {node mark};
	\pic at (C-outlet bottom) {node mark};
	\pic at (C-outlet top) {node mark};
	\pic at (C-inlet top) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[right] at (C-right) {\chpn{r}};
	\node[below left] at (C-inlet bottom) {\chpn{ib}};
	\node[below right] at (C-outlet bottom) {\chpn{ob}};
	\node[above] at (C-outlet top) {\chpn{ot}};
	\node[above] at (C-inlet top) {\chpn{it}};
\end{tikzpicture}
\end{center}

Measures require some clarifications. The unit has a total width of \SI{20}{\mm}
and a total height of \SI{10}{\mm}. The cone frustum has a length of
\SI{18}{\mm} (the base protrudes horizontally \SI{1}{\mm} on each side, as for
all of the other symbols defined as fluid handling units), its larger base has
a height of \SI{8}{\mm} and the smaller one of \SI{4}{\mm}.

Also nodes are not that easy to understand. As always, the \chpn{bottom} node is
defined to labelling purposes. The \chpn{left} and \chpn{right} nodes should
not be used to connect streams, but can be exploited to connect control
instrumentation or to represent the shaft of the compressor. Streams should be
connected on the sides of the cone frustum: more precisely the inlet stream has
to enter the unit on the side of the larger base and the outlet one has to leave
the unit on the side of the smaller one, both of them vertically, in the
direction perpendicular to the axis of the cone frustum. To this aim, four
special nodes are defined:
\begin{itemize}
	\item a node called \chpn{inlet bottom}, abbreviated in the picture above as
		\chpn{ib};
	\item a node called \chpn{outlet bottom}, abbreviated in the picture above as
		\chpn{ob};
	\item a node called \chpn{outlet top}, abbreviated in the picture above as
		\chpn{ot};
	\item a node called \chpn{inlet top}, abbreviated in the picture above as
		\chpn{it}.
\end{itemize}
(At most, it is possible to tolerate the inlet
placed on the left side of the unit, on the \chpn{left} node, but the outlet has
to be compulsorily on the side of the smaller base.)

\subsubsection{Rotary Compressor}

As for pumps, also compressors are not kinetic machines only, but also
volumetric, again rotary and reciprocating. Also in this case, a generic symbol
is defined by \UNICHIM\ to indicate all of the rotary compressors. It is defined
as a simple pic called \chpp{rotary compressor}:
\begin{chpcode}
	\pic at (0,0) {rotary compressor};
\end{chpcode}
and yields an oblong circle supported by a triangular base and containing the
sketch of a sort of S, where the anchor is in the centre of the lowest branch:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {rotary compressor};
	\pic at (0,0) {rotary compressor};
	\measure{(-0.5,-0.8)}{(0.5,-0.8)}{\SI{10}{\mm}}
	\measure{(-0.7,0.9)}{(-0.7,-0.6)}{\SI{13}{\mm}}
	\measure[above]{(-0.4,1.1)}{(0.4,1.1)}{\SI{8}{\mm}}
	\measure[above]{(0.7,0.25)}{(0.7,0)}{\SI{2.5}{\mm}}
	\measure[above]{(1.2,0)}{(1.2,-0.6)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (P) at (3,0) {rotary compressor};
	\pic at (P-anchor) {anchor mark};
	\pic at (P-left) {node mark};
	\pic at (P-bottom) {node mark};
	\pic at (P-right) {node mark};
	\pic at (P-top) {node mark};
	\node[left] at (P-left) {\chpn{l}};
	\node[below] at (P-bottom) {\chpn{b}};
	\node[right] at (P-right) {\chpn{r}};
	\node[above] at (P-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where measures on the right indicate the distance from the inlet of the
compressor (placed on its boundary, either \chpn{left} or \chpn{right} nodes)
to its anchor, \SI{2.5}{\mm}, and the distance from the anchor of the
compressor to its base, \SI{6}{\mm}, while the measure on the top indicates the
width of the body.

\subsubsection{Reciprocating Compressor}

Differently from what happens for pumps, reciprocating compressors are
represented by means of two different symbols, one for single stage operations
and one for multistage units. The simple stage unit is defined as a simple pic
called \chpp{reciprocating compressor}:
\begin{chpcode}
	\pic at (0,0) {reciprocating compressor};
\end{chpcode}
and yields a circle, in which centre there is the anchor, merged with the
rectangular body of the unit, all of which is supported by a squared base:
\begin{center}
\begin{tikzpicture}
	\pic at (-4,0) {reciprocating compressor};
	\pic at (0,0) {reciprocating compressor};
	\measure{(-0.5,-1.3)}{(1.5,-1.3)}{\SI{20}{\mm}}
	\measure{(-0.4,-0.8)}{(1.4,-0.8)}{\SI{18}{\mm}}
	\measure{(-1.2,0.4)}{(-1.2,-0.6)}{\SI{10}{\mm}}
	\measure{(-0.7,0.4)}{(-0.7,-0.4)}{\SI{8}{\mm}}
	\measure[above]{(0,1.1)}{(1.4,1.1)}{\SI{14}{\mm}}
	\measure[above]{(0,0.6)}{(0.8,0.6)}{\SI{8}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-0.6)}{\SI{6}{\mm}}
	\measure[above]{(2.2,0.346)}{(2.2,-0.346)}{\SI{6.92}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (4,0) {reciprocating compressor};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-top) {node mark};
	\pic at (C-inlet bottom) {node mark};
	\pic at (C-outlet) {node mark};
	\pic at (C-inlet top) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[above] at (C-top) {\chpn{t}};
	\node[above] at (C-inlet bottom) {\chpn{ib}};
	\node[right] at (C-outlet) {\chpn{o}};
	\node[above] at (C-inlet top) {\chpn{it}};
\end{tikzpicture}
\end{center}
The circle is a sketch of the engine of the compressor, while the rectangle is
the main body of the unit, where the gas gets effectively compressed.

Measures require some clarification. The unit has a total width of \SI{20}{\mm}
and a total height of \SI{10}{\mm}. The figure obtained joining the circle and
the rectangle has a length of \SI{18}{\mm} (the base protrudes horizontally
\SI{1}{\mm} on each side). The circle has a diameter of \SI{8}{\mm}, while the
rectangle has a height of \SI{6.92}{\mm}. The base of the unit is \SI{6}{\mm}
below its anchor point.

Since the ``real'' compressing part of the unit is the rectangle, nodes on the
circle should be used to labelling purposes, to connect the control
instrumentation or to sketch the shaft of the engine. The gas inlet stream
should be connected to the \chpn{inlet bottom} or \chpn{inlet top} nodes, showed
in the above drawing using the abbreviated names \chpn{ib} and \chpn{it}
respectively, while the outlet stream has to be connected to the \chpn{outlet}
node, \chpn{o} in the above representation. The two measures not cited yet are
referred to these remarkable points of the unit: inlet nodes are \SI{8}{\mm} to
the right of the anchor, while the outlet node is \SI{14}{\mm} to the right of
the anchor.

\subsubsection{MultiStage Compressor}

Besides all of the above mentioned symbols, the most common unit used to indicate
gas handling machine is the one that represents the multistage reciprocating
compressor. Indeed, this is also widely used to represent a generic compression
unit, despite its real meaning. It is defined as a simple pic called
\chpp{multistage compressor}:
\begin{chpcode}
	\pic at (0,0) {multistage compressor};
\end{chpcode}
and yields a circle, in which centre there is the anchor, merged with three
rectangles, all of which is supported by a squared base:
\begin{center}
\begin{tikzpicture}
	\pic at (-4,0) {multistage compressor};
%	\pic at (0,0) {multistage compressor};
%	\measure{(-0.5,-1.3)}{(1.5,-1.3)}{\SI{20}{\mm}}
%	\measure{(-0.4,-0.8)}{(1.4,-0.8)}{\SI{18}{\mm}}
%	\measure{(-1.7,0.4)}{(-1.7,-0.6)}{\SI{10}{\mm}}
%	\measure{(-1.2,0.4)}{(-1.2,-0.4)}{\SI{8}{\mm}}
%	\measure{(-0.7,0)}{(-0.7,-0.6)}{\SI{6}{\mm}}
%	\measure[above]{(0,2.1)}{(1.4,2.1)}{\SI{14}{\mm}}
%	\measure[above]{(0,1.6)}{(1.25,1.6)}{\SI{12.5}{\mm}}
%	\measure[above]{(0,1.1)}{(0.9,1.1)}{\SI{9}{\mm}}
%	\measure[above]{(0,0.6)}{(0.45,0.6)}{\SI{4.5}{\mm}}
%	\measure[above]{(2.7,0.346)}{(2.7,-0.346)}{\SI{6.92}{\mm}}
%	\measure[above]{(2.1,0.231)}{(2.1,-0.231)}{\SI{4.62}{\mm}}
%	\measure[above]{(1.7,0.116)}{(1.7,-0.116)}{\SI{2.32}{\mm}}
%	\pic at (0,0) {anchor mark};
%	\pic (C) at (4,0) {multistage compressor};
%	\pic at (C-anchor) {anchor mark};
%	\pic at (C-left) {node mark};
%	\pic at (C-bottom) {node mark};
%	\pic at (C-top) {node mark};
%	\pic at (C-first bottom) {node mark};
%	\pic at (C-second bottom) {node mark};
%	\pic at (C-third bottom) {node mark};
%	\pic at (C-outlet) {node mark};
%	\pic at (C-third top) {node mark};
%	\pic at (C-second top) {node mark};
%	\pic at (C-first top) {node mark};
%	\node[left] at (C-left) {\chpn{l}};
%	\node[below] at (C-bottom) {\chpn{b}};
%	\node[above] at (C-top) {\chpn{t}};
%	\node[above left] at (C-first bottom) {\chpn{fb}};
%	\node[above] at (C-second bottom) {\chpn{sb}};
%	\node[below right] at (C-third bottom) {\chpn{tb}};
%	\node[right] at (C-outlet) {\chpn{o}};
%	\node[above] at (C-third top) {\chpn{tt}};
%	\node[above] at (C-second top) {\chpn{st}};
%	\node[above] at (C-first top) {\chpn{ft}};
\end{tikzpicture}
\end{center}
Again the circle is a sketch of the engine of the compressor, while the three
rectangles are the main body of the unit and represent the compression stages.
Rigorously, there should be as many rectangles as the compression stages are, but
usually a symbol with three rectangles is used independently of the number of
stages.

No measures or nodes are shown in the above drawing, that is the pure symbol,
because of its complexity. In order to better understand measures and nodes,
here is a huge \chpp{multistage compressor}:
\begin{center}
\begin{tikzpicture}
	\pic[scale=3] (C) at (0,0) {multistage compressor};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-top) {node mark};
	\pic at (C-first bottom) {node mark};
	\pic at (C-second bottom) {node mark};
	\pic at (C-third bottom) {node mark};
	\pic at (C-outlet) {node mark};
	\pic at (C-third top) {node mark};
	\pic at (C-second top) {node mark};
	\pic at (C-first top) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[above] at (C-top) {\chpn{t}};
	\node[above] at (C-first bottom) {\chpn{fb}};
	\node[above] at (C-second bottom) {\chpn{sb}};
	\node[above] at (C-third bottom) {\chpn{tb}};
	\node[right] at (C-outlet) {\chpn{o}};
	\node[above] at (C-third top) {\chpn{tt}};
	\node[above] at (C-second top) {\chpn{st}};
	\node[above] at (C-first top) {\chpn{ft}};
	\measure{(-1.5,-2.9)}{(4.5,-2.9)}{\SI{20}{\mm}}
	\measure{(-1.2,-2.4)}{(4.2,-2.4)}{\SI{18}{\mm}}
	\measure{(-3.1,1.2)}{(-3.1,-1.8)}{\SI{10}{\mm}}
	\measure{(-2.6,1.2)}{(-2.6,-1.2)}{\SI{8}{\mm}}
	\measure{(-2.1,0)}{(-2.1,-1.8)}{\SI{6}{\mm}}
	\measure[above]{(0,3.3)}{(4.2,3.3)}{\SI{14}{\mm}}
	\measure[above]{(0,2.8)}{(3.75,2.8)}{\SI{12.5}{\mm}}
	\measure[above]{(0,2.3)}{(2.7,2.3)}{\SI{9}{\mm}}
	\measure[above]{(0,1.8)}{(1.35,1.8)}{\SI{4.5}{\mm}}
	\measure[above]{(6.1,1.038)}{(6.1,-1.038)}{\SI{6.92}{\mm}}
	\measure[above]{(5.6,0.639)}{(5.6,-0.693)}{\SI{4.62}{\mm}}
	\measure[above]{(5.1,0.348)}{(5.1,-0.348)}{\SI{2.32}{\mm}}
\end{tikzpicture}
\end{center}
where measure bars are just expanded, but numbers are correct and refer to the
real dimensions of the little unit above.

The unit has a total width of \SI{20}{\mm} and a total height of \SI{10}{\mm}.
The figure obtained joining the circle and the three rectangles has a length of
\SI{18}{\mm}. The circle has a diameter of \SI{8}{\mm}, while the base of the
unit is \SI{6}{\mm} below its anchor point. Measures on the right refer to the
heights of the three rectangles: starting from the left of the symbol, the first
rectangle has a height of \SI{6.92}{\mm}, the second one has a height of
\SI{4.62}{\mm} and the third one is \SI{2.32}{\mm} high.

Understanding measures on the top requires to discuss first about nodes. As for
the single stage reciprocating compressor, inlets are on the sides of the
rectangles, which means on the top and on the bottom of each one, while the
outlet is on the right side of the unit, point identified by the \chpn{outlet}
node marked in the drawing as \chpn{o} and placed \SI{14}{\mm} to the right of
the anchor.

Since rectangles represent compression stages, two nodes are defined for each
one:
\begin{itemize}
	\item the first stage is provided with a node called \chpn{first bottom} and
		with a node called \chpn{first top}, marked in the drawing as \chpn{fb}
		and \chpn{ft} respectively and both placed \SI{4.5}{\mm} to the right
		of the anchor;
	\item the second stage is provided with a node called \chpn{second bottom}
		and with a node called \chpn{second top}, marked in the drawing as
		\chpn{sb} and \chpn{st} respectively and both placed \SI{9}{\mm} to the
		right of the anchor;
	\item the third stage is provided with a node called \chpn{third bottom} and
		with a node called \chpn{third top}, marked in the drawing as \chpn{tb}
		and \chpn{tt} respectively and both placed \SI{12.5}{\mm} to the right
		of the anchor.
\end{itemize}
These nodes should be used as connection points for the inlet and are present to
enable a flexible representation when complex necessities exist, such as the
case of a stream which has to enter the compressor in the second stage, being
mixed and compressed together with the one that enters in the first. Also
complex paths can be produced thanks to these nodes, using them improperly as
outlets to represent cooling operations applied to the fluid and interposed
between compression stages.

\subsubsection{Ejector}

The last fluid handling unit defined by \chemplants\ is neither a kinetic nor
a volumetric machine, but it belongs to (and is the most remarkable example of)
static machines category. The ejector works thanks to the relation of the
pressure energy with the kinetic energy of a fluid, usually a gas, and most of
the time is used to suck a secondary fluid into a driving stream or to generate
vacuum thanks to this effect. It is defined as a simple pic called
\chpp{ejector}:
\begin{chpcode}
	\pic at (0,0) {ejector};
\end{chpcode}
and yields a square, in which centre there is the anchor, jointed with a cone
frustum:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.5,0) {ejector};
	\pic at (0,0) {ejector};
	\measure{(-0.25,-0.45)}{(1.25,-0.45)}{\SI{15}{\mm}}
	\measure{(-0.45,0.25)}{(-0.45,-0.25)}{\SI{5}{\mm}}
	\measure[above]{(0,0.45)}{(1.25,0.45)}{\SI{12.5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3.5,0) {ejector};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-main inlet) {node mark};
	\pic at (E-suck inlet bottom) {node mark};
	\pic at (E-outlet) {node mark};
	\pic at (E-suck inlet top) {node mark};
	\node[left] at (E-main inlet) {\chpn{mi}};
	\node[below] at (E-suck inlet bottom) {\chpn{sib}};
	\node[right] at (E-outlet) {\chpn{o}};
	\node[above] at (E-suck inlet top) {\chpn{sit}};
\end{tikzpicture}
\end{center}
where the measure on the top indicates the distance from the outlet of the
ejector to its anchor.

None of the common nodes are defined for the \chpp{ejector} since its symbols
recall its real shape, where every point has a specific function. The driving
stream enters from the \chpn{main inlet} node, abbreviated as \chpn{mi}, while
the secondary one is aspired through the \chpn{suck inlet bottom} node or the
\chpn{suck inlet top} node, abbreviated as \chpn{sib} and \chpn{sit}
respectively. The two streams, mixed together, leave the unit from the
\chpn{outlet} node, identified as \chpn{o} in the above drawing.

\subsection{Heat Exchangers}

Many variants of heat exchangers are defined by \chemplants. Among ``simple
symbols'', two heat exchangers are available to general purposes, while three
more are meant to be used to represent specific operations. There are also some
symbols reserved to represent specific machines.

\subsubsection{Heat Exchanger}

The simplest possibile heat exchanger is useful to indicate thermal energy
transfer between fluids which do not undergo phase change. It is defined as a
simple pic called \chpp{heat exchanger}:
\begin{chpcode}
	\pic at (0,0) {heat exchanger};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a sketch of the
path of internal pipes crossing the symbol in horizontal:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {heat exchanger};
	\pic at (0,0) {heat exchanger};
	\measure{(-0.5,-0.7)}{(0.5,-0.7)}{\SI{10}{\mm}}
	\measure{(-0.7,0.5)}{(-0.7,-0.5)}{\SI{10}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3,0) {heat exchanger};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-shell bottom) {node mark};
	\pic at (E-shell top) {node mark};
	\pic at (E-pipes left) {node mark};
	\pic at (E-pipes right) {node mark};
	\node[below] at (E-shell bottom) {\chpn{sb}};
	\node[above] at (E-shell top) {\chpn{st}};
	\node[left] at (E-pipes left) {\chpn{pl}};
	\node[right] at (E-pipes right) {\chpn{pr}};
\end{tikzpicture}
\end{center}

The \chpp{heat exchanger} has none of the common nodes, but it has some special
ones. The stream crossing the exchanger through its internal pipes can be
connected to the \chpn{pipes left} node, abbreviated in the picture above as
\chpn{pl}, and to the \chpn{pipes right} node, abbreviated in the picture above
as \chpn{pr}. In the same way, the stream crossing the exchanger through its
shell can be connected to the \chpn{shell bottom} node, abbreviated in the
picture above as \chpn{sb}, and to the \chpn{shell top} node, abbreviated in
the picture above as \chpn{st}.

\subsubsection{Heat Exchanger BiPhase}

An alternative heat exchanger is useful to indicate thermal energy transfer
between fluids where one of them, usually the main process stream, partially
changes phase (but it can also be used in the place of a simple heat exchanger
without any phase change). It is defined as a simple pic called
\chpp{heat exchanger biphase}:
\begin{chpcode}
	\pic at (0,0) {heat exchanger biphase};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a sketch of the
path of internal pipes which enter and leave the unit on the right side:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {heat exchanger biphase};
	\pic at (0,0) {heat exchanger biphase};
	\measure{(-0.5,-0.7)}{(0.5,-0.7)}{\SI{10}{\mm}}
	\measure{(-0.7,0.5)}{(-0.7,-0.5)}{\SI{10}{\mm}}
	\measure[above]{(0,0.7)}{(0.433,0.7)}{\SI{4.33}{\mm}}
	\measure[above]{(0.7,0.25)}{(0.7,0)}{\SI{2.5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3,0) {heat exchanger biphase};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-shell left) {node mark};
	\pic at (E-shell bottom) {node mark};
	\pic at (E-shell right) {node mark};
	\pic at (E-shell top) {node mark};
	\pic at (E-pipes bottom) {node mark};
	\pic at (E-pipes top) {node mark};
	\node[left] at (E-shell left) {\chpn{sl}};
	\node[below] at (E-shell bottom) {\chpn{sb}};
	\node[right] at (E-shell right) {\chpn{sr}};
	\node[above] at (E-shell top) {\chpn{st}};
	\node[below right] at (E-pipes bottom) {\chpn{pb}};
	\node[above right] at (E-pipes top) {\chpn{pt}};
\end{tikzpicture}
\end{center}
where measures on the right and on the top indicate the distances from the
middle of the heat exchanger to the point where the internal pipes patch
touches the boundary of the circle. It is also useful to remember that the same
point can be identified in polar coordinates and lies \ang{30} and \SI{5}{\mm}
from to centre of the circle.

The \chpp{heat exchanger biphase} has none of the common nodes, but it has some
special ones. The stream crossing the exchanger through its internal pipes can
be connected to the \chpn{pipes bottom} node, abbreviated in the picture above
as \chpn{pb}, and to the \chpn{pipes top} node, abbreviated in the picture above
as \chpn{pt}. In the same way the stream crossing the exchanger through its
shell can be connected to four nodes:
\begin{itemize}
	\item the \chpn{shell left} node, abbreviated in the picture above as
		\chpn{sl};
	\item the \chpn{shell bottom} node, abbreviated in the picture above as
		\chpn{sb};
	\item the \chpn{shell right} node, abbreviated in the picture above as
		\chpn{sr};
	\item the \chpn{shell top} node, abbreviated in the picture above as
		\chpn{st}.
\end{itemize}

\subsubsection{Boiler and Condenser}

The other two heat exchangers defined are the boiler and the condenser. Even
though the name should be self explicative, the boiler is useful to vaporise a
liquid, while the condenser is useful to condense a vapour (both totally or
partially). The boiler is defined as a simple pic called \chpp{boiler}:
\begin{chpcode}
	\pic at (0,0) {boiler};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a sketch of the
path of internal pipes that crosses the circle falling down from the left to
the right:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.4,0) {boiler};
	\pic at (0,0) {boiler};
	\measure{(-0.7,-0.7)}{(0.7,-0.7)}{\SI{14}{\mm}}
	\measure{(-0.9,0.5)}{(-0.9,-0.5)}{\SI{10}{\mm}}
	\measure[above]{(-0.7,0.7)}{(-0.5,0.7)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (B) at (3.4,0) {boiler};
	\pic at (B-anchor) {anchor mark};
	\pic at (B-left) {node mark};
	\pic at (B-bottom) {node mark};
	\pic at (B-right) {node mark};
	\pic at (B-top) {node mark};
	\pic at (B-pipes inlet) {node mark};
	\pic at (B-pipes outlet) {node mark};
	\node[left] at (B-left) {\chpn{l}};
	\node[below] at (B-bottom) {\chpn{b}};
	\node[right] at (B-right) {\chpn{r}};
	\node[above] at (B-top) {\chpn{t}};
	\node[left] at (B-pipes inlet) {\chpn{pi}};
	\node[right] at (B-pipes outlet) {\chpn{po}};
\end{tikzpicture}
\end{center}
while the condenser is defined as a simple pic called \chpp{condenser}:
\begin{chpcode}
	\pic at (0,0) {condenser};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a sketch of the
path of internal pipes that crosses the circle rising up from the left to the
right:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.4,0) {condenser};
	\pic at (0,0) {condenser};
	\measure{(-0.7,-0.7)}{(0.7,-0.7)}{\SI{14}{\mm}}
	\measure{(-0.9,0.5)}{(-0.9,-0.5)}{\SI{10}{\mm}}
	\measure[above]{(0.5,0.7)}{(0.7,0.7)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3.4,0) {condenser};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-right) {node mark};
	\pic at (C-top) {node mark};
	\pic at (C-pipes inlet) {node mark};
	\pic at (C-pipes outlet) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[right] at (C-right) {\chpn{r}};
	\node[above] at (C-top) {\chpn{t}};
	\node[left] at (C-pipes inlet) {\chpn{pi}};
	\node[right] at (C-pipes outlet) {\chpn{po}};
\end{tikzpicture}
\end{center}

Both the \chpp{boiler} and the \chpp{condenser} have some special nodes. Among
the common ones, only \chpn{left}, \chpn{bottom}, \chpn{right} and \chpn{top} are
defined (and here it is not explicitly specified that these nodes belong to the
shell because of the more generality of the two pics). In addition there are two
nodes more: a node called \chpn{pipes inlet}, abbreviated in the picture above as
\chpn{pi}, and a node called \chpn{pipes outlet}, abbreviated in the picture
above as \chpn{po}.

Boiler and condenser deserve a couple of words more. When looking at schemes
coming from different sources, especially from different countries,
understanding which one is the boiler and which one is the condenser is not
obvious at all. In the \UNICHIM\ regulation the arrows crossing the exchangers
represent somehow the energy level variations of the utility fluids: for
example, in a condenser the energy of the auxiliary fluid rises due to the
enthalpy of condensation released by the vapour. In some books (especially if
they come from the \ac{USA}) it is not that rare to see the boiler symbol used in
the place of the condenser one: in this case it should be interpreted as ``the
vapour is knocked down as a liquid''. This can lead to confusion and
misunderstandings, hence it is advisable to define preventively and clearly what
are the meanings of the symbols used.

\subsubsection{Air Heat Exchanger}

Another kind of special heat exchanger defined by \chemplants\ is a simple fan
that blows on pipes, technically known as air heat exchanger. It is defined as
a simple pic called \chpp{air heat exchanger}:
\begin{chpcode}
	\pic at (0,0) {air heat exchanger};
\end{chpcode}
and yields a square, in which centre there is the anchor, with a sketch of the
fan:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {air heat exchanger};
	\pic at (0,0) {air heat exchanger};
	\measure{(-0.5,-0.7)}{(0.5,-0.7)}{\SI{10}{\mm}}
	\measure{(-0.7,0.5)}{(-0.7,-0.5)}{\SI{10}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3,0) {air heat exchanger};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-left) {node mark};
	\pic at (E-bottom) {node mark};
	\pic at (E-right) {node mark};
	\pic at (E-top) {node mark};
	\node[left] at (E-left) {\chpn{l}};
	\node[below] at (E-bottom) {\chpn{b}};
	\node[right] at (E-right) {\chpn{r}};
	\node[above] at (E-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

The just introduced \chpp{air heat exchanger} is the last example of ``simple
symbol'' defined as heat transfer equipments. This concept means that the
units can be used to generic representation purposes, especially the
\chpp{heat exchanger} and the \chpp{heat exchanger biphase}.

It is not seldom to find also more complex and realistic representation of
equipments, in fact also \UNICHIM\ indicates some variants of the simple symbols
to be used to give a better idea of the unit or to identify a specific equipment
in a more general family. This should not be a surprise after the many symbols to
represent fluids handling machines discussed above.

\subsubsection{Tube Bundle Heat Exchanger}

The most widely used heat transfer equipment in the chemical industry is for
sure the tube bundle heat exchanger, made up of a bundle of pipes enclosed into
a shell. It is defined as a simple pic called \chpp{tube bundle heat exchanger}:
\begin{chpcode}
	\pic at (0,0) {tube bundle heat exchanger};
\end{chpcode}
and yields a horizontal rectangle, in which centre there is the anchor, with a
rounded end and a sketch of the internal pipes:
\begin{center}
\begin{tikzpicture}
		\pic at (-3.6,0) {tube bundle heat exchanger};
%	\pic at (0,0) {tube bundle heat exchanger};
%	\measure{(-1.0,-0.5)}{(1.0,-0.5)}{\SI{20}{\mm}}
%	\measure{(-1.2,0.35)}{(-1.2,-0.35)}{\SI{7}{\mm}}
%	\measure[above]{(-0.8,0.5)}{(0,0.5)}{\SI{8}{\mm}}
%	\measure[above]{(0,0.5)}{(0.5,0.5)}{\SI{5}{\mm}}
%	\measure[above]{(1.2,0.3)}{(1.2,-0.3)}{\SI{6}{\mm}}
%	\pic at (0,0) {anchor mark};
%	\pic (E) at (3.6,0) {tube bundle heat exchanger};
%	\pic at (E-anchor) {anchor mark};
%	\pic at (E-right) {node mark};
%	\pic at (E-head left) {node mark};
%	\pic at (E-head bottom) {node mark};
%	\pic at (E-head top) {node mark};
%	\pic at (E-shell bottom left) {node mark};
%	\pic at (E-shell bottom) {node mark};
%	\pic at (E-shell bottom right) {node mark};
%	\pic at (E-shell top right) {node mark};
%	\pic at (E-shell top) {node mark};
%	\pic at (E-shell top left) {node mark};
%	\node[right] at (E-right) {\chpn{r}};
%	\node[left] at (E-head left) {\chpn{hl}};
%	\node[below left] at (E-head bottom) {\chpn{hb}};
%	\node[above left] at (E-head top) {\chpn{ht}};
%	\node[below] at (E-shell bottom left) {\chpn{sbl}};
%	\node[below] at (E-shell bottom) {\chpn{sb}};
%	\node[below] at (E-shell bottom right) {\chpn{sbr}};
%	\node[above] at (E-shell top right) {\chpn{str}};
%	\node[above] at (E-shell top) {\chpn{st}};
%	\node[above] at (E-shell top left) {\chpn{stl}};
\end{tikzpicture}
\end{center}

Only the pure symbol has been shown because, just like for the already
discussed \chpp{multistage compressor}, there are a lot of measures and
custom nodes to show:
\begin{center}
\begin{tikzpicture}
	\pic[scale=2] (E) at (0,0) {tube bundle heat exchanger};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-left) {node mark};
	\pic at (E-right) {node mark};
	\pic at (E-head bottom) {node mark};
	\pic at (E-head top) {node mark};
	\pic at (E-shell bottom left) {node mark};
	\pic at (E-shell bottom) {node mark};
	\pic at (E-shell bottom right) {node mark};
	\pic at (E-shell top right) {node mark};
	\pic at (E-shell top) {node mark};
	\pic at (E-shell top left) {node mark};
	\node[left] at (E-left) {\chpn{l}};
	\node[right] at (E-right) {\chpn{r}};
	\node[below] at (E-head bottom) {\chpn{hb}};
	\node[above] at (E-head top) {\chpn{ht}};
	\node[below] at (E-shell bottom left) {\chpn{sbl}};
	\node[below] at (E-shell bottom) {\chpn{sb}};
	\node[below] at (E-shell bottom right) {\chpn{sbr}};
	\node[above] at (E-shell top right) {\chpn{str}};
	\node[above] at (E-shell top) {\chpn{st}};
	\node[above] at (E-shell top left) {\chpn{stl}};
	\measure{(-2.0,-1.3)}{(2.0,-1.3)}{\SI{20}{\mm}}
	\measure{(-2.7,0.7)}{(-2.7,-0.7)}{\SI{7}{\mm}}
	\measure[above]{(-1.6,1.3)}{(0,1.3)}{\SI{8}{\mm}}
	\measure[above]{(0,1.3)}{(1.0,1.3)}{\SI{5}{\mm}}
	\measure[above]{(2.7,0.6)}{(2.7,-0.6)}{\SI{6}{\mm}}
\end{tikzpicture}
\end{center}
Again, the symbol is bigger, but measures are referred to the one with the
right dimensions. Measures should be clear. The only remark regards measures on
the sides of the unit: the left one indicates the total height, while the right
one ignores the little protrusions of the vertical lines.

Only the \chpn{left} and \chpn{right} nodes are defined among the common ones.
The others are aimed to identify some remarkable points of the two main sections
of the \chpp{tube bundle heat exchanger}: the head of the tube bundle and the
shell that encloses it. Two nodes are defined for the head: the
\chpn{head bottom} node, shown above as \chpn{hb}, and the \chpn{head top} node,
shown above as \chpn{ht}. The fluid that passes through the internal pipes have
to be connected using these nodes. Six more nodes are defined for the shell:
\begin{itemize}
	\item the \chpn{shell bottom left} node is abbreviated in the drawing as
		\chpn{sbl};
	\item the \chpn{shell bottom} node is abbreviated in the drawing as
		\chpn{sb};
	\item the \chpn{shell bottom right} node is abbreviated in the drawing as
		\chpn{sbr};
	\item the \chpn{shell top right} node is abbreviated in the drawing as
		\chpn{str};
	\item the \chpn{shell top} node is abbreviated in the drawing as
		\chpn{st};
	\item the \chpn{shell top left} node is abbreviated in the drawing as
		\chpn{stl}.
\end{itemize}
So many nodes are defined for the shell to allow the representation to be as
flexible as possibile, in fact flow configuration can have a great impact on
the heat exchanger performances and it is often useful to represent it also
graphically.

\subsubsection{Plate Heat Exchanger}

The tube bundle heat exchanger is the most widely used, but it is not the only
one. Another equipment useful to transfer thermal energy is the plate heat
exchanger. It is defined as a simple pic called \chpp{plate heat exchanger}:
\begin{chpcode}
	\pic at (0,0) {plate heat exchanger};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a sketch of
the plates pushed together:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {plate heat exchanger};
	\pic at (0,0) {plate heat exchanger};
	\measure{(-0.5,-0.95)}{(0.5,-0.95)}{\SI{10}{\mm}}
	\measure{(-1.2,0.75)}{(-1.2,-0.75)}{\SI{15}{\mm}}
	\measure{(-0.7,0.7)}{(-0.7,-0.7)}{\SI{14}{\mm}}
	\measure[above]{(0.7,0.6)}{(0.7,0)}{\SI{6}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3,0) {plate heat exchanger};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-left) {node mark};
	\pic at (E-bottom) {node mark};
	\pic at (E-right) {node mark};
	\pic at (E-inner left) {node mark};
	\pic at (E-inner right) {node mark};
	\pic at (E-outer left) {node mark};
	\pic at (E-outer right) {node mark};
	\pic at (E-top) {node mark};
	\node[left] at (E-left) {\chpn{l}};
	\node[below] at (E-bottom) {\chpn{b}};
	\node[right] at (E-right) {\chpn{r}};
	\node[above] at (E-top) {\chpn{t}};
	\node[left] at (E-inner left) {\chpn{il}};
	\node[right] at (E-inner right) {\chpn{ir}};
	\node[left] at (E-outer left) {\chpn{ol}};
	\node[right] at (E-outer right) {\chpn{or}};
\end{tikzpicture}
\end{center}
where the measure on the inner left indicates the height of the rectangle without
the small protruding vertical lines, while the measure on the right indicates the
distance from the centre of the rectangle to the end of the oblique line.

Some special nodes are defined for the \chpp{plates heat exchanger}. The
construction of the machine does not imply the existence of two well defined
chambers, but the two fluids travel into alternate plates. Anyway, an oblique
line is sketched on the unit to identify one of the paths, which ends fall on
\chpn{inner left} and \chpn{inner right} nodes, abbreviated above as \chpn{il}
and \chpn{ir} respectively. The other fluid can be connected to the
\chpn{outer left} node, abbreviated above as \chpn{ol}, and to the 
\chpn{outer right} node, abbreviated above as \chpn{or}. The remaining nodes
should not be used for streams connections.

\subsubsection{Spiral Heat Exchanger}

Another common heat exchanger, somehow the ``wrapped version'' of the plate
heat exchanger, is the spiral heat exchanger. It is defined as a simple pic
called \chpp{spiral heat exchanger}:
\begin{chpcode}
	\pic at (0,0) {spiral heat exchanger};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a sketch of
the spiral path:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.4,0) {spiral heat exchanger};
	\pic at (0,0) {spiral heat exchanger};
	\measure{(-0.7,-0.9)}{(0.7,-0.9)}{\SI{14}{\mm}}
	\measure{(-0.9,0.7)}{(-0.9,-0.7)}{\SI{14}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3.4,0) {spiral heat exchanger};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-inner center) {node mark};
	\pic at (E-inner edge) {node mark};
	\pic at (E-outer center) {node mark};
	\pic at (E-outer edge) {node mark};
	\node[left] at (E-inner center) {\chpn{ic}};
	\node[right] at (E-inner edge) {\chpn{ie}};
	\node[above] at (E-outer center) {\chpn{oc}};
	\node[below] at (E-outer edge) {\chpn{oe}};
\end{tikzpicture}
\end{center}

The \chpp{spiral heat exchanger} has none of the common nodes, but it has some
special ones. Also in this case it is not possibile to individuate an internal
and an external chamber, but this time the paths of the fluids are continuous and
one is effectively internal to the other. Usually, one of the end of the
path is placed on the centre of the cross section of the unit, while the other
one is on its boundary: this justifies the names of the nodes. The
\chpn{inner center} node is abbreviated above as \chpn{ic}, while the
\chpn{inner edge} node is abbreviated above as \chpn{ie}; these two nodes should
be used to connect the inner fluid. In the same way, but for the outer fluid,
the \chpn{outer center} node is abbreviated above as \chpn{oc}, while the
\chpn{outer edge} node is abbreviated above as \chpn{oe}.

\subsubsection{Pipe Furnace}

The last heat transfer equipment defined by \chemplants\ (at least in this
section of the manual) is not properly a heat exchanger, but it is a furnace.
It is defined as a simple pic called \chpp{pipe furnace}:
\begin{chpcode}
	\pic at (0,0) {pipe furnace};
\end{chpcode}
and yields a rectangle, in which centre there is the anchor, with a sketch of
the path of the internal pipes crossing the symbol in horizontal and a
representation of the furnace chimneystack:
\begin{center}
\begin{tikzpicture}
	\pic at (-4.0,0) {pipe furnace};
	\pic at (0,0) {pipe furnace};
	\measure{(-1.0,-0.7)}{(1.0,-0.7)}{\SI{20}{\mm}}
	\measure{(-1.2,1.5)}{(-1.2,-0.5)}{\SI{20}{\mm}}
	\measure[above]{(-0.2,1.7)}{(0.2,1.7)}{\SI{4}{\mm}}
	\measure[above]{(1.2,1.5)}{(1.2,0)}{\SI{15}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (4.0,0) {pipe furnace};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-bottom) {node mark};
	\pic at (E-top) {node mark};
	\pic at (E-pipes left) {node mark};
	\pic at (E-pipes right) {node mark};
	\node[below] at (E-bottom) {\chpn{b}};
	\node[above] at (E-top) {\chpn{t}};
	\node[left] at (E-pipes left) {\chpn{pl}};
	\node[right] at (E-pipes right) {\chpn{pr}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the anchor point to
the top of the chimneystack.

The \chpp{pipe furnace} has some special nodes. Among the common ones, only
\chpn{bottom} and \chpn{top} are defined and they may be useful to represent
fuel inlet and stack gases outlet. In addition, there are two nodes more: a node
called \chpn{pipes left}, abbreviated in the picture above as \chpn{pl}, and a
node called \chpn{pipes right}, abbreviated in the picture above as \chpn{pr}.

\subsection{Separators}

Separation unit operations are some of the most important operations in chemical
engineering. Besides the separation of homogenous mixtures, that is usually done
in ``simple'' equipments which will be introduced in the following, the
separation of heterogeneous mixtures is practically much more simple and some
specific equipments based on mechanical principles exist. Also more complex
separation units will be introduced after the mechanical ones, mainly the ones
based on thermal energy supply or removal and aimed to separate special kinds of
homogenous mixtures. (Notice that the terms gas and vapour will be used
indiscriminately, although not properly correct.)

\subsubsection{Steam Trap}

When the condensation of steam or of some other vapours is involved, it is always
necessary to withdraw a liquid from somewhere. To avoid the steam to escape from
the liquid outlet, a stream trap can be profitably used. It is defined as a
simple pic called \chpp{steam trap}:
\begin{chpcode}
	\pic at (0,0) {steam trap};
\end{chpcode}
and yields a little half field circle anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.3,0) {steam trap};
	\pic at (0,0) {steam trap};
	\measure{(-0.15,-0.35)}{(0.15,-0.35)}{\SI{3}{\mm}}
	\measure{(-0.35,0.15)}{(-0.35,-0.15)}{\SI{3}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (2.3,0) {steam trap};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-left) {node mark};
	\pic at (S-bottom) {node mark};
	\pic at (S-right) {node mark};
	\pic at (S-top) {node mark};
	\node[left] at (S-left) {\chpn{l}};
	\node[below] at (S-bottom) {\chpn{b}};
	\node[right] at (S-right) {\chpn{r}};
	\node[above] at (S-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

In the default orientation, which is the one commonly used in process diagrams
and should not be changed, the inlet of the steam trap have to touch the empty
half of the circle, while the outlet have to come out from the filled half.

\subsubsection{Gas-Liquid Separator}

When more sophisticated separations of gases and liquids mixtures are needed
another unit is useful: the gas-liquid separator. It is defined as a simple pic
called \chpp{gas-liquid separator}:
\begin{chpcode}
	\pic at (0,0) {gas-liquid separator};
\end{chpcode}
and yields a tank, in which centre there is the anchor, with a sketch of the
anti-entrainment system on its top:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {gas-liquid separator};
	\pic at (0,0) {gas-liquid separator};
	\measure{(-0.8,-1.7)}{(0.8,-1.7)}{\SI{16}{\mm}}
	\measure{(-1.0,1.5)}{(-1.0,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(1.0,1.032)}{(1.0,0)}{\SI{10.32}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (3.6,0) {gas-liquid separator};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-bottom left) {node mark};
	\pic at (S-bottom right) {node mark};
	\pic at (S-top right) {node mark};
	\pic at (S-top left) {node mark};
	\pic at (S-inlet left) {node mark};
	\pic at (S-inlet right) {node mark};
	\pic at (S-gas outlet) {node mark};
	\pic at (S-liquid outlet) {node mark};
	\node[left] at (S-bottom left) {\chpn{bl}};
	\node[right] at (S-bottom right) {\chpn{br}};
	\node[right] at (S-top right) {\chpn{tr}};
	\node[left] at (S-top left) {\chpn{tl}};
	\node[left] at (S-inlet left) {\chpn{il}};
	\node[right] at (S-inlet right) {\chpn{ir}};
	\node[above] at (S-gas outlet) {\chpn{go}};
	\node[below] at (S-liquid outlet) {\chpn{lo}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins.

Besides the common nodes, special nodes are defined for stream connections. In
the above drawing, \chpn{il} and \chpn{ir} indicate respectively the
\chpn{inlet left} node and the \chpn{inlet right} node, which should be used
to connect the inlet stream. On the top of the unit there is the
\chpn{gas outlet} node, abbreviated as \chpn{go} in the figure, while on its
bottom there is the \chpn{liquid outlet} node, abbreviated as \chpn{lo} in the
figure. Names should be self-explicative.

\subsubsection{Cyclone}

A cyclone is a unit useful to separate solid powders entrained by a gas stream.
It is defined as a simple pic called \chpp{cyclone}:
\begin{chpcode}
	\pic at (0,0) {cyclone};
\end{chpcode}
and yields a little rectangle, on which base there is the anchor, attached to a
triangular funnel:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.6,0) {cyclone};
	\pic at (0,0) {cyclone};
	\measure{(-0.3,-1.2)}{(0.3,-1.2)}{\SI{6}{\mm}}
	\measure{(-0.5,0.25)}{(-0.5,-1.0)}{\SI{12.5}{\mm}}
	\measure[above]{(0.5,0.25)}{(0.5,0)}{\SI{2.5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (2.6,0) {cyclone};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-inlet left) {node mark};
	\pic at (S-inlet right) {node mark};
	\pic at (S-gas outlet) {node mark};
	\pic at (S-solid outlet) {node mark};
	\node[left] at (S-inlet left) {\chpn{il}};
	\node[right] at (S-inlet right) {\chpn{ir}};
	\node[above] at (S-gas outlet) {\chpn{go}};
	\node[below] at (S-solid outlet) {\chpn{so}};
\end{tikzpicture}
\end{center}

None of the common nodes are defined for the \chpn{cyclone}, but there are
special nodes to be used to connect specific streams. In the above drawing,
\chpn{il} and \chpn{ir} indicate respectively the \chpn{inlet left} node and the
\chpn{inlet right} node, which should be used to connect the inlet stream. On
the top of the unit there is the \chpn{gas outlet} node, abbreviated as
\chpn{go} in the figure, while on its bottom there is the \chpn{solid outlet}
node, abbreviated as \chpn{so} in the figure. Names should be self-explicative.

\subsubsection{Stratifier}

A common operation to be carried out in chemical processes is the separation of
two immiscible liquids. If they have different densities, time and gravity will
do the job, so a stratifier can be used. It is defined as a simple pic called
\chpp{stratifier}:
\begin{chpcode}
	\pic at (0,0) {stratifier};
\end{chpcode}
and yields a horizontal tank, in which centre there is the anchor, with a sketch
of the internal baffles:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {stratifier};
	\pic at (0,0) {stratifier};
	\measure{(-1.5,-1.0)}{(1.5,-1.0)}{\SI{30}{\mm}}
	\measure{(-1.7,0.8)}{(-1.7,-0.8)}{\SI{16}{\mm}}
	\measure[above]{(0,1.0)}{(1.032,1.0)}{\SI{10.32}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (5,0) {stratifier};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-left) {node mark};
	\pic at (S-bottom) {node mark};
	\pic at (S-right) {node mark};
	\pic at (S-top right) {node mark};
	\pic at (S-top left) {node mark};
	\pic at (S-inlet) {node mark};
	\pic at (S-light outlet) {node mark};
	\pic at (S-heavy outlet) {node mark};
	\node[left] at (S-left) {\chpn{l}};
	\node[below] at (S-bottom) {\chpn{b}};
	\node[right] at (S-right) {\chpn{r}};
	\node[above] at (S-top right) {\chpn{tr}};
	\node[above] at (S-top left) {\chpn{tl}};
	\node[above] at (S-inlet) {\chpn{i}};
	\node[below] at (S-light outlet) {\chpn{lo}};
	\node[below] at (S-heavy outlet) {\chpn{ho}};
\end{tikzpicture}
\end{center}
where the measure on the top indicates the distance from the middle of the tank
to the point where the curvature begins.

Besides the common nodes, special nodes are defined for stream connections. The
inlet stream should enter from the \chpn{inlet} node, marked as \chpn{i} in the
figure, and, after the stratification, the light liquid comes out from the
\chpn{light outlet} node, marked as \chpn{lo} in the figure, while the heavy
liquid comes out from the \chpn{heavy outlet} node, marked as \chpn{ho} in the
figure.

\subsubsection{Settler}

Previously, the cyclone have been introduced. A unit with the same purposes, but
useful when a solid suspended into a liquid has to be separated, is the settler.
It is defined as a simple pic called \chpp{settler}:
\begin{chpcode}
	\pic at (0,0) {settler};
\end{chpcode}
and yields a horizontal rectangle, in which centre there is the anchor, with a
triangular funnel end:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {settler};
	\pic at (0,0) {settler};
	\measure{(-1.5,-1.0)}{(1.5,-1.0)}{\SI{30}{\mm}}
	\measure{(-1.7,0.8)}{(-1.7,-0.8)}{\SI{16}{\mm}}
	\measure[above]{(1.7,0)}{(1.7,-0.2)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (5,0) {settler};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-inlet left) {node mark};
	\pic at (S-inlet right) {node mark};
	\pic at (S-inlet top) {node mark};
	\pic at (S-liquid outlet left) {node mark};
	\pic at (S-liquid outlet right) {node mark};
	\pic at (S-solid outlet) {node mark};
	\node[left] at (S-inlet left) {\chpn{il}};
	\node[right] at (S-inlet right) {\chpn{ir}};
	\node[above] at (S-inlet top) {\chpn{it}};
	\node[left] at (S-liquid outlet left) {\chpn{lol}};
	\node[right] at (S-liquid outlet right) {\chpn{lor}};
	\node[below] at (S-solid outlet) {\chpn{so}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the unit
to the point where the funnel begins.

None of the common nodes are defined for the \chpp{settler}, but there are
special nodes to be used to connect specific streams. In the above drawing,
\chpn{il}, \chpn{ir} and \chpn{it} indicate respectively the
\chpn{inlet left} node, the \chpn{inlet right} node and the \chpn{inlet top}
node, which should be used to connect the inlet stream. On the top left of
the unit there is the \chpn{liquid outlet left} node, abbreviated as \chpn{lol}
in the figure, while on the top right of the unit there is the
\chpn{liquid outlet right} node, abbreviated as \chpn{lor} in the figure.
Finally, on the bottom of the unit there is the \chpn{solid outlet} node,
abbreviated as \chpn{so} in the figure. Three inlets are defined to give
flexibility to the representation, in fact the same symbol can be used to
indicate circular settling basins as well as rectangular settling basins.

\subsubsection{Scrubber}

Another case in which the separation of a ``gas-liquid'' mixture is needed is
the one where a condensable vapour must be knocked out from a gas stream by
condensation, or when liquid droplets are entrained by a gas stream. There are a
lot of possibilities to achieve this operation, but in some particular cases a
simple wash of the gas using water (or some appropriate solvent) will be
enough, thus a scrubber can be used. It is defined as a simple pic called
\chpp{scrubber}:
\begin{chpcode}
	\pic at (0,0) {scrubber};
\end{chpcode}
and yields a little tank, in which centre there is the anchor, with a triangular
funnel end:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.6,0) {scrubber};
	\pic at (0,0) {scrubber};
	\measure{(-0.3,-0.95)}{(0.3,-0.95)}{\SI{6}{\mm}}
	\measure{(-0.5,0.75)}{(-0.5,-0.75)}{\SI{15}{\mm}}
	\measure[above]{(0.5,0.55)}{(0.5,0)}{\SI{5.5}{\mm}}
	\measure[above]{(1.0,0)}{(1.0,-0.25)}{\SI{2.5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (2.6,0) {scrubber};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-gas inlet left) {node mark};
	\pic at (S-gas inlet right) {node mark};
	\pic at (S-liquid inlet left) {node mark};
	\pic at (S-liquid inlet right) {node mark};
	\pic at (S-gas outlet) {node mark};
	\pic at (S-liquid outlet) {node mark};
	\node[left] at (S-gas inlet left) {\chpn{gil}};
	\node[right] at (S-gas inlet right) {\chpn{gir}};
	\node[left] at (S-liquid inlet left) {\chpn{lil}};
	\node[right] at (S-liquid inlet right) {\chpn{lir}};
	\node[above] at (S-gas outlet) {\chpn{go}};
	\node[below] at (S-liquid outlet) {\chpn{lo}};
\end{tikzpicture}
\end{center}
where the measure on the top right indicates the distance from the middle of the
tank to the point where the curvature begins, while the measure on the bottom
right indicates the distance from the middle of the tank to the point where the
funnel begins.

None of the common nodes are defined for the \chpp{scrubber}, but there are
special nodes to be used to connect specific streams. In the above drawing,
\chpn{gil} and \chpn{gir} indicate respectively the \chpn{gas inlet left} node
and the \chpn{gas inlet right} node, which should be used to connect the inlet
gas stream. In the same way \chpn{lil} and \chpn{lir} indicate respectively the
\chpn{liquid inlet left} node and the \chpn{liquid inlet right} node, which
should be used to connect the inlet liquid stream. On the top of the unit there
is the \chpn{gas outlet} node, abbreviated as \chpn{go} in the figure, while on
its bottom there is the \chpn{liquid outlet} node, abbreviated as \chpn{lo} in
the figure. Names should be self-explicative.

As a final remark, it should be noticed that the \chpp{scrubber} can be used
also to represent a barometric condenser: it is sufficient to place it high
enough above the ground reference and to draw a long vertical stream coming
out from the \chpn{liquid outlet} to indicate the drain pipe.

\subsubsection{Kettle Boiler}

The scrubber is the first example of separation unit based on thermal energy
exchange. In that case, the transfer is achieved by direct contact of the inlet
gas stream using a liquid, but it is more common to use non-contact systems in
which a pure energy transfer is achieved. One of the simplest, this time
useful to concentrate a solution of a non-volatile solute (or to simply
partially boil a liquid), is the kettle boiler. It is defined as a simple pic
called \chpp{kettle boiler}:
\begin{chpcode}
	\pic at (0,0) {kettle boiler};
\end{chpcode}
and yields a strage symbol which recalls a tube bundle heath exchanger with an
enlarged room for the vapour:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {kettle boiler};
%	\pic at (0,0) {kettle boiler};
%	\measure{(-1.0,-0.5)}{(1.0,-0.5)}{\SI{20}{\mm}}
%	\measure{(-1.2,0.7)}{(-1.2,-0.3)}{\SI{10}{\mm}}
%	\pic at (0,0) {anchor mark};
%	\pic (E) at (3.6,0) {kettle boiler};
%	\pic at (E-anchor) {anchor mark};
%	\pic at (E-right) {node mark};
%	\pic at (E-inlet) {node mark};
%	\pic at (E-gas outlet) {node mark};
%	\pic at (E-liquid outlet) {node mark};
%	\pic at (E-head left) {node mark};
%	\pic at (E-head bottom) {node mark};
%	\pic at (E-head top) {node mark};
%	\node[right] at (E-right) {\chpn{r}};
%	\node[below] at (E-inlet) {\chpn{i}};
%	\node[above] at (E-gas outlet) {\chpn{go}};
%	\node[below] at (E-liquid outlet) {\chpn{lo}};
%	\node[left] at (E-head left) {\chpn{hl}};
%	\node[below] at (E-head bottom) {\chpn{hb}};
%	\node[above] at (E-head top) {\chpn{ht}};
\end{tikzpicture}
\end{center}

Only the pure symbol has been shown because, just like for the already
discussed \chpp{tube bundle heat exchanger}, there are a lot of measures and
custom nodes to show:
\begin{center}
\begin{tikzpicture}
	\pic[scale=2] (E) at (0,0) {kettle boiler};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-left) {node mark};
	\pic at (E-right) {node mark};
	\pic at (E-inlet) {node mark};
	\pic at (E-gas outlet) {node mark};
	\pic at (E-liquid outlet) {node mark};
	\pic at (E-head bottom) {node mark};
	\pic at (E-head top) {node mark};
	\node[left] at (E-left) {\chpn{l}};
	\node[right] at (E-right) {\chpn{r}};
	\node[below] at (E-inlet) {\chpn{i}};
	\node[above] at (E-gas outlet) {\chpn{go}};
	\node[below] at (E-liquid outlet) {\chpn{lo}};
	\node[below] at (E-head bottom) {\chpn{hb}};
	\node[above] at (E-head top) {\chpn{ht}};
	\measure{(-2.0,-1.8)}{(2.0,-1.8)}{\SI{20}{\mm}}
	\measure{(-1.6,-1.3)}{(0,-1.3)}{\SI{8}{\mm}}
	\measure{(0,-1.3)}{(1.4,-1.3)}{\SI{7}{\mm}}
	\measure{(-3.2,1.4)}{(-3.2,-0.6)}{\SI{10}{\mm}}
	\measure{(-2.7,0.6)}{(-2.7,-0.6)}{\SI{6}{\mm}}
	\measure[above]{(-0,2.1)}{(0.4,2.1)}{\SI{2}{\mm}}
	\measure[above]{(2.7,0.4)}{(2.7,0)}{\SI{2}{\mm}}
	\measure[above]{(3.2,0)}{(3.2,-0.6)}{\SI{3}{\mm}}
	\measure[above]{(3.2,1.4)}{(3.2,0)}{\SI{7}{\mm}}
\end{tikzpicture}
\end{center}
Again, the symbol is bigger, but measures are referred to the one with the
right dimensions.

Only the \chpn{left} and \chpn{right} nodes are defined among the common ones.
The others are aimed to identify some remarkable points of the two main sections
of the \chpp{kettle boiler}: the head of the tube bundle and the shell of the
boiling chamber. Two nodes are defined for the head: the \chpn{head bottom}
node, shown above as \chpn{hb}, and the \chpn{head top} node, shown above as
\chpn{ht}. Here the heating fluid has to be connected. Three more nodes are
defined for the boiling chamber: the \chpn{inlet}, shown above as \chpn{i}, the
\chpn{gas outlet}, shown above as \chpn{go}, and the \chpn{liquid outlet}, shown
above as \chpn{lo}. Their usage should be clear.

The kettle boiler is the simplest machine belonging to the family of
evaporators. These units, like the name says, are meant to vaporise a liquid, so
they are a special kind of heat exchangers. Anyway, they are described together
with the separators because they are mainly used to concentrate solutions of
non-volatile or poorly-volatile solutes, hence ``separating'' a part of the
solvent from the solution.

\subsubsection{Tube Bundle Evaporator}

A slightly more complex evaporator, which indeed works in the same way of a
kettle boiler, is the tube bundle evaporator. It is defined as a simple pic
called \chpp{tube bundle evaporator}:
\begin{chpcode}
	\pic at (0,0) {tube bundle evaporator};
\end{chpcode}
and yields a tank, in which centre there is the anchor, with sketches of the tube
bundle and of the anti-entrainment system on its top:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {tube bundle evaporator};
	\pic at (0,0) {tube bundle evaporator};
	\measure{(-0.85,-1.7)}{(0.85,-1.7)}{\SI{17}{\mm}}
	\measure{(-1.0,1.5)}{(-1.0,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(-0.8,1.7)}{(0.8,1.7)}{\SI{16}{\mm}}
	\measure[above]{(1.5,1.032)}{(1.5,0)}{\SI{10.32}{\mm}}
	\measure[above]{(1.0,0)}{(1.0,-0.5)}{\SI{5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (E) at (3.6,0) {tube bundle evaporator};
	\pic at (E-anchor) {anchor mark};
	\pic at (E-bottom left) {node mark};
	\pic at (E-bottom right) {node mark};
	\pic at (E-top right) {node mark};
	\pic at (E-top left) {node mark};
	\pic at (E-inlet left) {node mark};
	\pic at (E-inlet right) {node mark};
	\pic at (E-gas outlet) {node mark};
	\pic at (E-liquid outlet) {node mark};
	\pic at (E-pipes left) {node mark};
	\pic at (E-pipes right) {node mark};
	\node[left] at (E-bottom left) {\chpn{bl}};
	\node[right] at (E-bottom right) {\chpn{br}};
	\node[right] at (E-top right) {\chpn{tr}};
	\node[left] at (E-top left) {\chpn{tl}};
	\node[left] at (E-inlet left) {\chpn{il}};
	\node[right] at (E-inlet right) {\chpn{ir}};
	\node[above] at (E-gas outlet) {\chpn{go}};
	\node[below] at (E-liquid outlet) {\chpn{lo}};
	\node[left] at (E-pipes left) {\chpn{pl}};
	\node[right] at (E-pipes right) {\chpn{pr}};
\end{tikzpicture}
\end{center}
where the measure on bottom indicates the total width of the unit, the measure on
top indicates the width of the tank, the measure on the right indicates the
distance from the middle of the tank to the point where the curvature begins and
the measure on bottom right refers to the distance from the anchor point to the
middle of the pipe bundle.

Some of the special nodes defined should be clear at this point, at least
\chpn{inlet left}, \chpn{inlet right}, \chpn{gas outlet} and
\chpn{liquid outlet}. Two more special nodes are defined for this pic:
\chpn{pipes left}, abbreviated above as \chpn{pl}, and \chpn{pipes right},
abbreviated above as \chpn{pr}.

\subsubsection{Basket Evaporator and Climbing Film Evaporator}

A different evaporator is the one that uses the basket system. In this case the
heating fluid passes through the shell of the tube bundle, while in the former
one it passes through the pipes. It is defined as a simple pic called
\chpp{basket evaporator}:
\begin{chpcode}
	\pic at (0,0) {basket evaporator};
\end{chpcode}
and yields a tank, in which centre there is the anchor, with sketches of the
tube bundle and of the anti-entrainment system on its top:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {basket evaporator};
%	\pic at (0,0) {basket evaporator};
%	\measure{(-0.85,-1.7)}{(0.85,-1.7)}{\SI{17}{\mm}}
%	\measure{(-1.0,1.5)}{(-1.0,-1.5)}{\SI{30}{\mm}}
%	\measure[above]{(-0.8,1.7)}{(0.8,1.7)}{\SI{16}{\mm}}
%	\measure[above]{(1.5,1.032)}{(1.5,0)}{\SI{10.32}{\mm}}
%	\measure[above]{(1.0,0)}{(1.0,-0.5)}{\SI{5}{\mm}}
%	\pic at (0,0) {anchor mark};
%	\pic (E) at (3.6,0) {basket evaporator};
%	\pic at (E-anchor) {anchor mark};
%	\pic at (E-bottom left) {node mark};
%	\pic at (E-bottom right) {node mark};
%	\pic at (E-top right) {node mark};
%	\pic at (E-top left) {node mark};
%	\pic at (E-inlet left) {node mark};
%	\pic at (E-inlet right) {node mark};
%	\pic at (E-gas outlet) {node mark};
%	\pic at (E-liquid outlet) {node mark};
%	\pic at (E-shell top left) {node mark};
%	\pic at (E-shell left) {node mark};
%	\pic at (E-shell bottom left) {node mark};
%	\pic at (E-shell right) {node mark};
%	\pic at (E-shell bottom right) {node mark};
%	\pic at (E-shell top right) {node mark};
%	\node[left] at (E-bottom left) {\chpn{bl}};
%	\node[right] at (E-bottom right) {\chpn{br}};
%	\node[right] at (E-top right) {\chpn{tr}};
%	\node[left] at (E-top left) {\chpn{tl}};
%	\node[above left] at (E-inlet left) {\chpn{il}};
%	\node[above right] at (E-inlet right) {\chpn{ir}};
%	\node[above] at (E-gas outlet) {\chpn{go}};
%	\node[below] at (E-liquid outlet) {\chpn{lo}};
%	\node[left] at (E-shell top left) {\chpn{stl}};
%	\node[left] at (E-shell left) {\chpn{sl}};
%	\node[left] at (E-shell bottom left) {\chpn{sbl}};
%	\node[right] at (E-shell bottom right) {\chpn{sbr}};
%	\node[right] at (E-shell right) {\chpn{sr}};
%	\node[right] at (E-shell top right) {\chpn{str}};
\end{tikzpicture}
\end{center}

The \chpp{basket evaporator} has a pretty complex nodes structure, so it will be
described later on, together with a unit that is defined  more or less with the
same nodes: the climbing film evaporator. It is defined as a simple pic called
\chpp{climbing film evaporator}:
\begin{chpcode}
	\pic at (0,0) {climbing film evaporator};
\end{chpcode}
and yields a strange shape, , in which centre there is the anchor, with sketches
of the tube bundle, of the anti-entrainment system on its top and of the internal
liquid recirculation path:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {climbing film evaporator};
%	\pic at (0,0) {climbing film evaporator};
%	\measure{(-0.4,-1.7)}{(0.4,-1.7)}{\SI{8}{\mm}}
%	\measure{(-1.8,1.5)}{(-1.8,-1.5)}{\SI{30}{\mm}}
%	\measure{(-1.3,0.6)}{(-1.3,0)}{\SI{6}{\mm}}
%	\measure{(-0.8,0.2)}{(-0.8,0)}{\SI{2}{\mm}}
%	\measure[above]{(-0.8,1.7)}{(0.8,1.7)}{\SI{16}{\mm}}
%	\measure[above]{(1.1,0)}{(1.1,-1.1)}{\SI{11}{\mm}}
%	\measure[above]{(0.6,0)}{(0.6,-0.45)}{\SI{4.5}{\mm}}
%	\pic at (0,0) {anchor mark};
%	\pic (E) at (3.6,0) {climbing film evaporator};
%	\pic at (E-anchor) {anchor mark};
%	\pic at (E-top right) {node mark};
%	\pic at (E-top left) {node mark};
%	\pic at (E-inlet left) {node mark};
%	\pic at (E-inlet right) {node mark};
%	\pic at (E-gas outlet) {node mark};
%	\pic at (E-liquid outlet) {node mark};
%	\pic at (E-shell top left) {node mark};
%	\pic at (E-shell left) {node mark};
%	\pic at (E-shell bottom left) {node mark};
%	\pic at (E-shell right) {node mark};
%	\pic at (E-shell bottom right) {node mark};
%	\pic at (E-shell top right) {node mark};
%	\node[right] at (E-top right) {\chpn{tr}};
%	\node[left] at (E-top left) {\chpn{tl}};
%	\node[left] at (E-inlet left) {\chpn{il}};
%	\node[right] at (E-inlet right) {\chpn{ir}};
%	\node[above] at (E-gas outlet) {\chpn{go}};
%	\node[below] at (E-liquid outlet) {\chpn{lo}};
%	\node[left=1mm] at (E-shell top left) {\chpn{stl}};
%	\node[left=1mm] at (E-shell left) {\chpn{sl}};
%	\node[left=1mm] at (E-shell bottom left) {\chpn{sbl}};
%	\node[right] at (E-shell bottom right) {\chpn{sbr}};
%	\node[right] at (E-shell right) {\chpn{sr}};
%	\node[right] at (E-shell top right) {\chpn{str}};
\end{tikzpicture}
\end{center}

In order to better understand, larger versions of both the
\chpp{basket evaporator} and the \chpp{climbing film evaporator} are shown
below with full markings of measures (which values, as usual, refer to the
dimension of real units) and nodes:
\begin{center}
\begin{tikzpicture}
	\pic[scale=2] (EB) at (0,0) {basket evaporator};
	\pic at (EB-anchor) {anchor mark};
	\pic at (EB-bottom left) {node mark};
	\pic at (EB-bottom right) {node mark};
	\pic at (EB-top right) {node mark};
	\pic at (EB-top left) {node mark};
	\pic at (EB-inlet left) {node mark};
	\pic at (EB-inlet right) {node mark};
	\pic at (EB-gas outlet) {node mark};
	\pic at (EB-liquid outlet) {node mark};
	\pic at (EB-shell top left) {node mark};
	\pic at (EB-shell left) {node mark};
	\pic at (EB-shell bottom left) {node mark};
	\pic at (EB-shell right) {node mark};
	\pic at (EB-shell bottom right) {node mark};
	\pic at (EB-shell top right) {node mark};
	\node[left] at (EB-bottom left) {\chpn{bl}};
	\node[right] at (EB-bottom right) {\chpn{br}};
	\node[right] at (EB-top right) {\chpn{tr}};
	\node[left] at (EB-top left) {\chpn{tl}};
	\node[left] at (EB-inlet left) {\chpn{il}};
	\node[right] at (EB-inlet right) {\chpn{ir}};
	\node[above] at (EB-gas outlet) {\chpn{go}};
	\node[below] at (EB-liquid outlet) {\chpn{lo}};
	\node[left] at (EB-shell top left) {\chpn{stl}};
	\node[left] at (EB-shell left) {\chpn{sl}};
	\node[left] at (EB-shell bottom left) {\chpn{sbl}};
	\node[right] at (EB-shell bottom right) {\chpn{sbr}};
	\node[right] at (EB-shell right) {\chpn{sr}};
	\node[right] at (EB-shell top right) {\chpn{str}};
	\measure{(-1.7,-3.7)}{(1.7,-3.7)}{\SI{17}{\mm}}
	\measure{(-2.9,3.0)}{(-2.9,-3.0)}{\SI{30}{\mm}}
	\measure{(-2.4,2.064)}{(-2.4,0)}{\SI{10.32}{\mm}}
	\measure[above]{(-1.6,3.7)}{(1.6,3.7)}{\SI{16}{\mm}}
	\measure[above]{(3.4,0)}{(3.4,-1.8)}{\SI{9}{\mm}}
	\measure[above]{(2.9,0)}{(2.9,-1.0)}{\SI{5}{\mm}}
	\measure[above]{(2.4,0)}{(2.4,-0.4)}{\SI{2}{\mm}}
	\draw[dashed] (4,5) -- (4,-5);
	\begin{scope}[xshift=7.5cm]
		\pic[scale=2] (E) at (0,0) {climbing film evaporator};
		\pic at (E-anchor) {anchor mark};
		\pic at (E-top right) {node mark};
		\pic at (E-top left) {node mark};
		\pic at (E-inlet left) {node mark};
		\pic at (E-inlet right) {node mark};
		\pic at (E-gas outlet) {node mark};
		\pic at (E-liquid outlet) {node mark};
		\pic at (E-shell top left) {node mark};
		\pic at (E-shell left) {node mark};
		\pic at (E-shell bottom left) {node mark};
		\pic at (E-shell right) {node mark};
		\pic at (E-shell bottom right) {node mark};
		\pic at (E-shell top right) {node mark};
		\node[right] at (E-top right) {\chpn{tr}};
		\node[left] at (E-top left) {\chpn{tl}};
		\node[left] at (E-inlet left) {\chpn{il}};
		\node[right] at (E-inlet right) {\chpn{ir}};
		\node[above] at (E-gas outlet) {\chpn{go}};
		\node[below] at (E-liquid outlet) {\chpn{lo}};
		\node[left=3mm] at (E-shell top left) {\chpn{stl}};
		\node[left=3mm] at (E-shell left) {\chpn{sl}};
		\node[left=3mm] at (E-shell bottom left) {\chpn{sbl}};
		\node[right] at (E-shell bottom right) {\chpn{sbr}};
		\node[right] at (E-shell right) {\chpn{sr}};
		\node[right] at (E-shell top right) {\chpn{str}};
		\measure{(-0.8,-3.7)}{(0.8,-3.7)}{\SI{8}{\mm}}
		\measure{(-2.8,3.0)}{(-2.8,-3.0)}{\SI{30}{\mm}}
		\measure{(-2.3,1.2)}{(-2.3,0)}{\SI{6}{\mm}}
		\measure[above]{(-1.6,3.7)}{(1.6,3.7)}{\SI{16}{\mm}}
		\measure[above]{(2.6,0)}{(2.6,-2.2)}{\SI{11}{\mm}}
		\measure[above]{(2.1,0)}{(2.1,-0.9)}{\SI{4.5}{\mm}}
		\measure[above]{(1.6,0.4)}{(1.6,0)}{\SI{2}{\mm}}
	\end{scope}
\end{tikzpicture}
\end{center}

Measures should be clear enough. The only remark is that the measure on the
bottom of the \chpp{climbing film evaporator} refers to the width of the tube
bundle part of the unit without taking into account the little protruding
lines. Always for this unit,  labels of the three nodes on the lower left part
are far from their marks only to avoid overlaps with the internal recirculation
path.

For both units there are two of the common nodes: \chpn{top left} and
\chpn{top right}, while for the \chpp{basket evaporator} there are also
\chpn{bottom left} and \chpn{bottom right}. Other nodes are common to both
units. Two main inlet nodes: \chpn{inlet left} and \chpn{inlet right},
abbreviated above as \chpn{il} and \chpn{ir} respectively. Two outlet nodes:
\chpn{gas outlet} and \chpn{liquid outlet}, abbreviated above as \chpn{go} and
\chpn{lo} respectively. The remaining nodes are to be used to connect the
heating fluid to the shell of the pipe bundle:
\begin{itemize}
	\item the \chpn{shell top left} node is abbreviated in the drawing as
		\chpn{stl};
	\item the \chpn{shell left} node is abbreviated in the drawing as
		\chpn{sl};
	\item the \chpn{shell bottom left} node is abbreviated in the drawing as
		\chpn{sbl};
	\item the \chpn{shell bottom right} node is abbreviated in the drawing as
		\chpn{sbr};
	\item the \chpn{shell right} node is abbreviated in the drawing as
		\chpn{sr};
	\item the \chpn{shell top right} node is abbreviated in the drawing as
		\chpn{str}.
\end{itemize}
Just like for the \chpp{tube bundle heat exchanger}, so many nodes are defined
for the shell to allow the representation to be as flexible as possibile, in
fact flow configuration can have a great impact on the evaporator performances
and it is often useful to represent it also graphically.

As a last remark on these two units, often also the \chpp{basket evaporator} has
an internal recirculation path, but this is not marked on the default symbol. If
one wants to show it, this should be done drawing an arrow of \verb|thick|
thickness and with a \verb|stealth| tip from the \chpn{bottom right} node to the
\chpn{inlet right} node (or the same using nodes on the left).

\subsubsection{Stirred Crystallizer}

The last kind of separator defined by \chemplants\ is often used in conjunction
with an evaporator and can push the operation of concentration far enough to
achieve the saturation of the solution, causing consequently the precipitation
of solids. A simple non-thermal crystallizer is a stirred tank with a
cone-shaped bottom useful to collect solids in the direction of the outlet
pipe. It is defined as a simple pic called \chpp{stirred crystallizer}:
\begin{chpcode}
	\pic at (0,0) {stirred crystallizer};
\end{chpcode}
and yields a vertical tank, in which centre there is the anchor, with the sketch
of a mechanical stirrer:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {stirred crystallizer};
	\pic at (0,0) {stirred crystallizer};
	\measure{(-0.8,-1.7)}{(0.8,-1.7)}{\SI{16}{\mm}}
	\measure{(-1.0,1.5)}{(-1.0,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(0,1.7)}{(0.5,1.7)}{\SI{5}{\mm}}
	\measure[above]{(1.5,0)}{(1.5,-1.032)}{\SI{10.32}{\mm}}
	\measure[above]{(1.0,1.5)}{(1.0,0)}{\SI{15}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3.6,0) {stirred crystallizer};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-bottom left) {node mark};
	\pic at (C-bottom right) {node mark};
	\pic at (C-top right) {node mark};
	\pic at (C-top left) {node mark};
	\pic at (C-inlet left) {node mark};
	\pic at (C-inlet right) {node mark};
	\pic at (C-liquid outlet) {node mark};
	\pic at (C-solid outlet) {node mark};
	\pic at (C-shaft) {node mark};
	\node[left] at (C-bottom left) {\chpn{bl}};
	\node[right] at (C-bottom right) {\chpn{br}};
	\node[right] at (C-top right) {\chpn{tr}};
	\node[left] at (C-top left) {\chpn{tl}};
	\node[left] at (C-inlet left) {\chpn{il}};
	\node[right] at (C-inlet right) {\chpn{ir}};
	\node[above] at (C-liquid outlet) {\chpn{lo}};
	\node[below] at (C-solid outlet) {\chpn{so}};
	\node[above] at (C-shaft) {\chpn{s}};
\end{tikzpicture}
\end{center}
where the measure on the bottom-right indicates the distance from the middle of
the tank to the point where the cone begins, while measures on the top right
indicate the distances from the stirrer end point to the anchor point in the
middle of the tank.

The end of the stirrer outside the tank is also identified by a special
coordinate node, indicated in the above drawing as \chpn{s} and called
\chpn{shaft}. It should be evident that this is not a point defined to connect
streams, but it may be useful for some kind of control systems. In addition
to this node, also the \chpn{inlet left} node and \chpn{inlet right} node are
defined, shown above as \chpn{il} and \chpn{ir} respectively, and finally the
\chpn{liquid outlet} node and \chpn{solid outlet} node, shown above as \chpn{lo}
and \chpn{so} respectively.

\subsubsection{Tube Bundle Crystallizer}

A stirred crystallizer can be used to sketch diagrams of crystallization
operation held in multiple units, such as a cooling in a heat exchanger and the
following crystallization in a proper equipment. However, there is also a simple
all-in-one machine that realizes heath exchange and crystallization at the same
time. It is defined as a simple pic called \chpp{tube bundle crystallizer}:
\begin{chpcode}
	\pic at (0,0) {tube bundle crystallizer};
\end{chpcode}
and yields a tank, in which centre there is the anchor, with sketches of the tube
bundle:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {tube bundle crystallizer};
	\pic at (0,0) {tube bundle crystallizer};
	\measure{(-0.85,-1.7)}{(0.85,-1.7)}{\SI{17}{\mm}}
	\measure{(-1.0,1.5)}{(-1.0,-1.5)}{\SI{30}{\mm}}
	\measure[above]{(-0.8,1.7)}{(0.8,1.7)}{\SI{16}{\mm}}
	\measure[above]{(1.5,1.032)}{(1.5,0)}{\SI{10.32}{\mm}}
	\measure[above]{(1.0,0)}{(1.0,-0.5)}{\SI{5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3.6,0) {tube bundle crystallizer};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-bottom left) {node mark};
	\pic at (C-bottom right) {node mark};
	\pic at (C-top right) {node mark};
	\pic at (C-top left) {node mark};
	\pic at (C-inlet left) {node mark};
	\pic at (C-inlet right) {node mark};
	\pic at (C-liquid outlet) {node mark};
	\pic at (C-solid outlet) {node mark};
	\pic at (C-pipes left) {node mark};
	\pic at (C-pipes right) {node mark};
	\node[left] at (C-bottom left) {\chpn{bl}};
	\node[right] at (C-bottom right) {\chpn{br}};
	\node[right] at (C-top right) {\chpn{tr}};
	\node[left] at (C-top left) {\chpn{tl}};
	\node[left] at (C-inlet left) {\chpn{il}};
	\node[right] at (C-inlet right) {\chpn{ir}};
	\node[above] at (C-liquid outlet) {\chpn{lo}};
	\node[below] at (C-solid outlet) {\chpn{so}};
	\node[left] at (C-pipes left) {\chpn{pl}};
	\node[right] at (C-pipes right) {\chpn{pr}};
\end{tikzpicture}
\end{center}
where the measure on bottom indicates the total width of the unit, the measure on
top indicates the width of the tank, the measure on the right indicates the
distance from the middle of the tank to the point where the curvature begins and
the measure on bottom right refers to the distance from the anchor point to the
middle of the pipe bundle.

Some of the special nodes defined should be clear at this point, at least
\chpn{inlet left}, \chpn{inlet right}, \chpn{liquid outlet} and
\chpn{solid outlet}. Two more special nodes are defined for this pic:
\chpn{pipes left}, abbreviated above as \chpn{pl}, and \chpn{pipes right},
abbreviated above as \chpn{pr}.

\subsection{Columns}

A column is the most characteristic piece of equipment of the chemical industry
and is a vertical pipe with large diameter featured by various types of
internals; it can be used in a wide set of applications. It is defined as a pic
with arguments called \chpp{column}:
\begin{chpcode}
	\pic at (0,0) {column=empty};
\end{chpcode}
and yields a vertical column anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {column=empty};
	\pic at (0,0) {column=empty};
	\measure{(-0.5,-3.2)}{(0.5,-3.2)}{\SI{10}{\mm}}
	\measure{(-0.7,3)}{(-0.7,-3)}{\SI{60}{\mm}}
	\measure[above]{(0.7,2.6)}{(0.7,0)}{\SI{26}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3,0) {column=empty};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-bottom right) {node mark};
	\pic at (C-right) {node mark};
	\pic at (C-top right) {node mark};
	\pic at (C-top) {node mark};
	\pic at (C-top left) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[left] at (C-bottom left) {\chpn{bl}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[right] at (C-bottom right) {\chpn{br}};
	\node[right] at (C-right) {\chpn{r}};
	\node[right] at (C-top right) {\chpn{tr}};
	\node[above] at (C-top) {\chpn{t}};
	\node[left] at (C-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the
column to the points where the nodes are placed. It should be noticed that this
point is not where the curvature begins, like in tank-shaped units. The curvature
begins \SI{27}{\mm} above the middle of the unit (in my opinion, a better
graphical effect is obtained with a stream placed slightly below this point).
Similar considerations apply the similar nodes on the bottom.

Four kinds of columns are defined: \chpa{empty}, \chpa{trayed}, \chpa{packed}
and \chpa{packed double}, which represent respectively an empty column, a column
with trays, a column with a single packed zone and a column with two packed
zones (useful to represent distillation in packed columns). These keys should be
used as arguments of the \chpp{column} pic. The code:
\begin{chpcode}
	\pic at (0,0) {column=empty};
	\pic at (3,0) {column=trayed};
	\pic at (6,0) {column=packed};
	\pic at (9,0) {column=packed double};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {column=empty};
	\pic at (3,0) {column=trayed};
	\pic at (6,0) {column=packed};
	\pic at (9,0) {column=packed double};
\end{tikzpicture}
\end{center}
All of the columns have the same dimensions and the anchor mark is always at the
centre of the pic (they are all defined as variants of the \chpa{empty} column).
Finally, it is useful to remember that trays (or packings) start \SI{24}{\mm}
above the middle of the column and are spaced \SI{2}{\mm} each.

\subsection{Reactors}

Besides columns, reactors are the other most characteristic equipments of the
industrial chemistry, for which is essential to realize a reaction, but on a
very large scale. The variety of reactors available in the industry is
wide-ranged in every aspect: shape, phases within the reactor, operating
principles, stream configurations and so on. For this reason, it is impossibile
to summarise all of the existing reactors using one symbol only, but it is anyway
possible to represent the most common ones in terms of operating principled,
which is what is done by \chemplants.

\subsubsection{Stirred Reactor}

One of the most common representation of a reactor used in chemical engineering
is a simple vessel provided with a stirrer sketch, which is the core of the
perfectly mixed reactor models. This kind of symbol is defined as a simple pic
called \chpp{stirred reactor}:
\begin{chpcode}
	\pic at (0,0) {stirred reactor};
\end{chpcode}
and yields a vertical, in which centre there is the anchor, with the sketch  of a
mechanical stirrer:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {stirred reactor};
	\pic at (0,0) {stirred reactor};
	\measure{(-0.8,-1.4)}{(0.8,-1.4)}{\SI{16}{\mm}}
	\measure{(-1.0,1.2)}{(-1.0,-1.2)}{\SI{24}{\mm}}
	\measure{(-1.5,1.5)}{(-1.5,-1.2)}{\SI{27}{\mm}}
	\measure[above]{(0,1.7)}{(0.5,1.7)}{\SI{5}{\mm}}
	\measure[above]{(1.0,1.5)}{(1.0,0)}{\SI{15}{\mm}}
	\measure[above]{(1.5,0)}{(1.5,-0.732)}{\SI{7.32}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (R) at (3.6,0) {stirred reactor};
	\pic at (R-anchor) {anchor mark};
	\pic at (R-left) {node mark};
	\pic at (R-bottom left) {node mark};
	\pic at (R-bottom) {node mark};
	\pic at (R-bottom right) {node mark};
	\pic at (R-right) {node mark};
	\pic at (R-top right) {node mark};
	\pic at (R-top) {node mark};
	\pic at (R-top left) {node mark};
	\pic at (R-shaft) {node mark};
	\node[left] at (R-left) {\chpn{l}};
	\node[left] at (R-bottom left) {\chpn{bl}};
	\node[below] at (R-bottom) {\chpn{b}};
	\node[right] at (R-bottom right) {\chpn{br}};
	\node[right] at (R-right) {\chpn{r}};
	\node[right] at (R-top right) {\chpn{tr}};
	\node[above] at (R-top) {\chpn{t}};
	\node[left] at (R-top left) {\chpn{tl}};
	\node[above] at (R-shaft) {\chpn{s}};
\end{tikzpicture}
\end{center}

Reading measures is not that easy, so it is better to give some clarification:
the pic have an overall height of \SI{27}{\mm} and an overall width of
\SI{16}{\mm}, while the tank (without the stirrer protruding part) is
\SI{24}{\mm} high; the measure on the bottom right indicates the distance from
the middle of the tank to the point where the curvature begins, while measures on
the top right indicate the distances from the stirrer end point to the anchor
point in the middle of the tank.

The end of the stirrer outside the tank is also identified by a special
coordinate node, indicated in the above drawing as \chpn{s} and called
\chpn{shaft}. It should be evident that this is not a point defined to connect
streams, but it may be useful for some kind of control systems.

A stirred reactor can be used to represent two ideal reactor models among the
most commonly used in the chemical engineering: the perfectly mixed batch reactor
and the continuous stirred tank reactor (\ac{CSTR}). Anyway, a
\chpp{stirred reactor} is a very generic representation, so it will be
appropriate for all of the reactors in which there is a mixer, regardless from
the mixer type or of the phases within the reactor.

\subsubsection{Packed Bed Crystallizer}

The third most common ideal reactor model, the plug flow reactor (\ac{PFR}), can
be functionally represented by a packed bed reactor, that is clearly useful to
represent also a real packed bed reactor. It is defined as a simple pic called
\chpp{packed bed reactor}:
\begin{chpcode}
	\pic at (0,0) {packed bed reactor};
\end{chpcode}
and yields a rectangular reactor, in which centre there is the anchor, with the
representation of the inside packing:
\begin{center}
\begin{tikzpicture}
	\pic at (-4,0) {packed bed reactor};
	\pic at (0,0) {packed bed reactor};
	\measure{(-1,-0.65)}{(1,-0.65)}{\SI{20}{\mm}}
	\measure{(-1.2,0.45)}{(-1.2,-0.45)}{\SI{9}{\mm}}
	\measure[above]{(1.2,0.4)}{(1.2,-0.4)}{\SI{8}{\mm}}
	\measure[above]{(0.8,0.65)}{(1.0,0.65)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (R) at (4,0) {packed bed reactor};
	\pic at (R-anchor) {anchor mark};
	\pic at (R-left) {node mark};
	\pic at (R-bottom) {node mark};
	\pic at (R-right) {node mark};
	\pic at (R-top) {node mark};
	\pic at (R-utility bottom left) {node mark};
	\pic at (R-utility bottom right) {node mark};
	\pic at (R-utility top right) {node mark};
	\pic at (R-utility top left) {node mark};
	\node[left] at (R-left) {\chpn{l}};
	\node[below] at (R-bottom) {\chpn{b}};
	\node[right] at (R-right) {\chpn{r}};
	\node[above] at (R-top) {\chpn{t}};
	\node[below] at (R-utility bottom left) {\chpn{ubl}};
	\node[below] at (R-utility bottom right) {\chpn{ubr}};
	\node[above] at (R-utility top right) {\chpn{utr}};
	\node[above] at (R-utility top left) {\chpn{utl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the height of the rectangle without the
small protruding vertical edges, while the measure on the top indicates the width
of the section without the packing.

The \chpp{packed bed reactor} has some special nodes. Among the common ones,
only \chpn{left}, \chpn{bottom}, \chpn{right} and \chpn{top} are defined. In
addition, there are four nodes more:
\begin{itemize}
	\item a node called \chpn{utility bottom left}, abbreviated in the picture
		above as \chpn{ubl};
	\item a node called \chpn{utility bottom right}, abbreviated in the picture
		above as \chpn{ubr};
	\item a node called \chpn{utility top right}, abbreviated in the picture
		above as \chpn{utr};
	\item a node called \chpn{utility top left}, abbreviated in the picture above
		as \chpn{utl}.
\end{itemize}
These nodes are useful to simulate the presence of a jacket associated to the
reactor and can be used, for example, to connect utility streams carrying fluids
of a temperature control system.

\subsubsection{Fluidized Bed Reactor}

Even though the two above mentioned reactors are the most common ones, there are
many others and one example is the fluidized bed reactor. Its usage have the same
aims of the packed bed reactor, but this time solids are free to move within
the reactor entrained and mixed by the gas. It is defined as a simple pic called
\chpp{fluidized reactor}:
\begin{chpcode}
	\pic at (0,0) {fluidized bed reactor};
\end{chpcode}
and yields a half tank-shaped reactor anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {fluidized bed reactor};
	\pic at (0,0) {fluidized bed reactor};
	\measure{(-0.8,-1.4)}{(0.8,-1.4)}{\SI{16}{\mm}}
	\measure{(-1.0,1.2)}{(-1.0,-1.2)}{\SI{24}{\mm}}
	\measure[above]{(-0.2,1.4)}{(0.2,1.4)}{\SI{4}{\mm}}
	\measure[above]{(1.0,0)}{(1.0,-0.4)}{\SI{4}{\mm}}
	\measure[above]{(1.5,0.732)}{(1.5,0)}{\SI{7.32}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (R) at (3.6,0) {fluidized bed reactor};
	\pic at (R-anchor) {anchor mark};
	\pic at (R-left) {node mark};
	\pic at (R-bottom left) {node mark};
	\pic at (R-bottom) {node mark};
	\pic at (R-bottom right) {node mark};
	\pic at (R-right) {node mark};
	\pic at (R-top right) {node mark};
	\pic at (R-top) {node mark};
	\pic at (R-top left) {node mark};
	\node[left] at (R-left) {\chpn{l}};
	\node[left] at (R-bottom left) {\chpn{bl}};
	\node[below] at (R-bottom) {\chpn{b}};
	\node[right] at (R-bottom right) {\chpn{br}};
	\node[right] at (R-right) {\chpn{r}};
	\node[right] at (R-top right) {\chpn{tr}};
	\node[above] at (R-top) {\chpn{t}};
	\node[left] at (R-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins.

No special node is defined for the \chpp{fluidized reactor}. Anyway, it should
be noticed that the restriction of the bottom represents a real section
change in the tank, which allows the bed to be firstly entrained by a fast
flow and then to fall down due to the slowing of the stream caused by the
expansion of the cross section. For this reason, the main inlet should be placed
on the \chpn{bottom} node, while the main outlet should be connected to the
\chpn{top} node. Other nodes, in particular \chpn{bottom left},
\chpn{bottom right}, \chpn{top right} and \chpn{top left}, can be used for
connections if one needs to represent a solid stream going through the reactor.

\subsubsection{Tube Bundle Reactor}

Another possibility to represent a reacting system is a tube bundle reactor,
which can be used as a film reactor, thus to contact a liquid stream falling
inside the reactor in the form of a film distributed on the walls of the internal
pipes and a gas stream flowing in the internal spaces of the pipes, or as a
multi-pipe packed bed reactor. It is defined as a simple pic called
\chpp{tube bundle reactor}:
\begin{chpcode}
	\pic at (0,0) {tube bundle reactor};
\end{chpcode}
and yields a tank-shaped reactor, in which centre there is the anchor, with the
sketch of the internal pipes:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {tube bundle reactor};
	\pic at (0,0) {tube bundle reactor};
	\measure{(-0.85,-1.4)}{(0.84,-1.4)}{\SI{17}{\mm}}
	\measure{(-1.0,1.2)}{(-1.0,-1.2)}{\SI{24}{\mm}}
	\measure[above]{(1.0,0.732)}{(1.0,0)}{\SI{7.32}{\mm}}
	\measure[above]{(-0.8,1.4)}{(0.8,1.4)}{\SI{16}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (R) at (3.6,0) {tube bundle reactor};
	\pic at (R-anchor) {anchor mark};
	\pic at (R-left) {node mark};
	\pic at (R-bottom left) {node mark};
	\pic at (R-bottom) {node mark};
	\pic at (R-bottom right) {node mark};
	\pic at (R-right) {node mark};
	\pic at (R-top right) {node mark};
	\pic at (R-top) {node mark};
	\pic at (R-top left) {node mark};
	\node[left] at (R-left) {\chpn{l}};
	\node[left] at (R-bottom left) {\chpn{bl}};
	\node[below] at (R-bottom) {\chpn{b}};
	\node[right] at (R-bottom right) {\chpn{br}};
	\node[right] at (R-right) {\chpn{r}};
	\node[right] at (R-top right) {\chpn{tr}};
	\node[above] at (R-top) {\chpn{t}};
	\node[left] at (R-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins, while the measure on the top indicates
the width of the reactor without the small protruding horizontal lines which
represent the support plates of internal pipes.

No special node is defined for the \chpp{tube bundle reactor}, but it is a good
idea to specify that \chpn{left} and \chpn{right} nodes identify two points which
fall between the support plates of internal pipes, so they are the ``access'' to
the outer side of the pipe bundle. For this reason these two points are perfect
to connect utility streams carrying fluids of a temperature control system.
Unlike evaporators, there are not so many nodes for the shell of the pipes: an
evaporator is a purely thermal unit and the flow configuration can be an
important information to show, while for a reactor it is not that important.

Finally, another useful information is that both support plates of the pipes are
placed to a vertical distance of \SI{6.5}{\mm} from the anchor point, even though
not explicitly marked in the above drawing.

\subsection{Associative Pics for Reactors}

The just introduced reactors are only a little part of the huge variety of
symbols one can find looking at process schemes. It is almost impossible to
accomplish all of the requests about the representation of reactors: one wants
to draw a jacket, another one wants a stirrer and a jacket, another one wants a
stirrer but no jacket, another one wants a sprayer, a stirrer and a jacket and
so on.

Even though the number of possibile combinations is huge, a smart and efficient
solution can always be found. A possibile way is what I like to call associative
pics, a palette of pics which can be overlapped and bonded together thanks to
anchors. In this way, only the building blocks need to be defined and then users
can play with them to produce symbols they like the most, or the ones they need.
It should be clear that some pics will exclude the usage of others (for example a
stirrer should not be represented in a packed bed reactor).

\subsubsection{Tank Reactor}

It is necessary to specify that this technique is adopted in \chemplants\ only
for reactors, more precisely for tank shaped reactors. The main building block
is, in fact, a little tank which represents a generic empty reactor. It is
defined as a simple pic called \chpp{tank reactor}:
\begin{chpcode}
	\pic at (0,0) {tank reactor};
\end{chpcode}
and yields a vertical tank anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {tank reactor};
	\pic at (0,0) {tank reactor};
	\measure{(-0.8,-1.4)}{(0.8,-1.4)}{\SI{16}{\mm}}
	\measure{(-1.0,1.2)}{(-1.0,-1.2)}{\SI{24}{\mm}}
	\measure[above]{(1.0,0.732)}{(1.0,0)}{\SI{7.32}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (R) at (3.6,0) {tank reactor};
	\pic at (R-anchor) {anchor mark};
	\pic at (R-left) {node mark};
	\pic at (R-bottom left) {node mark};
	\pic at (R-bottom) {node mark};
	\pic at (R-bottom right) {node mark};
	\pic at (R-right) {node mark};
	\pic at (R-top right) {node mark};
	\pic at (R-top) {node mark};
	\pic at (R-top left) {node mark};
	\node[left] at (R-left) {\chpn{l}};
	\node[left] at (R-bottom left) {\chpn{bl}};
	\node[below] at (R-bottom) {\chpn{b}};
	\node[right] at (R-bottom right) {\chpn{br}};
	\node[right] at (R-right) {\chpn{r}};
	\node[right] at (R-top right) {\chpn{tr}};
	\node[above] at (R-top) {\chpn{t}};
	\node[left] at (R-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the tank
to the point where the curvature begins.

This pic is formally analogue to the \chpp{tank}, the very first pic
introduced, but smaller. It is useful to know that the scale factor to
``convert'' a \chpp{tank reactor} into a \chpp{tank} is \num{1.25}. The reason
why it is useful to know it will be explained in the future, when pics
transformations will be introduced.

As told before, the \chpp{tank reactor} is the starting point of all of the
representation. In particular, almost all of the other pics defined later on
(apart two of them) can be bonded to the \chpp{tank reactor} using the
\chpn{anchor} node. Assuming that the reactor is declared as:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
\end{chpcode}
thus identified as \chpn{R}, the point in which other pics have to be declared
is the node \chpn{R-anchor}.

\subsubsection{Jacket}

The first gadget for the \chpp{tank reactor} is a jacket for temperature
control. It is defined as a simple pic called \chpp{jacket}:
\begin{chpcode}
	\pic at (0,0) {jacket};
\end{chpcode}
and yields the sketch of and external jacket anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-4.0,0) {jacket};
	\pic at (0,0) {jacket};
	\measure[above]{(-1.0,0.9)}{(1.0,0.9)}{\SI{20}{\mm}}
	\measure{(-1.2,0.7)}{(-1.2,-1.3)}{\SI{20}{\mm}}
	\measure{(-0.1,-1.5)}{(0.1,-1.5)}{\SI{2}{\mm}}
	\measure[above]{(1.7,0.5)}{(1.7,0)}{\SI{5}{\mm}}
	\measure[above]{(1.2,0)}{(1.2,-1.3)}{\SI{13}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (J) at (4.0,0) {jacket};
	\pic at (J-anchor) {anchor mark};
	\pic at (J-left) {node mark};
	\pic at (J-bottom left) {node mark};
	\pic at (J-bottom right) {node mark};
	\pic at (J-right) {node mark};
	\pic at (J-top right) {node mark};
	\pic at (J-top left) {node mark};
	\node[left] at (J-left) {\chpn{l}};
	\node[below left] at (J-bottom left) {\chpn{bl}};
	\node[below right] at (J-bottom right) {\chpn{br}};
	\node[right] at (J-right) {\chpn{r}};
	\node[right] at (J-top right) {\chpn{tr}};
	\node[left] at (J-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
where the measure on the bottom right indicates the distance from the anchor of
the jacket to its bottom, while the measure on the bottom indicates the width of
the ``bottom hole''.

The \chpp{jacket} has to be bonded to the \chpp{tank reactor} using its
\chpn{anchor} node:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {jacket};
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {jacket};
\end{tikzpicture}
\end{center}
It should be noticed that the \chpp{jacket} extends the dimensions of the
\chpp{tank reactor} by \SI{2}{\mm} in horizontal on both sides and by
\SI{1}{\mm} in vertical on the bottom.

This solution is functional, but it introduces also a drawback: being the
\chpp{jacket} and the \chpp{tank reactor} two different pics, they have to be
identified using two different prefixes. In the above example, the node
\chpn{R-left} identifies the \chpn{left} node of the reactor, but not the
\chpn{left} node of the jacket. The drawback is that it is necessary to remember
to use the correct prefix to identify nodes of the right pic, but this is also
a safer approach.

\subsubsection{Stirrer}

The \chpp{jacket} is the only external gadget defined, but there are a lot of
internal accessories, among which there is the already known stirrer. It is
defined a simple pic called \chpp{stirrer}:
\begin{chpcode}
	\pic at (0,0) {stirrer};
\end{chpcode}
and yields the sketch of a mechanical stirrer:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.0,0) {stirrer};
	\pic at (0,0) {stirrer};
	\measure{(-0.5,-0.575)}{(0.5,-0.575)}{\SI{10}{\mm}}
	\measure{(-0.7,1.5)}{(-0.7,-0.375)}{\SI{18.75}{\mm}}
	\measure[above]{(0,1.7)}{(0.5,1.7)}{\SI{5}{\mm}}
	\measure[above]{(0.7,1.5)}{(0.7,0)}{\SI{15}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (S) at (3.0,0) {stirrer};
	\pic at (S-anchor) {anchor mark};
	\pic at (S-shaft) {node mark};
	\node[above] at (S-shaft) {\chpn{s}};
\end{tikzpicture}
\end{center}
where measures on the right and on the top indicate the distances from the
anchor of the stirrer to the end of its shaft.

The \chpp{stirrer} has a special node: the \chpn{shaft} node is placed at the
end of the shaft and it is abbreviated above as \chpn{s}.

The \chpp{stirrer} has to be bonded to the \chpp{tank reactor} using its
\chpn{anchor} node:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {stirrer};
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {stirrer};
\end{tikzpicture}
\end{center}
It should be noticed that the \chpp{stirrer} extends the dimensions of the
\chpp{tank reactor} by \SI{3}{\mm} in vertical on the top. The pic obtained in
this way is exactly the same of the \chpp{stirred reactor}, but this last one
has still its own definition as a single pic due to its importance.

\subsubsection{Coil}

Instead of using a jacket to control the temperature of a reactor, there is
another solution: a coil, either electrical or carrier of a temperature
controlling fluid, placed within the reactor. It is defined as a simple pic
called \chpp{coil}:
\begin{chpcode}
	\pic at (0,0) {coil};
\end{chpcode}
and yields the sketch of a coil anchored in its center:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {coil};
	\pic at (0,0) {coil};
	\measure{(-0.7,-0.9)}{(1.0,-0.9)}{\SI{17}{\mm}}
	\measure{(-1.0,0.7)}{(-1.0,-0.7)}{\SI{14}{\mm}}
	\measure[above]{(0,0.9)}{(1.0,0.9)}{\SI{10}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3.6,0) {coil};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-top) {node mark};
	\node[right] at (C-bottom) {\chpn{b}};
	\node[right] at (C-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where the measure on the top indicates the distance from the anchor of the coil
to the end of its path.

The two nodes declared for the \chpp{coil} are the \chpn{bottom} node and the
\chpn{top} node, abbreviated above as \chpn{b} and \chpn{t} respectively.

The \chpp{coil} has to be bonded to the \chpp{tank reactor} using its
\chpn{anchor} node:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {coil};
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {coil};
\end{tikzpicture}
\end{center}
It should be noticed that the \chpp{coil} extends the dimensions of the
\chpp{tank reactor} by \SI{2}{\mm} in horizontal on the right.
Even though some overlapping is obtained, the \chpp{coil} and the \chpp{stirrer}
can be used together.

\subsubsection{Sprayer}

When it is important to represent the distribution of a liquid fed to a reactor,
a special pic comes in hand. It is defined as a simple pic called \chpp{sprayer}:
\begin{chpcode}
	\pic at (0,0) {sprayer};
\end{chpcode}
and yields the sketch of a sprayer anchored on its inlet end, the one on the
right:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.4,0) {sprayer};
	\pic at (0,0) {sprayer};
	\measure{(0,-0.3)}{(1.4,-0.3)}{\SI{14}{\mm}}
	\measure{(-0.2,0)}{(-0.2,-0.1)}{\SI{1}{\mm}}
	\pic at (0,0) {anchor mark};
\end{tikzpicture}
\end{center}
and no special or common nodes are defined for this pic, apart from the usual
\chpn{anchor} node.

The \chpp{sprayer} has to be bonded to the \chpp{tank reactor} using its
\chpn{top left} node (or its \chpn{top right} node using a trick that will be
introduced in the following):
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-top left) {sprayer};
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-top left) {sprayer};
\end{tikzpicture}
\end{center}

\subsubsection{Bubbler}

In the same way, when it is important to represent the distribution of a gas fed
to a reactor, a special pic comes in hand. It is defined a simple pic called
\chpp{bubbler}:
\begin{chpcode}
	\pic at (0,0) {bubbler};
\end{chpcode}
and yields the sketch of a bubbler anchored on its inlet end, the one on the
right:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.4,0) {bubbler};
	\pic at (0,0) {bubbler};
	\measure{(0,-0.3)}{(1.4,-0.3)}{\SI{14}{\mm}}
	\measure{(-0.2,0.1)}{(-0.2,0)}{\SI{1}{\mm}}
	\pic at (0,0) {anchor mark};
\end{tikzpicture}
\end{center}
and no special or common nodes are defined for this pic, apart the usual
\chpn{anchor} node.

The \chpp{bubbler} has to be bonded to the \chpp{tank reactor} using its
\chpn{bottom left} node (or its \chpn{bottom right} node using a trick that will
be introduced in the following):
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-bottom left) bubbler;
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-bottom left) {bubbler};
\end{tikzpicture}
\end{center}

\subsubsection{Packing}

Finally, the last pic defined as a gadget for the \chpp{tank reactor} is useful
to obtain an alternative representation of the \chpp{packed bed reactor}.
It is defined as a simple pic called \chpp{packing}:
\begin{chpcode}
	\pic at (0,0) {packing};
\end{chpcode}
and yields the representation of a packing:
\begin{center}
\begin{tikzpicture}
	\pic at (-3.6,0) {packing};
	\pic at (0,0) {packing};
	\measure{(-0.8,-0.9)}{(0.8,-0.9)}{\SI{16}{\mm}}
	\measure{(-1.0,0.7)}{(-1.0,-0.7)}{\SI{14}{\mm}}
	\pic at (0,0) {anchor mark};
\end{tikzpicture}
\end{center}
and no special or common nodes are defined for this pic, apart from the usual
\chpn{anchor} node.

The \chpp{packing} has to be bonded to the \chpp{tank reactor} using its
\chpn{anchor} node:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {packing};
\end{chpcode}
and the result is:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {packing};
\end{tikzpicture}
\end{center}
It should be clear enough that this pic has not to be used with any of the
preceding ones, but, at most, with the \chpp{jacket}.

\section{Process Utility Units}

Process utilities is the name given to a set of special units useful to
better specify what is going on in a process; such units are valves, pipe joints,
equipment nozzles and so on. Among process utilities, there are also control
instrumentation and ``gadgets'' for units to be used, for example, to let
the control system automatically act on the process.

\subsection{Valves}

A utility valve should not be misconceived with a lamination valve (as it often
happens). Despite the extremely common fact that the same symbol is used for
both the units, for the sake of clearance \UNICHIM\ indicates the lamination of
a fluid through a valve using a different symbol with respect to the one used
for regulation or interception valves.

\subsubsection{Lamination Valve}

A lamination valve is a unit useful to expand a fluid, hence to reduce its
pressure. It can be represented using a simple pic called
\chpp{lamination valve}:
\begin{chpcode}
	\pic at (0,0) {lamination valve};
\end{chpcode}
which yields a rectangle anchored in its centre in which there is an arrow
sketch:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.4,0) {lamination valve};
	\pic at (0,0) {lamination valve};
	\measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
	\measure{(-0.4,0.1)}{(-0.4,-0.1)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (V) at (2.4,0) {lamination valve};
	\pic at (V-anchor) {anchor mark};
	\pic at (V-inlet) {node mark};
	\pic at (V-outlet) {node mark};
	\node[left] at (V-inlet) {\chpn{i}};
	\node[right] at (V-outlet) {\chpn{o}};
\end{tikzpicture}
\end{center}

Nodes defined for the \chpp{lamination valve} are particular. A lamination
valve is a unit much more similar to a simple electric bipole, in fact it has
only two nodes (plus the \chpn{anchor}); moreover this unit is a ``one way
operation'', so the nodes have a simple logic: one \chpn{inlet} and one
\chpn{outlet}. These two are indicated in the drawing above as \chpn{i} and
\chpn{o} respectively.

\subsubsection{Valve}

A generic valve, intended as a a regulation valve or as an interception valve,
can be represented using a pic with arguments called \chpp{valve}:
\begin{chpcode}
	\pic at (0,0) {valve=main};
\end{chpcode}
which yields a horizontal valve anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.4,0) {valve=main};
	\pic at (0,0) {valve=main};
	\measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
	\measure{(-0.4,0.1)}{(-0.4,-0.1)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (V) at (2.4,0) {valve=main};
	\pic at (V-anchor) {anchor mark};
	\pic at (V-left) {node mark};
	\pic at (V-right) {node mark};
	\node[left] at (V-left) {\chpn{l}};
	\node[right] at (V-right) {\chpn{r}};
\end{tikzpicture}
\end{center}

Note that the \chpn{anchor} node comes in hand with a \chpp{valve}. If one
wants to specify that a valve has a sensor or an actuator (pics will be
introduced in the following), its pic can be simply ``bonded'' to the valve
placing it on the \chpn{anchor} node of the \chpp{valve}. For example, if a
\chpp{valve} is identified as \chpn{V}, placing the actuator in the
\chpn{V-anchor} node will do the job.

The \chpp{valve} pic is defined with an argument to make it sensible to the
stream on which it is placed, in fact two kinds of valves are defined:
\chpa{main}, \chpa{secondary} and \chpa{utility}, which are drawn respectively
with \verb|semithick| lines, \verb|thin| lines and \verb|very thin| lines. These
keys should be used as arguments of the \chpp{valve} pic. The code:
\begin{chpcode}
	\draw[main stream] (0,2) -- (0.8,2);
	\pic at (1,2) {valve=main};
	\draw[main stream] (1.2,2) -- (2,2);
	\draw[secondary stream] (0,1) -- (0.8,1);
	\pic at (1,1) {valve=secondary};
	\draw[secondary stream] (1.2,1) -- (2,1);
	\draw[utility stream] (0,0) -- (0.8,0);
	\pic at (1,0) {valve=utility};
	\draw[utility stream] (1.2,0) -- (2,0);
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\draw[main stream] (0,2) -- (0.8,2);
	\pic at (1,2) {valve=main};
	\draw[main stream] (1.2,2) -- (2,2);
	\draw[secondary stream] (0,1) -- (0.8,1);
	\pic at (1,1) {valve=secondary};
	\draw[secondary stream] (1.2,1) -- (2,1);
	\draw[utility stream] (0,0) -- (0.8,0);
	\pic at (1,0) {valve=utility};
	\draw[utility stream] (1.2,0) -- (2,0);
\end{tikzpicture}
\end{center}
Conversely, \chpp{lamination valve} is defined as a simple pic because it is
more similar to a unit operation rather than to a regulation valve, hence it is
drawn with a \verb|thick| line just like process units.

\subsubsection{Three-Way Valve}

Even though it is not properly a valve, the similarities of the symbols qualify a
pipes joint also with the name of three-way valve. It is defined as a pic with
arguments called \chpp{valve triple}:
\begin{chpcode}
	\pic at (0,0) {valve triple=main};
\end{chpcode}
which yields a horizontal valve anchored in its centre with the third way going
out from the top:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.4,0) {valve triple=main};
	\pic at (0,0) {valve triple=main};
	\measure{(-0.2,-0.3)}{(0.2,-0.3)}{\SI{4}{\mm}}
	\measure{(-0.4,0.2)}{(-0.4,-0.1)}{\SI{3}{\mm}}
	\measure[above]{(0.4,0.2)}{(0.4,0)}{\SI{2}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (V) at (2.4,0) {valve triple=main};
	\pic at (V-anchor) {anchor mark};
	\pic at (V-left) {node mark};
	\pic at (V-right) {node mark};
	\pic at (V-top) {node mark};
	\node[left] at (V-left) {\chpn{l}};
	\node[right] at (V-right) {\chpn{r}};
	\node[above] at (V-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the middle of the
joint to its top.

Just like for the valve, three kinds of three-way valves are defined:
\chpa{main}, \chpa{secondary} and \chpa{utility}, which are drawn respectively
with \verb|semithick| lines, \verb|thin| lines and \verb|very thin| lines. These
keys should be used as arguments of the \chpp{valve triple} pic.

\subsubsection{Four-Way Valve}

Just like three-way valve, also a joint of four pipes is not properly a valve,
but the similarity of its symbols to the one used to denote valves gives it the
informal name of four-way valve. It is defined as a pic with arguments called
\chpp{valve quadruple}:
\begin{chpcode}
	\pic at (0,0) {valve quadruple=main};
\end{chpcode}
which yields a ``cross valve'' anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.4,0) {valve quadruple=main};
	\pic at (0,0) {valve quadruple=main};
	\measure{(-0.2,-0.4)}{(0.2,-0.4)}{\SI{4}{\mm}}
	\measure{(-0.4,0.2)}{(-0.4,-0.2)}{\SI{4}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (V) at (2.4,0) {valve quadruple=main};
	\pic at (V-anchor) {anchor mark};
	\pic at (V-left) {node mark};
	\pic at (V-bottom) {node mark};
	\pic at (V-right) {node mark};
	\pic at (V-top) {node mark};
	\node[left] at (V-left) {\chpn{l}};
	\node[below] at (V-bottom) {\chpn{b}};
	\node[right] at (V-right) {\chpn{r}};
	\node[above] at (V-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

Just like for the valve, three kinds of four-way valves are defined:
\chpa{main}, \chpa{secondary} and \chpa{utility}, which are drawn respectively
with \verb|semithick| lines, \verb|thin| lines and \verb|very thin| lines. These
keys should be used as arguments of the \chpp{valve quadruple} pic.

\subsubsection{Safety Valve}

A special kind of valve is the one used to protect a vessel against pressure
anomalies: the safety valve. The \chemplants\ package defines a single symbols to
represent both safety valves and relief valves. It is defined as a pic with
arguments called \chpp{safety quadruple}:
\begin{chpcode}
	\pic at (0,0) {safety valve=main};
\end{chpcode}
which yields a bent valve, in which central node there is the anchor, with
sketches of the spring and of the vent:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.5,0) {safety valve=main};
	\pic at (0,0) {safety valve=main};
	\measure{(-0.1,-0.4)}{(0.4,-0.4)}{\SI{5}{\mm}}
	\measure{(-0.3,0.3)}{(-0.3,-0.2)}{\SI{5}{\mm}}
	\measure[above]{(0,0.5)}{(0.4,0.5)}{\SI{4}{\mm}}
	\measure[above]{(0.6,0.3)}{(0.6,0)}{\SI{3}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (V) at (2.5,0) {safety valve=main};
	\pic at (V-anchor) {anchor mark};
	\pic at (V-inlet) {node mark};
	\pic at (V-outlet) {node mark};
	\node[below] at (V-inlet) {\chpn{i}};
	\node[right] at (V-outlet) {\chpn{o}};
\end{tikzpicture}
\end{center}
where the measure on the right indicates the distance from the anchor to the top
of the spring, while the measure on the measure on the top indicates the distance
from the anchor to the vent.

Nodes defined for the \chpp{safety valve} follow the same logic of the ones
defined for the \chpp{lamination valve}. Being a safety valve a ``directional''
unit, the nodes have a simple logic: one \chpn{inlet} and one \chpn{outlet}.
These two are indicated in the drawing above as \chpn{i} and \chpn{o}
respectively. The \chpn{outlet} node may be used to represent the collection of
the discharged stream into a particular treatment circuit.

Though a safety valve should never be included into the main process path,
possibly even not into the secondary paths, three kinds of safety valves are
defined: \chpa{main}, \chpa{secondary} and \chpa{utility}, which are drawn
respectively with \verb|semithick| lines, \verb|thin| lines and \verb|very thin|
lines. These keys should be used as arguments of the \chpp{safety valve} pic.

\subsection{Control Instruments}

\subsubsection{Instrument}

Often not present in a \ac{PFD}, schematics of control instrumentation is a
valuable integration to the process scheme. It can be shown in order to better
describe a (simple) plant. A generic instrument symbol is defined as a pic with
arguments called \chpp{instrument}:
\begin{chpcode}
	\pic at (0,0) {instrument=TIC};
\end{chpcode}
and yields a circle anchored in its centre, with \verb|thin| line thickness and
containing the designation of the instrument:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {instrument=TIC};
	\pic at (0,0) {instrument=TIC};
	\measure{(-0.5,-0.7)}{(0.5,-0.7)}{\SI{10}{\mm}}
	\measure{(-0.7,0.5)}{(-0.7,-0.5)}{\SI{10}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (I) at (3,0) {instrument=TIC};
	\pic at (I-anchor) {anchor mark};
	\pic at (I-left) {node mark};
	\pic at (I-bottom) {node mark};
	\pic at (I-right) {node mark};
	\pic at (I-top) {node mark};
	\node[left] at (I-left) {\chpn{l}};
	\node[below] at (I-bottom) {\chpn{b}};
	\node[right] at (I-right) {\chpn{r}};
	\node[above] at (I-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

The behaviour of the \chpp{instrument} pic differs with respect to other pics
with arguments and it is more similar to the third argument of the
\verb|\measure| command: the argument can be anything accepted by a \TikZ\ node
and, in the case of chemical plants control instrumentation, it should be a text
specifying the type of instrument, as shown above (\ac{TIC} stands for
temperature indicator and controller).

\subsubsection{Controller}

Sometimes it is necessary to represent a different kind of instrumentation. A
common case is a computer connected to a measurement and control system, which
acts as a simple controller. For instance, it may be a programmable logic
controller (\ac{PLC}) or a distribute control system (\ac{DCS}). In such cases, a
special pic exists. It is defined as a pic with arguments called
\chpp{controller}:
\begin{chpcode}
	\pic at (0,0) {controller=PLC};
\end{chpcode}
and yields a square anchored in its centre, with \verb|thin| line thickness and
containing the specification of the controller:
\begin{center}
\begin{tikzpicture}
	\pic at (-3,0) {controller=PLC};
	\pic at (0,0) {controller=PLC};
	\measure{(-0.5,-0.7)}{(0.5,-0.7)}{\SI{10}{\mm}}
	\measure{(-0.7,0.5)}{(-0.7,-0.5)}{\SI{10}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (C) at (3,0) {controller=PLC};
	\pic at (C-anchor) {anchor mark};
	\pic at (C-left) {node mark};
	\pic at (C-bottom) {node mark};
	\pic at (C-right) {node mark};
	\pic at (C-top) {node mark};
	\node[left] at (C-left) {\chpn{l}};
	\node[below] at (C-bottom) {\chpn{b}};
	\node[right] at (C-right) {\chpn{r}};
	\node[above] at (C-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

Arguments to be used with a \chpp{controller} pic follow exactly the same
logic of the ones used within an \chpp{instrument}: simple text specifying the
controller functions.

\subsubsection{Actuator}

Signal paths have already been discussed and can be drawn with the \chps{signal}
style, but there is another utility for control instrumentation. Connections
between signals and units can be made through a sensor, to collect informations,
or through an actuator, to act on the units. Usually sensors are indicated
simply connecting a signal to the point of measurement, a unit or a stream, but
for actuators an additional symbol is used. It is defined as a simple pic called
\chpp{actuator}:
\begin{chpcode}
	\pic at (0,0) {actuator};
\end{chpcode}
and yields a half circle supported by a vertical stem, at the end of which
there is the anchor point:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.1,0) {actuator};
	\pic at (0,0) {actuator};
	\measure{(-0.1,-0.2)}{(0.1,-0.2)}{\SI{2}{\mm}}
	\measure{(-0.25,0.3)}{(-0.25,-0)}{\SI{3}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (A) at (0,0) {actuator};
	\pic at (A-anchor) {anchor mark};
	\pic at (A-top) {node mark};
	\node[above] at (A-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

The \chpp{actuator} is a strange thing to represent in a scheme and obtaining a
good graphical result is not that easy. In order to get a better drawing, its
line thickness is the same of instruments, but its dimensions are defined to be
relative to the units. This aspect will be better clarified in the future.

This is a good time to give a practical example of how coordinate nodes can be
used. Introducing the \chpp{valve}, it was said that its \chpn{anchor} node can
come in hand when representing actuators. This simple code:
\begin{chpcode}
	\pic (V) at (1,0) {valve=main};
	\pic (A) at (V-anchor) {actuator};
	\pic (FC) at (3,0.8) {instrument=FC};
	\draw[main stream] (0,0) -- (V-left);
	\draw[main stream] (V-right) -- (3.5,0);
	\draw[short signal] (3,0) -- (FC-bottom);
	\draw[signal] (FC-left) -| (A-top);
\end{chpcode}
produces the representation of a flow-rate control loop:
\begin{center}
\begin{tikzpicture}
	\pic (V) at (1,0) {valve=main};
	\pic (A) at (V-anchor) {actuator};
	\pic (FC) at (3,0.8) {instrument=FC};
	\draw[main stream] (0,0) -- (V-left);
	\draw[main stream] (V-right) -- (3.5,0);
	\draw[short signal] (3,0) -- (FC-bottom);
	\draw[signal] (FC-left) -| (A-top);
\end{tikzpicture}
\end{center}

It should be noticed that coordinate nodes are really useful, but appealing to
them implies that the diagram my need to be planned in a non-linear way. In
particular, it is convenient to fix positions of all of the units first and then
connecting their nodes using streams and signals. This procedure requires a
little of practice, but, doubtlessly, its advantages worth the effort. A simple
example: if one decides to move the valve from the coordinates \verb|(1,0)| to
the coordinates \verb|(1.5,0)|, the only thing to do is to change the coordinates
of the point where the \chpp{valve} is placed in the first line of the example
code and all of the other points will automatically move themselves accordingly:
\begin{center}
\begin{tikzpicture}
	\pic (V) at (1.5,0) {valve=main};
	\pic (A) at (V-anchor) {actuator};
	\pic (FC) at (3,0.8) {instrument=FC};
	\draw[main stream] (0,0) -- (V-left);
	\draw[main stream] (V-right) -- (3.5,0);
	\draw[short signal] (3,0) -- (FC-bottom);
	\draw[signal] (FC-left) -| (A-top);
\end{tikzpicture}
\end{center}

\subsection{Process Inlets and Outlets}

When representing the scheme of a process, it is always necessary to indicate
where prime matters enter and where products leave. One can simply use a stream
with a free end, but \UNICHIM\ defines two particular symbols to these special
purposes. An inlet is defined as a simple pic called
\chpp{inlet}:
\begin{chpcode}
	\pic at (0,0) {inlet};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with a filled arrow
sketch:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.5,0) {inlet};
	\pic at (0,0) {inlet};
	\measure{(-0.25,-0.45)}{(0.25,-0.45)}{\SI{5}{\mm}}
	\measure{(-0.45,0.25)}{(-0.45,-0.25)}{\SI{5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (I) at (2.5,0) {inlet};
	\pic at (I-anchor) {anchor mark};
	\pic at (I-left) {node mark};
	\pic at (I-bottom) {node mark};
	\pic at (I-stream) {node mark};
	\pic at (I-top) {node mark};
	\node[left] at (I-left) {\chpn{l}};
	\node[below] at (I-bottom) {\chpn{b}};
	\node[right] at (I-stream) {\chpn{s}};
	\node[above] at (I-top) {\chpn{t}};
\end{tikzpicture}
\end{center}
while an outlet is defined as a simple pic called \chpp{outlet}:
\begin{chpcode}
	\pic at (0,0) {output};
\end{chpcode}
and yields a circle, in which centre there is the anchor, with an empty arrow
sketch:
\begin{center}
\begin{tikzpicture}
	\pic at (-2.5,0) {outlet};
	\pic at (0,0) {outlet};
	\measure{(-0.25,-0.45)}{(0.25,-0.45)}{\SI{5}{\mm}}
	\measure{(-0.45,0.25)}{(-0.45,-0.25)}{\SI{5}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (O) at (2.5,0) {outlet};
	\pic at (O-anchor) {anchor mark};
	\pic at (O-stream) {node mark};
	\pic at (O-bottom) {node mark};
	\pic at (O-right) {node mark};
	\pic at (O-top) {node mark};
	\node[left] at (O-stream) {\chpn{s}};
	\node[below] at (O-bottom) {\chpn{b}};
	\node[right] at (O-right) {\chpn{r}};
	\node[above] at (O-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

For both \chpp{inlet} and \chpp{outlet} pics, streams should be connected to
specific points. More precisely, inlet streams enter the scheme coming from the
tip of the arrow sketch, while outlet streams leave the scheme going into the
base of the arrow sketch. These special anchor points are marked as
\chpn{stream} nodes, which positions are indicated in the above drawings by means
of the abbreviated name \chpn{s}. Other nodes are defined to make the labelling
of inlets and outlets easier.

\subsection{Nozzles}

It is sometimes useful to highlight nozzles on units to indicate where a fluid
can go in and where it will come out, if there is a one way path to be followed.
Two simple pics are defined to accomplish this kind of need. An input nozzle is
defined as a simple pic called \chpp{input}:
\begin{chpcode}
	\pic at (0,0) {input};
\end{chpcode}
and yields an empty circle anchored in its centre:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {input};
	\measure{(-0.05,-0.25)}{(0.05,-0.25)}{\SI{1}{\mm}}
	\measure{(-0.25,0.05)}{(-0.25,-0.05)}{\SI{1}{\mm}}
	\pic at (-2.1,0) {input};
	\pic at (0,0) {anchor mark};
\end{tikzpicture}
\end{center}
while an output nozzle is defined as a simple pic called \chpp{output}:
\begin{chpcode}
	\pic at (0,0) {output};
\end{chpcode}
and yields a filled circle anchored in its centtr:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {output};
	\measure{(-0.05,-0.25)}{(0.05,-0.25)}{\SI{1}{\mm}}
	\measure{(-0.25,0.05)}{(-0.25,-0.05)}{\SI{1}{\mm}}
	\pic at (-2.1,0) {output};
	\pic at (0,0) {anchor mark};
\end{tikzpicture}
\end{center}
Both \chpp{input} and \chpp{output} pics are drawn with a \verb|thick| line, the
same thickness used for units.

Except for the \chpn{anchor} node, placed on the anchor points of the units,
both \chpp{input} and \chpp{output} have no extra coordinate nodes.

\subsection{Blocks}

Units introduced so far are useful to represent the \ac{PFD} of a chemical
process, but sometimes it is enough (or required) to represent a process using
a much more simpler \ac{BFD}, a diagram in which entire sections of the process
are gathered into a self-explicative block. In order to represent \ac{BFD}s,
only the \chps{main stream} style should be used for lines. Blocks can be
obtained by means of a special pic with arguments called \chpp{block}:
\begin{chpcode}
	\pic at (0,0) {block=reactor};
\end{chpcode}
which yields a rectangle anchored in its centre, with \verb|thick| line
thickness and containing the specification of the block:
\begin{center}
\begin{tikzpicture}
	\pic at (-5,0) {block=reactor};
	\pic at (0,0) {block=reactor};
	\measure{(-1.5,-0.95)}{(1.5,-0.95)}{\SI{30}{\mm}}
	\measure{(-1.7,0.75)}{(-1.7,-0.75)}{\SI{15}{\mm}}
	\pic at (0,0) {anchor mark};
	\pic (B) at (5,0) {block=reactor};
	\pic at (B-anchor) {anchor mark};
	\pic at (B-left) {node mark};
	\pic at (B-bottom) {node mark};
	\pic at (B-right) {node mark};
	\pic at (B-top) {node mark};
	\node[left] at (B-left) {\chpn{l}};
	\node[below] at (B-bottom) {\chpn{b}};
	\node[right] at (B-right) {\chpn{r}};
	\node[above] at (B-top) {\chpn{t}};
\end{tikzpicture}
\end{center}

The argument passed to the \chpp{block} pic is its specification, so it should
be a text string containing the name of the block. Text is, by default, written
in \verb|\footnotesize| and placed in the centre of the block.

It should be noticed that the definition of the \chpp{block} pic permits to
split the text passed as argument over multiple lines; use the \verb|\\| command
to brake lines. For example, the code:
\begin{chpcode}
	\pic at (0,0) {block=product\\purification};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {block=product\\purification};
\end{tikzpicture}
\end{center}
and the text is always aligned to the centre of the block.

Nodes defined for the block deserve an explanation. A \ac{BDF} is a very free
and general representation of a process, thus there are no specific positions
defined to connect streams. The nodes defined by \chemplants\ are the ones on the
``remarkable boundaries'' of the block, but a stream may be connected to any
point of the block. If one wants to connect a stream in a different place with
respect to the given nodes, coordinates have to be calculated by hand (and it not
so difficult with a rectangle).

\section{Transforming Units}

As told before, all of the units described so far are shown in their default
orientation. Anyway, the method of defining them as pics permits to apply all of
the pic actions available in \TikZ. Among them, the most useful ones are for
sure tranformations.

\subsubsection{Useful Transformations}

A transformation refers to the manipulation of the coordinates that describe the
drawing to obtain some specific effects, of example a rotation or a scaling.
These two are the main transformations which can be applied to units, they will
be briefly summarised in the following using as a model a
\chpp{heat exchanger biphase}.

\begin{itemize}
	\item To make the confrontation easier, the standard
		\chpp{heat exchanger biphase} is:
		\begin{center}
		\begin{tikzpicture}
			\pic at (0,0) {heat exchanger biphase};
		\end{tikzpicture}
		\end{center}
	\item A pic can be rotated using the \verb|rotate| transformation:
		\begin{chpcode}[gobble=12]
			\pic[rotate=90] at (0,0) {heat exchanger biphase};
		\end{chpcode}
		which yields:
		\begin{center}
		\begin{tikzpicture}
			\pic[rotate=90] at (0,0) {heat exchanger biphase};
		\end{tikzpicture}
		\end{center}
	\item A pic can be horizontally scaled using the \verb|xscale|
		transformation:
		\begin{chpcode}[gobble=12]
			\pic[xscale=1.5] at (0,0) {heat exchanger biphase};
		\end{chpcode}
		which yields:
		\begin{center}
		\begin{tikzpicture}
			\pic[xscale=1.5] at (0,0) {heat exchanger biphase};
		\end{tikzpicture}
		\end{center}
	\item A pic can be vertically scaled using the \verb|yscale|
		transformation:
		\begin{chpcode}[gobble=12]
			\pic[yscale=1.5] at (0,0) {heat exchanger biphase};
		\end{chpcode}
		which yields:
		\begin{center}
		\begin{tikzpicture}
			\pic[yscale=1.5] at (0,0) {heat exchanger biphase};
		\end{tikzpicture}
		\end{center}
	\item A pic can be scaled using the \verb|scale| transformation:
		\begin{chpcode}[gobble=12]
			\pic[scale=1.5] at (0,0) {heat exchanger biphase};
		\end{chpcode}
		which yields:
		\begin{center}
		\begin{tikzpicture}
			\pic[scale=1.5] at (0,0) {heat exchanger biphase};
		\end{tikzpicture}
		\end{center}
\end{itemize}

\subsubsection{Some Tricks}

Now some tricks based on transformations. Even though scaling a unit in a single
direction can appear useless, this transformation can be used in a clever way.
One example is ``transforming'' a tank in a wide horizontal basin with a code
like:
\begin{chpcode}
	\pic at (0,0) {tank};
	\pic[xscale=2.5, yscale=1.25, rotate=90] at (6.75,0) {tank};
\end{chpcode}
which yields:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {tank};
	\pic[xscale=2.5, yscale=1.25, rotate=90] at (6.75,0) {tank};
\end{tikzpicture}
\end{center}
(Note that, for some obscure reasons, the pic is firstly rotated and then
scaled).

Another useful trick based on the single direction scaling can be used to flip a
unit. If a condenser with the utility stream going from left to right is needed,
the \chpp{condenser} can be flipped horizontally scaling its coordinates by
a $- 1$ factor, thus inverting them. The code:
\begin{chpcode}
	\pic at (0,0) {condenser};
	\pic[xscale=-1] at (3.4,0) {condenser};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {condenser};
	\pic[xscale=-1] at (3.4,0) {condenser};
\end{tikzpicture}
\end{center}
This trick works with \verb|yscale| and \verb|scale| as well

Last, but not least, it should be noticed that sequential scaling factors are
cumulative. The code:
\begin{chpcode}
	\pic at (0,0) {centrifugal pump};
	\pic[scale=2] at (3.5,0) {centrifugal pump};
	\pic[scale=2, scale=2] at (8.5,0) {centrifugal pump};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {centrifugal pump};
	\pic[scale=2] at (3.5,0) {centrifugal pump};
	\pic[scale=2, scale=2] at (8.5,0) {centrifugal pump};
\end{tikzpicture}
\end{center}
in fact the pump in the middle has twice the dimensions of the one on the left,
while the pump on the right has twice the dimensions of the one in the middle,
which means four times the dimensions of the one on the left. This
characteristic of the scaling factors is useful for a feature of \chemplants\
which will be introduced soon. Note also that the thickness of the lines is not
scaled, which is the main advantage to scale the geometric description of a
figure rather than its vectorial representation.

It is important to remark that all of the above mentioned transformations affect
not just the pics drawings, but also the positions of the nodes defined into
them. Anyway, names never change, so careful evaluations have to be done when it
is required to transform a unit and to use its nodes at the same time.

Here are some examples of the most ``invasive'' transformations. Rotating a unit
rotates also its nodes:
\begin{center}
\begin{tikzpicture}
	\pic (T1) at (0,0) {tank};
	\pic at (T1-anchor) {anchor mark};
	\pic at (T1-left) {node mark};
	\pic at (T1-bottom left) {node mark};
	\pic at (T1-bottom) {node mark};
	\pic at (T1-bottom right) {node mark};
	\pic at (T1-right) {node mark};
	\pic at (T1-top right) {node mark};
	\pic at (T1-top) {node mark};
	\pic at (T1-top left) {node mark};
	\node[left] at (T1-left) {\chpn{l}};
	\node[left] at (T1-bottom left) {\chpn{bl}};
	\node[below] at (T1-bottom) {\chpn{b}};
	\node[right] at (T1-bottom right) {\chpn{br}};
	\node[right] at (T1-right) {\chpn{r}};
	\node[right] at (T1-top right) {\chpn{tr}};
	\node[above] at (T1-top) {\chpn{t}};
	\node[left] at (T1-top left) {\chpn{tl}};
	\pic[rotate=90] (T2) at (5.5,0) {tank};
	\pic at (T2-anchor) {anchor mark};
	\pic at (T2-left) {node mark};
	\pic at (T2-bottom left) {node mark};
	\pic at (T2-bottom) {node mark};
	\pic at (T2-bottom right) {node mark};
	\pic at (T2-right) {node mark};
	\pic at (T2-top right) {node mark};
	\pic at (T2-top) {node mark};
	\pic at (T2-top left) {node mark};
	\node[below] at (T2-left) {\chpn{l}};
	\node[below] at (T2-bottom left) {\chpn{bl}};
	\node[right] at (T2-bottom) {\chpn{b}};
	\node[above] at (T2-bottom right) {\chpn{br}};
	\node[above] at (T2-right) {\chpn{r}};
	\node[above] at (T2-top right) {\chpn{tr}};
	\node[left] at (T2-top) {\chpn{t}};
	\node[below] at (T2-top left) {\chpn{tl}};
\end{tikzpicture}
\end{center}
while flipping a unit, for example horizontally with \verb|xscale=-1|, flips
also its nodes:
\begin{center}
\begin{tikzpicture}
	\pic (B1) at (0,0) {boiler};
	\pic at (B1-anchor) {anchor mark};
	\pic at (B1-left) {node mark};
	\pic at (B1-bottom) {node mark};
	\pic at (B1-right) {node mark};
	\pic at (B1-top) {node mark};
	\pic at (B1-pipes inlet) {node mark};
	\pic at (B1-pipes outlet) {node mark};
	\node[left] at (B1-left) {\chpn{l}};
	\node[below] at (B1-bottom) {\chpn{b}};
	\node[right] at (B1-right) {\chpn{r}};
	\node[above] at (B1-top) {\chpn{t}};
	\node[left] at (B1-pipes inlet) {\chpn{pi}};
	\node[right] at (B1-pipes outlet) {\chpn{po}};
	\pic[xscale=-1] (B2) at (3.4,0) {boiler};
	\pic at (B2-anchor) {anchor mark};
	\pic at (B2-left) {node mark};
	\pic at (B2-bottom) {node mark};
	\pic at (B2-right) {node mark};
	\pic at (B2-top) {node mark};
	\pic at (B2-pipes inlet) {node mark};
	\pic at (B2-pipes outlet) {node mark};
	\node[right] at (B2-left) {\chpn{l}};
	\node[below] at (B2-bottom) {\chpn{b}};
	\node[left] at (B2-right) {\chpn{r}};
	\node[above] at (B2-top) {\chpn{t}};
	\node[right] at (B2-pipes inlet) {\chpn{pi}};
	\node[left] at (B2-pipes outlet) {\chpn{po}};
\end{tikzpicture}
\end{center}

Finally, some special considerations concerning associative pics used to give
flexible representation of reactors. It has been specified that the
\chpp{tank reactor} is analogue to the \chpp{tank} and that the scale factor to
``convert'' the first into the second is \num{1.25}. This is useful, for
example, if one has to represent a stirrer within a tank. The code:
\begin{chpcode}
	\pic (T) at (0,0) {tank};
	\pic[scale=1.25] at (T-anchor) {stirrer};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic (T) at (0,0) {tank};
	\pic[scale=1.25] at (T-anchor) {stirrer};
\end{tikzpicture}
\end{center}
This is just an example, but this trick can be used to associate any two pics
one wants to bond.

The \chpp{stirrer} can be subject to another transformation not mentioned yet. By
default, the pic is slanted to avoid that the interception point between the
shaft of the stirrer and the dome of the tank reactor falls on the \chpn{top}
node of the tank. If one does not like the slanted shape of the \chpp{stirrer}
and prefers to have a straight stirrer, the \verb|xslant| transformation can be
used. The code:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic[xslant=-0.285, xshift=-2.04] at (R-anchor) {stirrer};
\end{chpcode}
yields:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic[xslant=-0.285, xshift=-2.04] at (R-anchor) {stirrer};
\end{tikzpicture}
\end{center}
As it can be seen, the transformation is not that straightforward, in fact also a
little of shift in the $x$ direction is needed.

Finally, the mirroring trick based on the \verb|xscale=-1| transformation can be
used to mirror both the \chpp{sprayer} and the \chpp{bubbler} to connect
them to the right side of the \chpp{tank reactor} rather than to its left.
Taking as an example a jacketed sparger reactor, if one wants the gas to enter
from the right side, the code:
\begin{chpcode}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {jacket};
	\pic at (R-anchor) {stirrer};
	\pic[xscale=-1] at (R-bottom right) {bubbler};
\end{chpcode}
will do the job:
\begin{center}
\begin{tikzpicture}
	\pic (R) at (0,0) {tank reactor};
	\pic at (R-anchor) {jacket};
	\pic at (R-anchor) {stirrer};
	\pic[xscale=-1] at (R-bottom right) {bubbler};
\end{tikzpicture}
\end{center}

\section{Customisation}

Some of the  graphical aspects used by the \chemplants\ package can be
customised at will of the user. Of course, symbols of the units should not be
changed, but there could be some precise necessities that makes the standard
\chemplants\ parameters unsuitable to accomplish requirements. A case could be
the need to draw the scheme of a big process: standard dimensione of units may
make the whole diagram too large to fit it into a single sheet. Another case is
when one is not satisfied by the default unit or streams line thicknesses and
would like to change them.

To solve issues like these, \chemplants\ provides a rudimental mechanism to set
a number of graphical features of streams and units. In the following, the
customisable parameters are described.

Styles for streams can be tuned setting arrow tips and line thickness; the
former is common to all of the streams and the latter is specific to each stream
style.
\begin{itemize}
	\item Arrow tip used by \chps{main stream}, \chps{secondary stream} and
		\chps{utility stream} styles can be set using the command:
		\begin{chpcode}[gobble=12]
			\setchpstreamtip{£!\meta{arrow tip}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ arrow tip; default
		value is \verb|stealth|.
	\item Line thickness used by the \chps{main stream} style can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchpmainstreamthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|semithick|.
	\item Line thickness used by the \chps{secondary stream} style can be set
		using the command:
		\begin{chpcode}[gobble=12]
			\setchpsecondarystreamthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|thin|.
	\item Line thickness used by the \chps{utility stream} style can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchputilitystreamthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|very thin|.
\end{itemize}

Styles for units can be tuned setting line thickness and unit base dimension.
The latter is extremely important because permits to scale all of the units by a
given scale factor, thus enabling the overall scaling by means of a single
command. Units can furthermore be scaled individually witusing the \verb|scale|
transformation thanks to the cumulative behaviour of scaling factors.
\begin{itemize}
	\item Line thickness used by all of the units defined as pics can be set
		using the command:
		\begin{chpcode}[gobble=12]
			\setchpunitthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|thick|.
	\item Scale factor to be applied to all of the units defined as pics can be
		set using the command:
		\begin{chpcode}[gobble=12]
			\setchpunitscale{£!\meta{scale factor}!£}
		\end{chpcode}
		which requires as argument a numerical value to be used as scale factor
		and that will multiply every dimension of all of the units; default
		value is \verb|1|.
\end{itemize}

Styles for control instrumentation can be tuned setting signal style line
thickness, instruments pics line thickness, font dimension and base dimension.
This last feature works exactly like the one of units, but it is a different
parameter in order to allow independent scaling of units and instruments.
\begin{itemize}
	\item Line thickness used by the \chps{signal} style can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchpsignalthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|very thin|.
	\item Line thickness used by all of the instrumentation defined as pics can
		be set using the command:
		\begin{chpcode}[gobble=12]
			\setchpinstrumentthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|thin|.
	\item Scale factor to be applied to all of the instrumentation defined as
		pics can be set using the command:
		\begin{chpcode}[gobble=12]
			\setchpinstrumentscale{£!\meta{scale factor}!£}
		\end{chpcode}
		which requires as argument a numerical value to be used as scale factor
		and that will multiply every dimension of all of the instrumentation;
		default value is \verb|1|.
	\item Font size to be used within all of the instrumentation defined as
		pics can be set using the command:
		\begin{chpcode}[gobble=12]
			\setchpinstrumentfontsize{£!\meta{font size}!£}
		\end{chpcode}
		which requires as argument a font size attribute understood by \LaTeX;
		default value is \verb|\footnotesize|.
\end{itemize}

Since parameters of both units and instrumentation have been introduced, it is
possible to better specify how these features influence the \chpp{actuator}
pic, a sort of hybrid between a unit and an instrument. As told before,
\chpp{actuator} is sensible to instruments line thickness, but not to their
dimensions, in fact it is defined in relative terms to the unit dimensions.
This means that \verb|\setchpunitscale| will change the scale of the
\chpp{actuator}, while \verb|\setchpinstrumentthickness| will change its line
thickness.

Styles for hidden streams and components can be tuned setting line patterns for
both styles.
\begin{itemize}
	\item Line pattern used by the \chps{hidden stream} style can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchphiddenstreamstyle{£!\meta{line pattern}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line pattern; default
		value is \verb|dashed|.
	\item Line pattern used by the \chps{hidden component} style can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchphiddencomponentstyle{£!\meta{line pattern}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line pattern; default
		value is \verb|densely dotted|.
\end{itemize}


Styles for the \verb|\measure| command can be tuned setting line color, tips and
thickness, plus font size of the measure value.
\begin{itemize}
	\item Line color used by the \verb|\measure| command can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchpmeasurecolor{£!\meta{line color}!£}
		\end{chpcode}
		which requires as argument whichever expression can be used to indicate
		a color in \LaTeX; default value is \verb|gray|.
	\item Line thickness used by the \verb|\measure| command can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchpmeasurethickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|thin|.
	\item Line tip used by the \verb|\measure| command can be set using the
		command:
		\begin{chpcode}[gobble=12]
			\setchpmeasuretip{£!\meta{line tip}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ arrow tip; default
		value is \verb!|!.
	\item Font size to be used within the \verb|\measure| command can be set
		using the command:
		\begin{chpcode}[gobble=12]
			\setchpmeasurefontsize{£!\meta{font size}!£}
		\end{chpcode}
		which requires as argument a font size attribute understood by \LaTeX;
		default value is \verb|\footnotesize|.
\end{itemize}

For what concerns the \verb|\measure| line tip, it should be noticed that there
is no possibility to set different tips for the two extremes of the line.
Using the name of an arrow tip will yield the same tip pointing out on both
sides. For example, after:
\begin{chpcode}
	\setchpmeasuretip{stealth}
\end{chpcode}
\setchpmeasuretip{stealth}
the \verb|\measure| will appear again as:
\begin{center}
\begin{tikzpicture}
	\measure{(0,0)}{(2,0)}{\SI{2}{\cm}}
\end{tikzpicture}
\end{center}

Although rudimental, the customisation mechanism of \chemplants\ offers a very
useful opportunity. After giving a new:
\begin{chpcode}
	\setchpmeasuretip{|}
\end{chpcode}
\setchpmeasuretip{|}
the \verb|\measure| will appear again as:
\begin{center}
\begin{tikzpicture}
	\measure{(0,0)}{(2,0)}{\SI{2}{\cm}}
\end{tikzpicture}
\end{center}
and this means that all of the setting commands listed above act like
declarations and have local validity, so they can be changed everywhere into the
document (even multiple times inside the same \verb|tikzpicture| environment).
This is particularly useful to solve the problem introduced above as example,
the possibly too large base dimension of units in the case of large diagrams. One
can simply scale down all of the units before the scheme and restore the default
unit scale after that. An example. After giving:
\begin{chpcode}
	\setchpunitscale{0.5}
\end{chpcode}
\setchpunitscale{0.5}
all of the units will be half their default sizes:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {centrifugal pump};
	\pic at (3,0) {heat exchanger};
	\pic at (6,0) {column=packed};
\end{tikzpicture}
\end{center}
and after a new:
\begin{chpcode}
	\setchpunitscale{1}
\end{chpcode}
\setchpunitscale{1}
all of the units will be restored to their default dimensions:
\begin{center}
\begin{tikzpicture}
	\pic at (0,0) {centrifugal pump};
	\pic at (3,0) {heat exchanger};
	\pic at (6,0) {column=packed};
\end{tikzpicture}
\end{center}

Styles for blocks can be tuned setting line thickness, font dimension and base
dimension. Also this last feature, like the scale factor for instruments,
regards blocks only and it is independent of the units scale factor.
\begin{itemize}
	\item Line thickness used by the \chpp{block} pic can be set using the
		command:
		\begin{chpcode}[gobble=12]
			\setchpblockthickness{£!\meta{line thickness}!£}
		\end{chpcode}
		which requires as argument the name of a \TikZ\ line thickness; default
		value is \verb|thick|.
	\item Scale factor to be applied to the \chpp{block} pic can be set using
		the command:
		\begin{chpcode}[gobble=12]
			\setchpblockscale{£!\meta{scale factor}!£}
		\end{chpcode}
		which requires as argument a numerical value to be used as scale factor
		and that will multiply every dimension of the block; default value is
		\verb|1|.
	\item Font size to be used within the \chpp{block} pic can be set using the
		command:
		\begin{chpcode}[gobble=12]
			\setchpinstrumentfontsize{£!\meta{font size}!£}
		\end{chpcode}
		which requires as argument a font size attribute understood by \LaTeX;
		default value is \verb|\footnotesize|.
\end{itemize}

A last remark: the listed commands permit to easily tune a number of graphical
parameters in order to satisfy different necessities. Demanding users who have
a good knowledge of the \TikZ\ package can anyway customise even more the styles
used by \chemplants\ looking for the code of the package and modifying the
``internal styles'' (the ones not meant to be used directly by the ``common''
user and prefixed by \verb|chp|) as they like, but at their own risk.

\section{Examples}

\tikzset{every node/.style={}}

Some ``complete'' examples will be presented in order to give a better view
of how the \chemplants\ package works. Both codes and resulting diagrams will be
shown.

\subsubsection{Some Remarks on the Drawing Procedure}

If some users want to try and replicate (copy and paste) the examples, they are
free to do that. In this case they will find useful to add some additional macros
to their preambles, some commands I defined during time and that I use
extensively:
\begin{chpcode}
	\renewcommand{\vec}[1]{\boldsymbol{#1}}	% vector notation
	\newcommand{\flow}[1]{\dot{#1}}			% flow-rate notation
\end{chpcode}
and which I defined only for easiness of change. Moreover, one of the examples
will use the basic system to parse chemistry notation of the \chemformula\
package (that, by the way, is an excellent suite for documents dealing with
chemistry). Finally, two macros defined by the Italian option passed to the
\babel\ package:
\begin{chpcode}
	\providecommand*{\ap}[1]{%				% upright superscripts
		\textormath{%
			\textsuperscript{#1}%
		}%
		{%
			^{\mathrm{#1}}%
		}%
	}
	\providecommand*{\ped}[1]{%				% upright subscripts
		\textormath{%
			$_{\mbox{\fontsize\sf@size\z@\selectfont#1}}$%
		}%
		{%
			_\mathrm{#1}%
		}%
	}
\end{chpcode}

Before moving on to the real examples it is useful to recall the two main
approaches one can follow to draw the scheme of a chemical process. As a general
rule, it is almost always better to plan the scheme before starting its real
drawing, where ``to plan'' means to decide where to put units, how to connect
them through streams, where signal lines should pass on the scheme, how much
space is required between units and so on. This permits to avoid to reach the end
of the scheme and to realize only too late that it is too large to fit on the
page, when spacing units a little less would have solved the problem.

Once the plan has been done, it is possible to move to the real construction of
the drawing, but here it is necessary to choose the approach:
\begin{itemize}
	\item building the scheme thinking linearly (following the streams) and
		calculating by hand the coordinates of the points in which units will
		be placed and in which streams will be connected;
	\item building the scheme thinking in a more global way, placing units first
		and then using their coordinates nodes to connect them through streams
		and signals.
\end{itemize}
As told before, the second way requires a little more practice, but the
resulting scheme is much more easy to obtain and flexible to modify (even though
the code can be slightly more complex to read). Anyway, users are free to choose
the approach they like the most, being ready to accept all of its implications.

In the following examples, both approaches will be shown, but not for the
same code: some of the examples will be structured calculating coordinates by
hand, while the remaining will use nodes. (Readers should use care in deciding to
follow strictly the drawing methods which will be shown in the following codes,
in fact examples are mainly the schemes I had to represent. It is likely that
better ways to draw a scheme can be found.)

\subsubsection{Hand Calculation of Coordinates}

\begin{chpcode}[caption=Scheme of a flash process.,
	label=lst:flash]
	\begin{tikzpicture}
		\draw[main stream] (-0.5,0) -- (1.5,0);
		\node[above right] at (-0.5,0) {$\flow{n}\ap{F}, \vec{z}$};
		\pic at (1.5,0) {centrifugal pump};
		\draw[main stream] (1.5,0.4) -- (3,0.4);
		\pic at (3.5,0.4) {heat exchanger};
		\draw[utility stream] (3.5,1.4) -- (3.5,0.9);
		\node[above left] at (3.5,0.9) {$\flow{Q}$};
		\draw[utility stream] (3.5,-0.1) -- (3.5,-0.6);
		\draw[main stream] (4,0.4) -- (4.8,0.4);
		\pic at (5,0.4) {lamination valve};
		\draw[main stream] (5.2,0.4) -- (6,0.4);
		\node[above left] at (6,0.4) {$P$};
		\pic at (6.8,0.4) {gas-liquid separator};
		\draw[main stream] (6.8,1.9) |- (9,2.5);
		\node[above left] at (9,2.5) {$\flow{n}\ap{V}, \vec{y}$};
		\draw[main stream] (6.8,-1.1) |- (9,-1.7);
		\node[below left] at (9,-1.7) {$\flow{n}\ap{L}, \vec{x}$};
	\end{tikzpicture}
\end{chpcode}

\begin{figure}
\centering
\begin{tikzpicture}
	\draw[main stream] (-0.5,0) -- (1.5,0);
	\node[above right] at (-0.5,0) {$\flow{n}\ap{F}, \vec{z}$};
	\pic at (1.5,0) {centrifugal pump};
	\draw[main stream] (1.5,0.4) -- (3,0.4);
	\pic at (3.5,0.4) {heat exchanger};
	\draw[utility stream] (3.5,1.4) -- (3.5,0.9);
	\node[above left] at (3.5,0.9) {$\flow{Q}$};
	\draw[utility stream] (3.5,-0.1) -- (3.5,-0.6);
	\draw[main stream] (4,0.4) -- (4.8,0.4);
	\pic at (5,0.4) {lamination valve};
	\draw[main stream] (5.2,0.4) -- (6,0.4);
	\node[above left] at (6,0.4) {$P$};
	\pic at (6.8,0.4) {gas-liquid separator};
	\draw[main stream] (6.8,1.9) |- (9,2.5);
	\node[above left] at (9,2.5) {$\flow{n}\ap{V}, \vec{y}$};
	\draw[main stream] (6.8,-1.1) |- (9,-1.7);
	\node[below left] at (9,-1.7) {$\flow{n}\ap{L}, \vec{x}$};
\end{tikzpicture}
\caption{Scheme of a flash process produced by the \lref{lst:flash} code.}
\label{fig:flash}
\end{figure}

\begin{chpcode}[caption=Scheme of a countercurrent multiple flash process.,
	label=lst:mflash]
	\begin{tikzpicture}
		\draw[main stream] (0.5,0) -- (2,0);
		\node[above right] at (0.5,0)
			{$\flow{n}\ap{F}, \vec{z}\ap{F}$};
		\pic at (3,0) {tank};
		\draw[main stream] (3,1.5) |- (5,2);
		\node[above] at (3,2)
			{$\flow{n}\ap{V_\mathit{j + 1}},
			\vec{y}\ap{V_\mathit{j + 1}}$};
		\pic at (6,3) {tank};
		\draw[main stream] (6,4.5) |- (8.333,5) |- (9,2);
		\node[above] at (6,5)
			{$\flow{n}\ap{V_\mathit{j}},
			\vec{y}\ap{V_\mathit{j}}$};
		\pic at (10,3) {tank};
		\draw[main stream] (10,4.5) |- (12.3,5);
		\pic[rotate=180] at (12.5,5) {valve triple=main};
		\draw[main stream] (12.7,5) -- (14,5);
		\node[above left] at (14,5)
		{$\flow{n}\ap{D}, \vec{y}\ap{D}$};
		\draw[main stream] (12.5,4.8) -- (12.5,4);
		\pic[rotate=-90] at (12.5,3.5) {heat exchanger};
		\draw[utility stream] (11.5,3.5) -- (12,3.5);
		\draw[utility stream] (13,3.5) -- (13.5,3.5);
		\node[above] at (13.5,3.5) {$\flow{Q}\ped{C}$};
		\draw[main stream] (12.5,3) |- (11,2);
		\draw[main stream] (10,1.5) |- (7.688,1) |- (7,4);
		\node[below] at (10,1)
		{$\flow{n}\ap{L_1}, \vec{x}\ap{L_1}$};
		\draw[main stream] (6,1.5) |- (4,1);
		\node[below] at (6,1)
			{$\flow{n}\ap{L_\mathit{j}},
			\vec{x}\ap{L_\mathit{j}}$};
		\draw[main stream] (3,-1.5) |- (5,-2);
		\node[below] at (3,-2)
			{$\flow{n}\ap{L_\mathit{k - 1}},
			\vec{x}\ap{L_\mathit{k - 1}}$};
		\pic at (6,-3) {tank};
		\draw[main stream] (6,-4.5) |- (8.333,-5) |- (9,-2);
		\node[below] at (6,-5)
			{$\flow{n}\ap{L_\mathit{k}},
			\vec{x}\ap{L_\mathit{k}}$};
		\pic at (10,-3) {tank};
		\draw[main stream] (10,-4.5) |- (12.3,-5);
		\pic at (12.5,-5) {valve triple=main};
		\draw[main stream] (12.7,-5) -- (14,-5);
		\node[below left] at (14,-5)
			{$\flow{n}\ap{R}, \vec{x}\ap{R}$};
		\draw[main stream] (12.5,-4.8) -- (12.5,-4);
		\pic[rotate=-90] at (12.5,-3.5) {heat exchanger};
		\draw[utility stream] (13.5,-3.5) -- (13,-3.5);
		\draw[utility stream] (12,-3.5) -- (11.5,-3.5);
		\node[below] at (13.5,-3.5) {$\flow{Q}\ped{B}$};
		\draw[main stream] (12.5,-3) |- (11,-2);
		\node[above] at (6,-1)
			{$\flow{n}\ap{V_\mathit{k}},
			\vec{y}\ap{V_\mathit{k}}$};
		\draw[main stream] (10,-1.5) |- (7.688,-1) |- (7,-4);
		\node[above] at (10,-1)
			{$\flow{n}\ap{V_{\mathit{N\ped{T}}}},
			\vec{y}\ap{V_{\mathit{N\ped{T}}}}$};
		\draw[main stream] (6,-1.5) |- (4,-1);
	\end{tikzpicture}
\end{chpcode}

\begin{figure}
\centering
\begin{tikzpicture}
	\draw[main stream] (0.5,0) -- (2,0);
	\node[above right] at (0.5,0)
		{$\flow{n}\ap{F}, \vec{z}\ap{F}$};
	\pic at (3,0) {tank};
	\draw[main stream] (3,1.5) |- (5,2);
	\node[above] at (3,2)
		{$\flow{n}\ap{V_\mathit{j + 1}},
		\vec{y}\ap{V_\mathit{j + 1}}$};
	\pic at (6,3) {tank};
	\draw[main stream] (6,4.5) |- (8.333,5) |- (9,2);
	\node[above] at (6,5)
		{$\flow{n}\ap{V_\mathit{j}},
		\vec{y}\ap{V_\mathit{j}}$};
	\pic at (10,3) {tank};
	\draw[main stream] (10,4.5) |- (12.3,5);
	\pic[rotate=180] at (12.5,5) {valve triple=main};
	\draw[main stream] (12.7,5) -- (14,5);
	\node[above left] at (14,5)
	{$\flow{n}\ap{D}, \vec{y}\ap{D}$};
	\draw[main stream] (12.5,4.8) -- (12.5,4);
	\pic[rotate=-90] at (12.5,3.5) {heat exchanger};
	\draw[utility stream] (11.5,3.5) -- (12,3.5);
	\draw[utility stream] (13,3.5) -- (13.5,3.5);
	\node[above] at (13.5,3.5) {$\flow{Q}\ped{C}$};
	\draw[main stream] (12.5,3) |- (11,2);
	\draw[main stream] (10,1.5) |- (7.688,1) |- (7,4);
	\node[below] at (10,1)
	{$\flow{n}\ap{L_1}, \vec{x}\ap{L_1}$};
	\draw[main stream] (6,1.5) |- (4,1);
	\node[below] at (6,1)
		{$\flow{n}\ap{L_\mathit{j}},
		\vec{x}\ap{L_\mathit{j}}$};
	\draw[main stream] (3,-1.5) |- (5,-2);
	\node[below] at (3,-2)
		{$\flow{n}\ap{L_\mathit{k - 1}},
		\vec{x}\ap{L_\mathit{k - 1}}$};
	\pic at (6,-3) {tank};
	\draw[main stream] (6,-4.5) |- (8.333,-5) |- (9,-2);
	\node[below] at (6,-5)
		{$\flow{n}\ap{L_\mathit{k}},
		\vec{x}\ap{L_\mathit{k}}$};
	\pic at (10,-3) {tank};
	\draw[main stream] (10,-4.5) |- (12.3,-5);
	\pic at (12.5,-5) {valve triple=main};
	\draw[main stream] (12.7,-5) -- (14,-5);
	\node[below left] at (14,-5)
		{$\flow{n}\ap{R}, \vec{x}\ap{R}$};
	\draw[main stream] (12.5,-4.8) -- (12.5,-4);
	\pic[rotate=-90] at (12.5,-3.5) {heat exchanger};
	\draw[utility stream] (13.5,-3.5) -- (13,-3.5);
	\draw[utility stream] (12,-3.5) -- (11.5,-3.5);
	\node[below] at (13.5,-3.5) {$\flow{Q}\ped{B}$};
	\draw[main stream] (12.5,-3) |- (11,-2);
	\node[above] at (6,-1)
		{$\flow{n}\ap{V_\mathit{k}},
		\vec{y}\ap{V_\mathit{k}}$};
	\draw[main stream] (10,-1.5) |- (7.688,-1) |- (7,-4);
	\node[above] at (10,-1)
		{$\flow{n}\ap{V_{\mathit{N\ped{T}}}},
		\vec{y}\ap{V_{\mathit{N\ped{T}}}}$};
	\draw[main stream] (6,-1.5) |- (4,-1);
\end{tikzpicture}
\caption{Scheme of a countercurrent multiple flash process produced by the
	\lref{lst:mflash} code.}
\label{fig:mflash}
\end{figure}

\begin{chpcode}[caption=Scheme of a continuous distillation process.,
	label=lst:distil]
	\begin{tikzpicture}
		\draw [main stream] (-2,0) -- (-0.5,0);
		\node[above right] at (-2,0)
			{$\flow{n}\ap{F}, \vec{z}\ap{F}$};
		\pic at (0,0) {column=trayed};
		\pic at (1.5,3.5) {condenser};
		\draw [main stream] (0,3) |- (1,3.5);
		\node [above right] at (0,3.5) {$\flow{n}\ap{V}$};
		\draw [main stream] (1.5,4) |- (3,4.5);
		\node[above left] at (3,4.5)
			{$\flow{n}\ap{D}, \vec{y}\ap{D}$};
		\draw [secondary stream] (1.5,3) |- (0.5,2.6);
		\node [below left] at (1.5,2.6) {$\flow{n}\ap{L}$};
		\pic at (1.5,-3.5) {boiler};
		\draw [main stream] (0,-3) |- (1,-3.5);
		\node [below right] at (0,-3.5) {$\flow{n}\ap{L'}$};
		\draw [main stream] (1.5,-4) |- (3,-4.5);
		\node[below left] at (3,-4.5)
			{$\flow{n}\ap{R}, \vec{x}\ap{R}$};
		\draw [secondary stream] (1.5,-3) |- (0.5,-2.6);
		\node [above left] at (1.5,-2.6) {$\flow{n}\ap{V'}$};
	\end{tikzpicture}
\end{chpcode}

\begin{figure}
\centering
\begin{tikzpicture}
	\draw [main stream] (-2,0) -- (-0.5,0);
	\node[above right] at (-2,0)
		{$\flow{n}\ap{F}, \vec{z}\ap{F}$};
	\pic at (0,0) {column=trayed};
	\pic at (1.5,3.5) {condenser};
	\draw [main stream] (0,3) |- (1,3.5);
	\node [above right] at (0,3.5) {$\flow{n}\ap{V}$};
	\draw [main stream] (1.5,4) |- (3,4.5);
	\node[above left] at (3,4.5)
		{$\flow{n}\ap{D}, \vec{y}\ap{D}$};
	\draw [secondary stream] (1.5,3) |- (0.5,2.6);
	\node [below left] at (1.5,2.6) {$\flow{n}\ap{L}$};
	\pic at (1.5,-3.5) {boiler};
	\draw [main stream] (0,-3) |- (1,-3.5);
	\node [below right] at (0,-3.5) {$\flow{n}\ap{L'}$};
	\draw [main stream] (1.5,-4) |- (3,-4.5);
	\node[below left] at (3,-4.5)
		{$\flow{n}\ap{R}, \vec{x}\ap{R}$};
	\draw [secondary stream] (1.5,-3) |- (0.5,-2.6);
	\node [above left] at (1.5,-2.6) {$\flow{n}\ap{V'}$};
\end{tikzpicture}
\caption{Scheme of a continuous distillation process produced by the
	\lref{lst:distil} code.}
\label{fig:distil}
\end{figure}

The following is the very first usage I did of \chemplants\ (when it was just a
foggy idea), and, probably, still the most complex one. In this scheme, I had
the need to represent sensors on valves, so I used the \chpp{actuator} pic to
this aim.

\begin{chpcode}[caption=Complete \ac{PFD} of a vanadium redox flow battery pilot
plant., label=lst:vrfbis]
	\begin{tikzpicture}[font=\footnotesize]
	% Positive Electrolyte
		% tank outlet
		\pic at (3,3.5) {tank};
		\node[align=center] at (3,4) {Positive\\ Electrolyte};
		\node at (3,3) {\ch{VO2+}/\ch{VO^2+}};
		\draw[main stream] (3,2) -- (3,1.7);
		\pic[rotate=90] at (3,1.5) {valve triple=main};
		\draw[main stream] (3,1.3) |- (2,0.6);
		\pic at (2,0.6) {centrifugal pump};
		\draw[main stream] (2,1) -| (1,1.3);
		\pic[rotate=270] at (1,1.5) {valve triple=main};
		% pump recycle
		\draw[secondary stream] (1.2,1.5) -- (1.8,1.5);
		\pic at (2,1.5) {valve=secondary};
		\node[above] at (2,1.5) {$V\ped{P}^+$};
		\draw[secondary stream] (2.2,1.5) -- (2.8,1.5);
		% battery stream
		\draw[main stream] (1,1.7) -- (1,3);
		\pic at (1,3.5) {instrument=FM};
		\draw[main stream] (1,4) -- (1,5.3);
		\draw[signal] (0.5,3.5) -| (0.25,2.5);
		\pic at (0.25,2) {controller=PID};
		\draw[signal] (0.25,1.5) |- (1.6,0.6);
		\pic[rotate=90] at (1,5.5) {valve=main};
		\node[right] at (1,5.5) {$V_1^+$};
		\draw[main stream] (1, 5.7) |- (2.8,6.9);
		\pic[rotate=90] at (3,6.9) {valve triple=main};
		\draw[main stream] (3,7.1) |- (6.2,7.5);
		\pic at (4,8.5) {instrument=TM};
		\draw[short signal] (4,8) -- (4,7.5);
		% battery bypass
		\draw[secondary stream] (3,6.7) -- (3,6.4);
		\pic[rotate=270] at  (3,6.2) {valve=secondary};
		\pic[rotate=270] at  (3,6.2) {actuator};
		\node[left] at (3,6.2) {$V\ped{B}^+$};
		\draw[secondary stream] (3,6) -- (3,5.7);
		% battery outlet
		\draw[main stream] (8,7) |- (5.2,5.5);
		\pic at (6,4.5) {instrument=TM};
		\draw [short signal] (6,5) -- (6,5.5);
		\pic at (5,5.5) {valve=main};
		\pic at (5,5.5) {actuator};
		\node[below] at (5,5.5) {$V_2^+$};
		\draw[main stream] (4.8,5.5) -- (3.2,5.5);
		\pic at (5,6.5) {instrument=PM};
		\draw[short signal] (5,7) -- (5,7.5);
		\draw[signal] (5.5,6.5) -- (7,6.5);
		% tank inlet
		\pic[rotate=270] at (3,5.5) {valve triple=main};
		\draw[main stream] (3,5.3) -- (3,5);
	% Negative Electrolyte
		% tank outlet
		\pic at (12,3.5) {tank};
		\node[align=center] at (12,4) {Negative\\ Electrolyte};
		\node at (12,3) {\ch{V^3+}/\ch{V^2+}};
		\draw[main stream] (12,2) -- (12,1.7);
		\pic[rotate=270] at (12,1.5) {valve triple=main};
		\draw[main stream] (12,1.3) |- (13,0.6);
		\pic at (13,0.6) {centrifugal pump};
		\draw[main stream] (13,1) -| (14,1.3);
		\pic[rotate=90] at (14,1.5) {valve triple=main};
		% pump recycle
		\draw[secondary stream] (13.8,1.5) -- (13.2,1.5);
		\pic at (13,1.5) {valve=secondary};
		\node[above] at (13,1.5) {$V\ped{P}^-$};
		\draw[secondary stream] (12.8,1.5) -- (12.2,1.5);
		% battery stream
		\draw[main stream] (14,1.7) -- (14,3);
		\pic at (14,3.5) {instrument=FM};
		\draw[main stream] (14,4) -- (14,5.3);
		\draw[signal] (14.5,3.5) -| (14.75,2.5);
		\pic at (14.75,2) {controller=PID};
		\draw[signal] (14.75,1.5) |- (13.4,0.6);
		\pic[rotate=90] at (14,5.5) {valve=main};
		\node[left] at (14,5.5) {$V_1^-$};
		\draw[main stream] (14, 5.7) |- (12.2,6.9);
		\pic[rotate=270] at (12,6.9) {valve triple=main};
		\draw[main stream] (12,7.1) |- (8.8,7.5);
		\pic at (11,8.5) {instrument=TM};
		\draw[short signal] (11,8) -- (11,7.5);
		% battery bypass
		\draw[secondary stream] (12,6.7) -- (12,6.4);
		\pic[rotate=90] at  (12,6.2) {valve=secondary};
		\pic[rotate=90] at  (12,6.2) {actuator};
		\node[right] at (12,6.2) {$V\ped{B}^-$};
		\draw[secondary stream] (12,6) -- (12,5.7);
		% battery outlet
		\draw[main stream] (7,7) |- (8.5,5) |- (9.8,5.5);
		\pic at (9,4.5) {instrument=TM};
		\draw[short signal] (9,5) -- (9,5.5);
		\pic at (10,5.5) {valve=main};
		\pic at (10,5.5) {actuator};
		\node[below] at (10,5.5) {$V_2^-$};
		\draw[main stream] (10.2,5.5) -- (11.8,5.5);
		\pic at (10,6.5) {instrument=PM};
		\draw[short signal] (10,7) -- (10,7.5);
		\draw[signal] (9.5,6.5) -- (8,6.5);
		% tank inlet
		\pic[rotate=90] at (12,5.5) {valve triple=main};
		\draw[main stream] (12,5.3) -- (12,5);
	% Battery
		% block structure
		\draw[thick] (6,7) rectangle (9, 9.6);
		\node[above] at (7.5,9.6) {Battery};
		% positive main stream
		\pic at (6.2,7.5) {input};
		\draw[main stream, hidden stream]
			(6.2,7.55) |- (7.8,9.2) |- (7.95,8.5);
		\pic at (8,8.5) {output};
		\draw[main stream] (8,8.5) -- (8.3,8.5);
		\pic[rotate=90] at (8.5,8.5) {valve triple=main};
		\pic[rotate=270] at (8.5,8.5) {actuator};
		\draw[main stream] (8.5,8.3) |- (8,8);
		\pic at (8,8) {input};
		\draw[main stream, hidden stream] (8,7.95) -- (8,7.7);
		\pic[rotate=90, hidden component] at (8,7.5)
			{valve triple=main};
		\draw[main stream, hidden stream] (8,7.3)  -- (8,7);
		% negative main stream
		\pic at (8.8,7.5) {input};
		\draw[main stream, hidden stream]
			(8.8,7.55) |- (7.2,9.4) |- (7.05,8.5);
		\pic at (7,8.5) {output};
		\draw[main stream] (7,8.5) -- (6.7,8.5);
		\pic[rotate=270] at (6.5,8.5) {valve triple=main};
		\pic[rotate=90] at (6.5,8.5) {actuator};
		\draw[main stream] (6.5,8.3) |- (7,8);
		\pic at (7,8) {input};
		\draw[main stream, hidden stream] (7,7.95) -- (7,7.7);
		\pic[rotate=270, hidden component] at (7,7.5)
			{valve triple=main};
		\draw[main stream, hidden stream] (7,7.3)  -- (7,7);
		% positive to negative remixing
		\draw[secondary stream, color=red] (8.5,8.7) |- (8,9);
		\pic at (8,9) {input};
		\draw[secondary stream, hidden stream, color=red]
			(7.95,9) -| (7.4,7.5) -- (7.2,7.5);
		% negative to positive remixing
		\draw[secondary stream, color=red] (6.5,8.7) |- (7,9);
		\pic at (7,9) {input};
		\draw[secondary stream, hidden stream, color=red]
			(7,8.95) |- (7.6,8.75) |- (7.8,7.5);
	% Tanks Connection
		\draw (4,2.585) -- (7.3,2.585);
		\pic at (7.5,2.585) {valve=secondary};
		\node[below] at (7.5,2.585) {$V\ped{C}$};
		\draw (7.7,2.585) -- (11,2.585);
	\end{tikzpicture}
\end{chpcode}

\begin{figure}
\centering
\begin{tikzpicture}[font=\footnotesize]
% Positive Electrolyte
	% tank outlet
	\pic at (3,3.5) {tank};
	\node[align=center] at (3,4) {Positive\\ Electrolyte};
	\node at (3,3) {\ch{VO2+}/\ch{VO^2+}};
	\draw[main stream] (3,2) -- (3,1.7);
	\pic[rotate=90] at (3,1.5) {valve triple=main};
	\draw[main stream] (3,1.3) |- (2,0.6);
	\pic at (2,0.6) {centrifugal pump};
	\draw[main stream] (2,1) -| (1,1.3);
	\pic[rotate=270] at (1,1.5) {valve triple=main};
	% pump recycle
	\draw[secondary stream] (1.2,1.5) -- (1.8,1.5);
	\pic at (2,1.5) {valve=secondary};
	\node[above] at (2,1.5) {$V\ped{P}^+$};
	\draw[secondary stream] (2.2,1.5) -- (2.8,1.5);
	% battery stream
	\draw[main stream] (1,1.7) -- (1,3);
	\pic at (1,3.5) {instrument=FM};
	\draw[main stream] (1,4) -- (1,5.3);
	\draw[signal] (0.5,3.5) -| (0.25,2.5);
	\pic at (0.25,2) {controller=PID};
	\draw[signal] (0.25,1.5) |- (1.6,0.6);
	\pic[rotate=90] at (1,5.5) {valve=main};
	\node[right] at (1,5.5) {$V_1^+$};
	\draw[main stream] (1, 5.7) |- (2.8,6.9);
	\pic[rotate=90] at (3,6.9) {valve triple=main};
	\draw[main stream] (3,7.1) |- (6.2,7.5);
	\pic at (4,8.5) {instrument=TM};
	\draw[short signal] (4,8) -- (4,7.5);
	% battery bypass
	\draw[secondary stream] (3,6.7) -- (3,6.4);
	\pic[rotate=270] at  (3,6.2) {valve=secondary};
	\pic[rotate=270] at  (3,6.2) {actuator};
	\node[left] at (3,6.2) {$V\ped{B}^+$};
	\draw[secondary stream] (3,6) -- (3,5.7);
	% battery outlet
	\draw[main stream] (8,7) |- (5.2,5.5);
	\pic at (6,4.5) {instrument=TM};
	\draw [short signal] (6,5) -- (6,5.5);
	\pic at (5,5.5) {valve=main};
	\pic at (5,5.5) {actuator};
	\node[below] at (5,5.5) {$V_2^+$};
	\draw[main stream] (4.8,5.5) -- (3.2,5.5);
	\pic at (5,6.5) {instrument=PM};
	\draw[short signal] (5,7) -- (5,7.5);
	\draw[signal] (5.5,6.5) -- (7,6.5);
	% tank inlet
	\pic[rotate=270] at (3,5.5) {valve triple=main};
	\draw[main stream] (3,5.3) -- (3,5);
% Negative Electrolyte
	% tank outlet
	\pic at (12,3.5) {tank};
	\node[align=center] at (12,4) {Negative\\ Electrolyte};
	\node at (12,3) {\ch{V^3+}/\ch{V^2+}};
	\draw[main stream] (12,2) -- (12,1.7);
	\pic[rotate=270] at (12,1.5) {valve triple=main};
	\draw[main stream] (12,1.3) |- (13,0.6);
	\pic at (13,0.6) {centrifugal pump};
	\draw[main stream] (13,1) -| (14,1.3);
	\pic[rotate=90] at (14,1.5) {valve triple=main};
	% pump recycle
	\draw[secondary stream] (13.8,1.5) -- (13.2,1.5);
	\pic at (13,1.5) {valve=secondary};
	\node[above] at (13,1.5) {$V\ped{P}^-$};
	\draw[secondary stream] (12.8,1.5) -- (12.2,1.5);
	% battery stream
	\draw[main stream] (14,1.7) -- (14,3);
	\pic at (14,3.5) {instrument=FM};
	\draw[main stream] (14,4) -- (14,5.3);
	\draw[signal] (14.5,3.5) -| (14.75,2.5);
	\pic at (14.75,2) {controller=PID};
	\draw[signal] (14.75,1.5) |- (13.4,0.6);
	\pic[rotate=90] at (14,5.5) {valve=main};
	\node[left] at (14,5.5) {$V_1^-$};
	\draw[main stream] (14, 5.7) |- (12.2,6.9);
	\pic[rotate=270] at (12,6.9) {valve triple=main};
	\draw[main stream] (12,7.1) |- (8.8,7.5);
	\pic at (11,8.5) {instrument=TM};
	\draw[short signal] (11,8) -- (11,7.5);
	% battery bypass
	\draw[secondary stream] (12,6.7) -- (12,6.4);
	\pic[rotate=90] at  (12,6.2) {valve=secondary};
	\pic[rotate=90] at  (12,6.2) {actuator};
	\node[right] at (12,6.2) {$V\ped{B}^-$};
	\draw[secondary stream] (12,6) -- (12,5.7);
	% battery outlet
	\draw[main stream] (7,7) |- (8.5,5) |- (9.8,5.5);
	\pic at (9,4.5) {instrument=TM};
	\draw[short signal] (9,5) -- (9,5.5);
	\pic at (10,5.5) {valve=main};
	\pic at (10,5.5) {actuator};
	\node[below] at (10,5.5) {$V_2^-$};
	\draw[main stream] (10.2,5.5) -- (11.8,5.5);
	\pic at (10,6.5) {instrument=PM};
	\draw[short signal] (10,7) -- (10,7.5);
	\draw[signal] (9.5,6.5) -- (8,6.5);
	% tank inlet
	\pic[rotate=90] at (12,5.5) {valve triple=main};
	\draw[main stream] (12,5.3) -- (12,5);
% Battery
	% block structure
	\draw[thick] (6,7) rectangle (9, 9.6);
	\node[above] at (7.5,9.6) {Battery};
	% positive main stream
	\pic at (6.2,7.5) {input};
	\draw[main stream, hidden stream]
		(6.2,7.55) |- (7.8,9.2) |- (7.95,8.5);
	\pic at (8,8.5) {output};
	\draw[main stream] (8,8.5) -- (8.3,8.5);
	\pic[rotate=90] at (8.5,8.5) {valve triple=main};
	\pic[rotate=270] at (8.5,8.5) {actuator};
	\draw[main stream] (8.5,8.3) |- (8,8);
	\pic at (8,8) {input};
	\draw[main stream, hidden stream] (8,7.95) -- (8,7.7);
	\pic[rotate=90, hidden component] at (8,7.5)
		{valve triple=main};
	\draw[main stream, hidden stream] (8,7.3)  -- (8,7);
	% negative main stream
	\pic at (8.8,7.5) {input};
	\draw[main stream, hidden stream]
		(8.8,7.55) |- (7.2,9.4) |- (7.05,8.5);
	\pic at (7,8.5) {output};
	\draw[main stream] (7,8.5) -- (6.7,8.5);
	\pic[rotate=270] at (6.5,8.5) {valve triple=main};
	\pic[rotate=90] at (6.5,8.5) {actuator};
	\draw[main stream] (6.5,8.3) |- (7,8);
	\pic at (7,8) {input};
	\draw[main stream, hidden stream] (7,7.95) -- (7,7.7);
	\pic[rotate=270, hidden component] at (7,7.5)
		{valve triple=main};
	\draw[main stream, hidden stream] (7,7.3)  -- (7,7);
	% positive to negative remixing
	\draw[secondary stream, color=red] (8.5,8.7) |- (8,9);
	\pic at (8,9) {input};
	\draw[secondary stream, hidden stream, color=red]
		(7.95,9) -| (7.4,7.5) -- (7.2,7.5);
	% negative to positive remixing
	\draw[secondary stream, color=red] (6.5,8.7) |- (7,9);
	\pic at (7,9) {input};
	\draw[secondary stream, hidden stream, color=red]
		(7,8.95) |- (7.6,8.75) |- (7.8,7.5);
% Tanks Connection
	\draw (4,2.585) -- (7.3,2.585);
	\pic at (7.5,2.585) {valve=secondary};
	\node[below] at (7.5,2.585) {$V\ped{C}$};
	\draw (7.7,2.585) -- (11,2.585);
\end{tikzpicture}
\caption{Complete \ac{PFD} of a vanadium redox flow battery pilot plant produced
	by the \lref{lst:vrfbis} code.}
\label{fig:vrfbis}
\end{figure}

\subsubsection{Usage of Nodes}

Starting from the next example, the second way outlined in the introduction to
the examples will be used to draw schemes: units placement first and nodes usage
to connect streams.

\begin{chpcode}[caption=Scheme of an absorption process with solvent
	regeneration through steam stripping.,
	label=lst:absstr]
	\begin{tikzpicture}[font=\footnotesize]
	% Units Placement and Labelling
		\pic (absorption tower) at (2,4) {column=packed};
		\pic (stripping tower) at (10,4) {column=packed};
		\pic (mid heat exchanger) at (6,4) {heat exchanger};
		\pic (cooler) at (4,6.6) {heat exchanger};
		\pic (heater) at (7,6.6) {heat exchanger};
		\pic (pump) at (8.5,0.6) {centrifugal pump};
		\pic (lamination valve) at (8.5,6.6) {lamination valve};
		\node[above, rotate=-90, align=center] at
			(absorption tower-right)
			{absorption tower};
		\node[above, rotate=-90, align=center] at
			(stripping tower-right)
			{stripping tower};
		\node[left=5] at (mid heat exchanger-bottom)
			{heat integration};
		\node[below] at (lamination valve-anchor)
			{expansion};
		\node[below right] at (pump-right)
			{compression};
	% Main Streams Connections and Labelling
		\draw[main stream] (0,1.4) --
			(absorption tower-bottom left);
		\node[below left] at (absorption tower-bottom left)
			{dirty gas};
		\draw[main stream] (0,6.6) --
			(absorption tower-top left);
		\node[below left] at (absorption tower-top left)
			{solvent make-up};
		\draw[main stream] (absorption tower-top) -- ++(0,1);
		\node[above left] at (absorption tower-top)
			{clean gas};
		\draw[main stream] (absorption tower-bottom) --
			++(0,-0.5) -| (mid heat exchanger-bottom);
		\node[below right] at (absorption tower-bottom)
			{dirty solvent};
		\draw[main stream] (mid heat exchanger-top) |-
			(heater-internal tubes left);
		\draw[main stream] (heater-internal tubes right) --
			(lamination valve-inlet);
		\draw[main stream] (lamination valve-outlet) --
			(stripping tower-top left);
		\draw[main stream] (stripping tower-bottom) |-
			(pump-anchor);
		\node[below right] at (stripping tower-bottom)
			{clean solvent};
		\draw[main stream] (pump-left) |-
			(mid heat exchanger-internal tubes right);
		\draw[main stream]
			(mid heat exchanger-internal tubes left) --
			++(-0.5,0) |- (cooler-internal tubes right);
		\draw[main stream] (cooler-internal tubes left) --
			(absorption tower-top right);
		\draw[main stream] (12,1.4) --
			(stripping tower-bottom right);
		\node[above right] at (stripping tower-bottom right)
			{clean steam};
		\draw[main stream] (stripping tower-top) |- ++(2,0.5);
		\node[above right] at (stripping tower-top)
			{dirty steam};
	% Utility Streams Connections and Labelling
		\draw[utility stream] (4,7.6) -- (cooler-top);
		\node[above right] at (cooler-top)
			{cooling water};
		\draw[utility stream] (cooler-bottom) -- (4,5.6);
		\draw[utility stream] (7,7.6) -- (heater-top);
		\node[above right] at (heater-top)
			{heating steam};
		\draw[utility stream] (heater-bottom) -- (7,5.6);
	\end{tikzpicture}
\end{chpcode}

\begin{figure}
\centering
\begin{tikzpicture}[font=\footnotesize]
% Units Placement and Labelling
	\pic (absorption tower) at (2,4) {column=packed};
	\pic (stripping tower) at (10,4) {column=packed};
	\pic (mid heat exchanger) at (6,4) {heat exchanger};
	\pic (cooler) at (4,6.6) {heat exchanger};
	\pic (heater) at (7,6.6) {heat exchanger};
	\pic (pump) at (8.5,0.6) {centrifugal pump};
	\pic (lamination valve) at (8.5,6.6) {lamination valve};
	\node[above, rotate=-90, align=center] at
		(absorption tower-right)
		{absorption tower};
	\node[above, rotate=-90, align=center] at
		(stripping tower-right)
		{stripping tower};
	\node[left=5] at (mid heat exchanger-shell bottom)
		{heat integration};
	\node[below] at (lamination valve-anchor)
		{expansion};
	\node[below] at (pump-bottom)
		{compression};
% Main Streams Connections and Labelling
	\draw[main stream] (0,1.4) --
		(absorption tower-bottom left);
	\node[below left] at (absorption tower-bottom left)
		{dirty gas};
	\draw[main stream] (0,6.6) --
		(absorption tower-top left);
	\node[below left] at (absorption tower-top left)
		{solvent make-up};
	\draw[main stream] (absorption tower-top) -- ++(0,1);
	\node[above left] at (absorption tower-top)
		{clean gas};
	\draw[main stream] (absorption tower-bottom) --
		++(0,-0.5) -| (mid heat exchanger-shell bottom);
	\node[below right] at (absorption tower-bottom)
		{dirty solvent};
	\draw[main stream] (mid heat exchanger-shell top) |-
		(heater-pipes left);
	\draw[main stream] (heater-pipes right) --
		(lamination valve-inlet);
	\draw[main stream] (lamination valve-outlet) --
		(stripping tower-top left);
	\draw[main stream] (stripping tower-bottom) |-
		(pump-anchor);
	\node[below right] at (stripping tower-bottom)
		{clean solvent};
	\draw[main stream] (pump-left) |-
		(mid heat exchanger-pipes right);
	\draw[main stream]
		(mid heat exchanger-pipes left) --
		++(-0.5,0) |- (cooler-pipes right);
	\draw[main stream] (cooler-pipes left) --
		(absorption tower-top right);
	\draw[main stream] (12,1.4) --
		(stripping tower-bottom right);
	\node[above right] at (stripping tower-bottom right)
		{clean steam};
	\draw[main stream] (stripping tower-top) |- ++(2,0.5);
	\node[above right] at (stripping tower-top)
		{dirty steam};
% Utility Streams Connections and Labelling
	\draw[utility stream] (4,7.6) -- (cooler-shell top);
	\node[above right] at (cooler-shell top)
		{cooling water};
	\draw[utility stream] (cooler-shell bottom) -- (4,5.6);
	\draw[utility stream] (7,7.6) -- (heater-shell top);
	\node[above right] at (heater-shell top)
		{heating steam};
	\draw[utility stream] (heater-shell bottom) -- (7,5.6);
\end{tikzpicture}
\caption{Scheme of an absorption process with solvent regeneration through steam
	stripping produced by the \lref{lst:absstr} code.}
\label{fig:absstr}
\end{figure}

\section{What Happens Next}

As conceived, \chemplants\ is just a toolbox to draw in an easier way chemical
process schematics, but a lot of tools are still missing in the box.

At the time of the first writing of this documentation, only symbols and styles
I had the need to use were defined. In the future, a lot of new units will
be defined, but this is a work that will require time and study, so it will be
done step by step. I have a list of the ``most commonly used'' units to
define, but users are free (and invited) to send suggestion about new units
which they would like to see in the \chemplants\ palette.

Besides the mentioned modifications, I am always opened to suggestions which can
improve the functionality and usability of \chemplants. Users who have something
to suggest, find errors and bugs or are simply happy to use this package can
contact me writing to \mail{elia24913@me.com} and possibly placing
``\chemplants'' into the object field. I will be very grateful to these users.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%: Bibliography

\printbibliography[heading=bibintoc]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}										% Document End