Releases: open-atmos/PySDM
Releases · open-atmos/PySDM
PySDM v2.20
- updated multi-step breakup algorithm (kudos @abulenok & @edejong-caltech)
PySDM v2.19
- Fixes to Straub fragmentation function and sampling methods
- addition of (draft of) LowList1982 fragmentation function and coalescence efficiency
kudos @edejong-caltech, thanks @abulenok for reviews and help!
PySDM v2.18
- breakup internals fixes, refactors and cleanups - kudos @edejong-caltech & @abulenok
- smoke tests comparing against analytic solution of SCE with breakup terms (Srivastava 1982) - kudos @abulenok
- added
ConstantSize
breakup fragmentation function
PySDM v2.17
- making spatial, spectral and spectro-glacial sampling reproducible (obeying seed settings in Formulae)
- replace uses of debug-intended (and slow)
__setitem__
(e.g., within frag functions) with newly introducedfill()
Storage method - remove unused fields (
vmax
andx_plus_y
) fromAlwaysN
frag fun - enabling
--durations
reports inpytest
logs - CI workflows cleanups (grouping readme-snippets jobs, renaming)
PySDM v2.16
- enabling breakup smoke tests on GPU - kudos @abulenok!
- reflecting github org change in readme, docstrings, etc
- JOSS v2 paper updates (@claresinger & @edejong-caltech)
- minor code compatibility fixes for GPU
- minor collision code refactor: move cut_working_length call into adaptivity loop (thanks @piotrbartman)
- added zenodo-json-checking CI workflow
- added asserts for test_trickier_formula_vectorised (thanks @douglowe for reporting it)
- instantaneous ice melting support (as in Shima et al. 2020) as an option for Freezing dynamic (disabled by default)
PySDM v2.15
- major updates in collision methods (mostly GPU support for breakup, but also CPU refactors and cleanups & improved test coverage) - kudos @abulenok!
- numerous updates to
FakeThrustRTC
to support the above - kudos @abulenok - cleanups and docstrings in
Formulae
-related code - kudos @abulenok - clarification (significant) in displacement methods arg names (
omega
->position_in_cell
) - kudos @piotrbartman - fragmentation functions moved (partially) into
physics
submodule - introducing
ConcentrationProduct
base class supporting standard-temperature-and-pressure (STP) normalisation Multiplicities::MAX_VALUE
and unit test (+usage in breakup dynamics).zenodo.json
file added to streamline Zenodo metadata provision
PySDM v2.14
- fragmentation functions for GPU backend (@abulenok)
- implement
flag_zero_multiplicity
on GPU backend within aCommons
struct (@abulenok) - new pair and storage methods for GPU:
min_pair
,multiply_pair
anddivide_if_not_zero
(@abulenok) - made ABIFM immersion freezing logic employ supersaturation constraint (to be consistent with analogous condition in INAS logic)
- breakup algorithm: fix an issue with zero multiplicities (introduced
max(round(nj), 1)
) (@edejong-caltech) - shift from per-gridbox to per-kg units in rate product (@edejong-caltech)
- smoke test for Bieli et al. example (@edejong-caltech)
- make CPU
find_pairs
correctly handle the length argument (@abulenok) - added Python 3.10 to CI runs
- added smoke tests with 0D simulations covering breakup (upcoming deJong et al. paper)
PySDM v2.13
- smoke test comparing dry/wet equilibrium calculation against PyPartMC (thanks @zdaq12)
- avoiding divide-by-zero warnings in
EffectiveRadius
product - fix physical unit in size-spectrum products (thanks @sajjadazimi)
- better array-valued argument handling in
Formulae
methods usingnumba.vectorize
(thanks @claresinger) - new method:
Builder::replace_dynamic()
(@edejong-caltech) - handling NVRTC_PATH env var to point ThrustRTC to non-standard location of nVidia libs (@abulenok)
- new backend methods:
min_pair
,divide_if_not_zero
(@edejong-caltech) - GPU support for freezing
- 3D displacement incl. GPU support (@abulenok)
- Straub fragmentation function (@edejong-caltech)
- breakup algorithm improvements incl. reworked limiter logic,
fragment_size
instead ofmin_volume
, fragmentation function updates (@edejong-caltech) - backends: fixed
__init__
calls in multiple-inheritance contexts - FakeThrust fixes to better match ThrustRTC API (@abulenok)
- make formulae available at attribute mapper scope so
request_attribute
can be called without constraints - storage, attribute, mesh common code: improved test coverage, cleanups, docstrings (@abulenok!)
- multi-stage Github Actions workflow (pylint, no-numba unit tests, etc first, only then run all the tests
- updates to make the code clean with newer versions of pylint
- new tests for displacement, freezing, breakup, mesh, builder, formulae and storage logic
PySDM v2.12
- major updates in breakup algorithmics (no more while loop, fixes) and test coverage - thanks @edejong-caltech!
- new surface-tension model tests + code fixes and cleanups - thanks @claresinger
- new product: averaged terminal velocity - thanks @sajjadazimi
- new freezing-related products:
IceNucleiConcentration
,FrozenParticleConcentration
- new attribute:
WetToCriticalVolumeRatio
- added Fierce diagrams as a test for differences between full and linearised kappa-Koehler formulae - thanks @nriemer for hint!
PySDM v2.11
- fixing version indicators for dependencies in pypi.org-published files (regression introduced when automating package uploads)
- option to toggle overflow warning in the breakup dynamic (thanks @edejong-caltech)
- replacing r_crit<r_dry errors in wet-size equilibrium calculations with r_wet=r_dry setting (workaround for big-f_org/small-sized aerosols, thanks @claresinger)
- immersion freezing cleaups
- cleaning up imports from deprecated packages in SciPy (just subpackage naming changes)