PySDM 2.85__py3-none-any.whl → 2.87__py3-none-any.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.
@@ -428,3 +428,12 @@ one_kelvin = 1 * si.K
428
428
  bulk_phase_partitioning_T_cold = 235 * si.K
429
429
  bulk_phase_partitioning_T_warm = 273 * si.K
430
430
  bulk_phase_partitioning_exponent = np.nan
431
+
432
+
433
+ BOLIN_ISOTOPE_TIMESCALE_COEFF_C1 = np.nan * si.dimensionless
434
+ """
435
+ Coeffitient c1 used in [Bolin 1958](https://https://digitallibrary.un.org/record/3892725)
436
+ for the falling drop evaporation timescale of equilibration with ambient air void of a given
437
+ isotopologue; in the paper timescale is calculated for tritium with assumption of no tritium
438
+ in the environment around the drop (Table 1).
439
+ """
@@ -1,12 +1,12 @@
1
1
  """
2
- A context manager (for use with the `with` statement)
3
- for use in unit tests which disables Numba and enables Pint
2
+ A context manager (for use with the `with` statement) which
3
+ enables Pint physical-units checks and disables Numba in `PySDM.formulae.Formulae`
4
4
  """
5
5
 
6
6
  from importlib import reload
7
7
 
8
8
  from PySDM import formulae
9
-
9
+ from PySDM import physics
10
10
  from . import constants, constants_defaults
11
11
  from .impl import flag
12
12
 
@@ -17,9 +17,11 @@ class DimensionalAnalysis:
17
17
  reload(constants)
18
18
  reload(constants_defaults)
19
19
  reload(formulae)
20
+ reload(physics)
20
21
 
21
22
  def __exit__(*_): # pylint: disable=no-method-argument,no-self-argument
22
23
  flag.DIMENSIONAL_ANALYSIS = False
23
24
  reload(constants)
24
25
  reload(constants_defaults)
25
26
  reload(formulae)
27
+ reload(physics)
@@ -4,3 +4,4 @@ isotope relaxation timescale formulae
4
4
 
5
5
  from PySDM.impl.null_physics_class import Null
6
6
  from .miyake_et_al_1968 import MiyakeEtAl1968
7
+ from .bolin_1958 import Bolin1958
@@ -0,0 +1,17 @@
1
+ """ Timescale derived for tritium with assumption of zero ambient concentration - see text above
2
+ Table 1 [Bolin 1958](https://digitallibrary.un.org/record/3892725) """
3
+
4
+ import numpy as np
5
+
6
+
7
+ class Bolin1958: # pylint: disable=too-few-public-methods
8
+ """Implementation of timescale used by Bolin 1958"""
9
+
10
+ def __init__(self, const):
11
+ assert np.isfinite(const.BOLIN_ISOTOPE_TIMESCALE_COEFF_C1)
12
+
13
+ @staticmethod
14
+ # pylint: disable=too-many-arguments
15
+ def tau(const, radius, r_dr_dt):
16
+ """timescale for evaporation of a falling drop with tritium"""
17
+ return (-3 / radius**2 * r_dr_dt * const.BOLIN_ISOTOPE_TIMESCALE_COEFF_C1) ** -1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PySDM
3
- Version: 2.85
3
+ Version: 2.87
4
4
  Summary: Pythonic particle-based (super-droplet) warm-rain/aqueous-chemistry cloud microphysics package with box, parcel & 1D/2D prescribed-flow examples in Python, Julia and Matlab
5
5
  Home-page: https://github.com/open-atmos/PySDM
6
6
  Author: https://github.com/open-atmos/PySDM/graphs/contributors
@@ -75,7 +75,7 @@ The package features a Pythonic high-performance implementation of the
75
75
  Super-Droplet Method (SDM) Monte-Carlo algorithm for representing collisional growth
76
76
  ([Shima et al. 2009](https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/qj.441)), hence the name.
77
77
 
78
- There is a growing set of example Jupyter notebooks exemplifying how to perform
78
+ There is a growing set of [example Jupyter notebooks](https://open-atmos.github.io/PySDM/PySDM_examples.html) exemplifying how to perform
79
79
  various types of calculations and simulations using PySDM.
80
80
  Most of the example notebooks reproduce results and plot from literature, see below for
81
81
  a list of examples and links to the notebooks (which can be either executed or viewed
@@ -134,7 +134,7 @@ Conda users may use ``pip`` as well, see the [Installing non-conda packages](htt
134
134
  For development purposes, we suggest cloning the repository and installing it using ``pip -e``.
135
135
  Test-time dependencies can be installed with ``pip -e .[tests]``.
136
136
 
137
- PySDM examples constitute the [``PySDM-examples``](https://github.com/open-atmos/PySDM-examples) package.
137
+ PySDM examples constitute the [``PySDM-examples``](https://github.com/open-atmos/PySDM/blob/main/examples) package.
138
138
  The examples have additional dependencies listed in [``PySDM_examples`` package ``setup.py``](https://github.com/open-atmos/PySDM/blob/main/examples/setup.py) file.
139
139
  Running the example Jupyter notebooks requires the ``PySDM_examples`` package to be installed.
140
140
  The suggested install and launch steps are:
@@ -189,7 +189,8 @@ To run all pre-commit hooks, run `pre-commit run --all-files`.
189
189
  The `.pre-commit-config.yaml` file can be modified in case new hooks are to be added or
190
190
  existing ones need to be altered.
191
191
 
192
- Further hints addressed at PySDM developers are maintained in the [open-atmos/python-dev-hints Wiki](https://github.com/open-atmos/python-dev-hints/wiki).
192
+ Further hints addressed at PySDM developers are maintained in the [open-atmos/python-dev-hints Wiki](https://github.com/open-atmos/python-dev-hints/wiki)
193
+ and in [PySDM HOWTOs](https://github.com/open-atmos/PySDM/tree/main/examples/PySDM_examples/_HOWTOS).
193
194
 
194
195
  Issues regarding any incorrect, unintuitive or undocumented bahaviour of
195
196
  PySDM are best to be reported on the [GitHub issue tracker](https://github.com/open-atmos/PySDM/issues/new).
@@ -200,8 +200,8 @@ PySDM/initialisation/spectra/sum.py,sha256=SaxepweOdCozWlUkxCfr6Udo-KjGKWXgrdS0a
200
200
  PySDM/initialisation/spectra/top_hat.py,sha256=xmBr_IrctsnguPNgX-jR7JnQnQl1qzIaEyz75fvAJho,563
201
201
  PySDM/physics/__init__.py,sha256=cHgdLJl631R3bkiqq-t_FNZXAq6jdLor34uLr5LESAY,1890
202
202
  PySDM/physics/constants.py,sha256=ETbcdk-nhrVtjHidTREjHiUkAemNBNrSBWED3XjCXb8,1333
203
- PySDM/physics/constants_defaults.py,sha256=o3dcweOvCcI84tpvIWcy3cSWsqFfYH83tM6SKe_y_JM,14240
204
- PySDM/physics/dimensional_analysis.py,sha256=6_myMgc_eKhcbuNr7RqiQGj0OKNQ1TNqEMRb6Kzsqj0,688
203
+ PySDM/physics/constants_defaults.py,sha256=VoZpbxBNyOfIwT6keyokmRJjsgND2UoaSEeAxNSFgrw,14633
204
+ PySDM/physics/dimensional_analysis.py,sha256=Zk6ZHq9eTuOxoETgxyvg-0s0Tv4FDYbyFKCRFqVlCU0,790
205
205
  PySDM/physics/trivia.py,sha256=gAF0fUKTGFZbt95D2G_MwnDfAgVymGDWMawncKAMOG0,4048
206
206
  PySDM/physics/air_dynamic_viscosity/__init__.py,sha256=cLemG7DDSvwWv0mDwotzIUMHdiVhlLP_OrFENOnD8RM,90
207
207
  PySDM/physics/air_dynamic_viscosity/zografos_et_al_1987.py,sha256=51X3jHzkhx8w9KtYwbG_TEUbYJ9QpiLfXEiBqlrXFqw,620
@@ -271,7 +271,8 @@ PySDM/physics/isotope_ratio_evolution/__init__.py,sha256=w_8J7rh-c6RGDLMyYoNADrE
271
271
  PySDM/physics/isotope_ratio_evolution/gedzelman_and_arnold_1994.py,sha256=x0MlfJ219ApaUhLImIiI71A4uv0MyeOVdFRguv4CC-4,534
272
272
  PySDM/physics/isotope_ratio_evolution/merlivat_and_jouzel_1979.py,sha256=OQnkJ7UB_9H2KHuRwXNhmTJINrw7m_erNJmWPQpdDTk,531
273
273
  PySDM/physics/isotope_ratio_evolution/rayleigh_distillation.py,sha256=lQ-2AeYuyQRnuDHre3ZlplPbMHD9aObipXcf7Kfqqhw,344
274
- PySDM/physics/isotope_relaxation_timescale/__init__.py,sha256=wzfxFHo0sJBeCSsAhDLNwwujFHIMk1d42GC1b22pXrU,140
274
+ PySDM/physics/isotope_relaxation_timescale/__init__.py,sha256=gYZSTFs9ZfTDEEjTCRVd9E0LQMwKMokzG6_8ePF6x_8,174
275
+ PySDM/physics/isotope_relaxation_timescale/bolin_1958.py,sha256=fO7iRGb-X6RnKk_hKG54gD5p5U7LrWe6zdZ1uwZLsnM,666
275
276
  PySDM/physics/isotope_relaxation_timescale/miyake_et_al_1968.py,sha256=SgUfJulJhlan3knUUhGsgc3mDxmfXtzZHCnYrwZpees,456
276
277
  PySDM/physics/latent_heat/__init__.py,sha256=3edHhiH1wOwL84k_JubNQIDLZI8042plRafGreFSBck,185
277
278
  PySDM/physics/latent_heat/constant.py,sha256=pw39hru5vvSd-95-gVnYwr8vac1XhU8mLnPiNN4sKb8,263
@@ -383,8 +384,8 @@ PySDM/products/size_spectral/size_standard_deviation.py,sha256=A7fSj_keQi_bHW41P
383
384
  PySDM/products/size_spectral/total_particle_concentration.py,sha256=K7sO2jgUpYOwWvBK3jXp9KUxLRXk_Ve6ooOdY5q5jd0,470
384
385
  PySDM/products/size_spectral/total_particle_specific_concentration.py,sha256=isLZt5j2vJGr-FrzYFcUNPHZqMKhOtl51za1Hogh6hQ,476
385
386
  PySDM/products/size_spectral/water_mixing_ratio.py,sha256=PP54hfMy4SPDQDJgV4RNzVP03lmL1THZPa2KXrdgoQ4,1324
386
- PySDM-2.85.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
387
- PySDM-2.85.dist-info/METADATA,sha256=aekk57uDTAzRx120yu4rck8gkRyRk4EowiGPi0ljEEQ,17155
388
- PySDM-2.85.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
- PySDM-2.85.dist-info/top_level.txt,sha256=6NYaDAhUnaYMD7ebD_dQ7HlhiJS7NMuKEXb0ck7Wcsg,6
390
- PySDM-2.85.dist-info/RECORD,,
387
+ PySDM-2.87.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
388
+ PySDM-2.87.dist-info/METADATA,sha256=shahfELgf9gVfE3PnZ7P4iUSikIVwkR-ccN7yfNv1xY,17326
389
+ PySDM-2.87.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
390
+ PySDM-2.87.dist-info/top_level.txt,sha256=6NYaDAhUnaYMD7ebD_dQ7HlhiJS7NMuKEXb0ck7Wcsg,6
391
+ PySDM-2.87.dist-info/RECORD,,
File without changes
File without changes