Source code for burnman.calibrants.Zhao_1997
# 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.
"""
Zhao_1997
^^^^^^^^^
"""
from burnman.classes.calibrant import Calibrant
import numpy as np
[docs]
class hBN(Calibrant):
"""
The hBN pressure standard reported by
Zhao et al. (1997; https://doi.org/10.1080/08957959708240481).
"""
def __init__(self):
def _pressure_Zhao_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 - 300.0)
KprimeT = Kprime0 + dKprime_dT * (temperature - 300.0)
V0T = params["V_0"] * np.exp(
((a0 * temperature) + (a1 * ((temperature**2.0) / 2.0)))
- ((a0 * 300.0) + (a1 * ((300.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_Zhao_hBN = {
"V_0": 1.08164e-05,
"K_0": 17.6e9,
"Kprime_0": 19.5,
"a0": 4.38e-05,
"a1": 1.75e-08,
"dK_dT": -0.0069e9,
"dKprime_dT": 0.0,
"n": 2.0,
"T_0": 300.0,
"P_0": 0.0,
"Z": 2.0,
}
Calibrant.__init__(self, _pressure_Zhao_hBN, "pressure", _params_Zhao_hBN)