Source code for burnman.calibrants.Decker_1971

# 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)