Skip to content

Commit d7f1177

Browse files
committed
Merge remote-tracking branch 'origin/isotopes' into isotopes
2 parents d4912c9 + 20fb695 commit d7f1177

File tree

8 files changed

+57
-4
lines changed

8 files changed

+57
-4
lines changed

PySDM/formulae.py

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def __init__( # pylint: disable=too-many-locals
4949
heterogeneous_ice_nucleation_rate: str = "Null",
5050
fragmentation_function: str = "AlwaysN",
5151
isotope_equilibrium_fractionation_factors: str = "Null",
52+
isotope_kinetic_fractionation_factors: str = "Null",
5253
isotope_meteoric_water_line: str = "Null",
5354
isotope_ratio_evolution: str = "Null",
5455
isotope_diffusivity_ratios: str = "Null",
@@ -88,6 +89,9 @@ def __init__( # pylint: disable=too-many-locals
8889
self.isotope_equilibrium_fractionation_factors = (
8990
isotope_equilibrium_fractionation_factors
9091
)
92+
self.isotope_kinetic_fractionation_factors = (
93+
isotope_kinetic_fractionation_factors
94+
)
9195
self.isotope_meteoric_water_line = isotope_meteoric_water_line
9296
self.isotope_ratio_evolution = isotope_ratio_evolution
9397
self.isotope_diffusivity_ratios = isotope_diffusivity_ratios

PySDM/physics/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
hygroscopicity,
3232
impl,
3333
isotope_equilibrium_fractionation_factors,
34+
isotope_kinetic_fractionation_factors,
3435
isotope_meteoric_water_line,
3536
isotope_ratio_evolution,
3637
isotope_diffusivity_ratios,
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
from PySDM.impl.null_physics_class import Null
2+
from .jouzel_and_merlivat_1984 import JouzelAndMerlivat1984
3+
from .pierchala_et_al_2022 import PierchalaEtAl2022
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""
2+
kinetic fractionation factor from [Jouzel & Merlivat 1984](https://doi.org/10.1029/JD089iD07p11749)
3+
"""
4+
5+
6+
class JouzelAndMerlivat1984: # pylint: disable=too-few-public-methods
7+
@staticmethod
8+
def alpha_kinetic(alpha_equilibrium, relative_humidity, D_heavy2D_light):
9+
return (
10+
alpha_equilibrium
11+
* relative_humidity
12+
/ (alpha_equilibrium / D_heavy2D_light * (relative_humidity - 1) + 1)
13+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"""
2+
kinetic fractionation factor and epsilon kinetic
3+
from [Pierchala et al. 2022](https://doi.org/10.1016/j.gca.2022.01.020)
4+
"""
5+
6+
7+
class PierchalaEtAl2022: # pylint: disable=too-few-public-methods
8+
@staticmethod
9+
def alpha_kinetic(eps_kinetic):
10+
return 1 - eps_kinetic
11+
12+
@staticmethod
13+
def eps_kinetic(*, theta, n, eps_diff, relative_humidity):
14+
assert 0 <= n <= 1
15+
return theta * n * eps_diff * (1 - relative_humidity)

PySDM/physics/isotope_relaxation_timescale/jouzel_et_al_1975.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""eq. 7 in [Jouzel et al 1975](https://doi.org/10.1029/JC080i036p05015)"""
1+
"""eq. 7 in [Jouzel et al. 1975](https://doi.org/10.1029/JC080i036p05015)"""
22

33

44
class JouzelEtAl1975: # pylint: disable=too-few-public-methods

PySDM/physics/isotope_relaxation_timescale/zaba_and_arabas_2025.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ def __init__(self, _):
66
pass
77

88
@staticmethod
9-
def tau( # pylint: disable=too-many-arguments
9+
# pylint: disable=too-many-arguments
10+
def tau(
1011
*,
1112
const,
1213
radius,

docs/bibliography.json

+18-2
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@
198198
"examples/PySDM_examples/Pierchala_et_al_2022/fig_3.ipynb",
199199
"examples/PySDM_examples/Pierchala_et_al_2022/fig_4.ipynb",
200200
"examples/PySDM_examples/Pierchala_et_al_2022/__init__.py",
201-
"examples/PySDM_examples/Pierchala_et_al_2022/commons.py"
201+
"examples/PySDM_examples/Pierchala_et_al_2022/commons.py",
202+
"PySDM/physics/isotope_kinetic_fractionation_factors/pierchala_et_al_2022.py"
202203
],
203204
"label": "Pierchala et al. 2022 (Geochim. Cosmochim. Acta 322)",
204205
"title": "Quantification the diffusion-induced fractionation of <sup>1</sup>H<sub>2</sub><sup>17</sup>O isotopologue in air accompanying the process of water evaporation"
@@ -550,7 +551,8 @@
550551
"https://doi.org/10.1029/JC084iC08p05029": {
551552
"usages": [
552553
"PySDM/physics/isotope_ratio_evolution/merlivat_and_jouzel_1979.py",
553-
"tests/unit_tests/physics/test_isotope_ratio_evolution.py"
554+
"tests/unit_tests/physics/test_isotope_ratio_evolution.py",
555+
"PySDM/physics/isotope_kinetic_fractionation_factors/merlivat_and_jouzel_1979.py"
554556
],
555557
"label": "Merlivat & Jouzel 1979 (J. Geophys. Res. Oceans 84)",
556558
"title": "Global climatic interpretation of the deuterium-oxygen 18 relationship for precipitation"
@@ -775,6 +777,13 @@
775777
"title": "Isotopic Composition and Temperature of Formation of Antarctic Snows",
776778
"label": "Picciotto et al. 1960 (Nature 187)"
777779
},
780+
"https://doi.org/10.1029/JC080i036p05015": {
781+
"usages": [
782+
"PySDM/physics/isotope_relaxation_timescale/jouzel_et_al_1975.py"
783+
],
784+
"title": "Isotopic study of hail",
785+
"label": "Jouzel et al. 1975 (J. Geophys. Res. Oceans 80)"
786+
},
778787
"https://doi.org/10.1016/0019-1035(80)90173-6": {
779788
"usages": [
780789
"examples/PySDM_examples/Toon_et_al_1980/fig_1.ipynb",
@@ -811,5 +820,12 @@
811820
],
812821
"title": "The Growth of Cloud Drops in Uniformly Cooled Air",
813822
"label": "Howell 1949 (J. Atmos. Sci.)"
823+
},
824+
"https://doi.org/10.1029/JD089iD07p11749": {
825+
"usages": [
826+
"PySDM/physics/isotope_kinetic_fractionation_factors/jouzel_and_merlivat_1984.py"
827+
],
828+
"title": "Deuterium and oxygen 18 in precipitation: Modeling of the isotopic effects during snow formation",
829+
"label": "Jouzel & Merlivat 1984 (J. Geophys. Res. Atmos. 89)"
814830
}
815831
}

0 commit comments

Comments
 (0)