Releases: open-atmos/PySDM
Releases · open-atmos/PySDM
PySDM v2.34
What's Changed
-
stable water isotopologues:
- new base attributes:
Moles1H
,Moles16O
,MolesLightWater
+ havy isotopes viamake_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 testsisotope_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
- new base attributes:
-
formulae machinery:
constants_defaults
: all calculations logic moved tocompute_derived_values
function called fromFormulae
ctorPPM
,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)
- run
Full Changelog: v2.33...v2.34
PySDM v2.33
What's Changed
- Bump pypartmc from 0.7.1 to 0.9.5 by @dependabot in #1195
- rename test_coalescence into test_lwc_constant + switch from returns to pytest.skip() by @slayoo in #1192
- Bump pypartmc from 0.9.5 to 1.0.0 by @dependabot in #1202
- Pass environment to Builder constructor by @abulenok in #1178
Full Changelog: v2.32...v2.33
PySDM v2.32
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
- 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
- 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
- added CPU vs. GPU performance comparison for the
Srivastava_1978
setup - removed spurious index copying in attributes
PySDM v2.28
- 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
- option to use a non-constant timescale in the relaxed velocity dynamic (#1114) - @bradybhalla
PySDM v2.26
- 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
- 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!