PyPartMC 1.3.12__cp38-cp38-macosx_13_0_x86_64.whl → 1.4.2__cp38-cp38-macosx_13_0_x86_64.whl

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.

Potentially problematic release.


This version of PyPartMC might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyPartMC
3
- Version: 1.3.12
3
+ Version: 1.4.2
4
4
  Summary: Python interface to PartMC
5
5
  Author: PyPartMC team (see https://github.com/open-atmos/PyPartMC/graphs/contributors)
6
6
  Author-email: nriemer@illinois.edu
@@ -12,6 +12,14 @@ Requires-Python: >=3.7
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
14
  Requires-Dist: numpy
15
+ Provides-Extra: examples
16
+ Requires-Dist: matplotlib!=3.10.0; extra == "examples"
17
+ Requires-Dist: ipywidgets; extra == "examples"
18
+ Requires-Dist: voila; extra == "examples"
19
+ Requires-Dist: open-atmos-jupyter-utils; extra == "examples"
20
+ Requires-Dist: PySDM; extra == "examples"
21
+ Requires-Dist: PyMieScatt; extra == "examples"
22
+ Requires-Dist: SciPy; extra == "examples"
15
23
  Provides-Extra: tests
16
24
  Requires-Dist: pytest; extra == "tests"
17
25
  Requires-Dist: pytest-order; extra == "tests"
@@ -25,6 +33,14 @@ Requires-Dist: scipy; extra == "tests"
25
33
 
26
34
  PyPartMC is a Python interface to [PartMC](https://lagrange.mechse.illinois.edu/partmc/),
27
35
  a particle-resolved Monte-Carlo code for atmospheric aerosol simulation.
36
+ Development of PyPartMC has been intended to remove limitations to the use of Fortran-implemented PartMC.
37
+ PyPartMC facilitates the dissemination of computational research results by streamlining independent execution
38
+ of PartMC simulations (also during peer-review processes).
39
+ Additionally, the ability to easily package examples, simple simulations, and results in a web-based notebook
40
+ allows PyPartMC to support the efforts of many members of the scientific community, including researchers,
41
+ instructors, and students, with nominal software and hardware requirements.
42
+
43
+ Documentation of PyPartMC is hosted at https://open-atmos.github.io/PyPartMC.
28
44
  PyPartMC is implemented in C++ and it also constitutes a C++ API to the PartMC Fortran internals.
29
45
  The Python API can facilitate using PartMC from other environments - see, e.g., Julia and Matlab examples below.
30
46
 
@@ -36,12 +52,12 @@ If interested in contributing to PyPartMC, please have a look a the [notes for d
36
52
 
37
53
  [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0.html)
38
54
  [![Copyright](https://img.shields.io/static/v1?label=Copyright&color=249fe2&message=UIUC&)](https://atmos.illinois.edu/)
39
- [![Github Actions Build Status](https://github.com/open-atmos/PyPartMC/workflows/tests+pypi/badge.svg?branch=main)](https://github.com/open-atmos/PyPartMC/actions)
55
+ [![tests+pypi](https://github.com/open-atmos/PyPartMC/actions/workflows/tests+pypi.yml/badge.svg)](https://github.com/open-atmos/PyPartMC/actions/workflows/tests+pypi.yml)
40
56
  [![API docs](https://shields.mitmproxy.org/badge/docs-pdoc.dev-brightgreen.svg)](https://open-atmos.github.io/PyPartMC/)
57
+ [![codecov](https://codecov.io/gh/open-atmos/PyPartMC/graph/badge.svg?token=27IK9ZIQXE)](https://codecov.io/gh/open-atmos/PyPartMC)
41
58
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7662635.svg)](https://doi.org/10.5281/zenodo.7662635)
42
59
  [![PyPI version](https://badge.fury.io/py/PyPartMC.svg)](https://pypi.org/p/PyPartMC)
43
-
44
- ## TL;DR (try in a Jupyter notebook)
60
+ [![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)
45
61
 
46
62
  [![Python 3](https://img.shields.io/static/v1?label=Python&logo=Python&color=3776AB&message=3)](https://www.python.org/)
47
63
  [![Linux OK](https://img.shields.io/static/v1?label=Linux&logo=Linux&color=yellow&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Linux)
@@ -49,6 +65,21 @@ If interested in contributing to PyPartMC, please have a look a the [notes for d
49
65
  [![Windows OK](https://img.shields.io/static/v1?label=Windows&logo=Windows&color=white&message=%E2%9C%93)](https://en.wikipedia.org/wiki/Windows)
50
66
  [![Jupyter](https://img.shields.io/static/v1?label=Jupyter&logo=Jupyter&color=f37626&message=%E2%9C%93)](https://jupyter.org/)
51
67
 
68
+ ## Installation
69
+
70
+ ### Using the command-line `pip` tool (also applies to conda environments)
71
+ ```bash
72
+ pip install PyPartMC
73
+ ```
74
+
75
+ Note that, depending on the environment (OS, hardware, Python version), the pip-install invocation
76
+ may either trigger a download of a pre-compiled binary, or trigger compilation of PyPartMC.
77
+ In the latter case, a Fortran compiler and some development tools includiong CMake, m4 and perl
78
+ are required (while all non-Python dependencies are included in the PyPartMC source archive).
79
+ In both cases, all Python dependencies will be resolved by pip.
80
+
81
+ ### In a Jupyter notebook cell (also on Colab or jupyter-hub instances)
82
+
52
83
  ```python
53
84
  ! pip install PyPartMC
54
85
  import PyPartMC
@@ -57,6 +88,11 @@ import PyPartMC
57
88
  #### Jupyter notebooks with examples
58
89
  Note: clicking the badges below redirects to cloud-computing platforms. The mybinder.org links allow anonymous execution, Google Colab requires logging in with a Google account, ARM JupyerHub requires logging in with an ARM account (and directing Jupyter to a particular notebook within the `examples` folder).
59
90
 
91
+ The example notebooks feature additional dependencies that can be installed with:
92
+ ```bash
93
+ pip install PyPartMC[examples]
94
+ ```
95
+
60
96
  - Urban plume scenario demo (as in [PartMC](https://github.com/compdyn/partmc/tree/master/scenarios/1_urban_plume)):
61
97
  [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos/PyPartMC/blob/main/examples/particle_simulation.ipynb)
62
98
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PyPartMC/blob/main/examples/particle_simulation.ipynb)
@@ -83,6 +119,11 @@ Note: clicking the badges below redirects to cloud-computing platforms. The mybi
83
119
  [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PyPartMC/blob/main/examples/cloud_parcel.ipynb)
84
120
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PyPartMC.git/main?urlpath=lab/tree/examples/cloud_parcel.ipynb)
85
121
  [![ARM JupyterHub](https://img.shields.io/static/v1?label=launch%20in&logo=jupyter&color=lightblue&message=ARM+JupyterHub)](https://jupyterhub.arm.gov/hub/user-redirect/git-pull?repo=https%3A//github.com/open-atmos/PyPartMC&branch=main&urlPath=)
122
+ - Coagulation Model Intercomparison with PySDM, Droplets.jl:
123
+ [![View notebook](https://img.shields.io/static/v1?label=render%20on&logo=github&color=87ce3e&message=GitHub)](https://github.com/open-atmos//PyPartMC/blob/main/examples/additive_coag_comparison.ipynb)
124
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/open-atmos/PyPartMC/blob/main/examples/additive_coag_comparison.ipynb)
125
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/open-atmos/PyPartMC.git/main?urlpath=lab/tree/examples/additive_coag_comparison.ipynb)
126
+ [![ARM JupyterHub](https://img.shields.io/static/v1?label=launch%20in&logo=jupyter&color=lightblue&message=ARM+JupyterHub)](https://jupyterhub.arm.gov/hub/user-redirect/git-pull?repo=https%3A//github.com/open-atmos/PyPartMC&branch=main&urlPath=)
86
127
 
87
128
  ## Features
88
129
 
@@ -248,6 +289,17 @@ fprintf('%g # kg/m3\n', dot([masses{:}], [num_concs{:}]))
248
289
 
249
290
  PyPartMC is used within the [test workflow of the PySDM project](https://github.com/atmos-cloud-sim-uj/PySDM/tree/main/tests/smoke_tests/box/partmc).
250
291
 
292
+ ## Other packages with relevant feature scope
293
+
294
+ - [aerosolGDEFoam](https://openaerosol.sourceforge.io/): OpenFOAM CFD-coupled aerosol dynamics including nucleation, coagulation, and surface growth
295
+ - [AIOMFAC and AIOMFAC-web](http://www.aiomfac.caltech.edu/): Fortran-implemented aerosol thermodynamic model for calculation of activity coefficients in organic-inorganic mixtures – from simple binary solutions to complex multicomponent systems
296
+ - [DustPy](https://stammler.github.io/dustpy/): Python package for modelling dust evolution in protoplanetary disks (differences: focus on astrophysical applications vs. atmospheric aerosol)
297
+ - [multilayerpy](https://github.com/tintin554/multilayerpy): kinetic multi-layer model for aerosol particles and films
298
+ - [PyBox](https://pybox.readthedocs.io): aerosol simulation model featuring gas and particle chamistry (differences: PyBox focuses on chemical mechanisms; PyPartMC is an interface to PartMC which focuses on physics - e.g., collisions of aerosol particles - while chemical processes are handled with external software, e.g., CAMP or MOSAIC)
299
+ - [PyCHAM](https://github.com/simonom/PyCHAM): CHemistry with Aerosol Microphysics in Python Box Model for modelling of indoor environments, including aerosol chambers
300
+ - [PySDM](https://open-atmos.github.io/PySDM): particle-based Monte-Carlo aerosol-cloud simulation package (differences: PySDM focuses on growth and breakup processes relevant to cloud droplets; PyPartMC focuses on processes relevant to air pollutants and their chemical and physical transformations)
301
+ - [SSH-aerosol](https://github.com/sshaerosol/ssh-aerosol): C++/Fortran package for simulating evolution of primary and secondary atmospheric aerosols
302
+
251
303
  ## FAQ
252
304
  - Q: How to install PyPartMC with MOSAIC enabled?
253
305
  A: Installation can be done using `pip`, however, `pip` needs to be instructed not to use binary packages available at pypi.org but rather to compile from source (pip will download the source from pip.org), and the path to compiled MOSAIC library needs to be provided at compile-time; the following command should convey it:
@@ -289,6 +341,47 @@ Could not find NC_M4 using the following names: m4, m4.exe
289
341
  ```
290
342
  Try installing `m4` (e.g., using [MSYS2](https://packages.msys2.org/package/m4?repo=msys&variant=x86_64) on Windows).
291
343
 
344
+ ## Acknowledgement and citations
345
+
346
+ We would greatly appreciate citation of the PartMC model description paper (Riemer et al., 2009)
347
+ and the PyPartMC description paper (D’Aquino et al., 2024) if PyPartMC was used in your study.
348
+ The citations are:
349
+ - Riemer, N., M. West, R. A. Zaveri, R. C. Easter: Simulating the evolution of soot
350
+ mixing-state with a particle-resolved aerosol model
351
+ J. Geophys. Res., 114, D09202, 2009, DOI: [10.1029/2008JD011073](https://doi.org/10.1029/2008JD011073)
352
+ - D’Aquino, Z., S. Arabas, J. H. Curtis, A. Vaishnav, N. Riemer, M. West: PyPartMC: A
353
+ pythonic interfact to a particle-resolved, Monte Carlo aerosol simulation framework
354
+ SoftwareX, 25, 101613, 2024, DOI: [10.1016/j.softx.2023.101613](https://doi.org/10.1016/j.softx.2023.101613)
355
+
356
+ The following paragraph provides a more substantial description of PartMC (text released into the public domain and can be freely copied by anyone for any purpose):
357
+
358
+ > PartMC is a stochastic, particle-resolved aerosol box model. It tracks the
359
+ composition of many computational particles (10<sup>4</sup> to 10<sup>6</sup>) within a well-mixed air
360
+ volume, each represented by a composition vector that evolves based on physical
361
+ and chemical processes. The physical processes—including Brownian coagulation,
362
+ new particle formation, emissions, dilution, and deposition—are simulated using a
363
+ stochastic Monte Carlo approach via a Poisson process while chemical processes are
364
+ simulated deterministically for each computational particle. The weighted flow
365
+ algorithm (DeVille, Riemer, and West, 2011, 2019) enhances efficiency and reduces
366
+ ensemble variance. Detailed numerical methods are described in Riemer et al.
367
+ (2009), DeVille et al. (2011, 2019), and Curtis et al. (2016). PartMC is open-source
368
+ under the GNU GPL v2 and available at
369
+ [github.com/compdyn/partmc](https://github.com/compdyn/partmc).
370
+ >
371
+ > References:
372
+ > - Curtis, J. H., M. D. Michelotti, N. Riemer, M. T. Heath, M. West: Accelerated
373
+ simulation of stochastic particle removal processes in particle-resolved aerosol
374
+ models, J. Computational Phys., 322, 21-32, 2016, DOI: [10.1016/j.jcp.2016.06.029](https://doi.org/10.1016/j.jcp.2016.06.029)
375
+ > - DeVille, L., N. Riemer, M. West, Convergence of a generalized weighted flow
376
+ algorithm for stochastic particle coagulation, J. Computational Dynamics, 6, 69-94,
377
+ 2019, DOI: [10.3934/jcd.2019003](https://doi.org/10.3934/jcd.2019003)
378
+ > - DeVille, R. E. L., N. Riemer, M. West, The Weighted Flow Algorithm (WFA) for
379
+ stochastic particle coagulation, J. Computational Phys., 230, 8427-8451, 2011,
380
+ DOI: [10.1016/j.jcp.2011.07.027](https://doi.org/10.1016/j.jcp.2011.07.027)
381
+ > - Riemer, N., M. West, R. A. Zaveri, R. C. Easter, Simulating the evolution of soot
382
+ mixing-state with a particle-resolved aerosol model, J. Geophys. Res., 114, D09202,
383
+ 2009., DOI: [10.1029/2008JD011073](https://doi.org/10.1029/2008JD011073)
384
+
292
385
  ## Credits
293
386
 
294
387
  #### PyPartMC:
@@ -0,0 +1,7 @@
1
+ _PyPartMC.cpython-38-darwin.so,sha256=JqtXLvBHQaROa8wRDVQpc6NOF4pl0Cl48WBG09Cd7rY,8563088
2
+ PyPartMC/__init__.py,sha256=VAqwePpJZEFJ7YieM1GbUvfluRhUyWXciP89pY9xIH4,2217
3
+ PyPartMC-1.4.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
4
+ PyPartMC-1.4.2.dist-info/METADATA,sha256=Pp5TaR3vg27KAIgJ-EMQlDx1i4D0cqgo9BqYeZiGWsI,26665
5
+ PyPartMC-1.4.2.dist-info/WHEEL,sha256=OzbVqQDGgCN-oj-FNGUZi3Dga71LFiZj1IqKmk_Y6R4,108
6
+ PyPartMC-1.4.2.dist-info/top_level.txt,sha256=PJxy22pTnxcBhqrb6r4AIL32rkxA61gzw7ohlzybgSM,19
7
+ PyPartMC-1.4.2.dist-info/RECORD,,
Binary file
@@ -1,7 +0,0 @@
1
- _PyPartMC.cpython-38-darwin.so,sha256=J_q-4st_yRQR6SXtDXIMfW0iATNlCfCoNs_4oHc0Qnw,8563080
2
- PyPartMC/__init__.py,sha256=VAqwePpJZEFJ7YieM1GbUvfluRhUyWXciP89pY9xIH4,2217
3
- PyPartMC-1.3.12.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
4
- PyPartMC-1.3.12.dist-info/METADATA,sha256=EFQlS7ijERseh0BIHURO-fUflttT_xuIUBrlbzQZ9sI,19060
5
- PyPartMC-1.3.12.dist-info/WHEEL,sha256=OzbVqQDGgCN-oj-FNGUZi3Dga71LFiZj1IqKmk_Y6R4,108
6
- PyPartMC-1.3.12.dist-info/top_level.txt,sha256=PJxy22pTnxcBhqrb6r4AIL32rkxA61gzw7ohlzybgSM,19
7
- PyPartMC-1.3.12.dist-info/RECORD,,