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