Source code for burnman.calibrants.Dewaele_2012
# 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.
"""
Dewaele_2012
^^^^^^^^^^^^
"""
from burnman.eos.vinet import Vinet
from burnman.classes.calibrant import Calibrant
import numpy as np
[docs]
class KBr_B2(Calibrant):
"""
The B2 KBr pressure standard reported by
Dewaele et al. (2012; https://doi.org/10.1103/PhysRevB.85.214105).
"""
def __init__(self):
def _pressure_Dewaele_KBr(volume, temperature, params):
# Isothermal pressure (GPa)
pressure_model = Vinet()
P0 = pressure_model.pressure(params["T_0"], volume, params)
# Thermal pressure
Pth = (
params["aK(V,T)"] + params["dK_dT_V"] * np.log(params["V_0"] / volume)
) * (temperature - params["T_0"])
# Total pressure
P = P0 + Pth
return P
_params_Dewaele_KBr = {
"V_0": 3.8180e-5,
"K_0": 14.9e9,
"Kprime_0": 5.81,
"aK(V,T)": 0.00222e9,
"dK_dT_V": 0.0,
"n": 2.0,
"T_0": 300.0,
"P_0": 0.0,
"Z": 1.0,
}
Calibrant.__init__(self, _pressure_Dewaele_KBr, "pressure", _params_Dewaele_KBr)
[docs]
class KCl_B2(Calibrant):
"""
The B2 KCl pressure standard reported by
Dewaele et al. (2012; https://doi.org/10.1103/PhysRevB.85.214105).
"""
def __init__(self):
def _pressure_Dewaele_KCl(volume, temperature, params):
# Isothermal pressure (GPa)
pressure_model = Vinet()
P0 = pressure_model.pressure(params["T_0"], volume, params)
# Thermal pressure
Pth = (
params["aK(V,T)"] + params["dK_dT_V"] * np.log(params["V_0"] / volume)
) * (temperature - params["T_0"])
# Total pressure
P = P0 + Pth
return P
_params_Dewaele_KCl = {
"V_0": 3.28206e-5,
"K_0": 17.2e9,
"Kprime_0": 5.89,
"aK(V,T)": 0.00224e9,
"dK_dT_V": 0.0,
"n": 2.0,
"T_0": 300.0,
"P_0": 0.0,
"Z": 1.0,
}
Calibrant.__init__(self, _pressure_Dewaele_KCl, "pressure", _params_Dewaele_KCl)