Source code for burnman.minerals.DKS_2013_solids

# This file is part of BurnMan - a thermoelastic and thermodynamic toolkit for
# the Earth and Planetary Sciences
# Copyright (C) 2012 - 2021 by the BurnMan team, released under the GNU
# GPL v2 or later.

"""
DKS_2013_solids
^^^^^^^^^^^^^^^

Solids from de Koker and Stixrude (2013) FPMD simulations
"""

from ..classes.mineral import Mineral
from ..utils.chemistry import formula_mass


[docs] class stishovite(Mineral): def __init__(self): p_fit = [0.2471304763e05, 0.4793020138e05] V_0 = 0.1513000000e02 * 1e-6 K_0 = p_fit[0] / (9.0 * V_0) * 1.0e3 a3 = 2.0 * p_fit[1] / (9.0 * K_0 * V_0) * 1.0e3 Kp_0 = 4.0 + (a3 / 3.0) Kdp_0 = (-143.0 / 9.0 - Kp_0 * (Kp_0 - 7.0)) / K_0 formula = {"Si": 1.0, "O": 2.0} self.params = { "name": "stishovite", "formula": formula, "equation_of_state": "dks_s", "V_0": V_0, # [m^3/mol] "T_0": 0.3000000000e04, # [K] "E_0": -0.2274840214e04 * 1e3, # [J/mol] "S_0": 0.1668222552e00 * 1e3, # [J/K/mol] "K_0": K_0, "Kprime_0": Kp_0, "Kdprime_0": Kdp_0, "n": 2.0, # called fsn in param file "Cv": 0.7794230433e-01 * 1e3, # [J/K/mol] "grueneisen_0": 0.1389501259e01, "q_0": 0.1332025550e01, "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class perovskite(Mineral): def __init__(self): p_fit = [0.4067243956e05, 0.1177159096e05] V_0 = 0.2705000000e02 * 1e-6 K_0 = p_fit[0] / (9.0 * V_0) * 1.0e3 a3 = 2.0 * p_fit[1] / (9.0 * K_0 * V_0) * 1.0e3 Kp_0 = 4.0 + (a3 / 3.0) Kdp_0 = (-143.0 / 9.0 - Kp_0 * (Kp_0 - 7.0)) / K_0 formula = {"Mg": 1.0, "Si": 1.0, "O": 3.0} self.params = { "name": "perovskite", "formula": formula, "equation_of_state": "dks_s", "V_0": V_0, # [m^3/mol] "T_0": 0.3000000000e04, # [K] "E_0": -0.3355012782e04 * 1e3, # [J/mol] "S_0": 0.3384574347e00 * 1e3, # [J/K/mol] "K_0": K_0, "Kprime_0": Kp_0, "Kdprime_0": Kdp_0, "n": 2.0, # called fsn in param file "Cv": 0.1338111589e00 * 1e3, # [J/K/mol] "grueneisen_0": 0.1893754815e01, "q_0": 0.1487809730e01, "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class periclase(Mineral): def __init__(self): p_fit = [0.1208938157e05, 0.1133765229e05] V_0 = 0.1223000000e02 * 1e-6 K_0 = p_fit[0] / (9.0 * V_0) * 1.0e3 a3 = 2.0 * p_fit[1] / (9.0 * K_0 * V_0) * 1.0e3 Kp_0 = 4.0 + (a3 / 3.0) Kdp_0 = (-143.0 / 9.0 - Kp_0 * (Kp_0 - 7.0)) / K_0 formula = {"Mg": 1.0, "O": 1.0} self.params = { "name": "periclase", "formula": formula, "equation_of_state": "dks_s", "V_0": V_0, # [m^3/mol] "T_0": 0.2000000000e04, # [K] "E_0": -0.1164949141e04 * 1e3, # [J/mol] "S_0": 0.1198358648e00 * 1e3, # [J/K/mol] "K_0": K_0, "Kprime_0": Kp_0, "Kdprime_0": Kdp_0, "n": 2.0, # called fsn in param file "Cv": 0.4904715075e-01 * 1e3, # [J/K/mol] "grueneisen_0": 0.1412003694e01, "q_0": 0.6317609916e00, "molar_mass": formula_mass(formula), } Mineral.__init__(self)