Skip to content

Commit ba2f95b

Browse files
Merge pull request #34 from ipqa-research/dortmund
Dortmund
2 parents 5ea457a + 8962778 commit ba2f95b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+2100
-41
lines changed

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ You can try `ugropy` without installing it by clicking on the Colab badge.
3131
## Gibbs / EoS models
3232
- Classic liquid-vapor UNIFAC
3333
- Predictive Soave-Redlich-Kwong (PSRK)
34+
- Dortmund (modified UNIFAC)
3435

3536
## Property estimators
3637
- Joback
@@ -43,6 +44,7 @@ libraries:
4344

4445
- [Clapeyron.jl](https://github.com/ClapeyronThermo/Clapeyron.jl)
4546
- [Thermo](https://github.com/CalebBell/thermo)
47+
- [yaeos (Fortran)](https://github.com/ipqa-research/yaeos)
4648

4749

4850
# Example of use
@@ -61,10 +63,12 @@ hexane = Groups("hexane")
6163

6264
print(hexane.unifac.subgroups)
6365
print(hexane.psrk.subgroups)
66+
print(hexane.dortmund.subgroups)
6467
print(hexane.joback.subgroups)
6568
print(hexane.agani.primary.subgroups)
6669
```
6770

71+
{'CH3': 2, 'CH2': 4}
6872
{'CH3': 2, 'CH2': 4}
6973
{'CH3': 2, 'CH2': 4}
7074
{'-CH3': 2, '-CH2-': 4}
@@ -77,12 +81,14 @@ propanol = Groups("CCCO", "smiles")
7781

7882
print(propanol.unifac.subgroups)
7983
print(propanol.psrk.subgroups)
84+
print(propanol.dortmund.subgroups)
8085
print(propanol.joback.subgroups)
8186
print(propanol.agani.primary.subgroups)
8287
```
8388

8489
{'CH3': 1, 'CH2': 2, 'OH': 1}
8590
{'CH3': 1, 'CH2': 2, 'OH': 1}
91+
{'CH3': 1, 'CH2': 2, 'OH (P)': 1}
8692
{'-CH3': 1, '-CH2-': 2, '-OH (alcohol)': 1}
8793
{'CH3': 1, 'CH2': 2, 'OH': 1}
8894

docs/source/refs.bib

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,4 +168,191 @@ @article{psrk2
168168
doi = {10.1016/j.fluid.2004.11.002},
169169
urldate = {2023-09-07},
170170
langid = {english},
171+
}
172+
173+
@article{dor1,
174+
title = {Vapor−{Liquid} {Equilibria} and {Enthalpies} of {Mixing} in a {Temperature} {Range} from 298.15 to 413.15 {K} for the {Further} {Development} of {Modified} {UNIFAC} ({Dortmund})},
175+
volume = {40},
176+
issn = {0888-5885, 1520-5045},
177+
url = {https://pubs.acs.org/doi/10.1021/ie010444j},
178+
doi = {10.1021/ie010444j},
179+
language = {en},
180+
number = {24},
181+
urldate = {2023-10-27},
182+
journal = {Industrial \& Engineering Chemistry Research},
183+
author = {Wittig, Roland and Lohmann, Jürgen and Joh, Ralph and Horstmann, Sven and Gmehling, Jürgen},
184+
month = nov,
185+
year = {2001},
186+
pages = {5831--5838},
187+
file = {Wittig et al. - 2001 - Vapor−Liquid Equilibria and Enthalpies of Mixing i.pdf:/home/salvador/Documentos/zotero/Wittig et al. - 2001 - Vapor−Liquid Equilibria and Enthalpies of Mixing i.pdf:application/pdf},
188+
}
189+
190+
@article{dor2,
191+
title = {A modified {UNIFAC} model. 1. {Prediction} of {VLE}, {hE}, and .gamma..infin.},
192+
volume = {26},
193+
issn = {0888-5885, 1520-5045},
194+
url = {https://pubs.acs.org/doi/abs/10.1021/ie00067a018},
195+
doi = {10.1021/ie00067a018},
196+
language = {en},
197+
number = {7},
198+
urldate = {2023-09-27},
199+
journal = {Industrial \& Engineering Chemistry Research},
200+
author = {Weidlich, Ulrich and Gmehling, Juergen},
201+
month = jul,
202+
year = {1987},
203+
pages = {1372--1381},
204+
file = {Weidlich_Gmehling_1987_A modified UNIFAC model.pdf:/home/salvador/Documentos/zotero/Weidlich_Gmehling_1987_A modified UNIFAC model.pdf:application/pdf},
205+
}
206+
207+
@article{dor3,
208+
title = {A modified {UNIFAC} model. 2. {Present} parameter matrix and results for different thermodynamic properties},
209+
volume = {32},
210+
issn = {0888-5885, 1520-5045},
211+
url = {https://pubs.acs.org/doi/abs/10.1021/ie00013a024},
212+
doi = {10.1021/ie00013a024},
213+
language = {en},
214+
number = {1},
215+
urldate = {2023-09-27},
216+
journal = {Industrial \& Engineering Chemistry Research},
217+
author = {Gmehling, Juergen and Li, Jiding and Schiller, Martin},
218+
month = jan,
219+
year = {1993},
220+
pages = {178--193},
221+
file = {Gmehling et al_1993_A modified UNIFAC model.pdf:/home/salvador/Documentos/zotero/Gmehling et al_1993_A modified UNIFAC model.pdf:application/pdf},
222+
}
223+
224+
@article{dor4,
225+
title = {A {Modified} {UNIFAC} ({Dortmund}) {Model}. 3. {Revision} and {Extension}},
226+
volume = {37},
227+
issn = {0888-5885, 1520-5045},
228+
url = {https://pubs.acs.org/doi/10.1021/ie980347z},
229+
doi = {10.1021/ie980347z},
230+
language = {en},
231+
number = {12},
232+
urldate = {2023-09-27},
233+
journal = {Industrial \& Engineering Chemistry Research},
234+
author = {Gmehling, Jürgen and Lohmann, Jürgen and Jakob, Antje and Li, Jiding and Joh, Ralph},
235+
month = dec,
236+
year = {1998},
237+
pages = {4876--4882},
238+
file = {Gmehling et al_1998_A Modified UNIFAC (Dortmund) Model.pdf:/home/salvador/Documentos/zotero/Gmehling et al_1998_A Modified UNIFAC (Dortmund) Model.pdf:application/pdf},
239+
}
240+
241+
@article{dor5,
242+
title = {A {Modified} {UNIFAC} ({Dortmund}) {Model}. 4. {Revision} and {Extension}},
243+
volume = {41},
244+
issn = {0888-5885, 1520-5045},
245+
url = {https://pubs.acs.org/doi/10.1021/ie0108043},
246+
doi = {10.1021/ie0108043},
247+
language = {en},
248+
number = {6},
249+
urldate = {2023-09-27},
250+
journal = {Industrial \& Engineering Chemistry Research},
251+
author = {Gmehling, Jürgen and Wittig, Roland and Lohmann, Jürgen and Joh, Ralph},
252+
month = mar,
253+
year = {2002},
254+
pages = {1678--1688},
255+
file = {Gmehling et al_2002_A Modified UNIFAC (Dortmund) Model.pdf:/home/salvador/Documentos/zotero/Gmehling et al_2002_A Modified UNIFAC (Dortmund) Model.pdf:application/pdf},
256+
}
257+
258+
@article{dor6,
259+
title = {From {UNIFAC} to {Modified} {UNIFAC} ({Dortmund})},
260+
volume = {40},
261+
issn = {0888-5885, 1520-5045},
262+
url = {https://pubs.acs.org/doi/10.1021/ie0005710},
263+
doi = {10.1021/ie0005710},
264+
language = {en},
265+
number = {3},
266+
urldate = {2023-09-27},
267+
journal = {Industrial \& Engineering Chemistry Research},
268+
author = {Lohmann, Jürgen and Joh, Ralph and Gmehling, Jürgen},
269+
month = feb,
270+
year = {2001},
271+
pages = {957--964},
272+
file = {Lohmann et al_2001_From UNIFAC to Modified UNIFAC (Dortmund).pdf:/home/salvador/Documentos/zotero/Lohmann et al_2001_From UNIFAC to Modified UNIFAC (Dortmund).pdf:application/pdf},
273+
}
274+
275+
@article{dor7,
276+
title = {Modified {UNIFAC} ({Dortmund}). {Reliable} {Model} for the {Development} of {Thermal} {Separation} {Processes}.},
277+
volume = {34},
278+
issn = {0021-9592, 1881-1299},
279+
url = {http://www.jstage.jst.go.jp/article/jcej/34/1/34_1_43/_article},
280+
doi = {10.1252/jcej.34.43},
281+
language = {en},
282+
number = {1},
283+
urldate = {2023-09-27},
284+
journal = {JOURNAL OF CHEMICAL ENGINEERING OF JAPAN},
285+
author = {Lohmann, Jürgen and Gmehling, Jürgen},
286+
year = {2001},
287+
pages = {43--54},
288+
file = {Lohmann_Gmehling_2001_Modified UNIFAC (Dortmund).pdf:/home/salvador/Documentos/zotero/Lohmann_Gmehling_2001_Modified UNIFAC (Dortmund).pdf:application/pdf},
289+
}
290+
291+
@article{dor8,
292+
title = {Prediction of phase equilibria and excess properties for systems with sulfones},
293+
volume = {49},
294+
issn = {00011541, 15475905},
295+
url = {https://onlinelibrary.wiley.com/doi/10.1002/aic.690490223},
296+
doi = {10.1002/aic.690490223},
297+
language = {en},
298+
number = {2},
299+
urldate = {2023-09-27},
300+
journal = {AIChE Journal},
301+
author = {Wittig, Roland and Lohmann, Jürgen and Gmehling, Jürgen},
302+
month = feb,
303+
year = {2003},
304+
pages = {530--537},
305+
file = {Wittig et al_2003_Prediction of phase equilibria and excess properties for systems with sulfones.pdf:/home/salvador/Documentos/zotero/Wittig et al_2003_Prediction of phase equilibria and excess properties for systems with sulfones.pdf:application/pdf},
306+
}
307+
308+
@article{dor9,
309+
title = {Further {Development} of {Modified} {UNIFAC} ({Dortmund}): {Revision} and {Extension} 5},
310+
volume = {45},
311+
issn = {0888-5885, 1520-5045},
312+
shorttitle = {Further {Development} of {Modified} {UNIFAC} ({Dortmund})},
313+
url = {https://pubs.acs.org/doi/10.1021/ie060355c},
314+
doi = {10.1021/ie060355c},
315+
language = {en},
316+
number = {23},
317+
urldate = {2023-09-26},
318+
journal = {Industrial \& Engineering Chemistry Research},
319+
author = {Jakob, Antje and Grensemann, Hans and Lohmann, Jürgen and Gmehling, Jürgen},
320+
month = nov,
321+
year = {2006},
322+
pages = {7924--7933},
323+
file = {Jakob et al_2006_Further Development of Modified UNIFAC (Dortmund).pdf:/home/salvador/Documentos/zotero/Jakob et al_2006_Further Development of Modified UNIFAC (Dortmund).pdf:application/pdf},
324+
}
325+
326+
@article{dor10,
327+
title = {Present status of the modified {UNIFAC} model for the prediction of phase equilibria and excess enthalpies for systems with ionic liquids},
328+
volume = {371},
329+
issn = {03783812},
330+
url = {https://linkinghub.elsevier.com/retrieve/pii/S0378381214001642},
331+
doi = {10.1016/j.fluid.2014.03.006},
332+
language = {en},
333+
urldate = {2023-09-26},
334+
journal = {Fluid Phase Equilibria},
335+
author = {Hector, Torben and Gmehling, Jürgen},
336+
month = jun,
337+
year = {2014},
338+
pages = {82--92},
339+
file = {Hector_Gmehling_2014_Present status of the modified UNIFAC model for the prediction of phase.pdf:/home/salvador/Documentos/zotero/Hector_Gmehling_2014_Present status of the modified UNIFAC model for the prediction of phase.pdf:application/pdf},
340+
}
341+
342+
@article{dor11,
343+
title = {Further {Development} of {Modified} {UNIFAC} ({Dortmund}): {Revision} and {Extension} 6},
344+
volume = {61},
345+
issn = {0021-9568, 1520-5134},
346+
shorttitle = {Further {Development} of {Modified} {UNIFAC} ({Dortmund})},
347+
url = {https://pubs.acs.org/doi/10.1021/acs.jced.6b00136},
348+
doi = {10.1021/acs.jced.6b00136},
349+
language = {en},
350+
number = {8},
351+
urldate = {2023-09-26},
352+
journal = {Journal of Chemical \& Engineering Data},
353+
author = {Constantinescu, Dana and Gmehling, Jürgen},
354+
month = aug,
355+
year = {2016},
356+
pages = {2738--2748},
357+
file = {Constantinescu_Gmehling_2016_Further Development of Modified UNIFAC (Dortmund).pdf:/home/salvador/Documentos/zotero/Constantinescu_Gmehling_2016_Further Development of Modified UNIFAC (Dortmund).pdf:application/pdf},
171358
}

docs/source/tutorial/gibbs_models.ipynb

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,110 @@
538538
"source": [
539539
"toluene.r, toluene.q"
540540
]
541+
},
542+
{
543+
"cell_type": "markdown",
544+
"metadata": {},
545+
"source": [
546+
"### Dortmund (modified UNIFAC)\n",
547+
"\n",
548+
"The Dortmund model can be imported and used by doing:"
549+
]
550+
},
551+
{
552+
"cell_type": "code",
553+
"execution_count": 1,
554+
"metadata": {},
555+
"outputs": [
556+
{
557+
"data": {
558+
"text/plain": [
559+
"{'CY-CH2': 6}"
560+
]
561+
},
562+
"execution_count": 1,
563+
"metadata": {},
564+
"output_type": "execute_result"
565+
}
566+
],
567+
"source": [
568+
"from ugropy import dortmund\n",
569+
"\n",
570+
"\n",
571+
"cyclohexane = dortmund.get_groups(\"cyclohexane\")\n",
572+
"\n",
573+
"cyclohexane.subgroups"
574+
]
575+
},
576+
{
577+
"cell_type": "code",
578+
"execution_count": 2,
579+
"metadata": {},
580+
"outputs": [
581+
{
582+
"data": {
583+
"image/svg+xml": [
584+
"<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" xml:space=\"preserve\" width=\"400px\" height=\"200px\" viewBox=\"0 0 400 200\">\n",
585+
"<!-- END OF HEADER -->\n",
586+
"<rect style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"400.0\" height=\"200.0\" x=\"0.0\" y=\"0.0\"> </rect>\n",
587+
"<ellipse cx=\"284.4\" cy=\"100.0\" rx=\"16.9\" ry=\"16.9\" class=\"atom-0\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
588+
"<ellipse cx=\"242.2\" cy=\"173.1\" rx=\"16.9\" ry=\"16.9\" class=\"atom-1\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
589+
"<ellipse cx=\"157.8\" cy=\"173.1\" rx=\"16.9\" ry=\"16.9\" class=\"atom-2\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
590+
"<ellipse cx=\"115.6\" cy=\"100.0\" rx=\"16.9\" ry=\"16.9\" class=\"atom-3\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
591+
"<ellipse cx=\"157.8\" cy=\"26.9\" rx=\"16.9\" ry=\"16.9\" class=\"atom-4\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
592+
"<ellipse cx=\"242.2\" cy=\"26.9\" rx=\"16.9\" ry=\"16.9\" class=\"atom-5\" style=\"fill:#1F77B4A5;fill-rule:evenodd;stroke:#1F77B4A5;stroke-width:1.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
593+
"<path class=\"bond-0 atom-0 atom-1\" d=\"M 284.4,100.0 L 242.2,173.1\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
594+
"<path class=\"bond-1 atom-1 atom-2\" d=\"M 242.2,173.1 L 157.8,173.1\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
595+
"<path class=\"bond-2 atom-2 atom-3\" d=\"M 157.8,173.1 L 115.6,100.0\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
596+
"<path class=\"bond-3 atom-3 atom-4\" d=\"M 115.6,100.0 L 157.8,26.9\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
597+
"<path class=\"bond-4 atom-4 atom-5\" d=\"M 157.8,26.9 L 242.2,26.9\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
598+
"<path class=\"bond-5 atom-5 atom-0\" d=\"M 242.2,26.9 L 284.4,100.0\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
599+
"<path d=\"M 282.3,103.7 L 284.4,100.0 L 282.3,96.3\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
600+
"<path d=\"M 244.3,169.5 L 242.2,173.1 L 238.0,173.1\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
601+
"<path d=\"M 162.0,173.1 L 157.8,173.1 L 155.7,169.5\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
602+
"<path d=\"M 117.7,103.7 L 115.6,100.0 L 117.7,96.3\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
603+
"<path d=\"M 155.7,30.5 L 157.8,26.9 L 162.0,26.9\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
604+
"<path d=\"M 238.0,26.9 L 242.2,26.9 L 244.3,30.5\" style=\"fill:none;stroke:#000000;stroke-width:2.0px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
605+
"<rect x=\"1\" y=\"5\" width=\"18.0\" height=\"18.0\" fill=\"rgb(31, 119, 179)\"/><text x=\"19.200000000000003\" y=\"20\" font-family=\"Helvetica\" font-size=\"12\" fill=\"black\">CY-CH2: 6</text><text x=\"200.0\" y=\"40\" font-family=\"Helvetica\" font-size=\"12\" font-weight=\"bold\" fill=\"black\" text-anchor=\"middle\"/></svg>"
606+
],
607+
"text/plain": [
608+
"<IPython.core.display.SVG object>"
609+
]
610+
},
611+
"execution_count": 2,
612+
"metadata": {},
613+
"output_type": "execute_result"
614+
}
615+
],
616+
"source": [
617+
"cyclohexane.draw()"
618+
]
619+
},
620+
{
621+
"cell_type": "markdown",
622+
"metadata": {},
623+
"source": [
624+
"Since the `R` and `Q` values of the Dortmund model are fitted along the \n",
625+
"interaction parameters and do not represent the volume and surface area of the\n",
626+
"molecule, the values are not calculated by `ugropy` to avoid confusion."
627+
]
628+
},
629+
{
630+
"cell_type": "code",
631+
"execution_count": 3,
632+
"metadata": {},
633+
"outputs": [
634+
{
635+
"name": "stdout",
636+
"output_type": "stream",
637+
"text": [
638+
"None None\n"
639+
]
640+
}
641+
],
642+
"source": [
643+
"print(cyclohexane.r, cyclohexane.q)"
644+
]
541645
}
542646
],
543647
"metadata": {

0 commit comments

Comments
 (0)