Skip to content

Commit 5ec72a4

Browse files
committed
updated calibrants
1 parent b65e918 commit 5ec72a4

File tree

6 files changed

+151
-5
lines changed

6 files changed

+151
-5
lines changed

burnman/calibrants/Decker_1971.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def _pressure_Decker_NaCl(volume, temperature, params):
3333
+ 9 * params["Kprime_0"] ** 2
3434
- 63 * params["Kprime_0"]
3535
+ 143
36-
)
36+
) / 6.0
3737
f = 0.5 * ((volume / params["V_0"]) ** (-2 / 3) - 1)
3838
K_T = (
3939
params["K_0"]
@@ -55,7 +55,7 @@ def _pressure_Decker_NaCl(volume, temperature, params):
5555
_params_Decker_NaCl = {
5656
"V_0": 2.7013e-05,
5757
"K_0": 23.7,
58-
"Kprime_0": 5.04, # 4.91 in Matsui (2012), however 5.04 is required to reproduce values in Table 4.
58+
"Kprime_0": 4.91,
5959
"Kprime_prime_0": -0.267,
6060
"Debye_0": 279.0,
6161
"grueneisen_0": 1.59,

burnman/calibrants/Fei_2007.py

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from burnman.eos.birch_murnaghan import BirchMurnaghanBase as BM3
88
from burnman.eos.mie_grueneisen_debye import MGDBase
99
from burnman.classes.calibrant import Calibrant
10-
10+
from burnman.utils.unitcell import molar_volume_from_unit_cell_volume
1111

1212
"""
1313
Fei_2007
@@ -61,3 +61,42 @@ def _pressure_Fei_Pt(volume, temperature, params):
6161
}
6262

6363
Calibrant.__init__(self, _pressure_Fei_Pt, "pressure", _params_Fei_Pt)
64+
65+
66+
class Au(Calibrant):
67+
"""
68+
The Au pressure standard reported by
69+
Fei et al. (2007; https://doi.org/10.1073/pnas.0609013104).
70+
"""
71+
72+
def __init__(self):
73+
def _pressure_Fei_Au(volume, temperature, params):
74+
75+
# Isothermal pressure (GPa)
76+
pressure_model = Vinet()
77+
P0 = pressure_model.pressure(params["T_0"], volume, params)
78+
79+
# Thermal pressure
80+
thermal_model = MGDBase()
81+
Pth0 = thermal_model._thermal_pressure(params["T_0"], volume, params)
82+
Pth = thermal_model._thermal_pressure(temperature, volume, params)
83+
84+
# Total pressure
85+
P = P0 + Pth - Pth0
86+
87+
return P
88+
89+
_params_Fei_Au = {
90+
"V_0": molar_volume_from_unit_cell_volume(67.850, 4.0),
91+
"K_0": 167.0e9,
92+
"Kprime_0": 6.00,
93+
"Debye_0": 170.0,
94+
"grueneisen_0": 2.97,
95+
"q_0": 0.6,
96+
"n": 1.0,
97+
"T_0": 300.0,
98+
"P_0": 0.0,
99+
"Z": 4.0,
100+
}
101+
102+
Calibrant.__init__(self, _pressure_Fei_Au, "pressure", _params_Fei_Au)

burnman/calibrants/Holmes_1989.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit for
2+
# the Earth and Planetary Sciences
3+
# Copyright (C) 2012 - 2024 by the BurnMan team, released under the GNU
4+
# GPL v2 or later.
5+
6+
"""
7+
Holmes_1989
8+
^^^^^^^^^^^
9+
"""
10+
11+
from burnman.classes.calibrant import Calibrant
12+
import numpy as np
13+
from burnman.utils.unitcell import molar_volume_from_unit_cell_volume
14+
15+
16+
class Pt(Calibrant):
17+
"""
18+
The Pt pressure standard reported by
19+
Holmes et al. (1989; https://doi.org/10.1063/1.344177).
20+
"""
21+
22+
def __init__(self):
23+
def _pressure(volume, temperature, params):
24+
X = np.power(volume / params["V_0"], 1.0 / 3.0)
25+
P_300 = (
26+
3.0
27+
* params["beta_T"]
28+
* (1.0 - X)
29+
/ (X * X)
30+
* np.exp(params["eta"] * (1.0 - X))
31+
)
32+
33+
return P_300 + params["alpha_T"] * params["beta_T"] * (temperature - 300.0)
34+
35+
_params = {
36+
"V_0": molar_volume_from_unit_cell_volume(60.38, 4.0),
37+
"beta_T": 798.31e9 / 3.0,
38+
"eta": 7.2119,
39+
"beta_prime_T": (7.2119 / 1.5) + 1.0,
40+
"alpha_T": 2.61e-5,
41+
}
42+
43+
Calibrant.__init__(self, _pressure, "pressure", _params)

burnman/calibrants/Matsui_2012.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
# Copyright (C) 2012 - 2024 by the BurnMan team, released under the GNU
44
# GPL v2 or later.
55

6-
from burnman.eos.vinet import Vinet
76
from burnman.eos.mie_grueneisen_debye import MGDBase
87
from burnman.classes.calibrant import Calibrant
98

@@ -30,7 +29,7 @@ def _pressure_Matsui_NaCl(volume, temperature, params):
3029
+ 9 * params["Kprime_0"] ** 2
3130
- 63 * params["Kprime_0"]
3231
+ 143
33-
)
32+
) / 6.0
3433
f = 0.5 * ((volume / params["V_0"]) ** (-2 / 3) - 1)
3534
K_T = (
3635
params["K_0"]
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit for
2+
# the Earth and Planetary Sciences
3+
# Copyright (C) 2012 - 2024 by the BurnMan team, released under the GNU
4+
# GPL v2 or later.
5+
6+
import numpy as np
7+
from burnman.classes.calibrant import Calibrant
8+
from scipy.interpolate import RegularGridInterpolator
9+
10+
"""
11+
Tsuchiya_2003
12+
^^^^^^^^^^^^^
13+
"""
14+
15+
16+
class Au(Calibrant):
17+
"""
18+
The Au pressure standard reported by
19+
Tsuchiya (2003; https://doi.org/10.1029/2003JB002446).
20+
"""
21+
22+
def __init__(self):
23+
24+
grid_compressions = np.linspace(0.0, 0.34, 18)
25+
grid_temperatures = np.array([300.0, 500.0, 1000.0, 1500.0, 2000.0, 2500.0])
26+
grid_pressures = np.array(
27+
[
28+
[0.00, 1.52, 5.35, 9.19, 13.04, 16.88],
29+
[3.55, 5.04, 8.78, 12.54, 16.29, 20.05],
30+
[7.68, 9.13, 12.79, 16.45, 20.12, 23.79],
31+
[12.42, 13.83, 17.40, 20.98, 24.56, 28.14],
32+
[17.86, 19.23, 22.71, 26.20, 29.70, 33.19],
33+
[24.12, 25.46, 28.85, 32.25, 35.66, 39.07],
34+
[31.30, 32.60, 35.90, 39.22, 42.54, 45.86],
35+
[39.52, 40.78, 43.99, 47.22, 50.45, 53.68],
36+
[48.94, 50.17, 53.29, 56.43, 59.58, 62.72],
37+
[59.76, 60.95, 63.98, 67.03, 70.09, 73.15],
38+
[72.11, 73.26, 76.21, 79.18, 82.14, 85.11],
39+
[86.36, 87.48, 90.34, 93.22, 96.10, 98.98],
40+
[102.65, 103.73, 106.50, 109.29, 112.08, 114.88],
41+
[121.38, 122.42, 125.10, 127.80, 130.51, 133.21],
42+
[142.98, 143.99, 146.58, 149.19, 151.81, 154.43],
43+
[167.77, 168.74, 171.24, 173.77, 176.30, 178.83],
44+
[196.48, 197.41, 199.83, 202.26, 204.70, 207.15],
45+
[229.56, 230.45, 232.78, 235.13, 237.49, 239.84],
46+
]
47+
)
48+
49+
self.interpolate_pressure = RegularGridInterpolator(
50+
(grid_compressions, grid_temperatures),
51+
grid_pressures,
52+
bounds_error=False,
53+
fill_value=None,
54+
method="cubic",
55+
)
56+
57+
def _pressure(volume, temperature, params):
58+
compression = 1.0 - volume / params["V_0"]
59+
return self.interpolate_pressure([compression, temperature])[0] * 1.0e9
60+
61+
Calibrant.__init__(self, _pressure, "pressure", {"V_0": 10.207e-06})

burnman/calibrants/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
- :mod:`~burnman.calibrants.Dubrovinsky_1998`
2121
- :mod:`~burnman.calibrants.Fei_2007`
2222
- :mod:`~burnman.calibrants.Fei_2016`
23+
- :mod:`~burnman.calibrants.Holmes_1989`
2324
- :mod:`~burnman.calibrants.Huang_2016`
2425
- :mod:`~burnman.calibrants.LeGodec_2000`
2526
- :mod:`~burnman.calibrants.Litasov_2013`
@@ -35,6 +36,7 @@
3536
- :mod:`~burnman.calibrants.Speziale_2001`
3637
- :mod:`~burnman.calibrants.Tange_2009`
3738
- :mod:`~burnman.calibrants.Tateno_2019`
39+
- :mod:`~burnman.calibrants.Tsuchiya_2003`
3840
- :mod:`~burnman.calibrants.Walker_2002`
3941
- :mod:`~burnman.calibrants.Zeng_2010`
4042
- :mod:`~burnman.calibrants.Zha_2004`
@@ -56,6 +58,7 @@
5658
from . import Dubrovinsky_1998
5759
from . import Fei_2007
5860
from . import Fei_2016
61+
from . import Holmes_1989
5962
from . import Huang_2016
6063
from . import LeGodec_2000
6164
from . import Litasov_2013
@@ -71,6 +74,7 @@
7174
from . import Speziale_2001
7275
from . import Tange_2009
7376
from . import Tateno_2019
77+
from . import Tsuchiya_2003
7478
from . import Walker_2002
7579
from . import Zeng_2010
7680
from . import Zha_2004

0 commit comments

Comments
 (0)