Pysdm

Latest version: v2.85

Safety actively analyzes 685838 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 19 of 19

1.5

Maintenance release with git package URLs removed from setup.py (possible as we are now on pypi.org).
Also: performance-oriented refactors around moments and moment products (kudos piotrbartman!)

1.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 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

1.3

TOP 5:
- aqueous chemistry dynamic draft with two new examples, kudos Golui & trontrytel!
(new examples, WIP: Kreidenweis_et_al_2003 & Jaruga_and_Pawlowska_2018)
- moving examples to a separate repo, making them an installable package
(https://github.com/atmos-cloud-sim-uj/PySDM-examples)
- dropping dep on molmass in favour of chempy (used by the new dynamic)
- notebook execution moved from Travis to Github Actions (using pytest instead of bash script)
- activation, deactivation and ripening counters (and relevant products)

Other news:
- notebook header cleanup (just pip install PySDM_examples for Colab)
- swithing to newer Jupyter Lab interface in mybinder.org badge links
- cleanup around coalsecence timestep adaptivity
- new products: TotalConcentration, ParcelDisplacement, Time, CloudDropletEffectiveRadius, PeakSupersaturation, ActivatingRate, DeactivatingRate, RipeningRate, TotalDryMassMixingRatio, DynamicWallTime, AqueousMassSpectrum, Concentration, pH
- improved in-cloud hydrostatic profile integration + tests
- removed intensive attribute logic from coalescence; added proper handling within IntensiveAttribute class
- using strict decorator for Settings classes (pystrict package)
- added cron-schedulled builds to GA
- added "pip -e" installation into continuous integration workflows
- dropped Python 3.6 builds, introduced 3.9
- fixed attr iteration in Thrust coalescence (chemistry first to use it)
- dynamic/static schedule parameters for condensation
- moved Matlab examples to a separate repo (PySDM_examples.m)
- moved Julia examples to a separate repo (PySDM_examples.jl)
- proper seed passing for initialisation in ThrustRTC.Random
- checking README code with pytest using exdown

1.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()`` 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

1.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`` 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 <link rel="stylesheet"> 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__

1.0

Initial release accompanying Piotr Bartman's MSc thesis and featuring:
- coalescence with adaptive time step (CPU, GPU)
- condensation with adaptive time step (CPU)

Page 19 of 19

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.