Skip to content

PySDM v1.4

Compare
Choose a tag to compare
@slayoo slayoo released this 21 Jun 20:58
83649d5

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