aerosolprops 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aerosolprops-0.1.0/LICENSE +21 -0
- aerosolprops-0.1.0/PKG-INFO +125 -0
- aerosolprops-0.1.0/README.md +90 -0
- aerosolprops-0.1.0/pyproject.toml +57 -0
- aerosolprops-0.1.0/setup.cfg +4 -0
- aerosolprops-0.1.0/src/aerosolprops/__init__.py +56 -0
- aerosolprops-0.1.0/src/aerosolprops/boiling_point.py +637 -0
- aerosolprops-0.1.0/src/aerosolprops/fragmentation.py +170 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/__init__.py +10 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/evaporation.py +469 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/myrdal_yalkowsky.py +463 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/nannoolal_bp.py +732 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/nannoolal_vp.py +810 -0
- aerosolprops-0.1.0/src/aerosolprops/methods/simpol1.py +373 -0
- aerosolprops-0.1.0/src/aerosolprops/structure.py +198 -0
- aerosolprops-0.1.0/src/aerosolprops/topology.py +146 -0
- aerosolprops-0.1.0/src/aerosolprops/vapour_pressure.py +2208 -0
- aerosolprops-0.1.0/src/aerosolprops.egg-info/PKG-INFO +125 -0
- aerosolprops-0.1.0/src/aerosolprops.egg-info/SOURCES.txt +37 -0
- aerosolprops-0.1.0/src/aerosolprops.egg-info/dependency_links.txt +1 -0
- aerosolprops-0.1.0/src/aerosolprops.egg-info/requires.txt +9 -0
- aerosolprops-0.1.0/src/aerosolprops.egg-info/top_level.txt +1 -0
- aerosolprops-0.1.0/tests/test_boiling_point.py +319 -0
- aerosolprops-0.1.0/tests/test_evaporation.py +426 -0
- aerosolprops-0.1.0/tests/test_fragmentation.py +103 -0
- aerosolprops-0.1.0/tests/test_myrdal_yalkowsky.py +243 -0
- aerosolprops-0.1.0/tests/test_myrdal_yalkowsky_descriptors.py +339 -0
- aerosolprops-0.1.0/tests/test_myrdal_yalkowsky_wrapper.py +252 -0
- aerosolprops-0.1.0/tests/test_nannoolal_vp.py +467 -0
- aerosolprops-0.1.0/tests/test_nannoolal_vp_coefficients.py +333 -0
- aerosolprops-0.1.0/tests/test_oracle_evaporation.py +177 -0
- aerosolprops-0.1.0/tests/test_oracle_myrdal_yalkowsky.py +220 -0
- aerosolprops-0.1.0/tests/test_oracle_nannoolal.py +474 -0
- aerosolprops-0.1.0/tests/test_oracle_nannoolal_vp.py +550 -0
- aerosolprops-0.1.0/tests/test_oracle_umansysprop.py +261 -0
- aerosolprops-0.1.0/tests/test_package.py +27 -0
- aerosolprops-0.1.0/tests/test_simpol1.py +374 -0
- aerosolprops-0.1.0/tests/test_structure.py +46 -0
- aerosolprops-0.1.0/tests/test_topology.py +45 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 The aerosolprops developers
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aerosolprops
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Structure-derived pure-component properties for atmospheric organic aerosol: vapour pressures and boiling points by group contribution
|
|
5
|
+
Author: Fan Zhang
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/openEarthModelling/aerosolprops
|
|
8
|
+
Project-URL: Repository, https://github.com/openEarthModelling/aerosolprops
|
|
9
|
+
Project-URL: Changelog, https://github.com/openEarthModelling/aerosolprops/blob/main/CHANGELOG.md
|
|
10
|
+
Keywords: atmospheric chemistry,aerosol,SOA,vapour pressure,boiling point,group contribution,RDKit,thermo
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Intended Audience :: Science/Research
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
24
|
+
Requires-Python: >=3.9
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: thermo>=0.6.1
|
|
28
|
+
Requires-Dist: rdkit>=2023.9
|
|
29
|
+
Provides-Extra: test
|
|
30
|
+
Requires-Dist: pytest>=7.0; extra == "test"
|
|
31
|
+
Provides-Extra: docs
|
|
32
|
+
Requires-Dist: mkdocs>=1.5; extra == "docs"
|
|
33
|
+
Requires-Dist: mkdocs-material>=9.0; extra == "docs"
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# aerosolprops
|
|
37
|
+
|
|
38
|
+
[](https://github.com/openEarthModelling/aerosolprops/actions/workflows/ci.yml)
|
|
39
|
+
|
|
40
|
+
Structure-derived pure-component properties for atmospheric organic aerosol.
|
|
41
|
+
|
|
42
|
+
`aerosolprops` is a modern successor to the pure-component property methods of
|
|
43
|
+
[UManSysProp](https://github.com/loftytopping/UManSysProp_public)
|
|
44
|
+
(Topping et al., GMD 9, 899–911, 2016), rebuilt on
|
|
45
|
+
[RDKit](https://www.rdkit.org/) as the structure engine and following the
|
|
46
|
+
conventions of the [`thermo`](https://github.com/CalebBell/thermo) package
|
|
47
|
+
family: strict SI units, estimators as pure functions of group counts where
|
|
48
|
+
possible, and failures that return `None` rather than raise.
|
|
49
|
+
|
|
50
|
+
**Status: pre-alpha.** The repository currently contains the packaging
|
|
51
|
+
skeleton, CI, documentation scaffold, the structure/topology foundation
|
|
52
|
+
layers, and the first estimator (SIMPOL.1). The remaining methods below
|
|
53
|
+
land one at a time, each with coefficients entered from the published
|
|
54
|
+
papers and tests against literature values.
|
|
55
|
+
|
|
56
|
+
## Methods (v0.1)
|
|
57
|
+
|
|
58
|
+
| Method | Property | Status | Reference |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| SIMPOL.1 | Vapour pressure | implemented | Pankow & Asher, [ACP 8, 2773 (2008)](https://doi.org/10.5194/acp-8-2773-2008) |
|
|
61
|
+
| EVAPORATION | Vapour pressure | implemented | Compernolle et al., [ACP 11, 9431 (2011)](https://doi.org/10.5194/acp-11-9431-2011) |
|
|
62
|
+
| Nannoolal Part 1 (+ SOA extension groups) | Normal boiling point | implemented | Nannoolal et al., [FPE 226, 45 (2004)](https://doi.org/10.1016/j.fluid.2004.09.001); Compernolle et al., [ACP 10, 6271 (2010)](https://doi.org/10.5194/acp-10-6271-2010) |
|
|
63
|
+
| Nannoolal Part 3 | Vapour pressure | implemented | Nannoolal et al., [FPE 269, 117 (2008)](https://doi.org/10.1016/j.fluid.2008.04.020) |
|
|
64
|
+
| Myrdal–Yalkowsky (+ H-bonding extension) | Vapour pressure | implemented | Myrdal & Yalkowsky, [IECR 36, 2494 (1997)](https://doi.org/10.1021/ie950242l); Compernolle et al., [ACP 10, 6271 (2010)](https://doi.org/10.5194/acp-10-6271-2010) |
|
|
65
|
+
|
|
66
|
+
Boiling points used as inputs (by Myrdal–Yalkowsky and Nannoolal Part 3) can
|
|
67
|
+
come from the self-implemented Nannoolal Part 1 route, from `thermo`'s
|
|
68
|
+
built-in Joback method, or from experimental data — `aerosolprops` does **not**
|
|
69
|
+
reimplement Joback.
|
|
70
|
+
|
|
71
|
+
## Installation
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pip install aerosolprops
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
RDKit and `thermo` are required dependencies.
|
|
78
|
+
|
|
79
|
+
## Design notes
|
|
80
|
+
|
|
81
|
+
- **Units are strictly SI** (Pa, K, mol); property failures return `None`.
|
|
82
|
+
- **RDKit is the structure engine and a required dependency.** It is
|
|
83
|
+
imported lazily, and estimators ultimately consume group-count
|
|
84
|
+
dictionaries — the same interface `thermo` uses for its own
|
|
85
|
+
RDKit-optional group-contribution methods — so pieces remain extractable
|
|
86
|
+
upstream.
|
|
87
|
+
- **No molecular descriptors.** Every method needs only 2D graph quantities:
|
|
88
|
+
SMARTS substructure counts, ring perception, composition, and a few
|
|
89
|
+
connectivity queries. No fingerprints, no 3D, no descriptor packages.
|
|
90
|
+
- **No home-grown graph algorithms.** The graph primitives (connected
|
|
91
|
+
components, ring distances, neighbour queries) are RDKit built-ins;
|
|
92
|
+
`aerosolprops.topology` only wraps them. What is method-specific is the
|
|
93
|
+
translation of paper semantics (e.g. SIMPOL.1 "acid-side carbons",
|
|
94
|
+
EVAPORATION "in-chain oxygen") onto those primitives.
|
|
95
|
+
- **`thermo` compatibility.** aerosolprops hard-depends on `thermo` and follows
|
|
96
|
+
its group-contribution conventions (`{group_id: coefficient record}`
|
|
97
|
+
catalogues, counts-based static estimators, Joback-style one-time
|
|
98
|
+
fragmenting wrappers). Where a method's counting semantics do not fit
|
|
99
|
+
`thermo`'s mutually-exclusive SMARTS partition (SIMPOL.1's groups overlap
|
|
100
|
+
and replace one another additively), aerosolprops ships its own fragmenter
|
|
101
|
+
but keeps the same interface, so pieces can still be contributed upstream
|
|
102
|
+
with minimal rework.
|
|
103
|
+
|
|
104
|
+
## Licensing and data provenance
|
|
105
|
+
|
|
106
|
+
`aerosolprops` is MIT-licensed. Coefficients are entered from the published
|
|
107
|
+
papers cited above (facts, not copyrightable expression), and SMARTS
|
|
108
|
+
patterns are authored from the group definitions in those papers.
|
|
109
|
+
UManSysProp is used **only** as a behavioural test oracle during development;
|
|
110
|
+
no code or data files are copied from it.
|
|
111
|
+
|
|
112
|
+
## Development
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
uv venv && uv pip install -e ".[test,docs]"
|
|
116
|
+
pytest # unit tests + doctests
|
|
117
|
+
mkdocs serve # documentation
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
CI runs the full test matrix (with doctests) on Linux/macOS/Windows for
|
|
121
|
+
Python 3.9–3.14, plus a strict docs build.
|
|
122
|
+
|
|
123
|
+
## License
|
|
124
|
+
|
|
125
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# aerosolprops
|
|
2
|
+
|
|
3
|
+
[](https://github.com/openEarthModelling/aerosolprops/actions/workflows/ci.yml)
|
|
4
|
+
|
|
5
|
+
Structure-derived pure-component properties for atmospheric organic aerosol.
|
|
6
|
+
|
|
7
|
+
`aerosolprops` is a modern successor to the pure-component property methods of
|
|
8
|
+
[UManSysProp](https://github.com/loftytopping/UManSysProp_public)
|
|
9
|
+
(Topping et al., GMD 9, 899–911, 2016), rebuilt on
|
|
10
|
+
[RDKit](https://www.rdkit.org/) as the structure engine and following the
|
|
11
|
+
conventions of the [`thermo`](https://github.com/CalebBell/thermo) package
|
|
12
|
+
family: strict SI units, estimators as pure functions of group counts where
|
|
13
|
+
possible, and failures that return `None` rather than raise.
|
|
14
|
+
|
|
15
|
+
**Status: pre-alpha.** The repository currently contains the packaging
|
|
16
|
+
skeleton, CI, documentation scaffold, the structure/topology foundation
|
|
17
|
+
layers, and the first estimator (SIMPOL.1). The remaining methods below
|
|
18
|
+
land one at a time, each with coefficients entered from the published
|
|
19
|
+
papers and tests against literature values.
|
|
20
|
+
|
|
21
|
+
## Methods (v0.1)
|
|
22
|
+
|
|
23
|
+
| Method | Property | Status | Reference |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| SIMPOL.1 | Vapour pressure | implemented | Pankow & Asher, [ACP 8, 2773 (2008)](https://doi.org/10.5194/acp-8-2773-2008) |
|
|
26
|
+
| EVAPORATION | Vapour pressure | implemented | Compernolle et al., [ACP 11, 9431 (2011)](https://doi.org/10.5194/acp-11-9431-2011) |
|
|
27
|
+
| Nannoolal Part 1 (+ SOA extension groups) | Normal boiling point | implemented | Nannoolal et al., [FPE 226, 45 (2004)](https://doi.org/10.1016/j.fluid.2004.09.001); Compernolle et al., [ACP 10, 6271 (2010)](https://doi.org/10.5194/acp-10-6271-2010) |
|
|
28
|
+
| Nannoolal Part 3 | Vapour pressure | implemented | Nannoolal et al., [FPE 269, 117 (2008)](https://doi.org/10.1016/j.fluid.2008.04.020) |
|
|
29
|
+
| Myrdal–Yalkowsky (+ H-bonding extension) | Vapour pressure | implemented | Myrdal & Yalkowsky, [IECR 36, 2494 (1997)](https://doi.org/10.1021/ie950242l); Compernolle et al., [ACP 10, 6271 (2010)](https://doi.org/10.5194/acp-10-6271-2010) |
|
|
30
|
+
|
|
31
|
+
Boiling points used as inputs (by Myrdal–Yalkowsky and Nannoolal Part 3) can
|
|
32
|
+
come from the self-implemented Nannoolal Part 1 route, from `thermo`'s
|
|
33
|
+
built-in Joback method, or from experimental data — `aerosolprops` does **not**
|
|
34
|
+
reimplement Joback.
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install aerosolprops
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
RDKit and `thermo` are required dependencies.
|
|
43
|
+
|
|
44
|
+
## Design notes
|
|
45
|
+
|
|
46
|
+
- **Units are strictly SI** (Pa, K, mol); property failures return `None`.
|
|
47
|
+
- **RDKit is the structure engine and a required dependency.** It is
|
|
48
|
+
imported lazily, and estimators ultimately consume group-count
|
|
49
|
+
dictionaries — the same interface `thermo` uses for its own
|
|
50
|
+
RDKit-optional group-contribution methods — so pieces remain extractable
|
|
51
|
+
upstream.
|
|
52
|
+
- **No molecular descriptors.** Every method needs only 2D graph quantities:
|
|
53
|
+
SMARTS substructure counts, ring perception, composition, and a few
|
|
54
|
+
connectivity queries. No fingerprints, no 3D, no descriptor packages.
|
|
55
|
+
- **No home-grown graph algorithms.** The graph primitives (connected
|
|
56
|
+
components, ring distances, neighbour queries) are RDKit built-ins;
|
|
57
|
+
`aerosolprops.topology` only wraps them. What is method-specific is the
|
|
58
|
+
translation of paper semantics (e.g. SIMPOL.1 "acid-side carbons",
|
|
59
|
+
EVAPORATION "in-chain oxygen") onto those primitives.
|
|
60
|
+
- **`thermo` compatibility.** aerosolprops hard-depends on `thermo` and follows
|
|
61
|
+
its group-contribution conventions (`{group_id: coefficient record}`
|
|
62
|
+
catalogues, counts-based static estimators, Joback-style one-time
|
|
63
|
+
fragmenting wrappers). Where a method's counting semantics do not fit
|
|
64
|
+
`thermo`'s mutually-exclusive SMARTS partition (SIMPOL.1's groups overlap
|
|
65
|
+
and replace one another additively), aerosolprops ships its own fragmenter
|
|
66
|
+
but keeps the same interface, so pieces can still be contributed upstream
|
|
67
|
+
with minimal rework.
|
|
68
|
+
|
|
69
|
+
## Licensing and data provenance
|
|
70
|
+
|
|
71
|
+
`aerosolprops` is MIT-licensed. Coefficients are entered from the published
|
|
72
|
+
papers cited above (facts, not copyrightable expression), and SMARTS
|
|
73
|
+
patterns are authored from the group definitions in those papers.
|
|
74
|
+
UManSysProp is used **only** as a behavioural test oracle during development;
|
|
75
|
+
no code or data files are copied from it.
|
|
76
|
+
|
|
77
|
+
## Development
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
uv venv && uv pip install -e ".[test,docs]"
|
|
81
|
+
pytest # unit tests + doctests
|
|
82
|
+
mkdocs serve # documentation
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
CI runs the full test matrix (with doctests) on Linux/macOS/Windows for
|
|
86
|
+
Python 3.9–3.14, plus a strict docs build.
|
|
87
|
+
|
|
88
|
+
## License
|
|
89
|
+
|
|
90
|
+
MIT — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=64"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "aerosolprops"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Structure-derived pure-component properties for atmospheric organic aerosol: vapour pressures and boiling points by group contribution"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
license = { text = "MIT" }
|
|
12
|
+
authors = [{ name = "Fan Zhang" }]
|
|
13
|
+
keywords = [
|
|
14
|
+
"atmospheric chemistry",
|
|
15
|
+
"aerosol",
|
|
16
|
+
"SOA",
|
|
17
|
+
"vapour pressure",
|
|
18
|
+
"boiling point",
|
|
19
|
+
"group contribution",
|
|
20
|
+
"RDKit",
|
|
21
|
+
"thermo",
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 3 - Alpha",
|
|
25
|
+
"Intended Audience :: Science/Research",
|
|
26
|
+
"License :: OSI Approved :: MIT License",
|
|
27
|
+
"Operating System :: OS Independent",
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"Programming Language :: Python :: 3.9",
|
|
30
|
+
"Programming Language :: Python :: 3.10",
|
|
31
|
+
"Programming Language :: Python :: 3.11",
|
|
32
|
+
"Programming Language :: Python :: 3.12",
|
|
33
|
+
"Programming Language :: Python :: 3.13",
|
|
34
|
+
"Programming Language :: Python :: 3.14",
|
|
35
|
+
"Topic :: Scientific/Engineering :: Atmospheric Science",
|
|
36
|
+
"Topic :: Scientific/Engineering :: Chemistry",
|
|
37
|
+
]
|
|
38
|
+
dependencies = [
|
|
39
|
+
"thermo>=0.6.1",
|
|
40
|
+
"rdkit>=2023.9",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[project.optional-dependencies]
|
|
44
|
+
test = ["pytest>=7.0"]
|
|
45
|
+
docs = ["mkdocs>=1.5", "mkdocs-material>=9.0"]
|
|
46
|
+
|
|
47
|
+
[project.urls]
|
|
48
|
+
Homepage = "https://github.com/openEarthModelling/aerosolprops"
|
|
49
|
+
Repository = "https://github.com/openEarthModelling/aerosolprops"
|
|
50
|
+
Changelog = "https://github.com/openEarthModelling/aerosolprops/blob/main/CHANGELOG.md"
|
|
51
|
+
|
|
52
|
+
[tool.setuptools.packages.find]
|
|
53
|
+
where = ["src"]
|
|
54
|
+
|
|
55
|
+
[tool.pytest.ini_options]
|
|
56
|
+
addopts = "--doctest-modules -q"
|
|
57
|
+
testpaths = ["src", "tests"]
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# SPDX-License-Identifier: MIT
|
|
2
|
+
"""Structure-derived pure-component properties for atmospheric organic
|
|
3
|
+
aerosol.
|
|
4
|
+
|
|
5
|
+
Successor to the pure-component property methods of UManSysProp
|
|
6
|
+
(Topping et al., Geosci. Model Dev. 9, 899-911, 2016), rebuilt on RDKit as
|
|
7
|
+
the structure engine and following the conventions of the ``thermo``
|
|
8
|
+
package family: strict SI units (Pa, K, mol), estimators as pure functions
|
|
9
|
+
of group counts where possible, and failures returned as ``None``.
|
|
10
|
+
|
|
11
|
+
Method coverage for v0.1:
|
|
12
|
+
|
|
13
|
+
- SIMPOL.1 vapour pressure (Pankow & Asher, ACP 8, 2773, 2008) —
|
|
14
|
+
implemented (see :class:`aerosolprops.vapour_pressure.SIMPOL1`)
|
|
15
|
+
- EVAPORATION vapour pressure (Compernolle et al., ACP 11, 9431, 2011) —
|
|
16
|
+
implemented (see :class:`aerosolprops.vapour_pressure.EVAPORATION`)
|
|
17
|
+
- Nannoolal Part 1 normal boiling point (Nannoolal et al., FPE 226, 45,
|
|
18
|
+
2004), including the SOA extension groups of Compernolle et al. (ACP 10,
|
|
19
|
+
6271, 2010) — implemented (see
|
|
20
|
+
:class:`aerosolprops.boiling_point.NannoolalBP`)
|
|
21
|
+
- Nannoolal Part 3 vapour pressure (Nannoolal et al., FPE 269, 117, 2008) —
|
|
22
|
+
implemented (see :class:`aerosolprops.vapour_pressure.NannoolalVP`)
|
|
23
|
+
- Myrdal-Yalkowsky vapour pressure (Myrdal & Yalkowsky, IECR 36, 2494,
|
|
24
|
+
1997) with the hydrogen-bonding extension of Compernolle et al. (2010) —
|
|
25
|
+
implemented (see :class:`aerosolprops.vapour_pressure.MyrdalYalkowsky`)
|
|
26
|
+
|
|
27
|
+
Boiling-point inputs may instead come from ``thermo``'s built-in Joback
|
|
28
|
+
method or from experimental data; aerosolprops does not reimplement Joback.
|
|
29
|
+
|
|
30
|
+
RDKit is a required dependency but is imported lazily: importing this
|
|
31
|
+
package pulls in neither RDKit nor ``thermo``'s group-contribution
|
|
32
|
+
machinery. Estimators consume plain group-count dictionaries — the same
|
|
33
|
+
interface ``thermo`` uses for its own RDKit-optional group-contribution
|
|
34
|
+
methods — so pieces remain extractable upstream.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
__version__ = "0.1.0.dev0"
|
|
38
|
+
|
|
39
|
+
from . import (
|
|
40
|
+
boiling_point,
|
|
41
|
+
fragmentation,
|
|
42
|
+
methods,
|
|
43
|
+
structure,
|
|
44
|
+
topology,
|
|
45
|
+
vapour_pressure,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
__all__ = [
|
|
49
|
+
"__version__",
|
|
50
|
+
"boiling_point",
|
|
51
|
+
"fragmentation",
|
|
52
|
+
"methods",
|
|
53
|
+
"structure",
|
|
54
|
+
"topology",
|
|
55
|
+
"vapour_pressure",
|
|
56
|
+
]
|