Skip to content

Releases: open-atmos/PySDM

PySDM v1.2

16 Feb 11:13
244a8de
Compare
Choose a tag to compare

TOP 5:

  • new adaptivity controls for SDM coalescence (kudos @piotrbartman!)
  • new smart scheduling for parallel execution in multi-cell adaptive coalescence (for both GPU and CPU)
  • new environment: kinematic_1D
  • new example based on Shipway & Hill 2012 using PyMPDATA 1D advection
  • major refactors around storage logic and coalescence-related backend methods

Other news:

  • numerous fixes to support 1D simulations
  • several physics formulae residing in environment code moved to physics
  • new products: CoalescenceTimestepMean, CoalescenceTimestepMin, WaterMixingRatio
  • support for atomicMin() in FakeThrustRTC
  • test_todos_annotated.py - checking if all TODOs in the code have a valid GitHub issue number
  • major cleanups (incl. removal of numerous obsolete backend tests)
  • new tests: adaptive coalescence, new example

PySDM v1.1

12 Jan 23:18
265aaa7
Compare
Choose a tag to compare

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

PySDM v1.0

26 Aug 19:00
6450351
Compare
Choose a tag to compare

Initial release accompanying Piotr Bartman's MSc thesis and featuring:

  • coalescence with adaptive time step (CPU, GPU)
  • condensation with adaptive time step (CPU)