Releases: open-atmos/PySDM
Releases · open-atmos/PySDM
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)
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)
PySDM v2.6
- common aerosol composition code in
PySDM.initialisation
(@claresinger) - breakup: counting breakup deficit instead of reporting error,
vmin
andnfmax
thresholds (@edejong-caltech) - Area attribute and
SimpleGeometric
collision kernel (@edejong-caltech) NumberSizeSpectrum
andBreakupRateDeficitPerGridbox
products (@edejong-caltech)- adaptive time-stepping in
Displacement
dynamic (criterion suggested by @mwest1066) Feingold1988Frag
fragmentation function (@edejong-caltech)- renaming default branch from
master
tomain