Skip to content

Releases: open-atmos/PySDM

PySDM v1.12

20 Sep 00:09
12ab1ce
Compare
Choose a tag to compare

requiring ThrustRTC==0.3.8 (due to fynv/ThrustRTC#19)

PySDM v1.11

18 Sep 19:36
843c718
Compare
Choose a tag to compare

cleanup and refactors incl. API changes:

  • Core --> Particulator
  • Core.particles --> Particulator.attributes

PySDM v1.10

16 Sep 21:45
0472a95
Compare
Choose a tag to compare

coalescence adaptivity on by default + minore fixes/cleanups

PySDM v1.9

15 Sep 18:50
0122cb0
Compare
Choose a tag to compare

maintenance release to accompanying PySDM-examples v1.9 + one minor fix in pH calculation code

PySDM v1.8

14 Sep 23:02
4722d86
Compare
Choose a tag to compare
  • TopHat spectrum + test
  • Flatau-Walko-Cotton polynomial fit fot saturated vapour pressure wrt ice + test
  • smoke tests for Alpert & Knopf 2016 Fig 1 example

PySDM v1.7

10 Sep 19:57
dc19af2
Compare
Choose a tag to compare
  • added Alpert & Knopf 2016 immersion freezing example
  • cleanups

PySDM v1.6

06 Sep 06:00
b9a857a
Compare
Choose a tag to compare
  • new example based on Lowe et al. 2019 Nature Comm. paper on surface-active organics - kudos @claresinger and @rxward!
  • kappa (times dry volume) as particle attribute, also optionally dry organic volume
  • backend routines, new products, initialisation methods (spectro_glacial_sampling) and basic tests for upcoming immersion freezing dynamic
  • VTK exporter metadata aligned to properly overlay netCDF output in Paraview
  • 2D kinematic environment GUI improvements and major code cleanup
  • UniformRandom spectral sampling
  • cleanups, fixes, new tests (r_wet_init, condensation diagnotics, moments, ...)

PySDM v1.5

13 Jul 01:36
5a62ffc
Compare
Choose a tag to compare

Maintenance release with git package URLs removed from setup.py (possible as we are now on pypi.org).
Also: performance-oriented refactors around moments and moment products (kudos @piotrbartman!)

PySDM v1.4

21 Jun 20:58
83649d5
Compare
Choose a tag to compare

TOP 5:

  • condensation on GPU (and required updates to FakeThrust, e.g. extract_struct_defs()); parcel and 1d-kinematic examples work now OK on both CPU and GPU; kudos to @piotrbartman

  • numerous cleanups and fixes in aqueous chemistry code, incl. rewrite of pH handling (HydrogenIonConcentration attribute), options to calculate both volume-weighted and number-weighted pH, calculation of dry radius based on actual amounts of chemical compounds; several figures from Kreidenweis et al. 2003 and Jaruga and Pawlowska 2018 reproduced successfully; kudos to @trontrytel

  • VTK exporter for attributes (files readily usable with Paraview for visualisation of particle attributes); kudos to @abulenok

  • brand new PySDM.physics infrastructure enabling common physics code for CPU and GPU backends (c_inline) and enabling user-facing control over the choice of physical formulae (e.g., condensation solver coordinate, saturation vapour pressure approximation, temperature dependence in diffusion coefficients, etc), JIT options and random seed through the Formulae.__init__() arguments; backend are now instantiated by the Builder;

  • Julia and Matlab (in addition to Python) example code in the README file (box coalescence & parcel condensation).

Other news:

  • deployment of pdoc-generated API manual to GitHub pages (https://atmos-cloud-sim-uj.github.io/PySDM/);
  • multi-threaded operation for moment calculation on CPU (using atomic_* functions from github.com/KatanaGraph/katana)
  • surface precipitation calculations on GPU
  • numerous fixes in GPU backend routines, including gently handling zero-length For launches
  • replaced bisection with TOMS-748 in the Numba backend (for r_wet_init, condensation implicit Euler and pH calculation)
  • thread-safe handling of "success" checks within condensation solver
  • simplification of the BDF code (test helper for validation condensation solver)
  • running Julia and Matlab examples on GitHub Actions
  • products: removed range and scale fields (now only defined in the ICMW example)
  • many more tests work on GPU now (displacement, condensation, ...)
  • widget freezer in Shima_et_al_2009 example
  • cleanups in docstrings

PySDM v1.3

06 Apr 14:09
46c13df
Compare
Choose a tag to compare

TOP 5:

  • aqueous chemistry dynamic draft with two new examples, kudos @Golui & @trontrytel!
    (new examples, WIP: Kreidenweis_et_al_2003 & Jaruga_and_Pawlowska_2018)
  • moving examples to a separate repo, making them an installable package
    (https://github.com/atmos-cloud-sim-uj/PySDM-examples)
  • dropping dep on molmass in favour of chempy (used by the new dynamic)
  • notebook execution moved from Travis to Github Actions (using pytest instead of bash script)
  • activation, deactivation and ripening counters (and relevant products)

Other news:

  • notebook header cleanup (just pip install PySDM_examples for Colab)
  • swithing to newer Jupyter Lab interface in mybinder.org badge links
  • cleanup around coalsecence timestep adaptivity
  • new products: TotalConcentration, ParcelDisplacement, Time, CloudDropletEffectiveRadius, PeakSupersaturation, ActivatingRate, DeactivatingRate, RipeningRate, TotalDryMassMixingRatio, DynamicWallTime, AqueousMassSpectrum, Concentration, pH
  • improved in-cloud hydrostatic profile integration + tests
  • removed intensive attribute logic from coalescence; added proper handling within IntensiveAttribute class
  • using @strict decorator for Settings classes (pystrict package)
  • added cron-schedulled builds to GA
  • added "pip -e" installation into continuous integration workflows
  • dropped Python 3.6 builds, introduced 3.9
  • fixed attr iteration in Thrust coalescence (chemistry first to use it)
  • dynamic/static schedule parameters for condensation
  • moved Matlab examples to a separate repo (PySDM_examples.m)
  • moved Julia examples to a separate repo (PySDM_examples.jl)
  • proper seed passing for initialisation in ThrustRTC.Random
  • checking README code with pytest using exdown