Releases: open-atmos/PySDM
Releases · open-atmos/PySDM
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
FakeThrustRTCto 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
physicssubmodule - introducing
ConcentrationProductbase class supporting standard-temperature-and-pressure (STP) normalisation Multiplicities::MAX_VALUEand unit test (+usage in breakup dynamics).zenodo.jsonfile added to streamline Zenodo metadata provision
PySDM v2.14
- fragmentation functions for GPU backend (@abulenok)
- implement
flag_zero_multiplicityon GPU backend within aCommonsstruct (@abulenok) - new pair and storage methods for GPU:
min_pair,multiply_pairanddivide_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_pairscorrectly 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
EffectiveRadiusproduct - fix physical unit in size-spectrum products (thanks @sajjadazimi)
- better array-valued argument handling in
Formulaemethods 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_sizeinstead 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_attributecan 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)
PySDM v2.10
- fragmentation limiters (by @edejong-caltech)
- 1D VTK and nceCDF exporters (by @sajjadazimi)
- PyPI release automation through GitHub Actions
- introducing test-time-dependency on PyPartMC
PySDM v2.9
- option to skip thd update in condensation dynamic added (for KiD example, kudos @sajjadazimi!)
- JOSS PySDM v2 paper updates (kudos @edejong-caltech & @claresinger)
PySDM v2.8
- single-column environment and examples beef up (kudos @sajjadazimi)
- improved aerosol initialisation test coverage (kudos @claresinger)
- API change in aerosol initialisation (aerosol.aerosol_modes -> aerosol.modes)
- JOSS v2 paper progress
PySDM v2.7
- handling of domain-leaving particles in displacement logic and 1D kinematic smoke tests updates (thanks to @sajjadazimi)
- more tests for CCN activation (thanks to @claresinger)
- code cleanups (including enforcing keyword parameters for functions with many args)