Source code for burnman.calibrants.LeGodec_2000
# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit for
# the Earth and Planetary Sciences
# Copyright (C) 2012 - 2024 by the BurnMan team, released under the GNU
# GPL v2 or later.
"""
LeGodec_2000
^^^^^^^^^^^^
"""
from burnman.classes.calibrant import Calibrant
import numpy as np
[docs]
class hBN(Calibrant):
"""
The hexagonal boron nitride pressure standard reported by
LeGodec et al. (2000; http://dx.doi.org/10.1080/08957950008200304).
"""
def __init__(self):
def _pressure_LeGodec_hBN(volume, temperature, params):
# Modified BM3+Thermal (see Zhao et al. 1997)
a0 = params["a0"]
a1 = params["a1"]
K0 = params["K_0"]
Kprime0 = params["Kprime_0"]
dK_dT = params["dK_dT"]
dKprime_dT = params["dKprime_dT"]
KT = (K0) + dK_dT * (temperature - params["T_0"])
KprimeT = Kprime0 + dKprime_dT * (temperature - params["T_0"])
V0T = params["V_0"] * np.exp(
((a0 * temperature) + (a1 * ((temperature**2.0) / 2.0)))
- ((a0 * params["T_0"]) + (a1 * ((params["T_0"] ** 2.0) / 2.0)))
)
V_V0T = volume / V0T
f = 0.5 * ((V_V0T ** (-2.0 / 3.0)) - 1.0)
P = (3.0 * KT * f * (1.0 + 2.0 * f) ** (5.0 / 2.0)) * (
1.0 - 3.0 / 2.0 * (4.0 - KprimeT) * f
)
return P
_params_LeGodec_hBN = {
"V_0": 1.0891e-05,
"K_0": 27.6e9,
"Kprime_0": 10.5,
"a0": 3.53e-05,
"a1": 2.1e-09,
"dK_dT": -0.0081e9,
"dKprime_dT": 0.0016,
"n": 2.0,
"T_0": 300.0,
"P_0": 0.0,
"Z": 2.0,
}
Calibrant.__init__(self, _pressure_LeGodec_hBN, "pressure", _params_LeGodec_hBN)