Skip to content

PySDM v1.1

Compare
Choose a tag to compare
@slayoo slayoo released this 12 Jan 23:18
265aaa7

TOP5:

  • major refactor of backend storage classes (including introduction of Index, PairIndicator and PairwiseStorage)
  • support for calculating moments on GPU with parallel sums using atomicAdd (thanks @tehAgitto)
  • fakeThrust machinery for testing GPU code on CPU (incl. C to Python translation) and the backends fixture for pytests (kudos @piotrbartman!)
  • PySDM_tutorials folder with minimal usage examples for the "box" and the "parcel" environments depicting how to use PySDM from Python, Matlab and Julia + minimal example for the "kinematic_2d" environment in Python
  • initialisation logic refactored and moved to init_attributes() methods in environments

Other news:

  • added continuous integration scripts for Github Actions (Windows, macOS, Linux) and Appveyor (32-bit and 64-bit Windows jobs)
  • support for switching floating point format on GPU backend, fixed int overflow issues in Thrust C code
  • introducing alias backend names: CPU=Numba and GPU=ThrustRTC
  • CUDA detection code with hints for Colab users
  • Bartman et al. 2021 example with animation generated from netCDF file
  • fixed tolerance handling in bisection + adjusted default tolerances for condensation
  • switched from mendeleev to molmass package as dependency for physical constants
  • setup.py file for installation with pip
  • removed dependency on mpmath (mpmath.besseli -> scipy.special.ive)
  • relocation of all product classes into PySDM/products
  • renamed ICMW_2012_case_1 to Arabas_et_al_2015_Figs_8_9
  • added widgets and temporary_file in PySDM_examples/utils including helper logic for downloading files from Colab
  • fixed ipywidgets no-icons problem on Colab ("display(HTML(...))" with in widgets/init.py)
  • renamed all Setup classes to Settings (not to have multiple setup.py files which puzzled Dependabot)
  • work in progress towards cell-wise adaptivity for coalescence (still guarded with not-implemented exception)
  • new products: CollisionRate, CollisionRateDeficit, SurfacePrecipitation
  • use "-We" flag for python in CI scripts to trigger error on warnings (what triggered numerous cleanups)
  • switch from TRAVIS to CI env var whenever checking for continuous integration environment
  • README and notebook header enhancements (incl. Colab and mybinder badges in notebook headers)
  • more metadata in netCDF output
  • moved timing logic from stats.py into products
  • renamed State to Particles
  • simplified inheritance in environments
  • AmbientThermodynamics dynamic
  • more parrallel=True/prange loops in numba backend
  • automatic initial spectrum range by specifying sampling region with percentiles
  • adapted EulerianAdvection to new PyMPDATA API (MPyDATA->PyMPDATA, advectee, advector)
  • enforcing stateless backends by preventing instantiation with an exception in init