Skip to content

Releases: open-atmos/PySDM

PySDM v2.20

21 Apr 03:06
4e9eea7
Compare
Choose a tag to compare

PySDM v2.19

14 Apr 23:25
ef3ac83
Compare
Choose a tag to compare
  • 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

10 Apr 21:00
25bc10b
Compare
Choose a tag to compare
  • 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

30 Mar 16:07
a918831
Compare
Choose a tag to compare
  • 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 introduced fill() Storage method
  • remove unused fields (vmax and x_plus_y) from AlwaysN frag fun
  • enabling --durations reports in pytest logs
  • CI workflows cleanups (grouping readme-snippets jobs, renaming)

PySDM v2.16

14 Feb 15:22
cea82de
Compare
Choose a tag to compare
  • 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

30 Dec 13:55
fe2da23
Compare
Choose a tag to compare
  • 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

08 Nov 22:17
4c95641
Compare
Choose a tag to compare
  • fragmentation functions for GPU backend (@abulenok)
  • implement flag_zero_multiplicity on GPU backend within a Commons struct (@abulenok)
  • new pair and storage methods for GPU: min_pair, multiply_pair and divide_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

23 Oct 19:40
dd5aad0
Compare
Choose a tag to compare
  • 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 using numba.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 of min_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

31 Aug 06:54
329b916
Compare
Choose a tag to compare
  • 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

16 Aug 03:19
3c5b26e
Compare
Choose a tag to compare
  • 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)