# This file is part of BurnMan - a thermoelastic
# and thermodynamic toolkit for the Earth and Planetary Sciences
# Copyright (C) 2012 - 2025 by the BurnMan team, released under the GNU
# GPL v2 or later.
"""
SLB_2024
^^^^^^^^
Minerals from Stixrude and Lithgow-Bertelloni (2024), and references therein.
Contains the following solutions:
* c2c_pyroxene (c2c)
* calcium_ferrite_structured_phase (cf)
* clinopyroxene (cpx)
* garnet (gt)
* ilmenite (il)
* ferropericlase (mw)
* new_aluminous_phase (nal)
* olivine (ol)
* orthopyroxene (opx)
* plagioclase (plg)
* post_perovskite (ppv)
* bridgmanite (pv)
* ringwoodite (ri)
* mg_fe_aluminous_spinel (sp)
* wadsleyite (wa)
Relaxed solutions (which account for softening through the spin transition):
* ferropericlase_relaxed
* bridgmanite_relaxed
Endmember phases:
* albite (ab)
* acmite (acm)
* almandine (al)
* al_perovskite (alpv)
* anorthite (an)
* alpha_nao2_phase (anao)
* grossular (andr)
* alpha_pbo_2_sio_2 (apbo)
* al_post_perovskite (appv)
* ca_perovskite (capv)
* lime_tschermak (cats)
* clinoenstatite (cen)
* corundum (co)
* coesite (coes)
* cr_post_perovskite (cppv)
* cr_ca_ferrite (crcf)
* cr_perovskite (crpv)
* diopside (di)
* enstatite (en)
* eskolaite (esk)
* fayalite (fa)
* fealo3_perovskite_hs (fapv)
* alpha_(bcc)_iron (fea)
* hp_clinoferrosilite (fec2)
* fe_ca_ferrite (fecf)
* epsilon_(hcp)_iron (fee)
* gamma_(fcc)_iron (feg)
* fe_akimotoite (feil)
* fe_perovskite (fepv)
* fe_ringwoodite (feri)
* fe_wadsleyite (fewa)
* fe_nal_phase (fnal)
* forsterite (fo)
* fe_postperovskite (fppv)
* ferrosilite (fs)
* grossular (gr)
* hercynite (hc)
* hedenbergite (he)
* hematite (hem)
* fe2o3_perovskite_hs (hepv)
* fe2o3_perovskite_ls (hlpv)
* high_pressure_magnetit (hmag)
* hs_fe2o3_post_perovski (hppv)
* jadeite (jd)
* knorringite (knor)
* kyanite (ky)
* ls_fe2o3_post_perovski (lppv)
* magnetite (mag)
* hp_clinoenstatite (mgc2)
* mg_ca_ferrite (mgcf)
* mg_akimotoite (mgil)
* mg_majorite (mgmj)
* mg_perovskite (mgpv)
* mg_ringwoodite (mgri)
* mg_tschermaks (mgts)
* mg_wadsleyite (mgwa)
* mg_nal_phase (mnal)
* mg_postperovskite (mppv)
* na_ca_ferrite (nacf)
* na_majorite (namj)
* nepheline (neph)
* na_nal_phase (nnal)
* ortho_diopside (odi)
* periclase (pe)
* pircochromite (picr)
* pseudo_wollastonite (pwo)
* pyrope (py)
* quartz (qtz)
* magnetite (smag)
* spinel (sp)
* stishovite (st)
* wollastonite (wo)
* wustite (wu)
* wustite_low_spin (wuls)
File autogenerated using HeFESTO_2024_to_burnman.py and HeFESTo_parameters_010123.
"""
import numpy as np
from ..eos.slb import SLB3
from ..eos import debye
from ..eos import birch_murnaghan as bm
from ..classes.mineral import Mineral
from ..classes.solution import Solution, RelaxedSolution
from ..classes.solutionmodel import (
IdealSolution,
SymmetricRegularSolution,
AsymmetricRegularSolution,
)
"""
ENDMEMBERS
"""
[docs]
class ab(Mineral):
def __init__(self):
self.params = {
"name": "Albite",
"formula": {"Na": 1.0, "Al": 1.0, "Si": 3.0, "O": 8.0},
"equation_of_state": "slb3",
"F_0": -3717909.79,
"V_0": 0.000100452,
"K_0": 59752590000.0,
"Kprime_0": 2.77846,
"Debye_0": 719.0831,
"grueneisen_0": 0.57877,
"q_0": 1.0,
"G_0": 36000000000.0,
"Gprime_0": 1.38571,
"eta_s_0": 1.02954,
"n": 13.0,
"Z": 4.0,
"molar_mass": 0.262223,
}
Mineral.__init__(self)
[docs]
class acm(Mineral):
def __init__(self):
self.params = {
"name": "Acmite",
"formula": {"Na": 1.0, "Fe": 1.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2419124.39,
"V_0": 6.4606e-05,
"K_0": 116100000000.0,
"Kprime_0": 4.4,
"Debye_0": 726.94116,
"grueneisen_0": 0.77467,
"q_0": 0.60142,
"G_0": 72454000000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.7391,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.231,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 4.0, "S_D": 14.89723, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class al(Mineral):
def __init__(self):
self.params = {
"name": "Almandine",
"formula": {"Fe": 3.0, "Al": 2.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -4930861.659999999,
"V_0": 0.00011543,
"K_0": 173896370000.0,
"Kprime_0": 4.91341,
"Debye_0": 741.38227,
"grueneisen_0": 1.06493,
"q_0": 1.42169,
"G_0": 96000000000.0,
"Gprime_0": 1.40927,
"eta_s_0": 2.09289,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.49776,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 7.5, "S_D": 40.14405, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class alpv(Mineral):
def __init__(self):
self.params = {
"name": "Al-Perovskite",
"formula": {"Al": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1517031.0,
"V_0": 2.4944e-05,
"K_0": 242400000000.0,
"Kprime_0": 4.1,
"Debye_0": 856.18212,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 169199620000.0,
"Gprime_0": 1.55703,
"eta_s_0": 2.27978,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.101961,
}
Mineral.__init__(self)
[docs]
class an(Mineral):
def __init__(self):
self.params = {
"name": "Anorthite",
"formula": {"Ca": 1.0, "Al": 2.0, "Si": 2.0, "O": 8.0},
"equation_of_state": "slb3",
"F_0": -4012381.1300000004,
"V_0": 0.00010061,
"K_0": 84093390000.0,
"Kprime_0": 6.73397,
"Debye_0": 754.46887,
"grueneisen_0": 0.38512,
"q_0": 1.0,
"G_0": 39900000000.0,
"Gprime_0": 1.09129,
"eta_s_0": 1.63405,
"n": 13.0,
"Z": 2.0,
"molar_mass": 0.278211,
}
Mineral.__init__(self)
[docs]
class anao(Mineral):
def __init__(self):
self.params = {
"name": "alpha-NaO2_phase",
"formula": {"Na": 2.0, "Al": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2124562.13,
"V_0": 4.542e-05,
"K_0": 161143930000.0,
"Kprime_0": 3.90838,
"Debye_0": 744.51451,
"grueneisen_0": 1.45033,
"q_0": 1.5487,
"G_0": 108465250000.0,
"Gprime_0": 2.14668,
"eta_s_0": 0.77305,
"n": 8.0,
"Z": 1.0,
"molar_mass": 0.16394023,
}
Mineral.__init__(self)
[docs]
class andr(Mineral):
def __init__(self):
self.params = {
"name": "Grossular",
"formula": {"Ca": 3.0, "Fe": 2.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5414950.41,
"V_0": 0.00013199,
"K_0": 153580040000.0,
"Kprime_0": 4.78447,
"Debye_0": 750.98472,
"grueneisen_0": 1.04336,
"q_0": 1.42169,
"G_0": 89700000000.0,
"Gprime_0": 0.97013,
"eta_s_0": 2.84503,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.50817,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 11.7, "S_D": 29.79445, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class apbo(Mineral):
def __init__(self):
self.params = {
"name": "alpha-PbO_2-SiO_2",
"formula": {"Si": 1.0, "O": 2.0},
"equation_of_state": "slb3",
"F_0": -792997.39,
"V_0": 1.367e-05,
"K_0": 327162360000.0,
"Kprime_0": 4.0166,
"Debye_0": 1132.97205,
"grueneisen_0": 1.55723,
"q_0": 2.21141,
"G_0": 227412210000.0,
"Gprime_0": 1.77076,
"eta_s_0": 4.56617,
"n": 3.0,
"Z": 4.0,
"molar_mass": 0.060085,
}
Mineral.__init__(self)
[docs]
class appv(Mineral):
def __init__(self):
self.params = {
"name": "Al-Post-Perovskite",
"formula": {"Al": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1434367.18,
"V_0": 2.45e-05,
"K_0": 247740000000.0,
"Kprime_0": 4.0,
"Debye_0": 752.02929,
"grueneisen_0": 1.86524,
"q_0": 1.76454,
"G_0": 91897150000.0,
"Gprime_0": 1.81823,
"eta_s_0": 2.70624,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.101961,
}
Mineral.__init__(self)
[docs]
class capv(Mineral):
def __init__(self):
self.params = {
"name": "Ca-Perovskite",
"formula": {"Ca": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1461201.28,
"V_0": 2.745e-05,
"K_0": 236000000000.0,
"Kprime_0": 3.9,
"Debye_0": 800.29043,
"grueneisen_0": 1.88997,
"q_0": 0.89608,
"G_0": 126000000000.0,
"Gprime_0": 1.6,
"eta_s_0": 1.35422,
"n": 5.0,
"Z": 1.0,
"molar_mass": 0.116164,
}
Mineral.__init__(self)
[docs]
class cats(Mineral):
def __init__(self):
self.params = {
"name": "Lime_Tschermak'",
"formula": {"Ca": 1.0, "Al": 2.0, "Si": 1.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -3119890.8000000003,
"V_0": 6.3574e-05,
"K_0": 113759900000.0,
"Kprime_0": 4.8061,
"Debye_0": 804.36068,
"grueneisen_0": 0.82288,
"q_0": 0.60142,
"G_0": 75337410000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.77238,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.218123,
}
Mineral.__init__(self)
[docs]
class cen(Mineral):
def __init__(self):
self.params = {
"name": "Clinoenstatite",
"formula": {"Mg": 2.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2904584.98,
"V_0": 6.25e-05,
"K_0": 113759900000.0,
"Kprime_0": 4.8061,
"Debye_0": 805.59286,
"grueneisen_0": 1.00921,
"q_0": 0.60142,
"G_0": 76810310000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.42387,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2007774,
}
Mineral.__init__(self)
[docs]
class co(Mineral):
def __init__(self):
self.params = {
"name": "Corundum",
"formula": {"Al": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1582443.1400000001,
"V_0": 2.5577e-05,
"K_0": 252585720000.0,
"Kprime_0": 3.88671,
"Debye_0": 932.21586,
"grueneisen_0": 1.3081,
"q_0": 1.71245,
"G_0": 163200000000.0,
"Gprime_0": 1.64704,
"eta_s_0": 2.84761,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.101961,
}
Mineral.__init__(self)
[docs]
class coes(Mineral):
def __init__(self):
self.params = {
"name": "Coesite",
"formula": {"Si": 1.0, "O": 2.0},
"equation_of_state": "slb3",
"F_0": -853834.92,
"V_0": 2.0657e-05,
"K_0": 103537990000.0,
"Kprime_0": 2.9007,
"Debye_0": 875.22323,
"grueneisen_0": 0.29043,
"q_0": 1.0,
"G_0": 61600000000.0,
"Gprime_0": 0.49686,
"eta_s_0": 2.75631,
"n": 3.0,
"Z": 16.0,
"molar_mass": 0.060085,
}
Mineral.__init__(self)
[docs]
class cppv(Mineral):
def __init__(self):
self.params = {
"name": "Cr-Post-Perovskite",
"formula": {"Cr": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1110023.23,
"V_0": 2.6949e-05,
"K_0": 247740000000.0,
"Kprime_0": 4.0,
"Debye_0": 755.01863,
"grueneisen_0": 1.64015,
"q_0": 1.76454,
"G_0": 187873500000.0,
"Gprime_0": 1.98845,
"eta_s_0": 3.16235,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.15199,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class crcf(Mineral):
def __init__(self):
self.params = {
"name": "Cr_Ca-Ferrite",
"formula": {"Mg": 1.0, "Cr": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1736682.29,
"V_0": 3.9421e-05,
"K_0": 185400000000.0,
"Kprime_0": 4.0,
"Debye_0": 684.9543,
"grueneisen_0": 1.56656,
"q_0": 1.0,
"G_0": 141453800000.0,
"Gprime_0": 1.93591,
"eta_s_0": 1.93943,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.19229,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class crpv(Mineral):
def __init__(self):
self.params = {
"name": "Cr-Perovskite",
"formula": {"Cr": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1186685.95,
"V_0": 2.8189e-05,
"K_0": 250565350000.0,
"Kprime_0": 4.13438,
"Debye_0": 758.1187,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 152053560000.0,
"Gprime_0": 1.73254,
"eta_s_0": 2.83537,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.15199,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class di(Mineral):
def __init__(self):
self.params = {
"name": "Diopside",
"formula": {"Ca": 1.0, "Mg": 1.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -3029614.78,
"V_0": 6.6039e-05,
"K_0": 113759900000.0,
"Kprime_0": 4.8061,
"Debye_0": 782.57306,
"grueneisen_0": 1.00921,
"q_0": 0.60142,
"G_0": 72700000000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.06175,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2165504,
}
Mineral.__init__(self)
[docs]
class en(Mineral):
def __init__(self):
self.params = {
"name": "Enstatite",
"formula": {"Mg": 2.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2912202.5,
"V_0": 6.2676e-05,
"K_0": 107076810000.0,
"Kprime_0": 7.02751,
"Debye_0": 812.21227,
"grueneisen_0": 0.78477,
"q_0": 3.43847,
"G_0": 76800000000.0,
"Gprime_0": 1.54596,
"eta_s_0": 2.5045,
"n": 10.0,
"Z": 4.0,
"molar_mass": 0.2007774,
}
Mineral.__init__(self)
[docs]
class esk(Mineral):
def __init__(self):
self.params = {
"name": "Eskolaite",
"formula": {"Cr": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1206914.71,
"V_0": 2.8904e-05,
"K_0": 233340360000.0,
"Kprime_0": 4.01705,
"Debye_0": 766.73627,
"grueneisen_0": 1.15191,
"q_0": 2.22481,
"G_0": 123200000000.0,
"Gprime_0": 1.81492,
"eta_s_0": 2.55521,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.15199,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 305.5, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fa(Mineral):
def __init__(self):
self.params = {
"name": "Fayalite",
"formula": {"Fe": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1371708.3399999999,
"V_0": 4.629e-05,
"K_0": 136485580000.0,
"Kprime_0": 4.88157,
"Debye_0": 618.96116,
"grueneisen_0": 1.08388,
"q_0": 2.88055,
"G_0": 51220000000.0,
"Gprime_0": 0.85893,
"eta_s_0": 1.65937,
"n": 7.0,
"Z": 4.0,
"molar_mass": 0.203777,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 65.0, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fapv(Mineral):
def __init__(self):
self.params = {
"name": "FeAlO3-Perovskite_HS",
"formula": {"Fe": 1.0, "Al": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1131674.78,
"V_0": 2.709e-05,
"K_0": 223325500000.0,
"Kprime_0": 4.1,
"Debye_0": 755.62079,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 159881770000.0,
"Gprime_0": 1.73254,
"eta_s_0": 2.8548,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.1308249,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 14.89723, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fea(Mineral):
def __init__(self):
self.params = {
"name": "alpha_(bcc)_Iron",
"formula": {"Fe": 1.0},
"equation_of_state": "slb3-conductive",
"F_0": 11.82,
"V_0": 7.093e-06,
"K_0": 163421140000.0,
"Kprime_0": 6.01732,
"Debye_0": 398.00486,
"grueneisen_0": 1.66729,
"q_0": 0.90658,
"G_0": 81470000000.0,
"Gprime_0": 1.9223,
"eta_s_0": 5.96207,
"n": 1.0,
"Z": 2.0,
"molar_mass": 0.05584515,
"bel_0": 0.00388,
"gel": 1.4796,
}
self.property_modifiers = [
[
"magnetic_chs",
{
"structural_parameter": 0.4,
"curie_temperature": [1043.01, 0.0],
"magnetic_moment": [np.float64(2.1199287186179743), 0.0],
},
],
[
"linear",
{"delta_E": 8932.739871162863, "delta_S": 9.46028, "delta_V": 0.0},
],
]
Mineral.__init__(self)
[docs]
class fec2(Mineral):
def __init__(self):
self.params = {
"name": "HP-Clinoferrosilite",
"formula": {"Fe": 2.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2219723.5300000003,
"V_0": 6.38541e-05,
"K_0": 116025560000.0,
"Kprime_0": 6.23685,
"Debye_0": 691.84626,
"grueneisen_0": 1.12478,
"q_0": 0.20409,
"G_0": 79289860000.0,
"Gprime_0": 1.84119,
"eta_s_0": 1.14272,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2638614,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fecf(Mineral):
def __init__(self):
self.params = {
"name": "Fe-Ca-Ferrite",
"formula": {"Fe": 1.0, "Al": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1768312.12,
"V_0": 3.7216e-05,
"K_0": 213000000000.0,
"Kprime_0": 4.1,
"Debye_0": 715.88779,
"grueneisen_0": 1.56656,
"q_0": 1.0,
"G_0": 164115350000.0,
"Gprime_0": 1.93591,
"eta_s_0": 2.46745,
"n": 7.0,
"Z": 4.0,
"molar_mass": 0.173806,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 13.38135, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fee(Mineral):
def __init__(self):
self.params = {
"name": "epsilon_(hcp)_Iron",
"formula": {"Fe": 1.0},
"equation_of_state": "slb3-conductive",
"F_0": 3428.48,
"V_0": 6.7651e-06,
"K_0": 165000000000.0,
"Kprime_0": 4.97,
"Debye_0": 379.74281,
"grueneisen_0": 2.13092,
"q_0": 1.02253,
"G_0": 91000000000.0,
"Gprime_0": 2.24804,
"eta_s_0": 5.20603,
"n": 1.0,
"Z": 2.0,
"molar_mass": 0.05584515,
"bel_0": 0.00411,
"gel": 1.6927,
}
Mineral.__init__(self)
[docs]
class feg(Mineral):
def __init__(self):
self.params = {
"name": "gamma_(fcc)_Iron",
"formula": {"Fe": 1.0},
"equation_of_state": "slb3-conductive",
"F_0": 4675.83,
"V_0": 6.9883e-06,
"K_0": 165000000000.0,
"Kprime_0": 5.97,
"Debye_0": 285.19315,
"grueneisen_0": 1.84924,
"q_0": 1.02176,
"G_0": 91000000000.0,
"Gprime_0": 2.33869,
"eta_s_0": 6.50014,
"n": 1.0,
"Z": 2.0,
"molar_mass": 0.05584515,
"bel_0": 0.00375,
"gel": 1.4796,
}
Mineral.__init__(self)
[docs]
class feil(Mineral):
def __init__(self):
self.params = {
"name": "Fe-Akimotoite",
"formula": {"Fe": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1044260.0800000001,
"V_0": 2.6854e-05,
"K_0": 210692630000.0,
"Kprime_0": 5.2154,
"Debye_0": 760.91558,
"grueneisen_0": 1.19328,
"q_0": 2.22481,
"G_0": 167069220000.0,
"Gprime_0": 1.81492,
"eta_s_0": 3.6318,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.131931,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 13.38135, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fepv(Mineral):
def __init__(self):
self.params = {
"name": "Fe-Perovskite",
"formula": {"Fe": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1002026.07,
"V_0": 2.5321e-05,
"K_0": 270582550000.00003,
"Kprime_0": 4.01,
"Debye_0": 740.39231,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 130058789999.99998,
"Gprime_0": 1.37279,
"eta_s_0": 2.08541,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.131931,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 13.38135, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class feri(Mineral):
def __init__(self):
self.params = {
"name": "Fe-Ringwoodite",
"formula": {"Fe": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1356599.78,
"V_0": 4.186e-05,
"K_0": 213409100000.0,
"Kprime_0": 4.22035,
"Debye_0": 651.49411,
"grueneisen_0": 1.26156,
"q_0": 2.39214,
"G_0": 92000000000.0,
"Gprime_0": 1.35412,
"eta_s_0": 1.76941,
"n": 7.0,
"Z": 2.0,
"molar_mass": 0.203777,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 11.8, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fewa(Mineral):
def __init__(self):
self.params = {
"name": "Fe-Wadsleyite",
"formula": {"Fe": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1356211.64,
"V_0": 4.28e-05,
"K_0": 168566850000.0,
"Kprime_0": 4.12302,
"Debye_0": 636.8306,
"grueneisen_0": 1.20498,
"q_0": 2.20831,
"G_0": 72000000000.0,
"Gprime_0": 1.50973,
"eta_s_0": 0.94487,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.203777,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fnal(Mineral):
def __init__(self):
self.params = {
"name": "Fe-NAL_Phase",
"formula": {"Na": 1.0, "Fe": 2.0, "Al": 5.0, "Si": 1.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5465247.03,
"V_0": 0.000112045,
"K_0": 204006720000.0,
"Kprime_0": 4.31789,
"Debye_0": 788.03574,
"grueneisen_0": 1.43147,
"q_0": 1.0,
"G_0": 152250130000.0,
"Gprime_0": 1.74226,
"eta_s_0": 2.73801,
"n": 21.0,
"Z": 1.0,
"molar_mass": 0.48966601,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fo(Mineral):
def __init__(self):
self.params = {
"name": "Forsterite",
"formula": {"Mg": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2055345.33,
"V_0": 4.3603e-05,
"K_0": 127955500000.0,
"Kprime_0": 4.21796,
"Debye_0": 809.1977,
"grueneisen_0": 0.9928,
"q_0": 2.10671,
"G_0": 81600000000.0,
"Gprime_0": 1.46257,
"eta_s_0": 2.29968,
"n": 7.0,
"Z": 4.0,
"molar_mass": 0.140695,
}
Mineral.__init__(self)
[docs]
class fppv(Mineral):
def __init__(self):
self.params = {
"name": "Fe-PostPerovskite",
"formula": {"Fe": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -988569.5,
"V_0": 2.52963e-05,
"K_0": 247740000000.0,
"Kprime_0": 4.0,
"Debye_0": 769.31113,
"grueneisen_0": 1.64015,
"q_0": 1.76454,
"G_0": 129500000000.0,
"Gprime_0": 1.40076,
"eta_s_0": 1.8495,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.131931,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 13.38135, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class fs(Mineral):
def __init__(self):
self.params = {
"name": "Ferrosilite",
"formula": {"Fe": 2.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2224559.86,
"V_0": 6.5941e-05,
"K_0": 100545440000.0,
"Kprime_0": 7.87556,
"Debye_0": 677.91886,
"grueneisen_0": 0.7144,
"q_0": 3.43847,
"G_0": 52000000000.0,
"Gprime_0": 1.54596,
"eta_s_0": 1.08228,
"n": 10.0,
"Z": 4.0,
"molar_mass": 0.2638614,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 26.7627, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class gr(Mineral):
def __init__(self):
self.params = {
"name": "Grossular",
"formula": {"Ca": 3.0, "Al": 2.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -6276906.68,
"V_0": 0.00012512,
"K_0": 167062260000.0,
"Kprime_0": 3.91544,
"Debye_0": 822.77062,
"grueneisen_0": 1.05402,
"q_0": 1.88886,
"G_0": 109000000000.0,
"Gprime_0": 1.16274,
"eta_s_0": 2.38415,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.450449,
}
Mineral.__init__(self)
[docs]
class hc(Mineral):
def __init__(self):
self.params = {
"name": "Hercynite",
"formula": {"Fe": 1.0, "Al": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1841813.73,
"V_0": 4.0843e-05,
"K_0": 208947270000.0,
"Kprime_0": 4.62702,
"Debye_0": 747.13664,
"grueneisen_0": 1.18794,
"q_0": 3.97087,
"G_0": 84500000000.0,
"Gprime_0": 0.62795,
"eta_s_0": 2.46339,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.17381,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 13.0, "S_D": 13.38134, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class he(Mineral):
def __init__(self):
self.params = {
"name": "Hedenbergite",
"formula": {"Ca": 1.0, "Fe": 1.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2675636.34,
"V_0": 6.7867e-05,
"K_0": 119204720000.0,
"Kprime_0": 4.81927,
"Debye_0": 702.08234,
"grueneisen_0": 0.96665,
"q_0": 0.60142,
"G_0": 61000000000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.01745,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2480924,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 34.5, "S_D": 13.38135, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class hem(Mineral):
def __init__(self):
self.params = {
"name": "Hematite",
"formula": {"Fe": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -744045.2000000001,
"V_0": 3.0287e-05,
"K_0": 204245370000.0,
"Kprime_0": 4.0997,
"Debye_0": 653.80747,
"grueneisen_0": 1.58944,
"q_0": 2.22481,
"G_0": 91000000000.0,
"Gprime_0": 1.81492,
"eta_s_0": 0.5241,
"n": 5.0,
"Z": 1.0,
"molar_mass": 0.15968852,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 950.01, "S_D": 29.79445, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class hepv(Mineral):
def __init__(self):
self.params = {
"name": "Fe2O3-Perovskite_HS",
"formula": {"Fe": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -706527.0299999999,
"V_0": 2.95768e-05,
"K_0": 204251000000.0,
"Kprime_0": 4.1,
"Debye_0": 646.79863,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 123483250000.0,
"Gprime_0": 1.73254,
"eta_s_0": 1.88876,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.15968852,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 29.79445, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class hlpv(Mineral):
def __init__(self):
self.params = {
"name": "Fe2O3-Perovskite_LS",
"formula": {"Fe": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -597158.86,
"V_0": 2.75209e-05,
"K_0": 204251000000.0,
"Kprime_0": 4.1,
"Debye_0": 759.63863,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 177577950000.0,
"Gprime_0": 1.73254,
"eta_s_0": 3.54218,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.15968852,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 20.66026, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class hmag(Mineral):
def __init__(self):
self.params = {
"name": "High-Pressure_Magnetit",
"formula": {"Fe": 3.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -993123.89,
"V_0": 4.1702e-05,
"K_0": 172000000000.0,
"Kprime_0": 4.0,
"Debye_0": 542.9312,
"grueneisen_0": 1.56656,
"q_0": 0.41872,
"G_0": 120889150000.0,
"Gprime_0": 1.93591,
"eta_s_0": 1.37608,
"n": 7.0,
"Z": 1.0,
"molar_mass": 0.23153307,
}
self.property_modifiers = [
[
"magnetic_chs",
{
"structural_parameter": 0.4,
"curie_temperature": [845.5, 0.0],
"magnetic_moment": [np.float64(178.98169420433626), 0.0],
},
],
[
"linear",
{"delta_E": 33048.07971316818, "delta_S": 43.1758, "delta_V": 0.0},
],
]
Mineral.__init__(self)
[docs]
class hppv(Mineral):
def __init__(self):
self.params = {
"name": "HS_Fe2O3-Post-Perovski",
"formula": {"Fe": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -620839.7200000001,
"V_0": 2.76884e-05,
"K_0": 176500000000.0,
"Kprime_0": 4.0,
"Debye_0": 680.92363,
"grueneisen_0": 1.64015,
"q_0": 1.76454,
"G_0": 172363480000.0,
"Gprime_0": 1.98845,
"eta_s_0": 2.56327,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.15968852,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.0, "S_D": 29.79445, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class jd(Mineral):
def __init__(self):
self.params = {
"name": "Jadeite",
"formula": {"Na": 1.0, "Al": 1.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2855160.68,
"V_0": 6.0508e-05,
"K_0": 137357290000.0,
"Kprime_0": 3.6305,
"Debye_0": 820.2985,
"grueneisen_0": 0.85734,
"q_0": 2.05453,
"G_0": 84000000000.0,
"Gprime_0": 1.71384,
"eta_s_0": 1.91023,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2021387,
}
Mineral.__init__(self)
[docs]
class knor(Mineral):
def __init__(self):
self.params = {
"name": "Knorringite",
"formula": {"Mg": 3.0, "Cr": 2.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5523022.38,
"V_0": 0.000118716,
"K_0": 157000000000.0,
"Kprime_0": 4.5,
"Debye_0": 776.39637,
"grueneisen_0": 1.24672,
"q_0": 1.42169,
"G_0": 99527660000.0,
"Gprime_0": 1.35756,
"eta_s_0": 2.11433,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.45316,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 5.1, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class ky(Mineral):
def __init__(self):
self.params = {
"name": "Kyanite",
"formula": {"Al": 2.0, "Si": 1.0, "O": 5.0},
"equation_of_state": "slb3",
"F_0": -2443738.48,
"V_0": 4.4227e-05,
"K_0": 160000000000.0,
"Kprime_0": 4.0,
"Debye_0": 943.19593,
"grueneisen_0": 0.92549,
"q_0": 1.0,
"G_0": 117646620000.0,
"Gprime_0": 1.69117,
"eta_s_0": 2.89863,
"n": 8.0,
"Z": 4.0,
"molar_mass": 0.1620456,
}
Mineral.__init__(self)
[docs]
class lppv(Mineral):
def __init__(self):
self.params = {
"name": "LS_Fe2O3-Post-Perovski",
"formula": {"Fe": 2.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -405645.45,
"V_0": 2.62534e-05,
"K_0": 176500000000.0,
"Kprime_0": 4.0,
"Debye_0": 713.13099,
"grueneisen_0": 1.64029,
"q_0": 1.76443,
"G_0": 220101260000.0,
"Gprime_0": 1.98843,
"eta_s_0": 3.79074,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.15968852,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 10.0, "S_D": 20.66026, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class mag(Mineral):
def __init__(self):
self.params = {
"name": "Magnetite",
"formula": {"Fe": 3.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1016009.99,
"V_0": 4.4528e-05,
"K_0": 183876640000.0,
"Kprime_0": 5.22819,
"Debye_0": 529.46966,
"grueneisen_0": 1.35821,
"q_0": 0.41872,
"G_0": 60300000000.0,
"Gprime_0": 0.04657,
"eta_s_0": 1.12258,
"n": 7.0,
"Z": 1.0,
"molar_mass": 0.23153307,
}
self.property_modifiers = [
[
"magnetic_chs",
{
"structural_parameter": 0.4,
"curie_temperature": [845.5, 0.0],
"magnetic_moment": [np.float64(178.98169420433626), 0.0],
},
],
[
"linear",
{"delta_E": 33048.07971316818, "delta_S": 43.1758, "delta_V": 0.0},
],
]
Mineral.__init__(self)
[docs]
class mgc2(Mineral):
def __init__(self):
self.params = {
"name": "HP-Clinoenstatite",
"formula": {"Mg": 2.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -2904465.49,
"V_0": 6.076e-05,
"K_0": 116025560000.0,
"Kprime_0": 6.23685,
"Debye_0": 824.44051,
"grueneisen_0": 1.12478,
"q_0": 0.20409,
"G_0": 87927170000.0,
"Gprime_0": 1.84119,
"eta_s_0": 2.14193,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2007774,
}
Mineral.__init__(self)
[docs]
class mgcf(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Ca-Ferrite",
"formula": {"Mg": 1.0, "Al": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2122885.3600000003,
"V_0": 3.6135e-05,
"K_0": 213000000000.0,
"Kprime_0": 4.1,
"Debye_0": 830.714,
"grueneisen_0": 1.56656,
"q_0": 1.0,
"G_0": 129699999999.99998,
"Gprime_0": 1.93591,
"eta_s_0": 1.30292,
"n": 7.0,
"Z": 4.0,
"molar_mass": 0.142266,
}
Mineral.__init__(self)
[docs]
class mgil(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Akimotoite",
"formula": {"Mg": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1409229.53,
"V_0": 2.6354e-05,
"K_0": 210692630000.0,
"Kprime_0": 5.2154,
"Debye_0": 928.95623,
"grueneisen_0": 1.19328,
"q_0": 2.22481,
"G_0": 132000000000.0,
"Gprime_0": 1.81492,
"eta_s_0": 3.3993,
"n": 5.0,
"Z": 2.0,
"molar_mass": 0.100389,
}
Mineral.__init__(self)
[docs]
class mgmj(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Majorite",
"formula": {"Mg": 4.0, "Si": 4.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5690008.32,
"V_0": 0.000114324,
"K_0": 165118370000.0,
"Kprime_0": 4.21183,
"Debye_0": 822.48562,
"grueneisen_0": 0.97681,
"q_0": 1.53581,
"G_0": 85000000000.0,
"Gprime_0": 1.42969,
"eta_s_0": 1.01779,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.40156,
}
Mineral.__init__(self)
[docs]
class mgpv(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Perovskite",
"formula": {"Mg": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1365338.1199999999,
"V_0": 2.4445e-05,
"K_0": 250565350000.0,
"Kprime_0": 4.13438,
"Debye_0": 892.95164,
"grueneisen_0": 1.54466,
"q_0": 0.83352,
"G_0": 172900000000.0,
"Gprime_0": 1.73254,
"eta_s_0": 1.65233,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.100389,
}
Mineral.__init__(self)
[docs]
class mgri(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Ringwoodite",
"formula": {"Mg": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2018381.1,
"V_0": 3.9493e-05,
"K_0": 184901750000.0,
"Kprime_0": 4.22035,
"Debye_0": 879.84656,
"grueneisen_0": 1.10843,
"q_0": 2.39214,
"G_0": 123000000000.0,
"Gprime_0": 1.35412,
"eta_s_0": 2.30588,
"n": 7.0,
"Z": 2.0,
"molar_mass": 0.140693,
}
Mineral.__init__(self)
[docs]
class mgts(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Tschermak's",
"formula": {"Mg": 1.0, "Al": 2.0, "Si": 1.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -3000959.4699999997,
"V_0": 5.914e-05,
"K_0": 107076810000.0,
"Kprime_0": 7.02751,
"Debye_0": 788.01368,
"grueneisen_0": 0.78477,
"q_0": 3.43847,
"G_0": 93345240000.0,
"Gprime_0": 1.54596,
"eta_s_0": 2.39272,
"n": 10.0,
"Z": 4.0,
"molar_mass": 0.20235,
}
Mineral.__init__(self)
[docs]
class mgwa(Mineral):
def __init__(self):
self.params = {
"name": "Mg-Wadsleyite",
"formula": {"Mg": 2.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2029078.6,
"V_0": 4.0515e-05,
"K_0": 168702760000.0,
"Kprime_0": 4.12302,
"Debye_0": 849.12535,
"grueneisen_0": 1.20498,
"q_0": 2.20831,
"G_0": 112000000000.0,
"Gprime_0": 1.50973,
"eta_s_0": 2.56411,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.140695,
}
Mineral.__init__(self)
[docs]
class mnal(Mineral):
def __init__(self):
self.params = {
"name": "Mg-NAL_Phase",
"formula": {"Na": 1.0, "Mg": 2.0, "Al": 5.0, "Si": 1.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -6172514.21,
"V_0": 0.000109883,
"K_0": 204006720000.0,
"Kprime_0": 4.31789,
"Debye_0": 868.59088,
"grueneisen_0": 1.43147,
"q_0": 1.0,
"G_0": 129000000000.0,
"Gprime_0": 1.74226,
"eta_s_0": 1.9384,
"n": 21.0,
"Z": 1.0,
"molar_mass": 0.42658581,
}
Mineral.__init__(self)
[docs]
class mppv(Mineral):
def __init__(self):
self.params = {
"name": "Mg-PostPerovskite",
"formula": {"Mg": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1332544.16,
"V_0": 2.41108e-05,
"K_0": 247740000000.0,
"Kprime_0": 4.0,
"Debye_0": 931.02549,
"grueneisen_0": 1.64015,
"q_0": 1.76454,
"G_0": 166644930000.0,
"Gprime_0": 1.98845,
"eta_s_0": 1.43815,
"n": 5.0,
"Z": 4.0,
"molar_mass": 0.100389,
}
Mineral.__init__(self)
[docs]
class nacf(Mineral):
def __init__(self):
self.params = {
"name": "Na-Ca-Ferrite",
"formula": {"Na": 1.0, "Al": 1.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1848182.13,
"V_0": 3.627e-05,
"K_0": 220000000000.0,
"Kprime_0": 4.1,
"Debye_0": 709.33152,
"grueneisen_0": 1.56656,
"q_0": 1.0,
"G_0": 135023869999.99998,
"Gprime_0": 1.74135,
"eta_s_0": 1.67725,
"n": 7.0,
"Z": 4.0,
"molar_mass": 0.142054,
}
Mineral.__init__(self)
[docs]
class namj(Mineral):
def __init__(self):
self.params = {
"name": "Na-Majorite",
"formula": {"Na": 2.0, "Mg": 1.0, "Si": 5.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5309561.23,
"V_0": 0.000110842,
"K_0": 172035520000.0,
"Kprime_0": 5.20045,
"Debye_0": 845.23671,
"grueneisen_0": 1.25087,
"q_0": 0.10909,
"G_0": 114700000000.0,
"Gprime_0": 1.35756,
"eta_s_0": 2.48526,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.40270437,
}
Mineral.__init__(self)
[docs]
class neph(Mineral):
def __init__(self):
self.params = {
"name": "Nepheline",
"formula": {"Na": 1.0, "Al": 1.0, "Si": 1.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1996488.39,
"V_0": 5.38684e-05,
"K_0": 53055500000.0,
"Kprime_0": 4.0,
"Debye_0": 743.57985,
"grueneisen_0": 0.6969,
"q_0": 1.0,
"G_0": 30700000000.0,
"Gprime_0": 1.33087,
"eta_s_0": 0.6241,
"n": 7.0,
"Z": 2.0,
"molar_mass": 0.14205431,
}
self.property_modifiers = [
[
"landau_slb_2022",
{"Tc_0": 467.0, "S_D": 10.0, "V_D": 8.000000000000001e-07},
]
]
Mineral.__init__(self)
[docs]
class nnal(Mineral):
def __init__(self):
self.params = {
"name": "Na-NAL_Phase",
"formula": {"Na": 3.0, "Al": 3.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5570853.449999999,
"V_0": 0.000109401,
"K_0": 204006720000.0,
"Kprime_0": 4.31789,
"Debye_0": 846.08425,
"grueneisen_0": 1.43147,
"q_0": 1.0,
"G_0": 144164270000.0,
"Gprime_0": 1.74226,
"eta_s_0": 2.40665,
"n": 21.0,
"Z": 1.0,
"molar_mass": 0.42616294,
}
Mineral.__init__(self)
[docs]
class odi(Mineral):
def __init__(self):
self.params = {
"name": "Ortho-Diopside",
"formula": {"Ca": 1.0, "Mg": 1.0, "Si": 2.0, "O": 6.0},
"equation_of_state": "slb3",
"F_0": -3015701.23,
"V_0": 6.8054e-05,
"K_0": 107076810000.0,
"Kprime_0": 7.02751,
"Debye_0": 744.48915,
"grueneisen_0": 0.78477,
"q_0": 3.43847,
"G_0": 58247330000.0,
"Gprime_0": 1.54596,
"eta_s_0": 1.35202,
"n": 10.0,
"Z": 1.0,
"molar_mass": 0.2165504,
}
Mineral.__init__(self)
[docs]
class pe(Mineral):
def __init__(self):
self.params = {
"name": "Periclase",
"formula": {"Mg": 4.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2278119.6300000004,
"V_0": 4.4976e-05,
"K_0": 161143930000.0,
"Kprime_0": 3.90838,
"Debye_0": 770.90151,
"grueneisen_0": 1.45033,
"q_0": 1.5487,
"G_0": 130900000000.0,
"Gprime_0": 2.14668,
"eta_s_0": 2.56123,
"n": 8.0,
"Z": 1.0,
"molar_mass": 0.16121782,
}
Mineral.__init__(self)
[docs]
class picr(Mineral):
def __init__(self):
self.params = {
"name": "Pircochromite",
"formula": {"Mg": 1.0, "Cr": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1808028.0,
"V_0": 4.3564e-05,
"K_0": 184400000000.0,
"Kprime_0": 5.7,
"Debye_0": 750.72523,
"grueneisen_0": 0.99168,
"q_0": 3.97087,
"G_0": 90290490000.0,
"Gprime_0": 0.62795,
"eta_s_0": 3.07014,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.19229,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 12.55, "S_D": 23.05213, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class pwo(Mineral):
def __init__(self):
self.params = {
"name": "Pseudo-Wollastonite",
"formula": {"Ca": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1547095.09,
"V_0": 4.0272e-05,
"K_0": 86000000000.0,
"Kprime_0": 3.8,
"Debye_0": 703.00475,
"grueneisen_0": 0.95232,
"q_0": 1.0,
"G_0": 28991610000.0,
"Gprime_0": 0.77536,
"eta_s_0": 0.76187,
"n": 5.0,
"Z": 1.0,
"molar_mass": 0.116164,
}
Mineral.__init__(self)
[docs]
class py(Mineral):
def __init__(self):
self.params = {
"name": "Pyrope",
"formula": {"Mg": 3.0, "Al": 2.0, "Si": 3.0, "O": 12.0},
"equation_of_state": "slb3",
"F_0": -5932095.930000001,
"V_0": 0.00011308,
"K_0": 170239640000.0,
"Kprime_0": 4.11067,
"Debye_0": 823.23783,
"grueneisen_0": 1.01422,
"q_0": 1.42169,
"G_0": 93700000000.0,
"Gprime_0": 1.35756,
"eta_s_0": 0.98186,
"n": 20.0,
"Z": 4.0,
"molar_mass": 0.40313,
}
Mineral.__init__(self)
[docs]
class qtz(Mineral):
def __init__(self):
self.params = {
"name": "Quartz",
"formula": {"Si": 1.0, "O": 2.0},
"equation_of_state": "slb3",
"F_0": -858043.33,
"V_0": 2.24211e-05,
"K_0": 61425960000.0,
"Kprime_0": 19.78014,
"Debye_0": 883.46813,
"grueneisen_0": -0.03957,
"q_0": 1.0,
"G_0": 44857750000.0,
"Gprime_0": -0.04277,
"eta_s_0": 2.40464,
"n": 3.0,
"Z": 16.0,
"molar_mass": 0.060085,
}
self.property_modifiers = [
[
"landau_slb_2022",
{"Tc_0": 847.0, "S_D": 5.76, "V_D": 1.3593599999999998e-06},
]
]
Mineral.__init__(self)
[docs]
class smag(Mineral):
def __init__(self):
self.params = {
"name": "Magnetite",
"formula": {"Fe": 3.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -1016009.99,
"V_0": 4.4528e-05,
"K_0": 183876640000.0,
"Kprime_0": 5.22819,
"Debye_0": 529.46966,
"grueneisen_0": 1.35821,
"q_0": 0.41872,
"G_0": 60300000000.0,
"Gprime_0": 0.04657,
"eta_s_0": 1.12258,
"n": 7.0,
"Z": 1.0,
"molar_mass": 0.23153307,
}
self.property_modifiers = [
[
"magnetic_chs",
{
"structural_parameter": 0.4,
"curie_temperature": [845.5, 0.0],
"magnetic_moment": [np.float64(178.98169420433626), 0.0],
},
],
[
"linear",
{"delta_E": 33048.07971316818, "delta_S": 43.1758, "delta_V": 0.0},
],
]
Mineral.__init__(self)
[docs]
class sp(Mineral):
def __init__(self):
self.params = {
"name": "Spinel",
"formula": {"Mg": 1.0, "Al": 2.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -2171789.32,
"V_0": 3.9762e-05,
"K_0": 195103490000.0,
"Kprime_0": 4.62702,
"Debye_0": 801.86054,
"grueneisen_0": 0.97405,
"q_0": 3.97087,
"G_0": 109000000000.0,
"Gprime_0": 0.62795,
"eta_s_0": 2.4035,
"n": 7.0,
"Z": 8.0,
"molar_mass": 0.142278,
}
Mineral.__init__(self)
[docs]
class SLB3Stishovite(SLB3):
[docs]
def shear_modulus(self, pressure, temperature, volume, params):
"""
Returns the shear modulus. :math:`[Pa]`
SLB2024 first calculate the shear modulus at T_0 using
the third order Birch-Murnaghan equation of state,
then apply the softening relevant to the temperature
and pressure of interest, and then apply the usual thermal term.
"""
G_bare = bm.shear_modulus_third_order(volume, params)
Pc = 51.6e9 + 11.1 * (temperature - 300.0) * 1.0e6 # Eq B4
PcQ = (
Pc + 50.7e9
) # From the HeFESTo code in stishtran.f. PcQ is T-independent in paper.
Cs0 = 128.0e9 * PcQ / Pc
Delta = 0.0 # 100.e9 in the HeFESTo code in stishtran.f, 0. in paper.
PminusPc = pressure - Pc
if PminusPc < 0.0:
Cs = Cs0 * PminusPc / (pressure - PcQ) # Eq B2
else:
Ast = (Cs0 - Delta) * (PcQ - Pc)
Cs = Cs0 - Ast / (PcQ - pressure + 3.0 * PminusPc) # Eq B3
# VRH-like average of the bare shear modulus with softened (C11-C12)/2.
G = 0.5 * (13.0 / 15.0 * G_bare + 2.0 / 15.0 * Cs) + 0.5 / (
13.0 / 15.0 / G_bare + 2.0 / 15.0 / Cs
) # Eq B5
debye_T = self._debye_temperature(params["V_0"] / volume, params)
eta_s = self._isotropic_eta_s(params["V_0"] / volume, params)
E_th = debye.thermal_energy(temperature, debye_T, params["n"])
E_th_ref = debye.thermal_energy(params["T_0"], debye_T, params["n"])
return G - eta_s * (E_th - E_th_ref) / volume
[docs]
class st(Mineral):
def __init__(self):
self.params = {
"name": "Stishovite",
"formula": {"Si": 1.0, "O": 2.0},
"equation_of_state": SLB3Stishovite(),
"F_0": -817124.2,
"V_0": 1.4017e-05,
"K_0": 305839630000.0,
"Kprime_0": 4.02918,
"Debye_0": 1096.06023,
"grueneisen_0": 1.55723,
"q_0": 2.21141,
"G_0": 250293920000.0,
"Gprime_0": 2.2962,
"eta_s_0": 5.39736,
"n": 3.0,
"Z": 2.0,
"molar_mass": 0.060085,
}
Mineral.__init__(self)
[docs]
class wo(Mineral):
def __init__(self):
self.params = {
"name": "Wollastonite",
"formula": {"Ca": 1.0, "Si": 1.0, "O": 3.0},
"equation_of_state": "slb3",
"F_0": -1548541.46,
"V_0": 3.9901e-05,
"K_0": 93900000000.0,
"Kprime_0": 4.0,
"Debye_0": 713.58788,
"grueneisen_0": 1.05734,
"q_0": 1.0,
"G_0": 50300000000.0,
"Gprime_0": 1.23206,
"eta_s_0": 1.2711,
"n": 5.0,
"Z": 1.0,
"molar_mass": 0.116164,
}
Mineral.__init__(self)
[docs]
class wu(Mineral):
def __init__(self):
self.params = {
"name": 'W\\"ustite',
"formula": {"Fe": 4.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -962050.35,
"V_0": 4.9024e-05,
"K_0": 160700000000.0,
"Kprime_0": 4.0,
"Debye_0": 427.00102,
"grueneisen_0": 1.45033,
"q_0": 1.5487,
"G_0": 59000000000.0,
"Gprime_0": 1.44764,
"eta_s_0": 0.0596,
"n": 8.0,
"Z": 1.0,
"molar_mass": 0.28737822,
}
self.property_modifiers = [
["landau_slb_2022", {"Tc_0": 191.0, "S_D": 53.5254, "V_D": 0.0}]
]
Mineral.__init__(self)
[docs]
class wuls(Mineral):
def __init__(self):
self.params = {
"name": 'W\\"ustite_Low_Spin',
"formula": {"Fe": 4.0, "O": 4.0},
"equation_of_state": "slb3",
"F_0": -609335.18,
"V_0": 4.33997e-05,
"K_0": 199700000000.0,
"Kprime_0": 4.0,
"Debye_0": 492.99392,
"grueneisen_0": 1.45033,
"q_0": 1.5487,
"G_0": 59000000000.0,
"Gprime_0": 1.44073,
"eta_s_0": -0.14773,
"n": 8.0,
"Z": 1.0,
"molar_mass": 0.28737822,
}
Mineral.__init__(self)
"""
SOLUTIONS
"""
[docs]
class c2c_pyroxene(Solution):
def __init__(self, molar_fractions=None):
"""IdealSolution model for c2c_pyroxene (c2c).
Endmembers (and site species distributions) are given in the order:
- mgc2 ([Mg]2)
- fec2 ([Fe]2)
"""
self.name = "c2c_pyroxene"
self.solution_model = IdealSolution(
endmembers=[
[mgc2(), "[Mg]2"],
[fec2(), "[Fe]2"],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class calcium_ferrite_structured_phase(Solution):
def __init__(self, molar_fractions=None):
"""AsymmetricRegularSolution model for calcium_ferrite_structured_phase (cf).
Endmembers (and site species distributions) are given in the order:
- mgcf ([Mg][Al][Al])
- fecf ([Fe][Al][Al])
- nacf ([Na][Al][Si])
- hmag ([Fe][Fef][Fef])
- crcf ([Mg][Cr][Cr])
"""
self.name = "calcium_ferrite_structured_phase"
self.solution_model = AsymmetricRegularSolution(
endmembers=[
[mgcf(), "[Mg][Al][Al]"],
[fecf(), "[Fe][Al][Al]"],
[nacf(), "[Na][Al][Si]"],
[hmag(), "[Fe][Fef][Fef]"],
[crcf(), "[Mg][Cr][Cr]"],
],
alphas=[1.0, 1.0, 3.97647, 1.0, 1.0],
energy_interaction=[
[
np.float64(0.0),
np.float64(67194.52),
np.float64(0.0),
np.float64(0.0),
],
[np.float64(67194.52), np.float64(0.0), np.float64(0.0)],
[np.float64(0.0), np.float64(67194.52)],
[np.float64(0.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class clinopyroxene(Solution):
def __init__(self, molar_fractions=None):
"""AsymmetricRegularSolution model for clinopyroxene (cpx).
Endmembers (and site species distributions) are given in the order:
- di ([Ca][Mg][Si]2)
- he ([Ca][Fe][Si]2)
- cen ([Mg][Mg][Si]2)
- cats ([Ca][Al][Si1/2Al1/2]2)
- jd ([Na][Al][Si]2)
- acm ([Na][Fef][Si]2)
"""
self.name = "clinopyroxene"
self.solution_model = AsymmetricRegularSolution(
endmembers=[
[di(), "[Ca][Mg][Si]2"],
[he(), "[Ca][Fe][Si]2"],
[cen(), "[Mg][Mg][Si]2"],
[cats(), "[Ca][Al][Si1/2Al1/2]2"],
[jd(), "[Na][Al][Si]2"],
[acm(), "[Na][Fef][Si]2"],
],
alphas=[1.0, 1.0, 1.0, 3.5, 1.0, 1.0],
energy_interaction=[
[
np.float64(0.0),
np.float64(24740.0),
np.float64(26000.0),
np.float64(24300.0),
np.float64(24300.0),
],
[
np.float64(24740.0),
np.float64(26000.0),
np.float64(24300.0),
np.float64(24300.0),
],
[np.float64(63718.12), np.float64(46037.09), np.float64(46037.09)],
[np.float64(10000.0), np.float64(10000.0)],
[np.float64(0.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class garnet(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for garnet (gt).
Endmembers (and site species distributions) are given in the order:
- py ([Mg]3[Al][Al])
- al ([Fe]3[Al][Al])
- gr ([Ca]3[Al][Al])
- mgmj ([Mg]3[Mg][Si])
- namj ([Na2/3Mg1/3]3[Si][Si])
- andr ([Ca]3[Fef][Fef])
- knor ([Mg]3[Cr][Cr])
"""
self.name = "garnet"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[py(), "[Mg]3[Al][Al]"],
[al(), "[Fe]3[Al][Al]"],
[gr(), "[Ca]3[Al][Al]"],
[mgmj(), "[Mg]3[Mg][Si]"],
[namj(), "[Na2/3Mg1/3]3[Si][Si]"],
[andr(), "[Ca]3[Fef][Fef]"],
[knor(), "[Mg]3[Cr][Cr]"],
],
energy_interaction=[
[
np.float64(0.0),
np.float64(19088.57),
np.float64(23164.32),
np.float64(23164.32),
np.float64(53000.0),
np.float64(0.0),
],
[
np.float64(0.0),
np.float64(23164.32),
np.float64(23164.32),
np.float64(44000.0),
np.float64(10000.0),
],
[
np.float64(64682.45),
np.float64(64682.45),
np.float64(0.0),
np.float64(-20000.0),
],
[np.float64(71172.45), np.float64(64682.45), np.float64(25879.13)],
[np.float64(64682.45), np.float64(25879.13)],
[np.float64(75000.0)],
],
volume_interaction=[
[
np.float64(0.0),
np.float64(1.03e-06),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
],
[
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
],
[
np.float64(1.03e-06),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
],
[np.float64(0.0), np.float64(0.0), np.float64(0.0)],
[np.float64(0.0), np.float64(0.0)],
[np.float64(0.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class ilmenite(Solution):
def __init__(self, molar_fractions=None):
"""AsymmetricRegularSolution model for ilmenite (il).
Endmembers (and site species distributions) are given in the order:
- mgil ([Mg][Si])
- feil ([Fe][Si])
- co ([Al][Al])
- hem ([Fef][Fef])
- esk ([Cr][Cr])
"""
self.name = "ilmenite"
self.solution_model = AsymmetricRegularSolution(
endmembers=[
[mgil(), "[Mg][Si]"],
[feil(), "[Fe][Si]"],
[co(), "[Al][Al]"],
[hem(), "[Fef][Fef]"],
[esk(), "[Cr][Cr]"],
],
alphas=[1.0, 1.0, 1.0, 1.3, 1.0],
energy_interaction=[
[
np.float64(0.0),
np.float64(62487.4),
np.float64(65000.0),
np.float64(93184.02),
],
[np.float64(62487.4), np.float64(65000.0), np.float64(93184.02)],
[np.float64(65000.0), np.float64(40000.0)],
[np.float64(40000.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class ferropericlase(Solution):
def __init__(self, molar_fractions=None):
"""AsymmetricRegularSolution model for ferropericlase (mw).
Endmembers (and site species distributions) are given in the order:
- pe ([Mg]2[Mg]2)
- wu ([Fe]2[Fe]2)
- wuls ([Fels]2[Fels]2)
- anao ([Na]2[Al]2)
- mag ([Fef]0[Fef]2)
The entropy from the first site in magnetite is not counted.
"""
self.name = "ferropericlase"
self.solution_model = AsymmetricRegularSolution(
endmembers=[
[pe(), "[Mg]2[Mg]2"],
[wu(), "[Fe]2[Fe]2"],
[wuls(), "[Fels]2[Fels]2"],
[anao(), "[Na]2[Al]2"],
[mag(), "[Fef]0[Fef]2"],
],
alphas=[1.0, 1.0, 1.0, 1.0, 0.08293],
energy_interaction=[
[
np.float64(44000.0),
np.float64(-87120.47),
np.float64(120000.0),
np.float64(302745.2),
],
[np.float64(-60219.09), np.float64(120000.0), np.float64(106151.49)],
[np.float64(120000.0), np.float64(106151.49)],
[np.float64(120000.0)],
],
volume_interaction=[
[
np.float64(4.4e-07),
np.float64(0.0),
np.float64(0.0),
np.float64(0.0),
],
[np.float64(0.0), np.float64(0.0), np.float64(0.0)],
[np.float64(0.0), np.float64(0.0)],
[np.float64(0.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class ferropericlase_relaxed(RelaxedSolution):
def __init__(self):
"""RelaxedSolution model for ferropericlase (mw).
Endmembers (and site species distributions) are given in the order:
- pe ([Mg]2[Mg]2)
- wu and wuls ([Fe,Fels]2[Fe,Fels]2)
- anao ([Na]2[Al]2)
- mag ([Fe]0[Fef]2)
The entropy from the first site in magnetite is not counted.
The equilibrium spin state is calculated automatically.
"""
solution = ferropericlase()
vrel = [[0.0, 0.5, -0.5, 0.0, 0.0]]
vunrel = [
[1.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.5, 0.5, 0.0, 0.0],
[0.0, 0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 1.0],
]
RelaxedSolution.__init__(self, solution, vrel, vunrel)
[docs]
class new_aluminous_phase(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for new_aluminous_phase (nal).
Endmembers (and site species distributions) are given in the order:
- mnal ([Mg]2[Al5/6Si1/6]6)
- fnal ([Fe]2[Al5/6Si1/6]6)
- nnal ([Na]2[Al3/6Si3/6]6)
"""
self.name = "new_aluminous_phase"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[mnal(), "[Mg]2[Al5/6Si1/6]6"],
[fnal(), "[Fe]2[Al5/6Si1/6]6"],
[nnal(), "[Na]2[Al3/6Si3/6]6"],
],
energy_interaction=[
[np.float64(0.0), np.float64(-62082.92)],
[np.float64(-62082.92)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class olivine(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for olivine (ol).
Endmembers (and site species distributions) are given in the order:
- fo ([Mg]2)
- fa ([Fe]2)
"""
self.name = "olivine"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[fo(), "[Mg]2"],
[fa(), "[Fe]2"],
],
energy_interaction=[[np.float64(2474.06)]],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class orthopyroxene(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for orthopyroxene (opx).
Endmembers (and site species distributions) are given in the order:
- en ([Mg][Mg])
- fs ([Fe][Fe])
- mgts ([Mg][Al])
- odi ([Ca][Mg])
"""
self.name = "orthopyroxene"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[en(), "[Mg][Mg]"],
[fs(), "[Fe][Fe]"],
[mgts(), "[Mg][Al]"],
[odi(), "[Ca][Mg]"],
],
energy_interaction=[
[np.float64(0.0), np.float64(0.0), np.float64(32213.03)],
[np.float64(0.0), np.float64(32213.03)],
[np.float64(46640.38)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class plagioclase(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for plagioclase (plg).
Endmembers (and site species distributions) are given in the order:
- an ([Ca])
- ab ([Na])
"""
self.name = "plagioclase"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[an(), "[Ca]"],
[ab(), "[Na]"],
],
energy_interaction=[[np.float64(13000.0)]],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class post_perovskite(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for post_perovskite (ppv).
Endmembers (and site species distributions) are given in the order:
- mppv ([Mg][Si])
- fppv ([Fe][Si])
- appv ([Al][Al])
- hppv ([Fef][Fef])
- cppv ([Cr][Cr])
"""
self.name = "post_perovskite"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[mppv(), "[Mg][Si]"],
[fppv(), "[Fe][Si]"],
[appv(), "[Al][Al]"],
[hppv(), "[Fef][Fef]"],
[cppv(), "[Cr][Cr]"],
],
energy_interaction=[
[
np.float64(-39831.77),
np.float64(31662.95),
np.float64(93867.53),
np.float64(93184.02),
],
[np.float64(31662.95), np.float64(93867.53), np.float64(93184.02)],
[np.float64(65000.0), np.float64(40000.0)],
[np.float64(40000.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class bridgmanite(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for bridgmanite (pv).
Endmembers (and site species distributions) are given in the order:
- mgpv ([Mg][Si])
- fepv ([Fe][Si])
- alpv ([Al][Al])
- hepv ([Fef][Fef])
- hlpv ([Fef][Fefls])
- fapv ([Fef][Al])
- crpv ([Cr][Cr])
"""
self.name = "bridgmanite"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[mgpv(), "[Mg][Si]"],
[fepv(), "[Fe][Si]"],
[alpv(), "[Al][Al]"],
[hepv(), "[Fef][Fef]"],
[hlpv(), "[Fef][Fefls]"],
[fapv(), "[Fef][Al]"],
[crpv(), "[Cr][Cr]"],
],
energy_interaction=[
[
np.float64(-12467.39),
np.float64(31662.95),
np.float64(93867.53),
np.float64(49859.96),
np.float64(0.0),
np.float64(93184.02),
],
[
np.float64(0.0),
np.float64(93867.53),
np.float64(49859.96),
np.float64(0.0),
np.float64(93184.02),
],
[
np.float64(65000.0),
np.float64(65000.0),
np.float64(65000.0),
np.float64(40000.0),
],
[np.float64(-5875.1), np.float64(65000.0), np.float64(40000.0)],
[np.float64(65000.0), np.float64(40000.0)],
[np.float64(40000.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class bridgmanite_relaxed(RelaxedSolution):
def __init__(self):
"""RelaxedSolution model for bridgmanite (pv).
Only the spin transition is relaxed.
Endmembers (and site species distributions) are given in the order:
- mgpv ([Mg][Si])
- fepv ([Fe][Si])
- alpv ([Al][Al])
- hepv + hlpv ([Fef][Fef,Fefls])
- fapv ([Fef][Al])
- crpv ([Cr][Cr])
The equilibrium spin state is calculated automatically.
"""
solution = bridgmanite()
vrel = [[0.0, 0.0, 0.0, 0.5, -0.5, 0.0, 0.0]]
vunrel = [
[1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0],
[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0],
]
RelaxedSolution.__init__(self, solution, vrel, vunrel)
[docs]
class ringwoodite(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for ringwoodite (ri).
Endmembers (and site species distributions) are given in the order:
- mgri ([Mg]2)
- feri ([Fe]2)
"""
self.name = "ringwoodite"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[mgri(), "[Mg]2"],
[feri(), "[Fe]2"],
],
energy_interaction=[[np.float64(6229.27)]],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class mg_fe_aluminous_spinel(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for mg_fe_aluminous_spinel (sp).
Endmembers (and site species distributions) are given in the order:
- sp ([Mg][Al][Al])
- hc ([Fe][Al][Al])
- smag ([Fe][Fef][Fef])
- picr ([Mg][Cr][Cr])
"""
self.name = "mg_fe_aluminous_spinel"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[sp(), "[Mg][Al][Al]"],
[hc(), "[Fe][Al][Al]"],
[smag(), "[Fe][Fef][Fef]"],
[picr(), "[Mg][Cr][Cr]"],
],
energy_interaction=[
[np.float64(-1310.9), np.float64(63000.0), np.float64(20993.94)],
[np.float64(55000.0), np.float64(21000.0)],
[np.float64(42000.0)],
],
)
Solution.__init__(self, molar_fractions=molar_fractions)
[docs]
class wadsleyite(Solution):
def __init__(self, molar_fractions=None):
"""SymmetricRegularSolution model for wadsleyite (wa).
Endmembers (and site species distributions) are given in the order:
- mgwa ([Mg]2)
- fewa ([Fe]2)
"""
self.name = "wadsleyite"
self.solution_model = SymmetricRegularSolution(
endmembers=[
[mgwa(), "[Mg]2"],
[fewa(), "[Fe]2"],
],
energy_interaction=[[np.float64(12868.75)]],
)
Solution.__init__(self, molar_fractions=molar_fractions)
"""
ENDMEMBER ALIASES
"""
albite = ab
acmite = acm
almandine = al
al_perovskite = alpv
anorthite = an
alpha_nao2_phase = anao
grossular = andr
alpha_pbo_2_sio_2 = apbo
al_post_perovskite = appv
ca_perovskite = capv
lime_tschermak = cats
clinoenstatite = cen
corundum = co
coesite = coes
cr_post_perovskite = cppv
cr_ca_ferrite = crcf
cr_perovskite = crpv
diopside = di
enstatite = en
eskolaite = esk
fayalite = fa
fealo3_perovskite_hs = fapv
alpha_bcc_iron = fea
hp_clinoferrosilite = fec2
fe_ca_ferrite = fecf
epsilon_hcp_iron = fee
gamma_fcc_iron = feg
fe_akimotoite = feil
fe_perovskite = fepv
fe_ringwoodite = feri
fe_wadsleyite = fewa
fe_nal_phase = fnal
forsterite = fo
fe_postperovskite = fppv
ferrosilite = fs
grossular = gr
hercynite = hc
hedenbergite = he
hematite = hem
fe2o3_perovskite_hs = hepv
fe2o3_perovskite_ls = hlpv
high_pressure_magnetit = hmag
hs_fe2o3_post_perovski = hppv
jadeite = jd
knorringite = knor
kyanite = ky
ls_fe2o3_post_perovski = lppv
magnetite = mag
hp_clinoenstatite = mgc2
mg_ca_ferrite = mgcf
mg_akimotoite = mgil
mg_majorite = mgmj
mg_perovskite = mgpv
mg_ringwoodite = mgri
mg_tschermaks = mgts
mg_wadsleyite = mgwa
mg_nal_phase = mnal
mg_postperovskite = mppv
na_ca_ferrite = nacf
na_majorite = namj
nepheline = neph
na_nal_phase = nnal
ortho_diopside = odi
periclase = pe
pircochromite = picr
pseudo_wollastonite = pwo
pyrope = py
quartz = qtz
magnetite = smag
spinel = sp
stishovite = st
wollastonite = wo
wustite = wu
wustite_low_spin = wuls
"""
SOLUTION ALIASES
"""
c2c = c2c_pyroxene
cf = calcium_ferrite_structured_phase
cpx = clinopyroxene
gt = garnet
il = ilmenite
mw = ferropericlase
nal = new_aluminous_phase
ol = olivine
opx = orthopyroxene
plg = plagioclase
ppv = post_perovskite
pv = bridgmanite
ri = ringwoodite
wa = wadsleyite