Skip to content

Releases: open-atmos/PySDM

PySDM v2.34

24 Dec 23:03
9c36aef
Compare
Choose a tag to compare

What's Changed

  • stable water isotopologues:

    • new base attributes: Moles1H, Moles16O, MolesLightWater + havy isotopes via make_mole_amount_factory (previously developed for Hoppel gap)
    • new derived attributes: isotopic deltas (via new make_delta_factory)
    • backend isotope methods: isotopic_delta via physics.trivia (both CPU and GPU)
    • sketch of IsotopicFractionation dynamic (attribite dependencies, trigerring delta calculation)
    • VSMOW constants
    • isotope-related physics formulae:
      • isotope_equilibrium_fractionation_factors: BarkanAndLuz2005 (Oxygen 17, liquid), HoritaAndWesolowski1994 (Oxygen 18 and Deuterium, liquid), Majoube1970 (Oxygen 18, ice), Majoube1971 (Oxygen 18, liquid), MerlivatAndNief1967 (Deuterium, liquid & ice), VanHook1968 (D, T, O18, O17; liquid & ice)
      • isotope_meteoric_water_line_excess: Dansgaard1964 (Oxygen 18 vs. Deuterium), BarkanAndLuz2007 (Oxygen 17 vs. Oxygen 18); Craig 1961 Fig 1 and Barkan & Luz 2007 Fig 4 unit tests
      • isotope_ratio_evolution: MerlivatAndJouzel1979 (differential), RayleighDistillation (integral) + test checking when these two match
    • trivia formulae: isotopic_delta_2_ratio, isotopic_ratio_2_delta, isotopic_enrichment_to_delta_SMOW, mixing_ratio_to_specific_content
    • new examples (all environment-free, depicting formulae):
      • Bolot_et_al_2013: Fig 1 (incl. unit tests)
      • Merlivat_and_Nief_1967: Fig 2 (incl. unit tests)
      • Pierchala_et_al_2022: Fig 3 & 4 (incl. smoke tests)
      • Van_Hook_1968: Fig 1
  • formulae machinery:

    • constants_defaults: all calculations logic moved to compute_derived_values function called from Formulae ctor
    • PPM, PER_CENT, PER_MEG, PER_MILLE
    • dry-air molar mass derived from NIST N2, O2, Ar and C composition ratios
    • water molar mass derived from VSMOW isotopic ratios
  • CI:

    • run git diff on pre-commit jpb failure
    • bump pypartmc from 1.0.0 to 1.0.1 by @dependabot in #1204
    • cleanup precommit workflow (#1205)

Full Changelog: v2.33...v2.34

PySDM v2.33

08 Dec 07:02
b24cc6e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.32...v2.33

PySDM v2.32

07 Dec 01:11
edb6ea7
Compare
Choose a tag to compare

What's Changed

  • Bump pypartmc from 0.6.4 to 0.7.1 by @dependabot in #1186
  • sort out pkg_resources deprecation using importlib.metadata (requires Python 3.8) by @slayoo in #1194
  • split packaging and publishing into separate jobs; enforce setuptools[-scm] versions that work by @slayoo in #1199

Full Changelog: v2.31...v2.32

PySDM v2.31

07 Nov 09:11
a14b680
Compare
Choose a tag to compare
  • added argument-range checks for GunnKinzer1949 interpolation of terminal velocities (thanks @bradybhalla for reporting and identifying the issue, thanks @abulenok for providing the fix)
  • failing Particulator instantiation if user supplies values for a derived attribute
  • simplifcations/cleanups in dry_volume & acidity attributes code
  • disabling multi-threading on arm64 until we have a fix for atomic operations (thanks @jtbuch and @pb475 for reporting the problem and help with debugging it!)

PySDM v2.30

17 Oct 07:43
10a05b1
Compare
Choose a tag to compare
  • mass instead of volume as base attribute (incl. introduction of physics.particle_shape_and_density) #1147
  • new cases for test_attribute_update_single_breakup (#1158)
  • compatibility fixes for newer versions of setuptools_scm
  • docstring cleanups

thanks @abulenok, @AgnieszkaMakulska & @Delcior

PySDM v2.29

29 Sep 12:43
082de09
Compare
Choose a tag to compare
  • added CPU vs. GPU performance comparison for the Srivastava_1978 setup
  • removed spurious index copying in attributes

PySDM v2.28

16 Sep 20:18
587163a
Compare
Choose a tag to compare
  • refactor in GPU backend using @cached_property instead of lengthy ctors in methods classes (results in a lazy evaluation bonus)
  • dropping support for Python 3.7 (due to @cached_property, and in line with 3.7 end of life)
  • C code syntax fixes & cleanups in GPU backend
  • atomicAdd workaround for double precision type on older CUDA (#1138)

PySDM v2.27

14 Sep 14:38
03cbbcf
Compare
Choose a tag to compare
  • option to use a non-constant timescale in the relaxed velocity dynamic (#1114) - @bradybhalla

PySDM v2.26

10 Sep 11:14
dd31069
Compare
Choose a tag to compare
  • breakup function renaming withing backend code (#1126) - @abulenok
  • phasing out "q" var naming in favour of "water_vapour_mixing_ratio", etc (#1131)
  • updates to the Grabowski & Pawlowska 2023 example: condensation tolerance, ripening rate (#1129) - @AgnieszkaMakulska
  • cleaning up code that triggered redefined-outer-name pylint warning in pytest fixtures and notebook-embedded function definitions (#1133)
  • ensuring all classes are accessible after importing only the main PySDM package (#1135)

PySDM v2.25

01 Sep 08:53
42f8485
Compare
Choose a tag to compare
  • new example notebooks and smoke tests covering complete set of figures from Grabowski & Pawlowska 2023
  • new product base class: _ActivationFilteredProduct
  • new products based on the above: ActivatedParticleConcentration, ActivatedParticleSpecificConcentration, ActivatedMeanRadius
  • new size-spectral products: MeanVolumeRadius, AreaStandardDeviation, RadiusStandardDeviation, VolumeStandardDeviation
  • new attribute: EquilibriumSupersaturation
  • cleanups in Yang_et_al_2018 example (incl. using the above new products instead of manually computing the activation-filtered quantities)

kudos @AgnieszkaMakulska!