Releases: open-atmos/PySDM
PySDM v1.12
requiring ThrustRTC==0.3.8 (due to fynv/ThrustRTC#19)
PySDM v1.11
cleanup and refactors incl. API changes:
- Core --> Particulator
- Core.particles --> Particulator.attributes
PySDM v1.10
coalescence adaptivity on by default + minore fixes/cleanups
PySDM v1.9
maintenance release to accompanying PySDM-examples v1.9 + one minor fix in pH calculation code
PySDM v1.8
- 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
- added Alpert & Knopf 2016 immersion freezing example
- cleanups
PySDM v1.6
- 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
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
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 theFormulae.__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
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