Releases: open-atmos/PySDM
Releases · open-atmos/PySDM
PySDM v1.2
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()
inFakeThrustRTC
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
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
andtemporary_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
Initial release accompanying Piotr Bartman's MSc thesis and featuring:
- coalescence with adaptive time step (CPU, GPU)
- condensation with adaptive time step (CPU)