Source code for burnman.minerals.KMFBZ_2017

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


"""
from Kurnosov et al.  Nature 2017
Kurnosov, A., et al. "Evidence for a Fe3+-rich pyrolitic lower mantle from
(Al, Fe)-bearing bridgmanite elasticity data."
Nature 543.7646 (2017): 543-546. doi:10.1038/nature21390
"""


from ..classes.mineral import Mineral
from ..classes.solution import Solution
from ..classes.solutionmodel import IdealSolution, SymmetricRegularSolution
from ..utils.chemistry import dictionarize_formula, formula_mass

"""
SOLID SOLUTIONS
"""


[docs] class bridgmanite(Solution): def __init__(self, molar_fractions=None): self.name = "bridgmanite/perovskite" self.solution_model = IdealSolution( endmembers=[ [mg_si_perovskite(), "[Mg][Si]O3"], [fe_si_perovskite(), "[Fe][Si]O3"], [al_al_perovskite(), "[Al][Al]O3"], [fe_al_perovskite(), "[Fe][Al]O3"], ] ) Solution.__init__(self, molar_fractions=molar_fractions)
[docs] class ferropericlase(Solution): def __init__(self, molar_fractions=None): self.name = "magnesiowustite/ferropericlase" self.solution_model = SymmetricRegularSolution( endmembers=[[periclase(), "[Mg]O"], [wuestite(), "[Fe]O"]], energy_interaction=[[13.0e3]], ) Solution.__init__(self, molar_fractions=molar_fractions)
""" ENDMEMBERS """
[docs] class mg_si_perovskite(Mineral): def __init__(self): formula = "MgSiO3" formula = dictionarize_formula(formula) self.params = { "name": "MgSiO3 perovskite", "formula": formula, "equation_of_state": "slb3", "F_0": -1368000.0, "V_0": 2.4445e-05, "K_0": 2.51e11, "Kprime_0": 4.1, "Debye_0": 905.0, "grueneisen_0": 1.57, "q_0": 1.1, "G_0": 1.73e11, "Gprime_0": 1.7, "eta_s_0": 2.3, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class fe_si_perovskite(Mineral): def __init__(self): formula = "FeSiO3" formula = dictionarize_formula(formula) self.params = { "name": "FeSiO3 perovskite", "formula": formula, "equation_of_state": "slb3", "F_0": -1043000.0, "V_0": 2.534e-05, "K_0": 2.72e11, "Kprime_0": 4.1, "Debye_0": 871.0, "grueneisen_0": 1.57, "q_0": 1.1, "G_0": 1.33 + 11, "Gprime_0": 1.4, "eta_s_0": 2.3, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class fe_al_perovskite(Mineral): def __init__(self): formula = "FeAlO3" formula = dictionarize_formula(formula) self.params = { "name": "FeAlO3 perovskite", "formula": formula, "equation_of_state": "slb3", "V_0": 2.69e-05, "K_0": 2.20e11, "Kprime_0": 1.3, "Debye_0": 886.0, "grueneisen_0": 1.57, "q_0": 1.1, "G_0": 96.0e09, "Gprime_0": 3.4, "eta_s_0": 2.5, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class al_al_perovskite(Mineral): def __init__(self): formula = "Al2O3" formula = dictionarize_formula(formula) self.params = { "name": "Al2O3 perovskite", "formula": formula, "equation_of_state": "slb3", "F_0": -1533878.0, "V_0": 2.494e-05, "K_0": 2.58e11, "Kprime_0": 4.1, "Debye_0": 886.0, "grueneisen_0": 1.57, "q_0": 1.1, "G_0": 1.71e11, "Gprime_0": 1.5, "eta_s_0": 2.5, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class periclase(Mineral): def __init__(self): formula = "MgO" formula = dictionarize_formula(formula) self.params = { "name": "Periclase", "formula": formula, "equation_of_state": "slb3", "F_0": -569000.0, "V_0": 1.124e-05, "K_0": 1.602e11, "Kprime_0": 3.99, "Debye_0": 767.0, "grueneisen_0": 1.36, "q_0": 1.7, "G_0": 1.31e11, "Gprime_0": 2.1, "eta_s_0": 2.8, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class wuestite(Mineral): def __init__(self): formula = "FeO" formula = dictionarize_formula(formula) self.params = { "name": "Wuestite", "formula": formula, "equation_of_state": "slb3", "F_0": -242000.0, "V_0": 1.226e-05, "K_0": 1.49e11, "Kprime_0": 3.6, "Debye_0": 454.0, "grueneisen_0": 1.53, "q_0": 1.7, "G_0": 60.0e9, "Gprime_0": 1.8, "eta_s_0": 0.6, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class ca_perovskite(Mineral): def __init__(self): formula = "CaSiO3" formula = dictionarize_formula(formula) self.params = { "name": "CaSiO3 perovskite", "formula": formula, "equation_of_state": "slb3", "F_0": -1463358.0, "V_0": 2.754e-05, "K_0": 2.36e11, "Kprime_0": 3.9, "Debye_0": 802.0, "grueneisen_0": 1.89, "q_0": 0.9, "G_0": 1.57e11, "Gprime_0": 2.2, "eta_s_0": 1.3, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
[docs] class hcp_iron(Mineral): def __init__(self): formula = "Fe" formula = dictionarize_formula(formula) self.params = { "name": "Hexagonal close packed iron", "formula": formula, "equation_of_state": "slb3", "F_0": -1463358.0, "V_0": 0.673e-05, "K_0": 1.64e11, "Kprime_0": 4.0, "Debye_0": 422.0, "grueneisen_0": 1.71, "q_0": 1.4, "G_0": 0.815e11, "Gprime_0": 1.9, "eta_s_0": 7, "n": sum(formula.values()), "molar_mass": formula_mass(formula), } Mineral.__init__(self)
""" Mineral aliases """ perovskite = bridgmanite