# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit for
# the Earth and Planetary Sciences
# Copyright (C) 2012 - 2022 by the BurnMan team, released under the GNU
# GPL v2 or later.
"""
Decker_1971
^^^^^^^^^^^
"""
import numpy as np
from ..eos.birch_murnaghan import birch_murnaghan
from ..eos import MGD2
from ..eos import debye
from ..classes.calibrant import Calibrant
[docs]class NaCl_B1(Calibrant):
"""
The NaCl (B1 structured) pressure standard reported by Decker (1971).
.. note:: This calibrant is not exactly the same as that proposed by Decker.
The cold compression curve has here been approximated by a
Birch-Murnaghan EoS.
.. todo:: Make the calibrant exactly match that published by Decker.
"""
def __init__(self):
def _pressure_Decker_NaCl(volume, temperature, params):
p300 = birch_murnaghan(params["V_0"] / volume, params)
grueneisen = MGD2._grueneisen_parameter(0.0, params["V_0"] / volume, params)
Debye_T = params["Debye_0"] * np.exp(
(params["grueneisen_0"] - grueneisen) / params["q_0"]
)
Eqh = debye.thermal_energy(temperature, Debye_T, params["n"])
EqhR = debye.thermal_energy(params["refT"], Debye_T, params["n"])
dpqh = (Eqh - EqhR) * (grueneisen / volume)
pressure = p300 + dpqh
return pressure
_params_Decker_NaCl = {
"V_0": 2.7015e-05,
"K_0": 24.02e9,
"Kprime_0": 4.7369,
"Debye_0": 279,
"grueneisen_0": 1.59,
"q_0": 0.93,
"n": 2.0,
"refT": 298.15,
"P_0": 0,
"Z": 4.0,
}
Calibrant.__init__(self, _pressure_Decker_NaCl, "pressure", _params_Decker_NaCl)