BurnMan 0.10.0: a thermodynamic and geophysics toolkit for the Earth and planetary sciences¶

BurnMan is a Python library for computing the thermodynamic and thermoelastic properties of geological materials from simple mineral endmembers to complex multilayered planetary interiors.
BurnMan is released under the GNU GPL v2 or newer. It relies heavily on numpy, scipy, and matplotlib.
Homepage: http://burnman.org
Documentation: http://burnman.readthedocs.io
Source code: https://github.com/geodynamics/burnman
If you haven’t yet installed BurnMan, you can go straight to Installation for detailed instructions. After that, you might want to try out our Tutorial or the other Examples. Finally, and most importantly, have fun!
Citing BurnMan¶
If you use BurnMan in your work, we ask that you cite the following publications:
Cottaar, S., Heister, T., Myhill, R., Rose, I., and Unterborn, C. (2017): BurnMan v0.10.0 [Software]. Computational Infrastructure for Geodynamics. Zenodo. (https://doi.org/10.5281/zenodo.546210)
Cottaar S., Heister, T., Rose, I., and Unterborn, C., 2014, BurnMan: A lower mantle mineral physics toolkit, Geochemistry, Geophysics, and Geosystems, 15(4), 1164-1179 (https://doi.org/10.1002/2013GC005122)
Contributing to BurnMan¶
We welcome the submission of scripts used to create published results. If you have any scripts that you would like to contribute, please contact us at info@burnman.org or make a pull request at https://github.com/geodynamics/burnman
Acknowledgement and Support¶
This project was initiated at, and follow-up research support was received through, Cooperative Institute of Deep Earth Research, CIDER (NSF FESD grant 1135452) – see www.deep-earth.org
We thank all the members of the CIDER Mg/Si team for their input: Valentina Magni, Yu Huang, JiaChao Liu, Marc Hirschmann, and Barbara Romanowicz. We also thank Lars Stixrude for providing benchmarking calculations and Zack Geballe, Motohiko Murakami, Bill McDonough, Quentin Williams, Wendy Panero, and Wolfgang Bangerth for helpful discussions.
We thank CIG (www.geodynamics.org) for support and accepting our donation of BurnMan as an official project.
Introducing BurnMan 0.10.0¶
Overview¶
BurnMan is an open source mineral physics and seismological toolkit written in Python which can enable a user to calculate (or fit) the physical and chemical properties of endmember minerals, fluids/melts, solid solutions, and composite assemblages.
Properties which BurnMan can calculate include:
the thermodynamic free energies, allowing phase equilibrium calculations, endmember activities, chemical potentials and oxygen (and other) fugacities.
entropy, enabling the user to calculate isentropes for a given assemblage.
volume, to allow the user to create density profiles.
seismic velocities, including Voigt-Reuss-Hill and Hashin-Strikman bounds and averages.
The toolkit itself comes with a large set of classes and functions which are designed to allow the user to easily combine mineral physics with geophysics, and geodynamics. The features of BurnMan include:
the full codebase, which includes implementations of many static and thermal equations of state (including Vinet, Birch Murnaghan, Mie-Debye-Grueneisen, Modified Tait), and solution models (ideal, symmetric, asymmetric, subregular).
popular endmember and solution datasets already coded into burnman-usable format (including [HollandPowell11], [SLB05] and [SLB11])
Optimal least squares fitting routines for multivariate data with (potentially correlated) errors in pressure and temperature. As an example, such functions can be used to simultaneously fit volumes, seismic velocities and enthalpies.
a “Planet” class, which self-consistently calculates gravity profiles, mass, moment of inertia of planets given the chemical and temperature structure of a planet
published geotherms
a tutorial on the basic use of BurnMan
a large collection of annotated examples
a set of high-level functions which create files readable by seismological and geodynamic software, including: Mineos [MWF11], AxiSEM [NissenMeyervanDrielStahler+14] and ASPECT
an extensive suite of unit tests to ensure code functions as intended
a series of benchmarks comparing BurnMan output with published data
a directory containing user-contributed code from published papers
BurnMan makes extensive use of SciPy, NumPy and SymPy which are widely used Python libraries for scientific computation. Matplotlib is used to display results and produce publication quality figures. The computations are consistently formulated in terms of SI units.
The code documentation including class and function descriptions can be found online at http://burnman.readthedocs.io.
This software has been designed to allow the end-user a great deal of freedom to do whatever calculations they may wish and to add their own modules. The underlying Python classes have been designed to make new endmember, solid solution and composite models easy to read and create. We have endeavoured to provide examples and benchmarks which cover the most popular uses of the software, some of which are included in the figure below. This list is certainly not exhaustive, and we will definitely have missed interesting applications. We will be very happy to accept contributions in form of corrections, examples, or new features.
Structure¶

Installation¶
Requirements¶
Python 3.6+
Python modules: NumPy, SciPy, SymPy, Matplotlib
Source code¶
The source code can be found at https://github.com/geodynamics/burnman.
Install under Ubuntu¶
Install dependencies using apt by opening a terminal window and entering
sudo apt-get install python python-scipy python-numpy python-sympy python-matplotlib git
Clone the BurnMan repository
git clone https://github.com/geodynamics/burnman.git
Go to the Burnman examples directory and type:
python example_beginner.py
Figures should show up, indicating that it is working.
Install on a Mac¶
get Xcode
If you don’t have Python yet, download it (for free) from python.org/download . Make sure to use either Python 3.6+. To check your version of python, type the following in a terminal:
python --version
Install the latest Numpy version from http://sourceforge.net/projects/numpy/files/NumPy/
Install the latest Scipy from http://sourceforge.net/projects/scipy/files/
Install the latest Sympy from http://sourceforge.net/projects/sympy/files/
Install the latest Matplotlib from http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.1/
Clone the BurnMan repository
git clone https://github.com/geodynamics/burnman.git
Go to the Burnman examples directory and type
python example_beginner.py
Figures should show up, indicating that it is working.
Install under Windows¶
To get Python running under Windows:
Download Python from http://www.python.org/ and install
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy, download and install
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy, download and install
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#sympy, download and install
Go to http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib, download and install
Download BurnMan from github (https://github.com/geodynamics/burnman)
Open Python Shell (IDLE Python GUI)
File – Open – find one of the example files
Run the module (or press F5)
Citing BurnMan¶
If you use BurnMan in your work, we ask that you cite the following publications:
Cottaar, S., Heister, T., Myhill, R., Rose, I., and Unterborn, C. (2017): BurnMan v0.10.0 [Software]. Computational Infrastructure for Geodynamics. Zenodo. (https://doi.org/10.5281/zenodo.546210)
Cottaar S., Heister, T., Rose, I., and Unterborn, C., 2014, BurnMan: A lower mantle mineral physics toolkit, Geochemistry, Geophysics, and Geosystems, 15(4), 1164-1179 (https://doi.org/10.1002/2013GC005122)
Contributing to BurnMan¶
We welcome the submission of scripts used to create published results. If you have any scripts that you would like to contribute, please contact us at info@burnman.org or make a pull request at https://github.com/geodynamics/burnman
Acknowledgement and Support¶
This project was initiated at, and follow-up research support was received through, Cooperative Institute of Deep Earth Research, CIDER (NSF FESD grant 1135452) – see www.deep-earth.org
We thank all the members of the CIDER Mg/Si team for their input: Valentina Magni, Yu Huang, JiaChao Liu, Marc Hirschmann, and Barbara Romanowicz. We also thank Lars Stixrude for providing benchmarking calculations and Zack Geballe, Motohiko Murakami, Bill McDonough, Quentin Williams, Wendy Panero, and Wolfgang Bangerth for helpful discussions.
We thank CIG (www.geodynamics.org) for support and accepting our donation of BurnMan as an official project.
Mathematical Background¶
Here is a bit of background on the methods used to calculate thermoelastic and thermodynamic properties in BurnMan. More detail can be found in the cited papers.
Endmember Properties¶
Calculating Thermoelastic Properties¶
To calculate the bulk (\(K\)) modulus, shear modulus (\(G\)) and density (\(\rho\)) of a material at a given pressure (\(P\)) and temperature (\(T\)), optionally defined by a geotherm) and determine the seismic velocities (\(V_S, V_P, V_\Phi\)), one uses an Equation of State (EoS). Currently the following EoSs are supported in BurnMan:
Birch-Murnaghan finite-strain EoS (excludes temperature effects, [Poi91]),
Birch-Murnaghan finite-strain EoS with a Mie-Grüneisen-Debye thermal correction, as formulated by [SLB05].
Birch-Murnaghan finite-strain EoS with a Mie-Grüneisen-Debye thermal correction, as formulated by [MBR+07].
Modified Tait EoS (excludes temperature effects, [HuangChow74]),
Modified Tait EoS with a pseudo-Einstein model for thermal corrections, as formulated by [HollandPowell11].
Compensated-Redlich-Kwong for fluids, as formulated by [HP91].
To calculate these thermoelastic parameters, the EoS requires the user to input the pressure, temperature, and the phases and their molar fractions. These inputs and outputs are further discussed in User input.
Birch-Murnaghan (isothermal)¶
The Birch-Murnaghan equation is an isothermal Eulerian finite-strain EoS relating pressure and volume. The negative finite-strain (or compression) is defined as
where \(V\) is the volume at a given pressure and \(V_0\) is the volume at a reference state (\(P = 10^5\) Pa , \(T\) = 300 K). The pressure and elastic moduli are derived from a third-order Taylor expansion of Helmholtz free energy in \(f\) and evaluating the appropriate volume and strain derivatives (e.g., [Poi91]). For an isotropic material one obtains for the pressure, isothermal bulk modulus, and shear modulus:
Here \(K_0\) and \(G_0\) are the reference bulk modulus and shear modulus and \(K_0^\prime\) and \({G}^\prime_{0}\) are the derivative of the respective moduli with respect to pressure.
BurnMan has the option to use the second-order expansion for shear modulus by dropping the \(f^2\) terms in these equations (as is sometimes done for experimental fits or EoS modeling).
Modified Tait (isothermal)¶
The Modified Tait equation of state was developed by [HuangChow74]. It has the considerable benefit of allowing volume to be expressed as a function of pressure. It performs very well to pressures and temperatures relevant to the deep Earth [HollandPowell11].
Mie-Grüneisen-Debye (thermal correction to Birch-Murnaghan)¶
The Debye model for the Helmholtz free energy can be written as follows [MBR+07]
where \(\theta\) is the Debye temperature and \(\gamma\) is the Grüneisen parameter.
Using thermodynamic relations we can derive equations for the thermal pressure and bulk modulus
The thermal shear correction used in BurnMan was developed by [HamaSuito98]
The total pressure, bulk and shear moduli can be calculated from the following sums
This equation of state is substantially the same as that in SLB2005 (see below). The primary differences are in the thermal correction to the shear modulus and in the volume dependences of the Debye temperature and the Gruneisen parameter.
HP2011 (thermal correction to Modified Tait)¶
The thermal pressure can be incorporated into the Modified Tait equation of state, replacing \(P\) with \(P-\left(P_{\textrm{th}} - P_{\textrm{th0}}\right)\) in Equation (5) [HollandPowell11]. Thermal pressure is calculated using a Mie-Grüneisen equation of state and an Einstein model for heat capacity, even though the Einstein model is not actually used for the heat capacity when calculating the enthalpy and entropy (see following section).
\(\Theta\) is the Einstein temperature of the crystal in Kelvin, approximated for a substance \(i\) with \(n_i\) atoms in the unit formula and a molar entropy \(S_i\) using the empirical formula
SLB2005 (for solids, thermal)¶
Thermal corrections for pressure, and isothermal bulk modulus and shear modulus are derived from the Mie-Grüneisen-Debye EoS with the quasi-harmonic approximation. Here we adopt the formalism of [SLB05] where these corrections are added to equations (2)–(4):
The \(\Delta\) refers to the difference in the relevant quantity from the reference temperature (300 K). \(\gamma\) is the Grüneisen parameter, \(q\) is the logarithmic volume derivative of the Grüneisen parameter, \(\eta_{S}\) is the shear strain derivative of the Grüneisen parameter, \(C_V\) is the heat capacity at constant volume, and \(\mathcal{U}\) is the internal energy at temperature \(T\). \(C_V\) and \(\mathcal{U}\) are calculated using the Debye model for vibrational energy of a lattice. These quantities are calculated as follows:
where \(\theta\) is the Debye temperature of the mineral, \(\nu\) is the frequency of vibrational modes for the mineral, \(n\) is the number of atoms per formula unit (e.g. 2 for periclase, 5 for perovskite), and \(R\) is the gas constant. Under the approximation that the vibrational frequencies behave the same under strain, we may identify \(\nu/\nu_0 = \theta/\theta_0\). The quantities \(\gamma_0\), \(\eta_{S0}\) \(q_0\), and \(\theta_0\) are the experimentally determined values for those parameters at the reference state.
Due to the fact that a planetary mantle is rarely isothermal along a geotherm, it is more appropriate to use the adiabatic bulk modulus \(K_S\) instead of \(K_T\), which is calculated using
where \(\alpha\) is the coefficient of thermal expansion:
There is no difference between the isothermal and adiabatic shear moduli for an isotropic solid. All together this makes an eleven parameter EoS model, which is summarized in the Table below. For more details on the EoS, we refer readers to [SLB05].
User Input |
Symbol |
Definition |
Units |
---|---|---|---|
V_0 |
\(V_{0}\) |
|
m \(^{3}\) mol \(^{-1}\) |
K_0 |
\(K_{0}\) |
Isothermal bulk modulus at P=10^5 Pa, T = 300 K |
Pa |
Kprime_0 |
\(K^\prime_0\) |
Pressure derivative of \(K_{0}\) |
|
G_0 |
\(G_{0}\) |
Shear modulus at P = \(10^5\) Pa, T = 300 K |
Pa |
Gprime_0 |
\(G^\prime_0\) |
Pressure derivative of \(G_{0}\) |
|
molar_mass |
\(\mu\) |
mass per mole formula unit |
kg \(\mathrm{mol}^{-1}\) |
n |
n |
number of atoms per formula unit |
|
Debye_0 |
\(\theta_{0}\) |
Debye Temperature |
K |
grueneisen_0 |
\(\gamma_{0}\) |
Grüneisen parameter at P = \(10^5\) Pa, T = 300 K |
|
q0 |
\(q_{0}\) |
Logarithmic volume derivative of the Grüneisen parameter |
|
eta_s_0 |
\(\eta_{S0}\) |
Shear strain derivative of the Grüneisen parameter |
This equation of state is substantially the same as that of the Mie-Gruneisen-Debye (see above). The primary differences are in the thermal correction to the shear modulus and in the volume dependences of the Debye temperature and the Gruneisen parameter.
Compensated-Redlich-Kwong (for fluids, thermal)¶
The CORK equation of state [HP91] is a simple virial-type extension to the modified Redlich-Kwong (MRK) equation of state. It was designed to compensate for the tendency of the MRK equation of state to overestimate volumes at high pressures and accommodate the volume behaviour of coexisting gas and liquid phases along the saturation curve.
Calculating Thermodynamic Properties¶
So far, we have concentrated on the thermoelastic properties of minerals. There are, however, additional thermodynamic properties which are required to describe the thermal properties such as the energy, entropy and heat capacity. These properties are related by the following expressions:
where \(P\) is the pressure, \(T\) is the temperature and \(\mathcal{E}\), \(\mathcal{F}\), \(\mathcal{H}\), \(\mathcal{S}\) and \(V\) are the molar internal energy, Helmholtz free energy, enthalpy, entropy and volume respectively.
HP2011¶
The heat capacity at one bar is given by an empirical polynomial fit to experimental data
The entropy at high pressure and temperature can be calculated by differentiating the expression for \(\mathcal{G}\) with respect to temperature
Finally, the enthalpy at high pressure and temperature can be calculated
SLB2005¶
The Debye model yields the Helmholtz free energy and entropy due to lattice vibrations
Property modifiers¶
The thermodynamic models above consider the effects of strain and quasiharmonic lattice vibrations on the free energies of minerals at given temperatures and pressures. There are a number of additional processes, such as isochemical order-disorder and magnetic effects which also contribute to the total free energy of a phase. Corrections for these additional processes can be applied in a number of different ways. Burnman currently includes implementations of the following:
Linear excesses (useful for DQF modifications for [HollandPowell11])
Tricritical Landau model (two formulations)
Bragg-Williams model
Magnetic excesses
In all cases, the excess Gibbs free energy \(\mathcal{G}\) and first and second partial derivatives with respect to pressure and temperature are calculated. The thermodynamic properties of each phase are then modified in a consistent manner; specifically:
Subscripts \(_o\) and \(_m\) indicate original properties and modifiers respectively. Importantly, this allows us to stack modifications such as multiple Landau transitions in a simple and straightforward manner. In the burnman code, we add property modifiers as an attribute to each mineral as a list. For example:
from burnman.minerals import SLB_2011
stv = SLB_2011.stishovite()
stv.property_modifiers = [
['landau',
{'Tc_0': -4250.0, 'S_D': 0.012, 'V_D': 1e-09}]]
['linear',
{'delta_E': 1.e3, 'delta_S': 0., 'delta_V': 0.}]]
Each modifier is a list with two elements, first the name of the modifier type, and second a dictionary with the required parameters for that model. A list of parameters for each model is given in the following sections.
Linear excesses (linear)¶
A simple linear correction in pressure and temperature. Parameters are ‘delta_E’, ‘delta_S’ and ‘delta_V’.
Tricritical Landau model (landau)¶
Applies a tricritical Landau correction to the properties of an endmember which undergoes a displacive phase transition. These transitions are not associated with an activation energy, and therefore they occur rapidly compared with seismic wave propagation. Parameters are ‘Tc_0’, ‘S_D’ and ‘V_D’.
This correction follows [Putnis92], and is done relative to the completely ordered state (at 0 K). It therefore differs in implementation from both [SLB11] and [HollandPowell11], who compute properties relative to the completely disordered state and standard states respectively. The current implementation is preferred, as the excess entropy (and heat capacity) terms are equal to zero at 0 K.
If the temperature is above the critical temperature, Q (the order parameter) is equal to zero, and the Gibbs free energy is simply that of the disordered phase:
If temperature is below the critical temperature, Q is between 0 and 1. The gibbs free energy can be described thus:
Tricritical Landau model (landau_hp)¶
Applies a tricritical Landau correction similar to that described above. However, this implementation follows [HollandPowell11], who compute properties relative to the standard state. Parameters are ‘P_0’, ‘T_0’, ‘Tc_0’, ‘S_D’ and ‘V_D’.
It is worth noting that the correction described by [HollandPowell11] has been incorrectly used throughout the geological literature, particularly in studies involving magnetite (which includes studies comparing oxygen fugacities to the FMQ buffer (due to an incorrect calculation of the properties of magnetite). Note that even if the implementation is correct, it still allows the order parameter Q to be greater than one, which is physically impossible.
We include this implementation in order to reproduce the dataset of [HollandPowell11]. If you are creating your own minerals, we recommend using the standard implementation.
If the temperature is above the critical temperature, Q (the order parameter) is equal to zero. Otherwise
The second derivatives of the Gibbs free energy are only non-zero if the order parameter exceeds zero. Then
Bragg-Williams model (bragg_williams)¶
The Bragg-Williams model is essentially a symmetric solid solution model between endmembers, with an excess configurational entropy term predicted on the basis of the specifics of order-disorder in the mineral, multiplied by some empirical factor. Expressions for the excess Gibbs free energy can be found in [HP96]. Parameters are ‘deltaH’, ‘deltaV’, ‘Wh’, ‘Wv’, ‘n’ and ‘factor’.
Magnetic model (magnetic_chs)¶
This model approximates the excess energy due to magnetic ordering. It was originally described in [CHS87]. The expressions used by BurnMan can be found in [Sun91]. Parameters are ‘structural_parameter’, ‘curie_temperature’[2] (zero pressure value and pressure dependence) and ‘magnetic_moment’[2] (zero pressure value and pressure dependence).
Calculating Solid Solution Properties¶
Many minerals can exist over a finite region of composition space. These spaces are bounded by endmembers (which may themselves not be stable), and each individual mineral can then be described as a solid solution of those endmembers. At an atomic level, different elements substitute for one another on distinct crystallographic sites in the structure. For example, low pressure silicate garnets have two distinct sites on which mixing takes place; a dodecahedral site (of which there are three per unit cell on an eight-cation basis) and octahedral site (of which there are two per unit cell). A third tetrahedral cation site (three per unit cell) is usually assumed to be occupied solely by silicon, and therefore can be ignored in solid solution calculations. The chemical formula of many low pressure garnets exist within the solid solution:
We typically calculate solid solution properties by appropriate differentiation of the Gibbs Free energy, where
Implemented models¶
Ideal solid solutions¶
A solid solution is not simply a mechanical mixture of its constituent endmembers. The mixing of different elements on sites results in an excess configurational entropy
where \(s\) is a site in the lattice \(M\), \(c\) are the cations mixing on site \(s\) and \(\nu\) is the number of \(s\) sites in the formula unit. Solid solutions where this configurational entropy is the only deviation from a mechanical mixture are termed ideal. From this expression, we can see that
Symmetric solid solutions¶
Many real minerals are not well approximated as ideal solid solutions. Deviations are the result of elastic and chemical interactions between ions with different physical and chemical characteristics. Regular (symmetric) solid solution models are designed to account for the simplest form of deviations from ideality, by allowing the addition of excess enthalpies, non-configurational entropies and volumes to the ideal solution model. These excess terms have the matrix form [DPWH07]
where \(p\) is a vector of molar fractions of each of the \(n\) endmembers and \(W\) is a strictly upper-triangular matrix of interaction terms between endmembers. Excesses within binary systems (\(i\)-\(j\)) have a quadratic form and a maximum of \(W_{ij}/4\) half-way between the two endmembers.
Asymmetric solid solutions¶
Some solid solutions exhibit asymmetric excess terms. These can be accounted for with an asymmetric solid solution [DPWH07]
\(\alpha\) is a vector of “van Laar parameters” governing asymmetry in the excess properties.
The \(w_{ij}\) terms are a set of interaction terms between endmembers \(i\) and \(j\). If all the \(\alpha\) terms are equal to unity, a non-zero \(w\) yields an excess with a quadratic form and a maximum of \(w/4\) half-way between the two endmembers.
Subregular solid solutions¶
An alternative way to create asymmetric solution models is to expand each binary term as a cubic expression [HW89]. In this case,
Note the similarity with the symmetric solution model, the primary difference being that there are not two interaction terms for each binary.
Thermodynamic and thermoelastic properties¶
From the preceeding equations, we can define the thermodynamic potentials of solid solutions:
We can also define the derivatives of volume with respect to pressure and temperature
Making the approximation that the excess entropy has no temperature dependence
Including order-disorder¶
Order-disorder can be treated trivially with solid solutions. The only difference between mixing between ordered and disordered endmembers is that disordered endmembers have a non-zero configurational entropy, which must be accounted for when calculating the excess entropy within a solid solution.
Including spin transitions¶
The regular solid solution formalism should provide an elegant way to model spin transitions in phases such as periclase and bridgmanite. High and low spin iron can be treated as different elements, providing distinct endmembers and an excess configurational entropy. Further excess terms can be added as necessary.
Calculating Multi-phase Composite Properties¶
Averaging schemes¶
After the thermoelastic parameters (\(K_S\), \(G\), \(\rho\)) of each phase are determined at each pressure and/or temperature step, these values must be combined to determine the seismic velocity of a multiphase assemblage. We define the volume fraction of the individual minerals in an assemblage:
where \(V_i\) and \(n_i\) are the molar volume and the molar fractions of the \(i\) th individual phase, and \(V\) is the total molar volume of the assemblage:
The density of the multiphase assemblage is then
where \(\rho_i\) is the density and \(\mu_i\) is the molar mass of the \(i\) th phase.
Unlike density and volume, there is no straightforward way to average the bulk and shear moduli of a multiphase rock, as it depends on the specific distribution and orientation of the constituent minerals. BurnMan allows several schemes for averaging the elastic moduli: the Voigt and Reuss bounds, the Hashin-Shtrikman bounds, the Voigt-Reuss-Hill average, and the Hashin-Shtrikman average [WDOConnell76].
The Voigt average, assuming constant strain across all phases, is defined as
where \(X_i\) is the bulk or shear modulus for the \(i\) th phase. The Reuss average, assuming constant stress across all phases, is defined as
The Voigt-Reuss-Hill average is the arithmetic mean of Voigt and Reuss bounds:
The Hashin-Shtrikman bounds make an additional assumption that the distribution of the phases is statistically isotropic and are usually much narrower than the Voigt and Reuss bounds [WDOConnell76]. This may be a poor assumption in regions of Earth with high anisotropy, such as the lowermost mantle, however these bounds are more physically motivated than the commonly-used Voigt-Reuss-Hill average. In most instances, the Voigt-Reuss-Hill average and the arithmetic mean of the Hashin-Shtrikman bounds are quite similar with the pure arithmetic mean (linear averaging) being well outside of both.
It is worth noting that each of the above bounding methods are derived from mechanical models of a linear elastic composite. It is thus only appropriate to apply them to elastic moduli, and not to other thermoelastic properties, such as wave speeds or density.
Computing seismic velocities¶
Once the moduli for the multiphase assemblage are computed, the compressional (\(P\)), shear (\(S\)) and bulk sound (\(\Phi\)) velocities are then result from the equations:
To correctly compare to observed seismic velocities one needs to correct for the frequency sensitivity of attenuation. Moduli parameters are obtained from experiments that are done at high frequencies (MHz-GHz) compared to seismic frequencies (mHz-Hz). The frequency sensitivity of attenuation causes slightly lower velocities for seismic waves than they would be for high frequency waves. In BurnMan one can correct the calculated acoustic velocity values to those for long period seismic tomography [MA81]:
Similar to [MBR+07], we use a \(\beta\) value of 0.3, which falls in the range of values of \(0.2\) to \(0.4\) proposed for the lower mantle (e.g. [KS90]). The correction is implemented for \(Q\) values of PREM for the lower mantle. As \(Q_S\) is smaller than \(Q_P\), the correction is more significant for S waves. In both cases, though, the correction is minor compared to, for example, uncertainties in the temperature (corrections) and mineral physical parameters. More involved models of relaxation mechanisms can be implemented, but lead to the inclusion of more poorly constrained parameters, [MB07]. While attenuation can be ignored in many applications [TVV01], it might play a significant role in explaining strong variations in seismic velocities in the lowermost mantle [DGD+12].
User input¶
Mineralogical composition¶
A number of pre-defined minerals are included in the mineral library and users can create their own. The library includes wrapper functions to include a transition from the high-spin mineral to the low-spin mineral [LSMM13] or to combine minerals for a given iron number.
Standard minerals – The ‘standard’ mineral format includes a list of parameters given in the above table. Each mineral includes a suggested EoS with which the mineral parameters are derived. For some minerals the parameters for the thermal corrections are not yet measured or calculated, and therefore the corrections can not be applied. An occasional mineral will not have a measured or calculated shear moduli, and therefore can only be used to compute densities and bulk sound velocities. The mineral library is subdivided by citation. BurnMan includes the option to produce a LaTeX; table of the mineral parameters used. BurnMan can be easily setup to incorporate uncertainties for these parameters.
Minerals with a spin transition – A standard mineral for the high spin and low spin must be defined separately. These minerals are “wrapped,” so as to switch from the high spin to high spin mineral at a give pressure. While not realistic, for the sake of simplicity, the spin transitions are considered to be sharp at a given pressure.
Minerals depending on Fe partitioning – The wrapper function can partition iron, for example between ferropericlase, fp, and perovskite, pv. It requires the input of the iron mol fraction with regards to Mg, \(X_\mathrm{fp}\) and \(X_\mathrm{pv}\), which then defines the chemistry of an Mg-Fe solid solution according to (\(\mathrm{Mg}_{1-X_{\mathrm{Fe}}^{\mathrm{fp}}},\mathrm{Fe}_{X_{\mathrm{Fe}}^{\mathrm{fp}}})\mathrm{O}\) or \((\mathrm{Mg}_{1-X_{\mathrm{Fe}}^{\mathrm{pv}}},\mathrm{Fe}_{X_{\mathrm{Fe}}^{\mathrm{pv}}})\mathrm{SiO_3}\). The iron mol fractions can be set to be constant or varying with P and T as needed. Alternatively one can calculate the iron mol fraction from the distribution coefficient \(K_D\) defined as
We adopt the formalism of [NFR12] choosing a reference distribution coefficient \(K_{D0}\) and standard state volume change (\(\Delta \upsilon^{0}\)) for the Fe-Mg exchange between perovskite and ferropericlase
where \(R\) is the gas constant and \(P_0\) the reference pressure. As a default, we adopt the average \(\Delta \upsilon^{0}\) of [NFR12] of \(2\cdot10^{-7}\) \(m^3 mol^{-1}\) and suggest using their \({K_D}_0\) value of \(0.5\).
The multiphase mixture of these minerals can be built by the user in three ways:
1. Molar fractions of an arbitrary number of pre-defined minerals, for example mixing standard minerals mg_perovskite (\(\mathrm{MgSiO_3}\)), fe_perovskite (\(\mathrm{FeSiO_3}\)), periclase (\(\mathrm{MgO}\)) and wüstite (\(\mathrm{FeO}\)).
2. A two-phase mixture with constant or (\(P,T\)) varying Fe partitioning using the minerals that include Fe-dependency, for example mixing \(\mathrm{(Mg,Fe)SiO_3}\) and \(\mathrm{(Mg,Fe)O}\) with a pre-defined distribution coefficient.
3. Weight percents (wt%) of (Mg, Si, Fe) and distribution coefficient (includes (P,T)-dependent Fe partitioning). This calculation assumes that each element is completely oxidized into its corresponding oxide mineral (\(\mathrm{MgO}\), \(\mathrm{FeO}\), \(\mathrm{SiO_2}\)) and then combined to form iron-bearing perovskite and ferropericlase taking into account some Fe partition coefficient.
Geotherm¶
Unlike the pressure, the temperature of the lower mantle is relatively unconstrained. As elsewhere, BurnMan provides a number of built-in geotherms, as well as the ability to use user-defined temperature-depth relationships. A geotherm in BurnMan is an object that returns temperature as a function of pressure. Alternatively, the user could ignore the geothermal and compute elastic velocities for a range of temperatures at any give pressure.
Currently, we include geotherms published by [BS81] and [And82]. Alternatively one can use an adiabatic gradient defined by the thermoelastic properties of a given mineralogical model. For a homogeneous material, the adiabatic temperature profile is given by integrating the ordinary differential equation (ODE)
This equation can be extended to multiphase composite using the first law of thermodynamics to arrive at
where the subscripts correspond to the \(i\) th phase, \(C_P\) is the heat capacity at constant pressure of a phase, and the other symbols are as defined above. Integrating this ODE requires a choice in anchor temperature (\(T_0\)) at the top of the lower mantle (or including this as a parameter in an inversion). As the adiabatic geotherm is dependent on the thermoelastic parameters at high pressures and temperatures, it is dependent on the equation of state used.
Seismic Models¶
BurnMan allows for direct visual and quantitative comparison with seismic velocity models. Various ways of plotting can be found in the examples. Quantitative misfits between two profiles include an L2-norm and a chi-squared misfit, but user defined norms can be implemented. A seismic model in BurnMan is an object that provides pressure, density, and seismic velocities (\(V_P, V_\Phi, V_S\)) as a function of depth.
To compare to seismically constrained profiles, BurnMan provides the 1D seismic velocity model PREM [DA81]. One can choose to evaluate \(V_P, V_\Phi, V_S, \rho, K_S\) and/or \(G\). The user can input their own seismic profile, an example of which is included using AK135 [KEB95].
Besides standardized 1D radial profiles, one can also compare to regionalized average profiles for the lower mantle. This option accommodates the observation that the lowermost mantle can be clustered into two regions, a ‘slow’ region, which represents the so-called Large Low Shear Velocity Provinces, and ‘fast’ region, the continuous surrounding region where slabs might subduct [LCDR12]. This clustering as well as the averaging of the 1D model occurs over five tomographic S wave velocity models (SAW24B16: [MegninR00]; HMSL-S: [HMSL08]; S362ANI: [KED08]; GyPSuM: [SFBG10]; S40RTS: [RDvHW11]). The strongest deviations from PREM occur in the lowermost 1000 km. Using the ‘fast’ and ‘slow’ S wave velocity profiles is therefore most important when interpreting the lowermost mantle. Suggestion of compositional variation between these regions comes from seismology [HW12, TRCT05] as well as geochemistry [DCT12, JCK+10]. Based on thermo-chemical convection models, [SDG11] also show that averaging profiles in thermal boundary layers may cause problems for seismic interpretation.
We additionally apply cluster analysis to and provide models for P wave velocity based on two tomographic models (MIT-P08: [LvdH08]; GyPSuM: [SMJM12]). The clustering results correlate well with the fast and slow regions for S wave velocities; this could well be due to the fact that the initial model for the P wave velocity models is scaled from S wave tomographic velocity models. Additionally, the variations in P wave velocities are a lot smaller than for S waves. For this reason using these adapted models is most important when comparing the S wave velocities.
While interpreting lateral variations of seismic velocity in terms of composition and temperature is a major goal [MCD+12, TDRY04], to determine the bulk composition the current challenge appears to be concurrently fitting absolute P and S wave velocities and incorporate the significant uncertainties in mineral physical parameters).
Tutorial¶
CIDER 2014 BurnMan Tutorial — step 1¶
In this first part of the tutorial we will acquaint ourselves with a basic script for calculating the elastic properties of a mantle mineralogical model.
In general, there are three portions of this script:
1) Define a set of pressures and temperatures at which we want to calculate elastic properties
2) Setup a composite of minerals (or “rock”) and calculate its elastic properties at those pressures and temperatures.
3) Plot those elastic properties, and compare them to a seismic model, in this case PREM
The script is basically already written, and should run as is by typing:
python step_1.py
on the command line. However, the mineral model for the rock is not very realistic, and you will want to change it to one that is more in accordance with what we think the bulk composition of Earth’s lower mantle is.
When run (without putting in a more realistic composition), the program produces the following image:

Your goal in this tutorial is to improve this awful fit…
CIDER 2014 BurnMan Tutorial — step 2¶
In this second part of the tutorial we try to get a closer fit to our 1D seismic reference model. In the simple Mg, Si, and O model that we used in step 1 there was one free parameter, namely phase_1_fraction, which goes between zero and one.
In this script we want to explore how good of a fit to PREM we can get by varying this fraction. We create a simple function that calculates a misfit between PREM and our mineral model as a function of phase_1_fraction, and then plot this misfit function to try to find a best model.
This script may be run by typing
python step_2.py
Without changing any input, the program should produce the following image showing the misfit as a function of perovskite content:

CIDER 2014 BurnMan Tutorial — step 3¶
In the previous two steps of the tutorial we tried to find a very simple mineralogical model that best fit the 1D seismic model PREM. But we know that there is consideral uncertainty in many of the mineral physical parameters that control how the elastic properties of minerals change with pressure and temperature. In this step we explore how uncertainties in these parameters might affect the conclusions you draw.
The strategy here is to make many different “realizations” of the rock that you determined was the closest fit to PREM, where each realization has its mineral physical parameters perturbed by a small amount, hopefully related to the uncertainty in that parameter. In particular, we will look at how perturbations to \(K_{0}^{'}\) and \(G_{0}^{'}\) (the pressure derivatives of the bulk and shear modulus, respectively) change the calculated 1D seismic profiles.
This script may be run by typing
python step_3.py
After changing the standard deviations for \(K_{0}^{'}\) and \(G_{0}^{'}\) to 0.2, the following figure of velocities for 1000 realizations is produced:

Examples¶
BurnMan comes with a large collection of example programs under examples/. Below you can find a summary of the different examples. They are grouped into Simple Examples and More Advanced Examples. We suggest starting with the Tutorial before moving on to the examples, especially if you are new to using BurnMan.
Finally, we also include the scripts that were used for all computations and figures in the 2014 BurnMan paper in the misc/ folder, see Reproducing Cottaar, Heister, Rose and Unterborn (2014).
Simple Examples¶
- The following is a list of simple examples:
example_beginner¶
This example script is intended for absolute beginners to BurnMan. We cover importing BurnMan modules, creating a composite material, and calculating its seismic properties at lower mantle pressures and temperatures. Afterwards, we plot it against a 1D seismic model for visual comparison.
Uses:
Demonstrates:
creating basic composites
calculating thermoelastic properties
seismic comparison
Resulting figure:

example_solid_solution¶
This example shows how to create different solid solution models and output thermodynamic and thermoelastic quantities.
There are four main types of solid solution currently implemented in BurnMan:
Ideal solid solutions
Symmmetric solid solutions
Asymmetric solid solutions
Subregular solid solutions
These solid solutions can potentially deal with:
Disordered endmembers (more than one element on a crystallographic site)
Site vacancies
More than one valence/spin state of the same element on a site
Uses:
Demonstrates:
Different ways to define a solid solution
How to set composition and state
How to output thermodynamic and thermoelastic properties
Resulting figures:




example_geotherms¶
This example shows each of the geotherms currently possible with BurnMan. These are:
Brown and Shankland, 1981 [BS81]
Anderson, 1982 [And82]
Watson and Baxter, 2007 [WB07]
linear extrapolation
Read in from file from user
Adiabatic from potential temperature and choice of mineral
Uses:
input geotherm file input_geotherm/example_geotherm.txt (optional)
burnman.composite.Composite
for adiabat
Demonstrates:
the available geotherms
Resulting figure:

example_seismic¶
Shows the various ways to input seismic models (\(V_s, V_p, V_{\phi}, \rho\)) as a function of depth (or pressure) as well as different velocity model libraries available within Burnman:
This example will first calculate or read in a seismic model and plot the model along the defined pressure range. The example also illustrates how to import a seismic model of your choice, here shown by importing AK135 [KEB95].
Uses:
Demonstrates:
Utilization of library seismic models within BurnMan
Input of user-defined seismic models
Resulting figures:


example_composition¶
This example script demonstrates the use of BurnMan’s Composition class.
Uses:
burnman.composition.Composition
Demonstrates:
Creating an instance of the Composition class with a molar or weight composition
Printing weight, molar, atomic compositions
Renormalizing compositions
Modifying the independent set of components
Modifying compositions by adding and removing components
Resulting figure:

example_averaging¶
This example shows the effect of different averaging schemes. Currently four averaging schemes are available:
Voight-Reuss-Hill
Voight averaging
Reuss averaging
Hashin-Shtrikman averaging
See [WDOConnell76] Journal of Geophysics and Space Physics for explanations of each averaging scheme.
Specifically uses:
Demonstrates:
implemented averaging schemes
Resulting figure:

example_chemical_potentials¶
This example shows how to use the chemical potentials library of functions.
Demonstrates:
How to calculate chemical potentials
How to compute fugacities and relative fugacities
Resulting figure:

More Advanced Examples¶
- Advanced examples:
example_spintransition¶
This example shows the different minerals that are implemented with a spin transition. Minerals with spin transition are implemented by defining two separate minerals (one for the low and one for the high spin state). Then a third dynamic mineral is created that switches between the two previously defined minerals by comparing the current pressure to the transition pressure.
Specifically uses:
Demonstrates:
implementation of spin transition in (Mg,Fe)O at user defined pressure
Resulting figure:

example_user_input_material¶
Shows user how to input a mineral of his/her choice without usint the library and which physical values need to be input for BurnMan to calculate \(V_P, V_\Phi, V_S\) and density at depth.
Specifically uses:
Demonstrates:
how to create your own minerals
example_optimize_pv¶
Vary the amount perovskite vs. ferropericlase and compute the error in the seismic data against PREM. For more extensive comments on this setup, see tutorial/step_2.py
Uses:
Demonstrates:
compare errors between models
loops over models
Resulting figure:

example_build_planet¶
For Earth we have well-constrained one-dimensional density models. This allows us to calculate pressure as a function of depth. Furthermore, petrologic data and assumptions regarding the convective state of the planet allow us to estimate the temperature.
For planets other than Earth we have much less information, and in particular we know almost nothing about the pressure and temperature in the interior. Instead, we tend to have measurements of things like mass, radius, and moment-of-inertia. We would like to be able to make a model of the planet’s interior that is consistent with those measurements.
However, there is a difficulty with this. In order to know the density of the planetary material, we need to know the pressure and temperature. In order to know the pressure, we need to know the gravity profile. And in order to the the gravity profile, we need to know the density. This is a nonlinear problem which requires us to iterate to find a self-consistent solution.
This example allows the user to define layers of planets of known outer radius and self- consistently solve for the density, pressure and gravity profiles. The calculation will iterate until the difference between central pressure calculations are less than 1e-5. The planet class in BurnMan (../burnman/planet.py) allows users to call multiple properties of the model planet after calculations, such as the mass of an individual layer, the total mass of the planet and the moment if inertia. See planets.py for information on each of the parameters which can be called.
Uses:
burnman.planet.Planet
- class
burnman.layer.Layer
Demonstrates:
setting up a planet
computing its self-consistent state
computing various parameters for the planet
seismic comparison
Resulting figure:

example_compare_all_methods¶
This example demonstrates how to call each of the individual calculation methodologies that exist within BurnMan. See below for current options. This example calculates seismic velocity profiles for the same set of minerals and a plot of \(V_s, V_\phi\) and \(\rho\) is produce for the user to compare each of the different methods.
Specifically uses:
Demonstrates:
Each method for calculating velocity profiles currently included within BurnMan
Resulting figure:

example_anisotropy¶
This example illustrates the basic functions required to convert an elastic stiffness tensor into elastic properties.
Specifically uses:
burnman.AnisotropicMaterial
Demonstrates:
anisotropic functions
Resulting figure:

example_fit_data¶
This example demonstrates BurnMan’s functionality to fit various mineral physics data to an EoS of the user’s choice.
Please note also the separate file example_fit_eos.py, which can be viewed as a more advanced example in the same general field.
teaches: - least squares fitting
Resulting figures:



example_fit_eos¶
This example demonstrates BurnMan’s functionality to fit data to an EoS of the user’s choice.
The first example deals with simple PVT fitting. The second example illustrates how powerful it can be to provide non-PVT constraints to the same fitting problem.
teaches: - least squares fitting
Last seven resulting figures:







Reproducing Cottaar, Heister, Rose and Unterborn (2014)¶
In this section we include the scripts that were used for all computations and figures in the 2014 BurnMan paper: Cottaar, Heister, Rose & Unterborn (2014) [CHRU14]
paper_averaging¶
This script reproduces [CHRU14], Figure 2.
This example shows the effect of different averaging schemes. Currently four averaging schemes are available: 1. Voight-Reuss-Hill 2. Voight averaging 3. Reuss averaging 4. Hashin-Shtrikman averaging
See [WDOConnell76] for explanations of each averaging scheme.
requires: - geotherms - compute seismic velocities
teaches: - averaging
paper_benchmark¶
This script reproduces the benchmark in [CHRU14], Figure 3.
paper_fit_data¶
This script reproduces [CHRU14] Figure 4.
This example demonstrates BurnMan’s functionality to fit thermoelastic data to both 2nd and 3rd orders using the EoS of the user’s choice at 300 K. User’s must create a file with \(P, T\) and \(V_s\). See input_minphys/ for example input files.
requires: - compute seismic velocities
teaches: - averaging
paper_incorrect_averaging¶
This script reproduces [CHRU14], Figure 5. Attempt to reproduce Figure 6.12 from [Mur13]
paper_opt_pv¶
This script reproduces [CHRU14], Figure 6. Vary the amount perovskite vs. ferropericlase and compute the error in the seismic data against PREM.
requires: - creating minerals - compute seismic velocities - geotherms - seismic models - seismic comparison
teaches: - compare errors between models - loops over models
paper_onefit¶
This script reproduces [CHRU14], Figure 7. It shows an example for a best fit for a pyrolitic model within mineralogical error bars.
paper_uncertain¶
This script reproduces [CHRU14], Figure 8. It shows the sensitivity of the velocities to various mineralogical parameters.
Misc or work in progress¶
example_grid¶
This example shows how to evaluate seismic quantities on a \(P,T\) grid.
example_woutput¶
This example explains how to perform the basic i/o of BurnMan. A method of calculation is chosen, a composite mineral/material (see example_composition.py for explanation of this process) is created in the class “rock,” finally a geotherm is created and seismic velocities calculated.
Post-calculation, the results are written to a simple text file to plot/manipulate at the user’s whim.
requires: - creating minerals - compute seismic velocities - geotherms
teaches: - output computed seismic data to file
Autogenerated Full API¶
Materials¶
Burnman operates on materials (type Material
) most prominently in form of minerals (Mineral
) and composites (Composite
).

Material Base Class¶
- class burnman.material.Material[source]¶
Bases:
object
Base class for all materials. The main functionality is unroll() which returns a list of objects of type
Mineral
and their molar fractions. This class is available asburnman.Material
.The user needs to call set_method() (once in the beginning) and set_state() before querying the material with unroll() or density().
- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_method(method)[source]¶
Set the averaging method. See Averaging Schemes for details.
Notes
Needs to be implemented in derived classes.
- to_string()[source]¶
Returns a human-readable name of this material. The default implementation will return the name of the class, which is a reasonable default.
- Returns
- namestring
Name of this material.
- print_minerals_of_current_state()[source]¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- set_state(pressure, temperature)[source]¶
Set the material to the given pressure and temperature.
- Parameters
- pressurefloat
The desired pressure in [Pa].
- temperaturefloat
The desired temperature in [K].
- reset()[source]¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- unroll()[source]¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- evaluate(vars_list, pressures, temperatures)[source]¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- property molar_internal_energy¶
Returns the molar internal energy of the mineral.
- Returns
- molar_internal_energyfloat
The internal energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
energy()
.
- property molar_gibbs¶
Returns the molar Gibbs free energy of the mineral.
- Returns
- molar_gibbsfloat
Gibbs free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
gibbs()
.
- property molar_helmholtz¶
Returns the molar Helmholtz free energy of the mineral.
- Returns
- molar_helmholtzfloat
Helmholtz free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
helmholtz()
.
- property molar_mass¶
Returns molar mass of the mineral.
- Returns
- molar_massfloat
Molar mass in [kg/mol].
Notes
Needs to be implemented in derived classes.
- property molar_volume¶
Returns molar volume of the mineral.
- Returns
- molar_volumefloat
Molar volume in [m^3/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
V()
.
- property density¶
Returns the density of this material.
- Returns
- densityfloat
The density of this material in [kg/m^3].
Notes
Needs to be implemented in derived classes.
Aliased with
rho()
.
- property molar_entropy¶
Returns molar entropy of the mineral.
- Returns
- molar_entropyfloat
Entropy in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
S()
.
- property molar_enthalpy¶
Returns molar enthalpy of the mineral.
- Returns
- molar_enthalpyfloat
Enthalpy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
H()
.
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the material.
- Returns
- isothermal_bulk_modulusfloat
Bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_T()
.
- property adiabatic_bulk_modulus¶
Returns the adiabatic bulk modulus of the mineral.
- Returns
- adiabatic_bulk_modulusfloat
Adiabatic bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_S()
.
- property isothermal_compressibility¶
Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).
- Returns
- (K_T)^-1float
Compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_T()
.
- property adiabatic_compressibility¶
Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).
- Returns
- adiabatic_compressibilityfloat
adiabatic compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_S()
.
- property shear_modulus¶
Returns shear modulus of the mineral.
- Returns
- shear_modulusfloat
Shear modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_G()
.
- property p_wave_velocity¶
Returns P wave speed of the mineral.
- Returns
- p_wave_velocityfloat
P wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_p()
.
- property bulk_sound_velocity¶
Returns bulk sound speed of the mineral.
- Returns
- bulk sound velocity: float
Sound velocity in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_phi()
.
- property shear_wave_velocity¶
Returns shear wave speed of the mineral.
- Returns
- shear_wave_velocityfloat
Wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_s()
.
- property grueneisen_parameter¶
Returns the grueneisen parameter of the mineral.
- Returns
- grfloat
Grueneisen parameters [unitless].
Notes
Needs to be implemented in derived classes.
Aliased with
gr()
.
- property thermal_expansivity¶
Returns thermal expansion coefficient of the mineral.
- Returns
- alphafloat
Thermal expansivity in [1/K].
Notes
Needs to be implemented in derived classes.
Aliased with
alpha()
.
- property molar_heat_capacity_v¶
Returns molar heat capacity at constant volume of the mineral.
- Returns
- molar_heat_capacity_vfloat
Heat capacity in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
C_v()
.
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the mineral.
- Returns
- molar_heat_capacity_pfloat
Heat capacity in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
C_p()
.
- property P¶
Alias for
pressure()
- property T¶
Alias for
temperature()
- property energy¶
Alias for
molar_internal_energy()
- property helmholtz¶
Alias for
molar_helmholtz()
- property gibbs¶
Alias for
molar_gibbs()
- property V¶
Alias for
molar_volume()
- property S¶
Alias for
molar_entropy()
- property H¶
Alias for
molar_enthalpy()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property beta_T¶
Alias for
isothermal_compressibility()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property G¶
Alias for
shear_modulus()
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
- property gr¶
Alias for
grueneisen_parameter()
- property alpha¶
Alias for
thermal_expansivity()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property C_p¶
Alias for
molar_heat_capacity_p()
Perple_X Class¶
- class burnman.perplex.PerplexMaterial(tab_file, name='Perple_X material')[source]¶
Bases:
burnman.material.Material
This is the base class for a PerpleX material. States of the material can only be queried after setting the pressure and temperature using set_state().
Instances of this class are initialised with a 2D PerpleX tab file. This file should be in the standard format (as output by werami), and should have columns with the following names: ‘rho,kg/m3’, ‘alpha,1/K’, ‘beta,1/bar’, ‘Ks,bar’, ‘Gs,bar’, ‘v0,km/s’, ‘vp,km/s’, ‘vs,km/s’, ‘s,J/K/kg’, ‘h,J/kg’, ‘cp,J/K/kg’, ‘V,J/bar/mol’. The order of these names is not important.
Properties of the material are determined by linear interpolation from the PerpleX grid. They are all returned in SI units on a molar basis, even though the PerpleX tab file is not in these units.
This class is available as
burnman.PerplexMaterial
.- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_state()¶
(copied from set_state):
Set the material to the given pressure and temperature.
- Parameters
- pressurefloat
The desired pressure in [Pa].
- temperaturefloat
The desired temperature in [K].
- property molar_volume¶
Returns molar volume of the mineral.
- Returns
- molar_volumefloat
Molar volume in [m^3/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
V()
.
- property molar_enthalpy¶
Returns molar enthalpy of the mineral.
- Returns
- molar_enthalpyfloat
Enthalpy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
H()
.
- property molar_entropy¶
Returns molar entropy of the mineral.
- Returns
- molar_entropyfloat
Entropy in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
S()
.
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the material.
- Returns
- isothermal_bulk_modulusfloat
Bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_T()
.
- property adiabatic_bulk_modulus¶
Returns the adiabatic bulk modulus of the mineral.
- Returns
- adiabatic_bulk_modulusfloat
Adiabatic bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_S()
.
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the mineral.
- Returns
- molar_heat_capacity_pfloat
Heat capacity in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
C_p()
.
- property thermal_expansivity¶
Returns thermal expansion coefficient of the mineral.
- Returns
- alphafloat
Thermal expansivity in [1/K].
Notes
Needs to be implemented in derived classes.
Aliased with
alpha()
.
- property shear_modulus¶
Returns shear modulus of the mineral.
- Returns
- shear_modulusfloat
Shear modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_G()
.
- property p_wave_velocity¶
Returns P wave speed of the mineral.
- Returns
- p_wave_velocityfloat
P wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_p()
.
- property bulk_sound_velocity¶
Returns bulk sound speed of the mineral.
- Returns
- bulk sound velocity: float
Sound velocity in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_phi()
.
- property shear_wave_velocity¶
Returns shear wave speed of the mineral.
- Returns
- shear_wave_velocityfloat
Wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_s()
.
- property molar_gibbs¶
Returns the molar Gibbs free energy of the mineral.
- Returns
- molar_gibbsfloat
Gibbs free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
gibbs()
.
- property molar_mass¶
Returns molar mass of the mineral.
- Returns
- molar_massfloat
Molar mass in [kg/mol].
Notes
Needs to be implemented in derived classes.
- property density¶
Returns the density of this material.
- Returns
- densityfloat
The density of this material in [kg/m^3].
Notes
Needs to be implemented in derived classes.
Aliased with
rho()
.
- property molar_internal_energy¶
Returns the molar internal energy of the mineral.
- Returns
- molar_internal_energyfloat
The internal energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
energy()
.
- property molar_helmholtz¶
Returns the molar Helmholtz free energy of the mineral.
- Returns
- molar_helmholtzfloat
Helmholtz free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
helmholtz()
.
- property isothermal_compressibility¶
Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).
- Returns
- (K_T)^-1float
Compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_T()
.
- property adiabatic_compressibility¶
Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).
- Returns
- adiabatic_compressibilityfloat
adiabatic compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_S()
.
- property molar_heat_capacity_v¶
Returns molar heat capacity at constant volume of the mineral.
- Returns
- molar_heat_capacity_vfloat
Heat capacity in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
C_v()
.
- property grueneisen_parameter¶
Returns the grueneisen parameter of the mineral.
- Returns
- grfloat
Grueneisen parameters [unitless].
Notes
Needs to be implemented in derived classes.
Aliased with
gr()
.
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- debug_print(indent='')¶
Print a human-readable representation of this Material.
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- set_method(method)¶
Set the averaging method. See Averaging Schemes for details.
Notes
Needs to be implemented in derived classes.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- to_string()¶
Returns a human-readable name of this material. The default implementation will return the name of the class, which is a reasonable default.
- Returns
- namestring
Name of this material.
- unroll()¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
Minerals¶
Endmembers¶
- class burnman.mineral.Mineral(params=None, property_modifiers=None)[source]¶
Bases:
burnman.material.Material
This is the base class for all minerals. States of the mineral can only be queried after setting the pressure and temperature using set_state(). The method for computing properties of the material is set using set_method(). This is done during initialisation if the param ‘equation_of_state’ has been defined. The method can be overridden later by the user.
This class is available as
burnman.Mineral
.If deriving from this class, set the properties in self.params to the desired values. For more complicated materials you can overwrite set_state(), change the params and then call set_state() from this class.
All the material parameters are expected to be in plain SI units. This means that the elastic moduli should be in Pascals and NOT Gigapascals, and the Debye temperature should be in K not C. Additionally, the reference volume should be in m^3/(mol molecule) and not in unit cell volume and ‘n’ should be the number of atoms per molecule. Frequently in the literature the reference volume is given in Angstrom^3 per unit cell. To convert this to m^3/(mol of molecule) you should multiply by 10^(-30) * N_a / Z, where N_a is Avogadro’s number and Z is the number of formula units per unit cell. You can look up Z in many places, including www.mindat.org
- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_method(equation_of_state)[source]¶
Set the equation of state to be used for this mineral. Takes a string corresponding to any of the predefined equations of state: ‘bm2’, ‘bm3’, ‘mgd2’, ‘mgd3’, ‘slb2’, ‘slb3’, ‘mt’, ‘hp_tmt’, or ‘cork’. Alternatively, you can pass a user defined class which derives from the equation_of_state base class. After calling set_method(), any existing derived properties (e.g., elastic parameters or thermodynamic potentials) will be out of date, so set_state() will need to be called again.
- unroll()[source]¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- set_state()¶
(copied from set_state):
Set the material to the given pressure and temperature.
- Parameters
- pressurefloat
The desired pressure in [Pa].
- temperaturefloat
The desired temperature in [K].
- property molar_gibbs¶
Returns the molar Gibbs free energy of the mineral.
- Returns
- molar_gibbsfloat
Gibbs free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
gibbs()
.
- property molar_volume¶
Returns molar volume of the mineral.
- Returns
- molar_volumefloat
Molar volume in [m^3/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
V()
.
- property molar_entropy¶
Returns molar entropy of the mineral.
- Returns
- molar_entropyfloat
Entropy in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
S()
.
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the material.
- Returns
- isothermal_bulk_modulusfloat
Bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_T()
.
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the mineral.
- Returns
- molar_heat_capacity_pfloat
Heat capacity in [J/K/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
C_p()
.
- property thermal_expansivity¶
Returns thermal expansion coefficient of the mineral.
- Returns
- alphafloat
Thermal expansivity in [1/K].
Notes
Needs to be implemented in derived classes.
Aliased with
alpha()
.
- property shear_modulus¶
Returns shear modulus of the mineral.
- Returns
- shear_modulusfloat
Shear modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_G()
.
- property formula¶
Returns the chemical formula of the Mineral class
- property molar_mass¶
Returns molar mass of the mineral.
- Returns
- molar_massfloat
Molar mass in [kg/mol].
Notes
Needs to be implemented in derived classes.
- property density¶
Returns the density of this material.
- Returns
- densityfloat
The density of this material in [kg/m^3].
Notes
Needs to be implemented in derived classes.
Aliased with
rho()
.
- property molar_internal_energy¶
Returns the molar internal energy of the mineral.
- Returns
- molar_internal_energyfloat
The internal energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
energy()
.
- property molar_helmholtz¶
Returns the molar Helmholtz free energy of the mineral.
- Returns
- molar_helmholtzfloat
Helmholtz free energy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
helmholtz()
.
- property molar_enthalpy¶
Returns molar enthalpy of the mineral.
- Returns
- molar_enthalpyfloat
Enthalpy in [J/mol].
Notes
Needs to be implemented in derived classes.
Aliased with
H()
.
- property adiabatic_bulk_modulus¶
Returns the adiabatic bulk modulus of the mineral.
- Returns
- adiabatic_bulk_modulusfloat
Adiabatic bulk modulus in [Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
K_S()
.
- property isothermal_compressibility¶
Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).
- Returns
- (K_T)^-1float
Compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_T()
.
- property adiabatic_compressibility¶
Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).
- Returns
- adiabatic_compressibilityfloat
adiabatic compressibility in [1/Pa].
Notes
Needs to be implemented in derived classes.
Aliased with
beta_S()
.
- property p_wave_velocity¶
Returns P wave speed of the mineral.
- Returns
- p_wave_velocityfloat
P wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_p()
.
- property bulk_sound_velocity¶
Returns bulk sound speed of the mineral.
- Returns
- bulk sound velocity: float
Sound velocity in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_phi()
.
- property shear_wave_velocity¶
Returns shear wave speed of the mineral.
- Returns
- shear_wave_velocityfloat
Wave speed in [m/s].
Notes
Needs to be implemented in derived classes.
Aliased with
v_s()
.
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property grueneisen_parameter¶
Returns the grueneisen parameter of the mineral.
- Returns
- grfloat
Grueneisen parameters [unitless].
Notes
Needs to be implemented in derived classes.
Aliased with
gr()
.
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
Solid solutions¶
- class burnman.solidsolution.SolidSolution(name=None, solution_type=None, endmembers=None, energy_interaction=None, volume_interaction=None, entropy_interaction=None, alphas=None, molar_fractions=None)[source]¶
Bases:
burnman.mineral.Mineral
This is the base class for all solid solutions. Site occupancies, endmember activities and the constant and pressure and temperature dependencies of the excess properties can be queried after using set_composition() States of the solid solution can only be queried after setting the pressure, temperature and composition using set_state().
This class is available as
burnman.SolidSolution
. It uses an instance ofburnman.SolutionModel
to calculate interaction terms between endmembers.All the solid solution parameters are expected to be in SI units. This means that the interaction parameters should be in J/mol, with the T and P derivatives in J/K/mol and m^3/mol.
- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_composition(molar_fractions)[source]¶
Set the composition for this solid solution. Resets cached properties
- Parameters
- molar_fractions: list of float
molar abundance for each endmember, needs to sum to one.
- set_method(method)[source]¶
Set the equation of state to be used for this mineral. Takes a string corresponding to any of the predefined equations of state: ‘bm2’, ‘bm3’, ‘mgd2’, ‘mgd3’, ‘slb2’, ‘slb3’, ‘mt’, ‘hp_tmt’, or ‘cork’. Alternatively, you can pass a user defined class which derives from the equation_of_state base class. After calling set_method(), any existing derived properties (e.g., elastic parameters or thermodynamic potentials) will be out of date, so set_state() will need to be called again.
- set_state(pressure, temperature)[source]¶
(copied from set_state):
Set the material to the given pressure and temperature.
- Parameters
- pressurefloat
The desired pressure in [Pa].
- temperaturefloat
The desired temperature in [K].
- property formula¶
Returns molar chemical formula of the solid solution
- property activities¶
Returns a list of endmember activities [unitless]
- property activity_coefficients¶
Returns a list of endmember activity coefficients (gamma = activity / ideal activity) [unitless]
- property molar_internal_energy¶
Returns molar internal energy of the mineral [J/mol] Aliased with self.energy
- property excess_partial_gibbs¶
Returns excess partial molar gibbs free energy [J/mol] Property specific to solid solutions.
- property excess_partial_volumes¶
Returns excess partial volumes [m^3] Property specific to solid solutions.
- property excess_partial_entropies¶
Returns excess partial entropies [J/K] Property specific to solid solutions.
- property partial_gibbs¶
Returns excess partial molar gibbs free energy [J/mol] Property specific to solid solutions.
- property partial_volumes¶
Returns excess partial volumes [m^3] Property specific to solid solutions.
- property partial_entropies¶
Returns excess partial entropies [J/K] Property specific to solid solutions.
- property excess_gibbs¶
Returns molar excess gibbs free energy [J/mol] Property specific to solid solutions.
- property gibbs_hessian¶
Returns an array containing the second compositional derivative of the Gibbs free energy [J]. Property specific to solid solutions.
- property entropy_hessian¶
Returns an array containing the second compositional derivative of the entropy [J/K]. Property specific to solid solutions.
- property volume_hessian¶
Returns an array containing the second compositional derivative of the volume [m^3]. Property specific to solid solutions.
- property molar_gibbs¶
Returns molar Gibbs free energy of the solid solution [J/mol] Aliased with self.gibbs
- property molar_helmholtz¶
Returns molar Helmholtz free energy of the solid solution [J/mol] Aliased with self.helmholtz
- property molar_mass¶
Returns molar mass of the solid solution [kg/mol]
- property excess_volume¶
Returns excess molar volume of the solid solution [m^3/mol] Specific property for solid solutions
- property molar_volume¶
Returns molar volume of the solid solution [m^3/mol] Aliased with self.V
- property density¶
Returns density of the solid solution [kg/m^3] Aliased with self.rho
- property excess_entropy¶
Returns excess molar entropy [J/K/mol] Property specific to solid solutions.
- property molar_entropy¶
Returns molar entropy of the solid solution [J/K/mol] Aliased with self.S
- property excess_enthalpy¶
Returns excess molar enthalpy [J/mol] Property specific to solid solutions.
- property molar_enthalpy¶
Returns molar enthalpy of the solid solution [J/mol] Aliased with self.H
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the solid solution [Pa] Aliased with self.K_T
- property adiabatic_bulk_modulus¶
Returns adiabatic bulk modulus of the solid solution [Pa] Aliased with self.K_S
- property isothermal_compressibility¶
Returns isothermal compressibility of the solid solution (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.K_T
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property adiabatic_compressibility¶
Returns adiabatic compressibility of the solid solution (or inverse adiabatic bulk modulus) [1/Pa] Aliased with self.K_S
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- debug_print(indent='')¶
Print a human-readable representation of this Material.
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- to_string()¶
Returns the name of the mineral class
- unroll()¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
- property shear_modulus¶
Returns shear modulus of the solid solution [Pa] Aliased with self.G
- property p_wave_velocity¶
Returns P wave speed of the solid solution [m/s] Aliased with self.v_p
- property bulk_sound_velocity¶
Returns bulk sound speed of the solid solution [m/s] Aliased with self.v_phi
- property shear_wave_velocity¶
Returns shear wave speed of the solid solution [m/s] Aliased with self.v_s
- property grueneisen_parameter¶
Returns grueneisen parameter of the solid solution [unitless] Aliased with self.gr
- property thermal_expansivity¶
Returns thermal expansion coefficient (alpha) of the solid solution [1/K] Aliased with self.alpha
- property molar_heat_capacity_v¶
Returns molar heat capacity at constant volume of the solid solution [J/K/mol] Aliased with self.C_v
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the solid solution [J/K/mol] Aliased with self.C_p
Mineral helpers¶
- class burnman.mineral_helpers.HelperSpinTransition(transition_pressure, ls_mat, hs_mat)[source]¶
Bases:
burnman.composite.Composite
Helper class that makes a mineral that switches between two materials (for low and high spin) based on some transition pressure [Pa]
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property adiabatic_bulk_modulus¶
Returns adiabatic bulk modulus of the mineral [Pa] Aliased with self.K_S
- property adiabatic_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_S
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- property bulk_sound_velocity¶
Returns bulk sound speed of the composite [m/s] Aliased with self.v_phi
- copy()¶
- property density¶
Compute the density of the composite based on the molar volumes and masses Aliased with self.rho
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property formula¶
Returns molar chemical formula of the composite
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property grueneisen_parameter¶
Returns grueneisen parameter of the composite [unitless] Aliased with self.gr
- property helmholtz¶
Alias for
molar_helmholtz()
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the composite [Pa] Aliased with self.K_T
- property isothermal_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_T
- property molar_enthalpy¶
Returns enthalpy of the mineral [J] Aliased with self.H
- property molar_entropy¶
Returns enthalpy of the mineral [J] Aliased with self.S
- property molar_gibbs¶
Returns molar Gibbs free energy of the composite [J/mol] Aliased with self.gibbs
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the composite [J/K/mol] Aliased with self.C_p
- property molar_heat_capacity_v¶
Returns molar_heat capacity at constant volume of the composite [J/K/mol] Aliased with self.C_v
- property molar_helmholtz¶
Returns molar Helmholtz free energy of the mineral [J/mol] Aliased with self.helmholtz
- property molar_internal_energy¶
Returns molar internal energy of the mineral [J/mol] Aliased with self.energy
- property molar_mass¶
Returns molar mass of the composite [kg/mol]
- property molar_volume¶
Returns molar volume of the composite [m^3/mol] Aliased with self.V
- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- property p_wave_velocity¶
Returns P wave speed of the composite [m/s] Aliased with self.v_p
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- set_averaging_scheme(averaging_scheme)¶
Set the averaging scheme for the moduli in the composite. Default is set to VoigtReussHill, when Composite is initialized.
- set_fractions(fractions, fraction_type='molar')¶
Change the fractions of the phases of this Composite. Resets cached properties
- Parameters
- fractions: list of floats
molar or mass fraction for each phase.
- fraction_type: ‘molar’ or ‘mass’
specify whether molar or mass fractions are specified.
- set_method(method)¶
set the same equation of state method for all the phases in the composite
- set_state(pressure, temperature)[source]¶
Update the material to the given pressure [Pa] and temperature [K].
- property shear_modulus¶
Returns shear modulus of the mineral [Pa] Aliased with self.G
- property shear_wave_velocity¶
Returns shear wave speed of the composite [m/s] Aliased with self.v_s
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- property thermal_expansivity¶
Returns thermal expansion coefficient of the composite [1/K] Aliased with self.alpha
- to_string()¶
return the name of the composite
- unroll()¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
Composites¶
- class burnman.composite.Composite(phases, fractions=None, fraction_type='molar', name='Unnamed composite')[source]¶
Bases:
burnman.material.Material
Base class for a composite material. The static phases can be minerals or materials, meaning composite can be nested arbitrarily.
The fractions of the phases can be input as either ‘molar’ or ‘mass’ during instantiation, and modified (or initialised) after this point by using set_fractions.
This class is available as
burnman.Composite
.- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_fractions(fractions, fraction_type='molar')[source]¶
Change the fractions of the phases of this Composite. Resets cached properties
- Parameters
- fractions: list of floats
molar or mass fraction for each phase.
- fraction_type: ‘molar’ or ‘mass’
specify whether molar or mass fractions are specified.
- set_method(method)[source]¶
set the same equation of state method for all the phases in the composite
- set_averaging_scheme(averaging_scheme)[source]¶
Set the averaging scheme for the moduli in the composite. Default is set to VoigtReussHill, when Composite is initialized.
- set_state(pressure, temperature)[source]¶
Update the material to the given pressure [Pa] and temperature [K].
- unroll()[source]¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property formula¶
Returns molar chemical formula of the composite
- property molar_internal_energy¶
Returns molar internal energy of the mineral [J/mol] Aliased with self.energy
- property molar_gibbs¶
Returns molar Gibbs free energy of the composite [J/mol] Aliased with self.gibbs
- property molar_helmholtz¶
Returns molar Helmholtz free energy of the mineral [J/mol] Aliased with self.helmholtz
- property molar_volume¶
Returns molar volume of the composite [m^3/mol] Aliased with self.V
- property molar_mass¶
Returns molar mass of the composite [kg/mol]
- property density¶
Compute the density of the composite based on the molar volumes and masses Aliased with self.rho
- property molar_entropy¶
Returns enthalpy of the mineral [J] Aliased with self.S
- property molar_enthalpy¶
Returns enthalpy of the mineral [J] Aliased with self.H
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the composite [Pa] Aliased with self.K_T
- property adiabatic_bulk_modulus¶
Returns adiabatic bulk modulus of the mineral [Pa] Aliased with self.K_S
- property isothermal_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_T
- property adiabatic_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_S
- property shear_modulus¶
Returns shear modulus of the mineral [Pa] Aliased with self.G
- property p_wave_velocity¶
Returns P wave speed of the composite [m/s] Aliased with self.v_p
- property bulk_sound_velocity¶
Returns bulk sound speed of the composite [m/s] Aliased with self.v_phi
- property shear_wave_velocity¶
Returns shear wave speed of the composite [m/s] Aliased with self.v_s
- property grueneisen_parameter¶
Returns grueneisen parameter of the composite [unitless] Aliased with self.gr
- property thermal_expansivity¶
Returns thermal expansion coefficient of the composite [1/K] Aliased with self.alpha
- property molar_heat_capacity_v¶
Returns molar_heat capacity at constant volume of the composite [J/K/mol] Aliased with self.C_v
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the composite [J/K/mol] Aliased with self.C_p
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
Equations of state¶
Base class¶
- class burnman.eos.EquationOfState[source]¶
Bases:
object
This class defines the interface for an equation of state that a mineral uses to determine its properties at a given \(P, T\). In order define a new equation of state, you should define these functions.
All functions should accept and return values in SI units.
In general these functions are functions of pressure, temperature, and volume, as well as a “params” object, which is a Python dictionary that stores the material parameters of the mineral, such as reference volume, Debye temperature, reference moduli, etc.
The functions for volume and density are just functions of temperature, pressure, and “params”; after all, it does not make sense for them to be functions of volume or density.
- volume(pressure, temperature, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- volumefloat
Molar volume of the mineral. \([m^3]\)
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- density(volume, params)[source]¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- gammafloat
Grueneisen parameter of the mineral. \([unitless]\)
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- K_Tfloat
Isothermal bulk modulus of the mineral. \([Pa]\)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- K_Sfloat
Adiabatic bulk modulus of the mineral. \([Pa]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Gfloat
Shear modulus of the mineral. \([Pa]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- C_Vfloat
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- C_Pfloat
Heat capacity at constant pressure of the mineral. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. \([m^3]\)- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- alphafloat
Thermal expansivity of the mineral. \([1/K]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Gfloat
Gibbs free energy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ufloat
Internal energy of the mineral
- validate_parameters(params)[source]¶
The params object is just a dictionary associating mineral physics parameters for the equation of state. Different equation of states can have different parameters, and the parameters may have ranges of validity. The intent of this function is twofold. First, it can check for the existence of the parameters that the equation of state needs, and second, it can check whether the parameters have reasonable values. Unreasonable values will frequently be due to unit issues (e.g., supplying bulk moduli in GPa instead of Pa). In the base class this function does nothing, and an equation of state is not required to implement it. This function will not return anything, though it may raise warnings or errors.
- Parameters
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
Birch-Murnaghan¶
- class burnman.eos.birch_murnaghan.BirchMurnaghanBase[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the isothermal Birch Murnaghan equation of state. This is third order in strain, and has no temperature dependence. However, the shear modulus is sometimes fit to a second order function, so if this is the case, you should use that. For more see
burnman.birch_murnaghan.BM2
andburnman.birch_murnaghan.BM3
.- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
- class burnman.eos.BM2[source]¶
Bases:
burnman.eos.birch_murnaghan.BirchMurnaghanBase
Third order Birch Murnaghan isothermal equation of state. This uses the second order expansion for shear modulus.
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- entropy(pressure, temperature, volume, params)¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- grueneisen_parameter(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- pressure(temperature, volume, params)¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- class burnman.eos.BM3[source]¶
Bases:
burnman.eos.birch_murnaghan.BirchMurnaghanBase
Third order Birch Murnaghan isothermal equation of state. This uses the third order expansion for shear modulus.
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- entropy(pressure, temperature, volume, params)¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- grueneisen_parameter(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- pressure(temperature, volume, params)¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- class burnman.eos.BM4[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the isothermal Birch Murnaghan equation of state. This is fourth order in strain, and has no temperature dependence.
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
Vinet¶
- class burnman.eos.Vinet[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the isothermal Vinet equation of state. References for this equation of state are [VFSR86] and [VSFR87]. This equation of state actually predates Vinet by 55 years [Rydberg32], and was investigated further by [StaceyBrennanIrvine81].
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\) Currently not included in the Vinet EOS, so omitted.
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
Morse Potential¶
- class burnman.eos.Morse[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Class for the isothermal Morse Potential equation of state detailed in [StaceyBrennanIrvine81]. This equation of state has no temperature dependence.
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
Reciprocal K-prime¶
- class burnman.eos.RKprime[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Class for the isothermal reciprocal K-prime equation of state detailed in [SD04]. This equation of state is a development of work by [Kea54] and [SD00], making use of the fact that \(K'\) typically varies smoothly as a function of \(P/K\), and is thermodynamically required to exceed 5/3 at infinite pressure.
It is worth noting that this equation of state rapidly becomes unstable at negative pressures, so should not be trusted to provide a good HT-LP equation of state using a thermal pressure formulation. The negative root of \(dP/dK\) can be found at \(K/P = K'_{\infty} - K'_0\), which corresponds to a bulk modulus of \(K = K_0 ( 1 - K'_{\infty}/K'_0 )^{K'_0/K'_{\infty}}\) and a volume of \(V = V_0 ( K'_0 / (K'_0 - K'_{\infty}) )^{K'_0/{K'}^2_{\infty}} \exp{(-1/K'_{\infty})}\).
This equation of state has no temperature dependence.
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
Returns pressure \([Pa]\) as a function of volume \([m^3]\).
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus \(K_s\) of the mineral. \([Pa]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- validate_parameters(params)[source]¶
Check for existence and validity of the parameters. The value for \(K'_{\infty}\) is thermodynamically bounded between 5/3 and \(K'_0\) [SD04].
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
Stixrude and Lithgow-Bertelloni Formulation¶
- class burnman.eos.slb.SLBBase[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the finite strain-Mie-Grueneiesen-Debye equation of state detailed in [SLB05]. For the most part the equations are all third order in strain, but see further the
burnman.slb.SLB2
andburnman.slb.SLB3
classes.- volume_dependent_q(x, params)[source]¶
Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter \([unitless]\)
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus. \([Pa]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- class burnman.eos.SLB2[source]¶
Bases:
burnman.eos.slb.SLBBase
SLB equation of state with second order finite strain expansion for the shear modulus. In general, this should not be used, but sometimes shear modulus data is fit to a second order equation of state. In that case, you should use this. The moral is, be careful!
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus. \([Pa]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- grueneisen_parameter(pressure, temperature, volume, params)¶
Returns grueneisen parameter \([unitless]\)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- pressure(temperature, volume, params)¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Returns thermal expansivity. \([1/K]\)
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns molar volume. \([m^3]\)
- volume_dependent_q(x, params)¶
Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.
- class burnman.eos.SLB3[source]¶
Bases:
burnman.eos.slb.SLBBase
SLB equation of state with third order finite strain expansion for the shear modulus (this should be preferred, as it is more thermodynamically consistent.)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus. \([Pa]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- grueneisen_parameter(pressure, temperature, volume, params)¶
Returns grueneisen parameter \([unitless]\)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- pressure(temperature, volume, params)¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Returns thermal expansivity. \([1/K]\)
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns molar volume. \([m^3]\)
- volume_dependent_q(x, params)¶
Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.
Mie-Grüneisen-Debye¶
- class burnman.eos.mie_grueneisen_debye.MGDBase[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for a generic finite-strain Mie-Grueneisen-Debye equation of state. References for this can be found in many places, such as Shim, Duffy and Kenichi (2002) and Jackson and Rigden (1996). Here we mostly follow the appendices of Matas et al (2007). Of particular note is the thermal correction to the shear modulus, which was developed by Hama and Suito (1998).
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume (EQ B6)
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] EQ B7
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B8
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B11
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol]
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ D6
- pressure(temperature, volume, params)[source]¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3] EQ B7
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- class burnman.eos.MGD2[source]¶
Bases:
burnman.eos.mie_grueneisen_debye.MGDBase
MGD equation of state with second order finite strain expansion for the shear modulus. In general, this should not be used, but sometimes shear modulus data is fit to a second order equation of state. In that case, you should use this. The moral is, be careful!
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ D6
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- grueneisen_parameter(pressure, temperature, volume, params)¶
Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume (EQ B6)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B8
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol]
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- pressure(temperature, volume, params)¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3] EQ B7
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B11
- thermal_expansivity(pressure, temperature, volume, params)¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] EQ B7
- class burnman.eos.MGD3[source]¶
Bases:
burnman.eos.mie_grueneisen_debye.MGDBase
MGD equation of state with third order finite strain expansion for the shear modulus (this should be preferred, as it is more thermodynamically consistent.
- adiabatic_bulk_modulus(pressure, temperature, volume, params)¶
Returns adiabatic bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ D6
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_free_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- grueneisen_parameter(pressure, temperature, volume, params)¶
Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume (EQ B6)
- helmholtz_free_energy(pressure, temperature, volume, params)¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- isothermal_bulk_modulus(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B8
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol]
- molar_internal_energy(pressure, temperature, volume, params)¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- pressure(temperature, volume, params)¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3] EQ B7
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B11
- thermal_expansivity(pressure, temperature, volume, params)¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- validate_parameters(params)¶
Check for existence and validity of the parameters
- volume(pressure, temperature, params)¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] EQ B7
Modified Tait¶
- class burnman.eos.MT[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the generic modified Tait equation of state. References for this can be found in [HuangChow74] and [HollandPowell11] (followed here).
An instance “m” of a Mineral can be assigned this equation of state with the command m.set_method(‘mt’) (or by initialising the class with the param equation_of_state = ‘mt’).
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3]
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) of the mineral. \([Pa]\).
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([Pa]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Not implemented in the Modified Tait EoS. \([Pa]\) Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy \(\mathcal{S}\) of the mineral. \([J/K/mol]\)
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy \(\mathcal{E}\) of the mineral. \([J/mol]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return a very large number. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
De Koker Solid and Liquid Formulations¶
- class burnman.eos.DKS_S[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the finite strain solid equation of state detailed in [deKokerKarkiStixrude13] (supplementary materials).
- volume_dependent_q(x, params)[source]¶
Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter \([unitless]\)
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus. \([Pa]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- class burnman.eos.DKS_L[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Base class for the finite strain liquid equation of state detailed in [deKokerKarkiStixrude13] (supplementary materials).
- pressure(temperature, volume, params)[source]¶
- Parameters
- volumefloat
Molar volume at which to evaluate the equation of state. [m^3]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- pressurefloat
Pressure of the mineral, including cold and thermal parts. [m^3]
- volume(pressure, temperature, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. \([Pa]\)
- temperaturefloat
Temperature at which to evaluate the equation of state. \([K]\)
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- volumefloat
Molar volume of the mineral. \([m^3]\)
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus. \([Pa]\)
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter. \([unitless]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus. \([Pa]\) Zero for fluids
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol]
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ufloat
Internal energy of the mineral
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
Anderson and Ahrens (1994)¶
- class burnman.eos.AA[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Class for the :math`E-V-S` liquid metal EOS detailed in [AndersonAhrens94]. Internal energy (\(E\)) is first calculated along a reference isentrope using a fourth order BM EoS (\(V_0\), \(KS\), \(KS'\), \(KS''\)), which gives volume as a function of pressure, coupled with the thermodynamic identity:
\(-\partial E/ \partial V |_S = P\).
The temperature along the isentrope is calculated via
\(\partial (\ln T)/\partial (\ln \rho) |_S = \gamma\)
which gives:
\(T_S/T_0 = \exp(\int( \gamma/\rho ) d \rho)\)
The thermal effect on internal energy is calculated at constant volume using expressions for the kinetic, electronic and potential contributions to the volumetric heat capacity, which can then be integrated with respect to temperature:
\(\partial E/\partial T |_V = C_V\)
\(\partial E/\partial S |_V = T\)
We note that [AndersonAhrens94] also include a detailed description of the Gruneisen parameter as a function of volume and energy (Equation 15), and use this to determine the temperature along the principal isentrope (Equations B1-B10) and the thermal pressure away from that isentrope (Equation 23). However, this expression is inconsistent with the equation of state away from the principal isentrope. Here we choose to calculate the thermal pressure and Grueneisen parameter thus:
1) As energy and entropy are defined by the equation of state at any temperature and volume, pressure can be found by via the expression:
\(\partial E/\partial V |_S = P\)
2) The Grueneisen parameter can now be determined as \(\gamma = V \partial P/\partial E |_V\)
To reiterate: away from the reference isentrope, the Grueneisen parameter calculated using these expressions is not equal to the (thermodynamically inconsistent) analytical expression given by [AndersonAhrens94].
A final note: the expression for \(\Lambda\) (Equation 17). does not reproduce Figure 5. We assume here that the figure matches the model actually used by [AndersonAhrens94], which has the form: \(F(-325.23 + 302.07 (\rho/\rho_0) + 30.45 (\rho/\rho_0)^{0.4})\).
- volume_dependent_q(x, params)[source]¶
Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter \([unitless]\)
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus. \([Pa]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus. \([Pa]\) Zero for a liquid
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\) Currently found by numerical differentiation (1/V * dV/dT)
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol] E + PV
- molar_internal_energy(pressure, temperature, volume, params)[source]¶
Returns the internal energy at the pressure and temperature of the mineral [J/mol]
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- enthalpy(pressure, temperature, volume, params)[source]¶
Returns the enthalpy at the pressure and temperature of the mineral [J/mol] E + PV
- helmholtz_free_energy(pressure, temperature, volume, params)[source]¶
Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol] E - TS
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
CoRK¶
- class burnman.eos.CORK[source]¶
Bases:
burnman.eos.equation_of_state.EquationOfState
Class for the CoRK equation of state detailed in [HP91]. The CoRK EoS is a simple virial-type extension to the modified Redlich-Kwong (MRK) equation of state. It was designed to compensate for the tendency of the MRK equation of state to overestimate volumes at high pressures and accommodate the volume behaviour of coexisting gas and liquid phases along the saturation curve.
- grueneisen_parameter(pressure, temperature, volume, params)[source]¶
Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume.
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] Eq. 7 in Holland and Powell, 1991
- isothermal_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ 13+2
- shear_modulus(pressure, temperature, volume, params)[source]¶
Not implemented. Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.
- molar_heat_capacity_v(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol].
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K] Replace -Pth in EQ 13+1 with P-Pth for non-ambient temperature
- molar_heat_capacity_p0(temperature, params)[source]¶
Returns heat capacity at ambient pressure as a function of temperature [J/K/mol] Cp = a + bT + cT^-2 + dT^-0.5 in Holland and Powell, 2011
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- adiabatic_bulk_modulus(pressure, temperature, volume, params)[source]¶
Returns adiabatic bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3].
- gibbs_free_energy(pressure, temperature, volume, params)[source]¶
Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].
- pressure(temperature, volume, params)[source]¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- Parameters
- volumefloat
- Molar volume of the mineral. For consistency this should be calculated
- using :func:`volume`. :math:`[m^3]`
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- densityfloat
Density of the mineral. \([kg/m^3]\)
- enthalpy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Hfloat
Enthalpy of the mineral
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- helmholtz_free_energy(pressure, temperature, volume, params)¶
- Parameters
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ffloat
Helmholtz free energy of the mineral
- molar_internal_energy(pressure, temperature, volume, params)¶
- Parameters
- pressurefloat
Pressure at which to evaluate the equation of state. [Pa]
- temperaturefloat
Temperature at which to evaluate the equation of state. [K]
- volumefloat
Molar volume of the mineral. For consistency this should be calculated using
volume()
. [m^3]- paramsdictionary
Dictionary containing material parameters required by the equation of state.
- Returns
- Ufloat
Internal energy of the mineral
Solution models¶
Base class¶
- class burnman.solidsolution.SolidSolution(name=None, solution_type=None, endmembers=None, energy_interaction=None, volume_interaction=None, entropy_interaction=None, alphas=None, molar_fractions=None)[source]¶
Bases:
burnman.mineral.Mineral
This is the base class for all solid solutions. Site occupancies, endmember activities and the constant and pressure and temperature dependencies of the excess properties can be queried after using set_composition() States of the solid solution can only be queried after setting the pressure, temperature and composition using set_state().
This class is available as
burnman.SolidSolution
. It uses an instance ofburnman.SolutionModel
to calculate interaction terms between endmembers.All the solid solution parameters are expected to be in SI units. This means that the interaction parameters should be in J/mol, with the T and P derivatives in J/K/mol and m^3/mol.
- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_composition(molar_fractions)[source]¶
Set the composition for this solid solution. Resets cached properties
- Parameters
- molar_fractions: list of float
molar abundance for each endmember, needs to sum to one.
- set_method(method)[source]¶
Set the equation of state to be used for this mineral. Takes a string corresponding to any of the predefined equations of state: ‘bm2’, ‘bm3’, ‘mgd2’, ‘mgd3’, ‘slb2’, ‘slb3’, ‘mt’, ‘hp_tmt’, or ‘cork’. Alternatively, you can pass a user defined class which derives from the equation_of_state base class. After calling set_method(), any existing derived properties (e.g., elastic parameters or thermodynamic potentials) will be out of date, so set_state() will need to be called again.
- set_state(pressure, temperature)[source]¶
(copied from set_state):
Set the material to the given pressure and temperature.
- Parameters
- pressurefloat
The desired pressure in [Pa].
- temperaturefloat
The desired temperature in [K].
- property formula¶
Returns molar chemical formula of the solid solution
- property activities¶
Returns a list of endmember activities [unitless]
- property activity_coefficients¶
Returns a list of endmember activity coefficients (gamma = activity / ideal activity) [unitless]
- property molar_internal_energy¶
Returns molar internal energy of the mineral [J/mol] Aliased with self.energy
- property excess_partial_gibbs¶
Returns excess partial molar gibbs free energy [J/mol] Property specific to solid solutions.
- property excess_partial_volumes¶
Returns excess partial volumes [m^3] Property specific to solid solutions.
- property excess_partial_entropies¶
Returns excess partial entropies [J/K] Property specific to solid solutions.
- property partial_gibbs¶
Returns excess partial molar gibbs free energy [J/mol] Property specific to solid solutions.
- property partial_volumes¶
Returns excess partial volumes [m^3] Property specific to solid solutions.
- property partial_entropies¶
Returns excess partial entropies [J/K] Property specific to solid solutions.
- property excess_gibbs¶
Returns molar excess gibbs free energy [J/mol] Property specific to solid solutions.
- property gibbs_hessian¶
Returns an array containing the second compositional derivative of the Gibbs free energy [J]. Property specific to solid solutions.
- property entropy_hessian¶
Returns an array containing the second compositional derivative of the entropy [J/K]. Property specific to solid solutions.
- property volume_hessian¶
Returns an array containing the second compositional derivative of the volume [m^3]. Property specific to solid solutions.
- property molar_gibbs¶
Returns molar Gibbs free energy of the solid solution [J/mol] Aliased with self.gibbs
- property molar_helmholtz¶
Returns molar Helmholtz free energy of the solid solution [J/mol] Aliased with self.helmholtz
- property molar_mass¶
Returns molar mass of the solid solution [kg/mol]
- property excess_volume¶
Returns excess molar volume of the solid solution [m^3/mol] Specific property for solid solutions
- property molar_volume¶
Returns molar volume of the solid solution [m^3/mol] Aliased with self.V
- property density¶
Returns density of the solid solution [kg/m^3] Aliased with self.rho
- property excess_entropy¶
Returns excess molar entropy [J/K/mol] Property specific to solid solutions.
- property molar_entropy¶
Returns molar entropy of the solid solution [J/K/mol] Aliased with self.S
- property excess_enthalpy¶
Returns excess molar enthalpy [J/mol] Property specific to solid solutions.
- property molar_enthalpy¶
Returns molar enthalpy of the solid solution [J/mol] Aliased with self.H
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the solid solution [Pa] Aliased with self.K_T
- property adiabatic_bulk_modulus¶
Returns adiabatic bulk modulus of the solid solution [Pa] Aliased with self.K_S
- property isothermal_compressibility¶
Returns isothermal compressibility of the solid solution (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.K_T
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property adiabatic_compressibility¶
Returns adiabatic compressibility of the solid solution (or inverse adiabatic bulk modulus) [1/Pa] Aliased with self.K_S
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- debug_print(indent='')¶
Print a human-readable representation of this Material.
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- to_string()¶
Returns the name of the mineral class
- unroll()¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
- property shear_modulus¶
Returns shear modulus of the solid solution [Pa] Aliased with self.G
- property p_wave_velocity¶
Returns P wave speed of the solid solution [m/s] Aliased with self.v_p
- property bulk_sound_velocity¶
Returns bulk sound speed of the solid solution [m/s] Aliased with self.v_phi
- property shear_wave_velocity¶
Returns shear wave speed of the solid solution [m/s] Aliased with self.v_s
- property grueneisen_parameter¶
Returns grueneisen parameter of the solid solution [unitless] Aliased with self.gr
- property thermal_expansivity¶
Returns thermal expansion coefficient (alpha) of the solid solution [1/K] Aliased with self.alpha
- property molar_heat_capacity_v¶
Returns molar heat capacity at constant volume of the solid solution [J/K/mol] Aliased with self.C_v
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the solid solution [J/K/mol] Aliased with self.C_p
- class burnman.solutionmodel.SolutionModel[source]¶
Bases:
object
This is the base class for a solution model, intended for use in defining solid solutions and performing thermodynamic calculations on them. All minerals of type
burnman.SolidSolution
use a solution model for defining how the endmembers in the solid solution interact.A user wanting a new solution model should define the functions included in the base class. All of the functions in the base class return zero, so if the user-defined solution model does not implement them, they essentially have no effect, and the Gibbs free energy and molar volume of a solid solution will be equal to the weighted arithmetic averages of the different endmember values.
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_volume(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
- excess_entropy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_enthalpy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_entropies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
Mechanical solution¶
- class burnman.solutionmodel.MechanicalSolution(endmembers)[source]¶
Bases:
burnman.solutionmodel.SolutionModel
An extremely simple class representing a mechanical solution model. A mechanical solution experiences no interaction between endmembers. Therefore, unlike ideal solutions there is no entropy of mixing; the total gibbs free energy of the solution is equal to the dot product of the molar gibbs free energies and molar fractions of the constituent materials.
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_volume(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
- excess_entropy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_enthalpy(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
- excess_partial_entropies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
Ideal solution¶
- class burnman.solutionmodel.IdealSolution(endmembers)[source]¶
Bases:
burnman.solutionmodel.SolutionModel
A very simple class representing an ideal solution model. Calculate the excess gibbs free energy and entropy due to configurational entropy, excess volume is equal to zero.
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_entropies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
- excess_enthalpy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_entropy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_volume(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
Asymmetric regular solution¶
- class burnman.solutionmodel.AsymmetricRegularSolution(endmembers, alphas, energy_interaction, volume_interaction=None, entropy_interaction=None)[source]¶
Bases:
burnman.solutionmodel.IdealSolution
Solution model implementing the asymmetric regular solution model formulation as described in [HollandPowell03].
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_entropies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
- excess_enthalpy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_entropy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_volume(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
Symmetric regular solution¶
- class burnman.solutionmodel.SymmetricRegularSolution(endmembers, energy_interaction, volume_interaction=None, entropy_interaction=None)[source]¶
Bases:
burnman.solutionmodel.AsymmetricRegularSolution
Solution model implementing the symmetric regular solution model. This is simply a special case of the
burnman.solutionmodel.AsymmetricRegularSolution
class.- activities(pressure, temperature, molar_fractions)¶
- activity_coefficients(pressure, temperature, molar_fractions)¶
- entropy_hessian(pressure, temperature, molar_fractions)¶
- excess_enthalpy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_entropy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_partial_entropies(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
- excess_volume(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
- gibbs_hessian(pressure, temperature, molar_fractions)¶
- volume_hessian(pressure, temperature, molar_fractions)¶
Subregular solution¶
- class burnman.solutionmodel.SubregularSolution(endmembers, energy_interaction, volume_interaction=None, entropy_interaction=None)[source]¶
Bases:
burnman.solutionmodel.IdealSolution
Solution model implementing the subregular solution model formulation as described in [HW89].
- excess_partial_gibbs_free_energies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy for each endmember of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_G_excessnumpy array
The excess Gibbs free energy of each endmember
- excess_partial_entropies(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess entropy for each endmember of the solution. The base class implementation assumes that the excess entropy is zero (true for mechanical solutions).
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_S_excessnumpy array
The excess entropy of each endmember
- excess_partial_volumes(pressure, temperature, molar_fractions)[source]¶
Given a list of molar fractions of different phases, compute the excess volume for each endmember of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- partial_V_excessnumpy array
The excess volume of each endmember
- excess_enthalpy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess enthalpy of the solution. The base class implementation assumes that the excess enthalpy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- H_excessfloat
The excess enthalpy of the solution
- excess_entropy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess entropy of the solution. The base class implementation assumes that the excess entropy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- S_excessfloat
The excess entropy of the solution
- excess_gibbs_free_energy(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess Gibbs free energy of the solution. The base class implementation assumes that the excess gibbs free energy is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- G_excessfloat
The excess Gibbs free energy
- excess_volume(pressure, temperature, molar_fractions)¶
Given a list of molar fractions of different phases, compute the excess volume of the solution. The base class implementation assumes that the excess volume is zero.
- Parameters
- pressurefloat
Pressure at which to evaluate the solution model. [Pa]
- temperaturefloat
Temperature at which to evaluate the solution. [K]
- molar_fractionslist of floats
List of molar fractions of the different endmembers in solution
- Returns
- V_excessfloat
The excess volume of the solution
Composites¶
Base class¶
- class burnman.composite.Composite(phases, fractions=None, fraction_type='molar', name='Unnamed composite')[source]¶
Bases:
burnman.material.Material
Base class for a composite material. The static phases can be minerals or materials, meaning composite can be nested arbitrarily.
The fractions of the phases can be input as either ‘molar’ or ‘mass’ during instantiation, and modified (or initialised) after this point by using set_fractions.
This class is available as
burnman.Composite
.- property name¶
Human-readable name of this material.
By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.
- set_fractions(fractions, fraction_type='molar')[source]¶
Change the fractions of the phases of this Composite. Resets cached properties
- Parameters
- fractions: list of floats
molar or mass fraction for each phase.
- fraction_type: ‘molar’ or ‘mass’
specify whether molar or mass fractions are specified.
- set_method(method)[source]¶
set the same equation of state method for all the phases in the composite
- set_averaging_scheme(averaging_scheme)[source]¶
Set the averaging scheme for the moduli in the composite. Default is set to VoigtReussHill, when Composite is initialized.
- set_state(pressure, temperature)[source]¶
Update the material to the given pressure [Pa] and temperature [K].
- unroll()[source]¶
Unroll this material into a list of
burnman.Mineral
and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).- Returns
- fractionslist of float
List of molar fractions, should sum to 1.0.
- mineralslist of
burnman.Mineral
List of minerals.
Notes
Needs to be implemented in derived classes.
- property formula¶
Returns molar chemical formula of the composite
- property molar_internal_energy¶
Returns molar internal energy of the mineral [J/mol] Aliased with self.energy
- property molar_gibbs¶
Returns molar Gibbs free energy of the composite [J/mol] Aliased with self.gibbs
- property molar_helmholtz¶
Returns molar Helmholtz free energy of the mineral [J/mol] Aliased with self.helmholtz
- property molar_volume¶
Returns molar volume of the composite [m^3/mol] Aliased with self.V
- property molar_mass¶
Returns molar mass of the composite [kg/mol]
- property density¶
Compute the density of the composite based on the molar volumes and masses Aliased with self.rho
- property molar_entropy¶
Returns enthalpy of the mineral [J] Aliased with self.S
- property molar_enthalpy¶
Returns enthalpy of the mineral [J] Aliased with self.H
- property isothermal_bulk_modulus¶
Returns isothermal bulk modulus of the composite [Pa] Aliased with self.K_T
- property adiabatic_bulk_modulus¶
Returns adiabatic bulk modulus of the mineral [Pa] Aliased with self.K_S
- property isothermal_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_T
- property adiabatic_compressibility¶
Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_S
- property shear_modulus¶
Returns shear modulus of the mineral [Pa] Aliased with self.G
- property p_wave_velocity¶
Returns P wave speed of the composite [m/s] Aliased with self.v_p
- property bulk_sound_velocity¶
Returns bulk sound speed of the composite [m/s] Aliased with self.v_phi
- property shear_wave_velocity¶
Returns shear wave speed of the composite [m/s] Aliased with self.v_s
- property grueneisen_parameter¶
Returns grueneisen parameter of the composite [unitless] Aliased with self.gr
- property thermal_expansivity¶
Returns thermal expansion coefficient of the composite [1/K] Aliased with self.alpha
- property molar_heat_capacity_v¶
Returns molar_heat capacity at constant volume of the composite [J/K/mol] Aliased with self.C_v
- property molar_heat_capacity_p¶
Returns molar heat capacity at constant pressure of the composite [J/K/mol] Aliased with self.C_p
- property C_p¶
Alias for
molar_heat_capacity_p()
- property C_v¶
Alias for
molar_heat_capacity_v()
- property G¶
Alias for
shear_modulus()
- property H¶
Alias for
molar_enthalpy()
- property K_S¶
Alias for
adiabatic_bulk_modulus()
- property K_T¶
Alias for
isothermal_bulk_modulus()
- property P¶
Alias for
pressure()
- property S¶
Alias for
molar_entropy()
- property T¶
Alias for
temperature()
- property V¶
Alias for
molar_volume()
- property alpha¶
Alias for
thermal_expansivity()
- property beta_S¶
Alias for
adiabatic_compressibility()
- property beta_T¶
Alias for
isothermal_compressibility()
- copy()¶
- property energy¶
Alias for
molar_internal_energy()
- evaluate(vars_list, pressures, temperatures)¶
Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.
- Parameters
- vars_listlist of strings
Variables to be returned for given conditions
- pressuresndlist or ndarray of float
n-dimensional array of pressures in [Pa].
- temperaturesndlist or ndarray of float
n-dimensional array of temperatures in [K].
- Returns
- outputarray of array of float
Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].
- property gibbs¶
Alias for
molar_gibbs()
- property gr¶
Alias for
grueneisen_parameter()
- property helmholtz¶
Alias for
molar_helmholtz()
- property pressure¶
Returns current pressure that was set with
set_state()
.- Returns
- pressurefloat
Pressure in [Pa].
Notes
Aliased with
P()
.
- print_minerals_of_current_state()¶
Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.
- reset()¶
Resets all cached material properties.
It is typically not required for the user to call this function.
- property temperature¶
Returns current temperature that was set with
set_state()
.- Returns
- temperaturefloat
Temperature in [K].
Notes
Aliased with
T()
.
- property v_p¶
Alias for
p_wave_velocity()
- property v_phi¶
Alias for
bulk_sound_velocity()
- property v_s¶
Alias for
shear_wave_velocity()
Averaging Schemes¶
Given a set of mineral physics parameters and an equation of state we can calculate the density, bulk, and shear modulus for a given phase.
However, as soon as we have a composite material (e.g., a rock), the determination of elastic properties become more complicated.
The bulk and shear modulus of a rock are dependent on the specific geometry of the grains in the rock, so there is no general
formula for its averaged elastic properties. Instead, we must choose from a number of averaging schemes if we want a single value,
or use bounding methods to get a range of possible values. The module burnman.averaging_schemes
provides a number of different
average and bounding schemes for determining a composite rock’s physical parameters.
Base class¶
- class burnman.averaging_schemes.AveragingScheme[source]¶
Bases:
object
Base class defining an interface for determining average elastic properties of a rock. Given a list of volume fractions for the different mineral phases in a rock, as well as their bulk and shear moduli, an averaging will give back a single scalar values for the averages. New averaging schemes should define the functions average_bulk_moduli and average_shear_moduli, as specified here.
- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli \(K\) for a composite. This defines the interface for this method, and is not implemented in the base class.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli \(G\) for a composite. This defines the interface for this method, and is not implemented in the base class.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)[source]¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_thermal_expansivity(volumes, alphas)[source]¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
- average_heat_capacity_v(fractions, c_v)[source]¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_heat_capacity_p(fractions, c_p)[source]¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
Voigt bound¶
- class burnman.averaging_schemes.Voigt[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing the Voigt (iso-strain) bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite \(K\) with the Voigt (iso-strain) bound, given by:
\[K_V = \Sigma_i V_i K_i\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Voigt average bulk modulus \(K_V\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli of a composite with the Voigt (iso-strain) bound, given by:
\[G_V = \Sigma_i V_i G_i\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The Voigt average shear modulus \(G_V\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Reuss bound¶
- class burnman.averaging_schemes.Reuss[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing the Reuss (iso-stress) bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the Reuss (iso-stress) bound, given by:
\[K_R = \left(\Sigma_i \frac{V_i}{K_i} \right)^{-1}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Reuss average bulk modulus \(K_R\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli of a composite with the Reuss (iso-stress) bound, given by:
\[G_R = \left( \Sigma_i \frac{V_i}{G_i} \right)^{-1}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The Reuss average shear modulus \(G_R\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Voigt-Reuss-Hill average¶
- class burnman.averaging_schemes.VoigtReussHill[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing the Voigt-Reuss-Hill average for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the Voigt-Reuss-Hill average, given by:
\[K_{VRH} = \frac{K_V + K_R}{2}\]This is simply a shorthand for an arithmetic average of the bounds given by
burnman.averaging_schemes.voigt
andburnman.averaging_schemes.reuss
.- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Voigt-Reuss-Hill average bulk modulus \(K_{VRH}\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli \(G\) of a composite with the Voigt-Reuss-Hill average, given by:
\[G_{VRH} = \frac{G_V + G_R}{2}\]This is simply a shorthand for an arithmetic average of the bounds given by
burnman.averaging_schemes.voigt
andburnman.averaging_schemes.reuss
.- Parameters
- volumeslist of floats
List of the volume of each phase in the composite \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite \([Pa]\)
- Returns
- Gfloat
The Voigt-Reuss-Hill average shear modulus \(G_{VRH}\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman upper bound¶
- class burnman.averaging_schemes.HashinShtrikmanUpper[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing the upper Hashin-Shtrikman bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions. Implements formulas from [WDOConnell76]. The Hashin-Shtrikman bounds are tighter than the Voigt and Reuss bounds because they make the additional assumption that the orientation of the phases are statistically isotropic. In some cases this may be a good assumption, and in others it may not be.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the upper Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The upper Hashin-Shtrikman average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli of a composite with the upper Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The upper Hashin-Shtrikman average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman lower bound¶
- class burnman.averaging_schemes.HashinShtrikmanLower[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing the lower Hashin-Shtrikman bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions. Implements Formulas from [WDOConnell76]. The Hashin-Shtrikman bounds are tighter than the Voigt and Reuss bounds because they make the additional assumption that the orientation of the phases are statistically isotropic. In some cases this may be a good assumption, and in others it may not be.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the lower Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The lower Hashin-Shtrikman average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the shear moduli of a composite with the lower Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of volumes of each phase in the composite. \([m^3]\).
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\).
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The lower Hashin-Shtrikman average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman arithmetic average¶
- class burnman.averaging_schemes.HashinShtrikmanAverage[source]¶
Bases:
burnman.averaging_schemes.AveragingScheme
Class for computing arithmetic mean of the Hashin-Shtrikman bounds on elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the arithmetic mean of the upper and lower Hashin-Shtrikman bounds.
- Parameters
- volumeslist of floats
List of the volumes of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The arithmetic mean of the Hashin-Shtrikman bounds on bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)[source]¶
Average the bulk moduli of a composite with the arithmetic mean of the upper and lower Hashin-Shtrikman bounds.
- Parameters
- volumeslist of floats
List of the volumes of each phase in the composite. [m^3].
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The arithmetic mean of the Hashin-Shtrikman bounds on shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Geotherms¶
- burnman.geotherm.brown_shankland(depths)[source]¶
Geotherm from [BS81]. NOTE: Valid only above 270 km
- Parameters
- depthslist of floats
The list of depths at which to evaluate the geotherm. \([m]\)
- Returns
- temperaturelist of floats
The list of temperatures for each of the pressures. \([K]\)
- burnman.geotherm.anderson(depths)[source]¶
Geotherm from [And82].
- Parameters
- depthslist of floats
The list of depths at which to evaluate the geotherm. \([m]\)
- Returns
- temperaturelist of floats
The list of temperatures for each of the pressures. \([K]\)
- burnman.geotherm.adiabatic(pressures, T0, rock)[source]¶
This calculates a geotherm based on an anchor temperature and a rock, assuming that the rock’s temperature follows an adiabatic gradient with pressure. A good first guess is provided by integrating:
\[\frac{\partial T}{\partial P} = \frac{ \gamma T}{ K_s }\]where \(\gamma\) is the Grueneisen parameter and \(K_s\) is the adiabatic bulk modulus.
- Parameters
- pressureslist of floats
The list of pressures in \([Pa]\) at which to evaluate the geotherm.
- T0float
An anchor temperature, corresponding to the temperature of the first pressure in the list. \([K]\)
- rock
burnman.composite
Material for which we compute the adiabat. From this material we must compute average Grueneisen parameters and adiabatic bulk moduli for each pressure/temperature.
- Returns
- temperature: list of floats
The list of temperatures for each pressure. \([K]\)
Thermodynamics¶
Burnman has a number of functions and classes which deal with the thermodynamics of single phases and aggregates.
Lattice Vibrations¶
Debye model¶
- burnman.eos.debye.debye_fn(x)[source]¶
Evaluate the Debye function. Takes the parameter xi = Debye_T/T
- burnman.eos.debye.debye_fn_cheb(x)[source]¶
Evaluate the Debye function using a Chebyshev series expansion coupled with asymptotic solutions of the function. Shamelessly adapted from the GSL implementation of the same function (Itself adapted from Collected Algorithms from ACM). Should give the same result as debye_fn(x) to near machine-precision.
- burnman.eos.debye.thermal_energy(T, debye_T, n)[source]¶
calculate the thermal energy of a substance. Takes the temperature, the Debye temperature, and n, the number of atoms per molecule. Returns thermal energy in J/mol
- burnman.eos.debye.molar_heat_capacity_v(T, debye_T, n)[source]¶
Heat capacity at constant volume. In J/K/mol
- burnman.eos.debye.helmholtz_free_energy(T, debye_T, n)[source]¶
Helmholtz free energy of lattice vibrations in the Debye model. It is important to note that this does NOT include the zero point energy of vibration for the lattice. As long as you are calculating relative differences in F, this should cancel anyways. In Joules.
Einstein model¶
Chemistry parsing¶
- burnman.processchemistry.read_masses()[source]¶
A simple function to read a file with a two column list of elements and their masses into a dictionary
- burnman.processchemistry.atomic_masses = {'Ag': 0.107868, 'Al': 0.0269815, 'Ar': 0.039948, 'As': 0.0749216, 'Au': 0.196967, 'B': 0.010811, 'Ba': 0.137327, 'Be': 0.00901218, 'Bi': 0.20898, 'Br': 0.079904, 'C': 0.0120107, 'Ca': 0.040078, 'Cd': 0.112411, 'Ce': 0.140116, 'Cl': 0.035453, 'Co': 0.0589332, 'Cr': 0.0519961, 'Cs': 0.132905, 'Cu': 0.063546, 'Dy': 0.1625, 'Er': 0.167259, 'Eu': 0.151964, 'F': 0.0189984, 'Fe': 0.055845, 'Ga': 0.069723, 'Gd': 0.15725, 'Ge': 0.07264, 'H': 0.00100794, 'He': 0.0040026, 'Hf': 0.17849, 'Hg': 0.20059, 'Ho': 0.16493, 'I': 0.126904, 'In': 0.114818, 'Ir': 0.192217, 'K': 0.0390983, 'Kr': 0.083798, 'La': 0.138905, 'Li': 0.006941, 'Lu': 0.174967, 'Mg': 0.024305, 'Mn': 0.054938, 'Mo': 0.09596, 'N': 0.0140067, 'Na': 0.0229898, 'Nb': 0.0929064, 'Nd': 0.144242, 'Ne': 0.0201797, 'Ni': 0.0586934, 'O': 0.0159994, 'Os': 0.19023, 'P': 0.0309738, 'Pa': 0.231036, 'Pb': 0.2072, 'Pd': 0.10642, 'Pr': 0.140908, 'Pt': 0.195084, 'Rb': 0.0854678, 'Re': 0.186207, 'Rh': 0.102905, 'Ru': 0.10107, 'S': 0.032065, 'Sb': 0.12176, 'Sc': 0.0449559, 'Se': 0.07896, 'Si': 0.0280855, 'Sm': 0.15036, 'Sn': 0.11871, 'Sr': 0.08762, 'Ta': 0.180948, 'Tb': 0.158925, 'Te': 0.1276, 'Th': 0.232038, 'Ti': 0.047867, 'Tl': 0.204383, 'Tm': 0.168934, 'U': 0.238029, 'V': 0.0509415, 'Vc': 0.0, 'W': 0.18384, 'Xe': 0.131293, 'Y': 0.0889058, 'Yb': 0.173054, 'Zn': 0.06538, 'Zr': 0.091224}¶
IUPAC_element_order provides a list of all the elements. Element order is based loosely on electronegativity, following the scheme suggested by IUPAC, except that H comes after the Group 16 elements, not before them.
- burnman.processchemistry.dictionarize_formula(formula)[source]¶
A function to read a chemical formula string and convert it into a dictionary
- Parameters
- formulastring object
Chemical formula, written in the XnYm format, where the formula has n atoms of element X and m atoms of element Y
- Returns
- fdictionary object
The same chemical formula, but expressed as a dictionary.
- burnman.processchemistry.sum_formulae(formulae, amounts=None)[source]¶
Adds together a set of formulae.
- Parameters
- formulaelist of dictionary or counter objects
List of chemical formulae
- amountslist of floats
List of amounts of each formula
- Returns
- summed_formulaCounter object
The sum of the user-provided formulae
- burnman.processchemistry.formula_mass(formula)[source]¶
A function to take a chemical formula and compute the formula mass.
- Parameters
- formuladictionary or counter object
A chemical formula
- Returns
- massfloat
The mass per mole of formula
- burnman.processchemistry.convert_formula(formula, to_type='mass', normalize=False)[source]¶
Converts a chemical formula from one type (mass or molar) into the other. Renormalises amounts if normalize=True
- Parameters
- formuladictionary or counter object
A chemical formula
- to_typestring, one of ‘mass’ or ‘molar’
Conversion type
- normalizeboolean
Whether or not to normalize the converted formula to 1
- Returns
- fdictionary
The converted formula
- burnman.processchemistry.process_solution_chemistry(solution_model)[source]¶
This function parses a class instance with a “formulas” attribute containing site information, e.g.
[ ‘[Mg]3[Al]2Si3O12’, ‘[Mg]3[Mg1/2Si1/2]2Si3O12’ ]
It outputs the bulk composition of each endmember (removing the site information), and also a set of variables and arrays which contain the site information. These are output in a format that can easily be used to calculate activities and gibbs free energies, given molar fractions of the phases and pressure and temperature where necessary.
- Parameters
- solution_modelinstance of class
Class must have a “formulas” attribute, containing a list of chemical formulae with site information
- burnman.processchemistry.site_occupancies_to_strings(site_species_names, site_multiplicities, endmember_occupancies)[source]¶
Converts a list of endmember site occupancies into a list of string representations of those occupancies.
- Parameters
- site_species_names2D list of strings
A list of list of strings, giving the names of the species which reside on each site. List of sites, each of which contains a list of the species occupying each site.
- site_multiplicitiesnumpy array of floats
List of floats giving the multiplicity of each site Must be either the same length as the number of sites, or the same length as site_species_names (with an implied repetition of the same number for each species on a given site).
- endmember_occupancies2D numpy array of floats
A list of site-species occupancies for each endmember. The first dimension loops over the endmembers, and the second dimension loops over the site-species occupancies for that endmember. The total number and order of occupancies must be the same as the strings in site_species_names.
- Returns
- site_formulaelist of strings
A list of strings in standard burnman format. For example, [Mg]3[Al]2 would correspond to the classic two-site pyrope garnet.
- burnman.processchemistry.compositional_array(formulae)[source]¶
- Parameters
- formulaelist of dictionaries
List of chemical formulae
- Returns
- formula_array2D array of floats
Array of endmember formulae
- elementsList of strings
List of elements
- burnman.processchemistry.ordered_compositional_array(formulae, elements)[source]¶
- Parameters
- formulaelist of dictionaries
List of chemical formulae
- elementsList of strings
List of elements
- Returns
- formula_array2D array of floats
Array of endmember formulae
- burnman.processchemistry.formula_to_string(formula)[source]¶
- Parameters
- formuladictionary or counter
Chemical formula
- Returns
- formula_stringstring
A formula string, with element order as given in the list IUPAC_element_order. If one or more keys in the dictionary are not one of the elements in the periodic table, then they are added at the end of the string.
Chemical potentials¶
- burnman.chemicalpotentials.chemical_potentials(assemblage, component_formulae)[source]¶
The compositional space of the components does not have to be a superset of the compositional space of the assemblage. Nor do they have to compose an orthogonal basis.
The components must each be described by a linear mineral combination
The mineral compositions must be linearly independent
- Parameters
- assemblagelist of classes
List of material classes set_method and set_state should already have been used the composition of the solid solutions should also have been set
- component_formulaelist of dictionaries
List of chemical component formula dictionaries No restriction on length
- Returns
- component_potentialsarray of floats
Array of chemical potentials of components
- burnman.chemicalpotentials.fugacity(standard_material, assemblage)[source]¶
- Parameters
- standard_material: class
Material class set_method and set_state should already have been used material must have a formula as a dictionary parameter
- assemblage: list of classes
List of material classes set_method and set_state should already have been used
- Returns
- fugacityfloat
Value of the fugacity of the component with respect to the standard material
- burnman.chemicalpotentials.relative_fugacity(standard_material, assemblage, reference_assemblage)[source]¶
- Parameters
- standard_material: class
Material class set_method and set_state should already have been used material must have a formula as a dictionary parameter
- assemblage: list of classes
List of material classes set_method and set_state should already have been used
- reference_assemblage: list of classes
List of material classes set_method and set_state should already have been used
- Returns
- relative_fugacityfloat
Value of the fugacity of the component in the assemblage with respect to the reference_assemblage
Seismic¶
Base class for all seismic models¶
- class burnman.seismic.Seismic1DModel[source]¶
Bases:
object
Base class for all the seismological models.
- evaluate(vars_list, depth_list=None)[source]¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- internal_depth_list(mindepth=0.0, maxdepth=1e+99, discontinuity_interval=1.0)[source]¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- v_p(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_s(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- v_phi(depth)[source]¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- density(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- G(depth)[source]¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)[source]¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QK(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- QG(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
Class for 1D Models¶
- class burnman.seismic.SeismicTable[source]¶
Bases:
burnman.seismic.Seismic1DModel
This is a base class that gets a 1D seismic model from a table indexed and sorted by radius. Fill the tables in the constructor after deriving from this class. This class uses
burnman.seismic.Seismic1DModel
Note: all tables need to be sorted by increasing depth. self.table_depth needs to be defined Alternatively, you can also overwrite the _lookup function if you want to access with something else.
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)[source]¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- gravity(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- v_p(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_s(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- QK(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- QG(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- density(depth)[source]¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)[source]¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
Models currently implemented¶
- class burnman.seismic.PREM[source]¶
Bases:
burnman.seismic.SeismicTable
Reads PREM (1s) (input_seismic/prem.txt, [DA81]). See also
burnman.seismic.SeismicTable
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- class burnman.seismic.Slow[source]¶
Bases:
burnman.seismic.SeismicTable
Inserts the mean profiles for slower regions in the lower mantle (Lekic et al. 2012). We stitch together tables ‘input_seismic/prem_lowermantle.txt’, ‘input_seismic/swave_slow.txt’, ‘input_seismic/pwave_slow.txt’). See also
burnman.seismic.SeismicTable
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- class burnman.seismic.Fast[source]¶
Bases:
burnman.seismic.SeismicTable
Inserts the mean profiles for faster regions in the lower mantle (Lekic et al. 2012). We stitch together tables ‘input_seismic/prem_lowermantle.txt’, ‘input_seismic/swave_fast.txt’, ‘input_seismic/pwave_fast.txt’). See also
burnman.seismic.Seismic1DModel
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- class burnman.seismic.STW105[source]¶
Bases:
burnman.seismic.SeismicTable
Reads STW05 (a.k.a. REF) (1s) (input_seismic/STW105.txt, [KED08]). See also
burnman.seismic.SeismicTable
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- class burnman.seismic.IASP91[source]¶
Bases:
burnman.seismic.SeismicTable
Reads REF/STW05 (input_seismic/STW105.txt, [KED08]). See also
burnman.seismic.SeismicTable
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
- class burnman.seismic.AK135[source]¶
Bases:
burnman.seismic.SeismicTable
Reads AK135 (input_seismic/ak135.txt, [KEB95]). See also
burnman.seismic.SeismicTable
.- G(depth)¶
- Parameters
- depthfloat or array of floats
Shear modulus at given for depth(s) in [Pa].
- K(depth)¶
- Parameters
- depthfloat or array of floats
Bulk modulus at given for depth(s) in [Pa]
- QG(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- QGfloat or array of floats
Quality factor (dimensionless) for shear modulus at given depth(s).
- QK(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- Qkfloat or array of floats
Quality factor (dimensionless) for bulk modulus at given depth(s).
- bullen(depth)¶
Returns the Bullen parameter only for significant arrays
- density(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- densityfloat or array of floats
Density at given depth(s) in [kg/m^3].
- depth(pressure)¶
- Parameters
- pressurefloat or array of floats
Pressure(s) [Pa] to evaluate depth at.
- Returns
- depthfloat or array of floats
Depth(s) [m] for given pressure(s)
- evaluate(vars_list, depth_list=None)¶
Returns the lists of data for a Seismic1DModel for the depths provided
- Parameters
- vars_listarray of str
Available variables depend on the seismic model, and can be chosen from ‘pressure’,’density’,’gravity’,’v_s’,’v_p’,’v_phi’,’G’,’K’,’QG’,’QK’
- depth_listarray of floats
Array of depths [m] to evaluate seismic model at.
- Returns
- Array of values shapes as (len(vars_list),len(depth_list)).
- gravity(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate gravity at.
- Returns
- gravityfloat or array of floats
Gravity for given depths in [m/s^2]
- internal_depth_list(mindepth=0.0, maxdepth=10000000000.0, discontinuity_interval=1.0)¶
Returns a sorted list of depths where this seismic data is specified at. This allows you to compare the seismic data without interpolation. The depths can be bounded by the mindepth and maxdepth parameters.
- Parameters
- mindepthfloat
Minimum depth value to be returned [m]
- maxdepth
Maximum depth value to be returned [m]
- discontinuity interval
Shift continuities to remove ambigious values for depth, default value = 1 [m]
- Returns
- depthsarray of floats
Depths [m].
- pressure(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- pressurefloat or array of floats
Pressure(s) at given depth(s) in [Pa].
- radius(pressure)¶
- v_p(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_pfloat or array of floats
P wave velocity at given depth(s) in [m/s].
- v_phi(depth)¶
- Parameters
- depth_listfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_phifloat or array of floats
bulk sound wave velocity at given depth(s) in [m/s].
- v_s(depth)¶
- Parameters
- depthfloat or array of floats
Depth(s) [m] to evaluate seismic model at.
- Returns
- v_sfloat or array of floats
S wave velocity at given depth(s) in [m/s].
Attenuation Correction¶
- burnman.seismic.attenuation_correction(v_p, v_s, v_phi, Qs, Qphi)[source]¶
Applies the attenuation correction following Matas et al. (2007), page 4. This is simplified, and there is also currently no 1D Q model implemented. The correction, however, only slightly reduces the velocities, and can be ignored for our current applications. Arguably, it might not be as relevant when comparing computations to PREM for periods of 1s as is implemented here. Called from
burnman.main.apply_attenuation_correction()
- Parameters
- v_pfloat
P wave velocity in [m/s].
- v_sfloat
S wave velocitiy in [m/s].
- v_phifloat
Bulk sound velocity in [m/s].
- Qsfloat
shear quality factor [dimensionless]
- Qphi: float
bulk quality factor [dimensionless]
- Returns
- v_pfloat
corrected P wave velocity in [m/s].
- v_sfloat
corrected S wave velocitiy in [m/s].
- v_phifloat
corrected Bulk sound velocity in [m/s].
Mineral databases¶
Mineral database
Matas_etal_2007¶
Minerals from Matas et al. 2007 and references therein. See Table 1 and 2.
- class burnman.minerals.Matas_etal_2007.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Matas_etal_2007.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Matas_etal_2007.al_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Matas_etal_2007.ca_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Matas_etal_2007.periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Matas_etal_2007.wuestite[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.Matas_etal_2007.ca_bridgmanite¶
- burnman.minerals.Matas_etal_2007.mg_bridgmanite¶
- burnman.minerals.Matas_etal_2007.fe_bridgmanite¶
- burnman.minerals.Matas_etal_2007.al_bridgmanite¶
Murakami_etal_2012¶
Minerals from Murakami et al. (2012) supplementary table 5 and references therein, V_0 from Stixrude & Lithgow-Bertolloni 2005. Some information from personal communication with Murakami.
- class burnman.minerals.Murakami_etal_2012.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.mg_perovskite_3rdorder[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.mg_periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.fe_periclase_HS[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.fe_periclase_LS[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.fe_periclase_HS_3rd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_etal_2012.fe_periclase_LS_3rd[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.Murakami_etal_2012.mg_bridgmanite¶
- burnman.minerals.Murakami_etal_2012.fe_bridgmanite¶
- burnman.minerals.Murakami_etal_2012.mg_bridgmanite_3rdorder¶
alias of
burnman.minerals.Murakami_etal_2012.mg_perovskite_3rdorder
Murakami_2013¶
Minerals from Murakami 2013 and references therein.
- class burnman.minerals.Murakami_2013.periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_2013.wuestite[source]¶
Bases:
burnman.mineral.Mineral
Murakami 2013 and references therein
- class burnman.minerals.Murakami_2013.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.Murakami_2013.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.Murakami_2013.mg_bridgmanite¶
- burnman.minerals.Murakami_2013.fe_bridgmanite¶
SLB_2005¶
Minerals from Stixrude & Lithgow-Bertelloni 2005 and references therein
- class burnman.minerals.SLB_2005.stishovite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2005.periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2005.wuestite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2005.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2005.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.SLB_2005.mg_bridgmanite¶
- burnman.minerals.SLB_2005.fe_bridgmanite¶
SLB_2011¶
Minerals from Stixrude & Lithgow-Bertelloni 2011 and references therein. File autogenerated using SLBdata_to_burnman.py.
- class burnman.minerals.SLB_2011.anorthite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.albite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.spinel[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.hercynite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.forsterite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fayalite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_wadsleyite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_wadsleyite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_ringwoodite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_ringwoodite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.enstatite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.ferrosilite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_tschermaks[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.ortho_diopside[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.diopside[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.hedenbergite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.clinoenstatite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.ca_tschermaks[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.jadeite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.hp_clinoenstatite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.hp_clinoferrosilite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.ca_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_akimotoite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_akimotoite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.corundum[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.pyrope[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.almandine[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.grossular[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_majorite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.jd_majorite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.quartz[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.coesite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.stishovite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.seifertite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.al_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_post_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_post_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.al_post_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.wuestite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.mg_ca_ferrite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.fe_ca_ferrite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.na_ca_ferrite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.kyanite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011.nepheline[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.SLB_2011.ab¶
alias of
burnman.minerals.SLB_2011.albite
- burnman.minerals.SLB_2011.an¶
alias of
burnman.minerals.SLB_2011.anorthite
- burnman.minerals.SLB_2011.sp¶
alias of
burnman.minerals.SLB_2011.spinel
- burnman.minerals.SLB_2011.hc¶
alias of
burnman.minerals.SLB_2011.hercynite
- burnman.minerals.SLB_2011.fo¶
alias of
burnman.minerals.SLB_2011.forsterite
- burnman.minerals.SLB_2011.fa¶
alias of
burnman.minerals.SLB_2011.fayalite
- burnman.minerals.SLB_2011.mgwa¶
- burnman.minerals.SLB_2011.fewa¶
- burnman.minerals.SLB_2011.mgri¶
- burnman.minerals.SLB_2011.feri¶
- burnman.minerals.SLB_2011.en¶
alias of
burnman.minerals.SLB_2011.enstatite
- burnman.minerals.SLB_2011.fs¶
- burnman.minerals.SLB_2011.mgts¶
- burnman.minerals.SLB_2011.odi¶
- burnman.minerals.SLB_2011.di¶
alias of
burnman.minerals.SLB_2011.diopside
- burnman.minerals.SLB_2011.he¶
- burnman.minerals.SLB_2011.cen¶
- burnman.minerals.SLB_2011.cats¶
- burnman.minerals.SLB_2011.jd¶
alias of
burnman.minerals.SLB_2011.jadeite
- burnman.minerals.SLB_2011.mgc2¶
- burnman.minerals.SLB_2011.fec2¶
- burnman.minerals.SLB_2011.hpcen¶
- burnman.minerals.SLB_2011.hpcfs¶
- burnman.minerals.SLB_2011.mgpv¶
- burnman.minerals.SLB_2011.mg_bridgmanite¶
- burnman.minerals.SLB_2011.fepv¶
- burnman.minerals.SLB_2011.fe_bridgmanite¶
- burnman.minerals.SLB_2011.alpv¶
- burnman.minerals.SLB_2011.capv¶
- burnman.minerals.SLB_2011.mgil¶
- burnman.minerals.SLB_2011.feil¶
- burnman.minerals.SLB_2011.co¶
alias of
burnman.minerals.SLB_2011.corundum
- burnman.minerals.SLB_2011.py¶
alias of
burnman.minerals.SLB_2011.pyrope
- burnman.minerals.SLB_2011.al¶
alias of
burnman.minerals.SLB_2011.almandine
- burnman.minerals.SLB_2011.gr¶
alias of
burnman.minerals.SLB_2011.grossular
- burnman.minerals.SLB_2011.mgmj¶
- burnman.minerals.SLB_2011.jdmj¶
- burnman.minerals.SLB_2011.qtz¶
alias of
burnman.minerals.SLB_2011.quartz
- burnman.minerals.SLB_2011.coes¶
alias of
burnman.minerals.SLB_2011.coesite
- burnman.minerals.SLB_2011.st¶
alias of
burnman.minerals.SLB_2011.stishovite
- burnman.minerals.SLB_2011.seif¶
alias of
burnman.minerals.SLB_2011.seifertite
- burnman.minerals.SLB_2011.mppv¶
- burnman.minerals.SLB_2011.fppv¶
- burnman.minerals.SLB_2011.appv¶
- burnman.minerals.SLB_2011.pe¶
alias of
burnman.minerals.SLB_2011.periclase
- burnman.minerals.SLB_2011.wu¶
alias of
burnman.minerals.SLB_2011.wuestite
- burnman.minerals.SLB_2011.mgcf¶
- burnman.minerals.SLB_2011.fecf¶
- burnman.minerals.SLB_2011.nacf¶
- burnman.minerals.SLB_2011.ky¶
alias of
burnman.minerals.SLB_2011.kyanite
- burnman.minerals.SLB_2011.neph¶
alias of
burnman.minerals.SLB_2011.nepheline
- burnman.minerals.SLB_2011.c2c¶
- burnman.minerals.SLB_2011.cf¶
alias of
burnman.minerals.SLB_2011.ca_ferrite_structured_phase
- burnman.minerals.SLB_2011.cpx¶
- burnman.minerals.SLB_2011.gt¶
alias of
burnman.minerals.SLB_2011.garnet
- burnman.minerals.SLB_2011.il¶
alias of
burnman.minerals.SLB_2011.akimotoite
- burnman.minerals.SLB_2011.ilmenite_group¶
alias of
burnman.minerals.SLB_2011.akimotoite
- burnman.minerals.SLB_2011.mw¶
- burnman.minerals.SLB_2011.magnesiowuestite¶
- burnman.minerals.SLB_2011.ol¶
- burnman.minerals.SLB_2011.opx¶
- burnman.minerals.SLB_2011.plag¶
- burnman.minerals.SLB_2011.ppv¶
- burnman.minerals.SLB_2011.pv¶
- burnman.minerals.SLB_2011.mg_fe_bridgmanite¶
- burnman.minerals.SLB_2011.mg_fe_silicate_perovskite¶
- burnman.minerals.SLB_2011.ri¶
- burnman.minerals.SLB_2011.spinel_group¶
- burnman.minerals.SLB_2011.wa¶
- burnman.minerals.SLB_2011.spinelloid_III¶
SLB_2011_ZSB_2013¶
Minerals from Stixrude & Lithgow-Bertelloni 2011, Zhang, Stixrude & Brodholt 2013, and references therein.
- class burnman.minerals.SLB_2011_ZSB_2013.stishovite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011_ZSB_2013.periclase[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011_ZSB_2013.wuestite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011_ZSB_2013.mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.SLB_2011_ZSB_2013.fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.SLB_2011_ZSB_2013.mg_bridgmanite¶
- burnman.minerals.SLB_2011_ZSB_2013.fe_bridgmanite¶
DKS_2013_solids¶
Solids from de Koker and Stixrude (2013) FPMD simulations
- class burnman.minerals.DKS_2013_solids.stishovite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_solids.perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_solids.periclase[source]¶
Bases:
burnman.mineral.Mineral
DKS_2013_liquids¶
Liquids from de Koker and Stixrude (2013) FPMD simulations.
- class burnman.minerals.DKS_2013_liquids.SiO2_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.MgSiO3_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.MgSi2O5_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.MgSi3O7_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.MgSi5O11_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.Mg2SiO4_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.Mg3Si2O7_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.Mg5SiO7_liquid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.DKS_2013_liquids.MgO_liquid[source]¶
Bases:
burnman.mineral.Mineral
RS_2014_liquids¶
Liquids from Ramo and Stixrude (2014) FPMD simulations. There are some typos in the article which have been corrected where marked with the help of David Munoz Ramo.
- class burnman.minerals.RS_2014_liquids.Fe2SiO4_liquid[source]¶
Bases:
burnman.mineral.Mineral
HP_2011 (ds-62)¶
Endmember minerals from Holland and Powell 2011 and references therein. Update to dataset version 6.2. The values in this document are all in S.I. units, unlike those in the original tc-ds62.txt. File autogenerated using HPdata_to_burnman.py.
- class burnman.minerals.HP_2011_ds62.fo[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fa[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.teph[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.lrn[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mont[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.chum[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.chdr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mwd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fwd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mrw[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.frw[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.apv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mak[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fak[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.maj[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.py[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.alm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.spss[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.gr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.andr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.knor[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.osma[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.osmm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.osfa[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.vsv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.andalusite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ky[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sill[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.smul[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.amul[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.tpz[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mst[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fst[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mnst[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mctd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fctd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mnctd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.merw[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.spu[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.zo[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cz[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ep[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fep[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pmt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.law[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mpm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fpm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.jgd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.geh[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ak[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.rnk[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ty[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.crd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hcrd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fcrd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mncrd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.phA[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sph[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cstn[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.zrc[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.en[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pren[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cen[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hen[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fs[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mgts[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.di[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hed[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.jd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.acm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.kos[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cats[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.caes[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.rhod[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pxmn[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.wo[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pswo[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.wal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.tr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fact[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ts[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.parg[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.gl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fgl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.rieb[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.anth[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fanth[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cumm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.grun[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ged[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.spr4[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.spr5[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fspr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mcar[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fcar[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.deer[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mu[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cel[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fcel[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pa[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ma[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.phl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ann[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mnbi[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.east[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.naph[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.clin[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ames[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.afchl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.daph[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mnchl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sud[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fsud[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.prl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ta[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fta[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.tats[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.tap[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.minn[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.minm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.kao[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pre[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fpre[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.chr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.liz[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.glt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fstp[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mstp[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.atg[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ab[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.abh[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mic[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.san[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.an[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.kcm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.wa[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hol[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.q[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.trd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.crst[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.coe[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.stv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ne[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cg[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cgh[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sdl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.kls[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.lc[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.me[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.wrk[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.lmt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.heu[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.stlb[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.anl[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.lime[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ru[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.per[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.fper[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mang[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cor[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mcor[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hem[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.esk[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.bix[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.NiO[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pnt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.geik[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ilm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.bdy[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ten[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cup[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sp[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.herc[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mft[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.usp[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.picr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.br[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.dsp[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.gth[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.cc[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.arag[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.mag[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.sid[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.rhc[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.dol[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.ank[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.syv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.hlt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.pyr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.trot[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.tro[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.lot[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.trov[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.any[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.iron[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.Ni[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.Cu[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.gph[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.diam[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_ds62.S[source]¶
Bases:
burnman.mineral.Mineral
- burnman.minerals.HP_2011_ds62.cov()[source]¶
A function which loads and returns the variance-covariance matrix of the zero-point energies of all the endmembers in the dataset.
- Returns
- covdictionary
Dictionary keys are: - endmember_names: a list of endmember names, and - covariance_matrix: a 2D variance-covariance array for the
endmember zero-point energies of formation
HP_2011_fluids¶
Fluids from Holland and Powell 2011 and references therein. CORK parameters are taken from various sources.
- CHO gases from Holland and Powell, 1991:
[“CO2”,304.2,0.0738]
[“CH4”,190.6,0.0460]
[“H2”,41.2,0.0211]
[“CO”,132.9,0.0350]
- H2O and S2 from Wikipedia, 2012/10/23:
[“H2O”,647.096,0.22060]
[“S2”,1314.00,0.21000]
- H2S from ancyclopedia.airliquide.com, 2012/10/23:
[“H2S”,373.15,0.08937]
- NB: Units for cork[i] in Holland and Powell datasets are:
a = kJ^2/kbar*K^(1/2)/mol^2: multiply by 1e-2
b = kJ/kbar/mol: multiply by 1e-5
c = kJ/kbar^1.5/mol: multiply by 1e-9
d = kJ/kbar^2/mol: multiply by 1e-13
- Individual terms are divided through by P, P, P^1.5, P^2, so:
[0][j]: multiply by 1e6
[1][j]: multiply by 1e3
[2][j]: multiply by 1e3
[3][j]: multiply by 1e3
cork_P is given in kbar: multiply by 1e8
- class burnman.minerals.HP_2011_fluids.CO2[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_fluids.CH4[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_fluids.O2[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_fluids.H2[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_fluids.S2[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HP_2011_fluids.H2S[source]¶
Bases:
burnman.mineral.Mineral
HHPH_2013¶
Minerals from Holland et al. (2013) and references therein. The values in this document are all in S.I. units, unlike those in the original paper. File autogenerated using HHPHdata_to_burnman.py.
- class burnman.minerals.HHPH_2013.fo[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fa[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mwd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fwd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mrw[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.frw[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.apv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.npv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.cpv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mak[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fak[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.maj[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.nagt[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.py[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.alm[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.gr[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.en[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.cen[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.hen[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.hfs[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fs[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mgts[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.di[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.hed[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.jd[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.cats[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.stv[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.macf[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mscf[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fscf[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.nacf[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.cacf[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.manal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.nanal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.msnal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fsnal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.canal[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.per[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.fper[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.cor[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.HHPH_2013.mcor[source]¶
Bases:
burnman.mineral.Mineral
JH_2015¶
Solid solutions from Jennings and Holland, 2015 and references therein (10.1093/petrology/egv020). The values in this document are all in S.I. units, unlike those in the original tc file.
- burnman.minerals.JH_2015.construct_combined_covariance(original_covariance_dictionary, combined_mineral_list)[source]¶
This function takes a dictionary containing a list of endmember_names and a covariance_matrix, and a list of CombinedMineral instances, and creates an updated covariance dictionary containing those CombinedMinerals
- Parameters
- original_covariance_dictionarydictionary
Contains a list of strings of endmember_names of length n and a 2D numpy array covariance_matrix of shape n x n
- combined_mineral_listlist of instances of
burnman.CombinedMineral
List of minerals to be added to the covariance matrix
- Returns
- covdictionary
Updated covariance dictionary, with the same keys as the original
- burnman.minerals.JH_2015.cov()[source]¶
A function which returns the variance-covariance matrix of the zero-point energies of all the endmembers in the dataset. Derived from HP_2011_ds62, modified to include all the new CombinedMinerals.
- Returns
- covdictionary
Dictionary keys are: - endmember_names: a list of endmember names, and - covariance_matrix: a 2D variance-covariance array for the endmember enthalpies of formation
Other minerals¶
- class burnman.minerals.other.liquid_iron[source]¶
Bases:
burnman.mineral.Mineral
Liquid iron equation of state from Anderson and Ahrens (1994)
- class burnman.minerals.other.ZSB_2013_mg_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.other.ZSB_2013_fe_perovskite[source]¶
Bases:
burnman.mineral.Mineral
- class burnman.minerals.other.Speziale_fe_periclase_HS[source]¶
Bases:
burnman.mineral.Mineral
Speziale et al. 2007, Mg#=83
- class burnman.minerals.other.Speziale_fe_periclase_LS[source]¶
Bases:
burnman.mineral.Mineral
Speziale et al. 2007, Mg#=83
- class burnman.minerals.other.Liquid_Fe_Anderson[source]¶
Bases:
burnman.mineral.Mineral
Anderson & Ahrens, 1994 JGR
- class burnman.minerals.other.Fe_Dewaele[source]¶
Bases:
burnman.mineral.Mineral
Dewaele et al., 2006, Physical Review Letters
Tools¶
Burnman has a number of high-level tools to help achieve common goals.
- burnman.tools.copy_documentation(copy_from)[source]¶
Decorator @copy_documentation(another_function) will copy the documentation found in a different function (for example from a base class). The docstring applied to some function a() will be
(copied from BaseClass.some_function): <documentation from BaseClass.some_function> <optionally the documentation found in a()>
- burnman.tools.unit_normalize(a, order=2, axis=- 1)[source]¶
Calculates the L2 normalized array of numpy array a of a given order and along a given axis.
- burnman.tools.pretty_print_values(popt, pcov, params)[source]¶
Takes a numpy array of parameters, the corresponding covariance matrix and a set of parameter names and prints the parameters and principal 1-s.d.uncertainties (np.sqrt(pcov[i][i])) in a nice text based format.
- burnman.tools.pretty_print_table(table, use_tabs=False)[source]¶
Takes a 2d table and prints it in a nice text based format. If use_tabs=True then only is used as a separator. This is useful for importing the data into other apps (Excel, …). The default is to pad the columns with spaces to make them look neat. The first column is left aligned, while the remainder is right aligned.
- burnman.tools.pretty_plot()[source]¶
Makes pretty plots. Overwrites the matplotlib default settings to allow for better fonts. Slows down plotting
- burnman.tools.linear_interpol(x, x1, x2, y1, y2)[source]¶
Linearly interpolate to point x, between the points (x1,y1), (x2,y2)
- burnman.tools.array_from_file(filename)[source]¶
Generic function to read a file containing floats and commented lines into a 2D numpy array.
Commented lines are prefixed by the characters # or %.
- burnman.tools.molar_volume_from_unit_cell_volume(unit_cell_v, z)[source]¶
Converts a unit cell volume from Angstroms^3 per unitcell, to m^3/mol.
- Parameters
- unit_cell_vfloat
Unit cell volumes [A^3/unit cell]
- zfloat
Number of formula units per unit cell
- Returns
- Vfloat
Volume [m^3/mol]
- burnman.tools.equilibrium_pressure(minerals, stoichiometry, temperature, pressure_initial_guess=100000.0)[source]¶
Given a list of minerals, their reaction stoichiometries and a temperature of interest, compute the equilibrium pressure of the reaction.
- Parameters
- mineralslist of minerals
List of minerals involved in the reaction.
- stoichiometrylist of floats
Reaction stoichiometry for the minerals provided. Reactants and products should have the opposite signs [mol]
- temperaturefloat
Temperature of interest [K]
- pressure_initial_guessoptional float
Initial pressure guess [Pa]
- Returns
- pressurefloat
The equilibrium pressure of the reaction [Pa]
- burnman.tools.equilibrium_temperature(minerals, stoichiometry, pressure, temperature_initial_guess=1000.0)[source]¶
Given a list of minerals, their reaction stoichiometries and a pressure of interest, compute the equilibrium temperature of the reaction.
- Parameters
- mineralslist of minerals
List of minerals involved in the reaction.
- stoichiometrylist of floats
Reaction stoichiometry for the minerals provided. Reactants and products should have the opposite signs [mol]
- pressurefloat
Pressure of interest [Pa]
- temperature_initial_guessoptional float
Initial temperature guess [K]
- Returns
- temperaturefloat
The equilibrium temperature of the reaction [K]
- burnman.tools.invariant_point(minerals_r1, stoichiometry_r1, minerals_r2, stoichiometry_r2, pressure_temperature_initial_guess=[1000000000.0, 1000.0])[source]¶
Given a list of minerals, their reaction stoichiometries and a pressure of interest, compute the equilibrium temperature of the reaction.
- Parameters
- mineralslist of minerals
List of minerals involved in the reaction.
- stoichiometrylist of floats
Reaction stoichiometry for the minerals provided. Reactants and products should have the opposite signs [mol]
- pressurefloat
Pressure of interest [Pa]
- temperature_initial_guessoptional float
Initial temperature guess [K]
- Returns
- temperaturefloat
The equilibrium temperature of the reaction [K]
- burnman.tools.hugoniot(mineral, P_ref, T_ref, pressures, reference_mineral=None)[source]¶
Calculates the temperatures (and volumes) along a Hugoniot as a function of pressure according to the Hugoniot equation U2-U1 = 0.5*(p2 - p1)(V1 - V2) where U and V are the internal energies and volumes (mass or molar) and U = F + TS
- Parameters
- mineralmineral
Mineral for which the Hugoniot is to be calculated.
- P_reffloat
Reference pressure [Pa]
- T_reffloat
Reference temperature [K]
- pressuresnumpy array of floats
Set of pressures [Pa] for which the Hugoniot temperature and volume should be calculated
- reference_mineralmineral
Mineral which is stable at the reference conditions Provides an alternative U_0 and V_0 when the reference mineral transforms to the mineral of interest at some (unspecified) pressure.
- Returns
- temperaturesnumpy array of floats
The Hugoniot temperatures at pressure
- volumesnumpy array of floats
The Hugoniot volumes at pressure
- burnman.tools.convert_fractions(composite, phase_fractions, input_type, output_type)[source]¶
Takes a composite with a set of user defined molar, volume or mass fractions (which do not have to be the fractions currently associated with the composite) and converts the fractions to molar, mass or volume.
Conversions to and from mass require a molar mass to be defined for all phases. Conversions to and from volume require set_state to have been called for the composite.
- Parameters
- compositeComposite
Composite for which fractions are to be defined.
- phase_fractionslist of floats
List of input phase fractions (of type input_type)
- input_typestring
Input fraction type: ‘molar’, ‘mass’ or ‘volume’
- output_typestring
Output fraction type: ‘molar’, ‘mass’ or ‘volume’
- Returns
- output_fractionslist of floats
List of output phase fractions (of type output_type)
- burnman.tools.bracket(fn, x0, dx, args=(), ratio=1.618, maxiter=100)[source]¶
Given a function and a starting guess, find two inputs for the function that bracket a root.
- Parameters
- fnfunction
The function to bracket
- x0float
The starting guess
- dxfloat
Small step for starting the search
- argsparameter list
Additional arguments to give to fn
- ratio :
The step size increases by this ratio every step in the search. Defaults to the golden ratio.
- maxiterint
The maximum number of steps before giving up.
- Returns
- xa, xb, fa, fb: floats
xa and xb are the inputs which bracket a root of fn. fa and fb are the values of the function at those points. If the bracket function takes more than maxiter steps, it raises a ValueError.
- burnman.tools.check_eos_consistency(m, P=1000000000.0, T=300.0, tol=0.0001, verbose=False, including_shear_properties=True)[source]¶
Compute numerical derivatives of the gibbs free energy of a mineral under given conditions, and check these values against those provided analytically by the equation of state
- Parameters
- mmineral
The mineral for which the equation of state is to be checked for consistency
- Pfloat
The pressure at which to check consistency
- Tfloat
The temperature at which to check consistency
- tolfloat
The fractional tolerance for each of the checks
- verboseboolean
Decide whether to print information about each check
- including_shear_propertiesboolean
Decide whether to check shear information, which is pointless for liquids and equations of state without shear modulus parameterizations
- Returns
- consistency: boolean
If all checks pass, returns True
- burnman.tools.smooth_array(array, grid_spacing, gaussian_rms_widths, truncate=4.0, mode='inverse_mirror')[source]¶
Creates a smoothed array by convolving it with a gaussian filter. Grid resolutions and gaussian RMS widths are required for each of the axes of the numpy array. The smoothing is truncated at a user-defined number of standard deviations. The edges of the array can be padded in a number of different ways given by the ‘mode’ parameter.
- Parameters
- arraynumpy ndarray
The array to smooth
- grid_spacingnumpy array of floats
The spacing of points along each axis
- gaussian_rms_widthsnumpy array of floats
The Gaussian RMS widths/standard deviations for the Gaussian convolution.
- truncatefloat (default=4.)
The number of standard deviations at which to truncate the smoothing.
- mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’, ‘inverse_mirror’}
The mode parameter determines how the array borders are handled either by scipy.ndimage.filters.gaussian_filter. Default is ‘inverse_mirror’, which uses burnman.tools._pad_ndarray_inverse_mirror().
- Returns
- smoothed_array: numpy ndarray
The smoothed array
- burnman.tools.interp_smoothed_array_and_derivatives(array, x_values, y_values, x_stdev=0.0, y_stdev=0.0, truncate=4.0, mode='inverse_mirror', indexing='xy')[source]¶
Creates a smoothed array on a regular 2D grid. Smoothing is achieved using burnman.tools.smooth_array(). Outputs scipy.interpolate.interp2d() interpolators which can be used to query the array, or its derivatives in the x- and y- directions.
- Parameters
- array2D numpy array
The array to smooth. Each element array[i][j] corresponds to the position x_values[i], y_values[j]
- x_values1D numpy array
The gridded x values over which to create the smoothed grid
- y_values1D numpy array
The gridded y_values over which to create the smoothed grid
- x_stdevfloat
The standard deviation for the Gaussian filter along the x axis
- y_stdevfloat
The standard deviation for the Gaussian filter along the x axis
- truncatefloat (optional)
The number of standard deviations at which to truncate the smoothing (default = 4.).
- mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’, ‘inverse_mirror’}
The mode parameter determines how the array borders are handled either by scipy.ndimage.filters.gaussian_filter. Default is ‘inverse_mirror’, which uses burnman.tools._pad_ndarray_inverse_mirror().
- indexing{‘xy’, ‘ij’}, optional
Cartesian (‘xy’, default) or matrix (‘ij’) indexing of output. See numpy.meshgrid for more details.
- Returns
- interps: tuple of three interp2d functors
interpolation functions for the smoothed property and the first derivatives with respect to x and y.
- burnman.tools.attribute_function(m, attributes, powers=[])[source]¶
Function which returns a function which can be used to evaluate material properties at a point. This function allows the user to define the property returned as a string. The function can itself be passed to another function (such as nonlinear_fitting.confidence_prediction_bands()).
Properties can either be simple attributes (e.g. K_T) or a product of attributes, each raised to some power.
- Parameters
- mMaterial
The material instance evaluated by the output function.
- attributeslist of strings
The list of material attributes / properties to be evaluated in the product
- powerslist of floats
The powers to which each attribute should be raised during evaluation
- Returns
- ——-
- ffunction(x)
Function which returns the value of product(a_i**p_i) as a function of condition (x = [P, T, V])
- burnman.tools.compare_l2(depth, calc, obs)[source]¶
Computes the L2 norm for N profiles at a time (assumed to be linear between points).
- Parameters
depths (array of float) – depths. \([m]\)
calc (list of arrays of float) – N arrays calculated values, e.g. [mat_vs,mat_vphi]
obs (list of arrays of float) – N arrays of values (observed or calculated) to compare to , e.g. [seis_vs, seis_vphi]
- Returns
array of L2 norms of length N
- Return type
array of floats
- burnman.tools.compare_chifactor(calc, obs)[source]¶
Computes the chi factor for N profiles at a time. Assumes a 1% a priori uncertainty on the seismic model.
- Parameters
calc (list of arrays of float) – N arrays calculated values, e.g. [mat_vs,mat_vphi]
obs (list of arrays of float) – N arrays of values (observed or calculated) to compare to , e.g. [seis_vs, seis_vphi]
- Returns
error array of length N
- Return type
array of floats
- burnman.tools.l2(x, funca, funcb)[source]¶
Computes the L2 norm for one profile(assumed to be linear between points).
- Parameters
x (array of float) – depths \([m]\).
funca (list of arrays of float) – array calculated values
funcb (list of arrays of float) – array of values (observed or calculated) to compare to
- Returns
L2 norm
- Return type
array of floats
- burnman.tools.nrmse(x, funca, funcb)[source]¶
Normalized root mean square error for one profile :type x: array of float :param x: depths in m. :type funca: list of arrays of float :param funca: array calculated values :type funcb: list of arrays of float :param funcb: array of values (observed or calculated) to compare to
- Returns
RMS error
- Return type
array of floats
- burnman.tools.chi_factor(calc, obs)[source]¶
\(\chi\) factor for one profile assuming 1% uncertainty on the reference model (obs) :type calc: list of arrays of float :param calc: array calculated values :type obs: list of arrays of float :param obs: array of reference values to compare to
- Returns
\(\chi\) factor
- Return type
array of floats
Bibliography¶
Bibliography
- And82
O. L. Anderson. The Earth's Core and the Phase Diagram of Iron. Philos. T. Roy. Soc. A, 306(1492):21–35, 1982. URL: http://rsta.royalsocietypublishing.org/content/306/1492/21.abstract.
- ASA+11
D Antonangeli, J Siebert, CM Aracne, D Farber, A Bosak, M Hoesch, M Krisch, F Ryerson, G Fiquet, and J Badro. Spin crossover in ferropericlase at high pressure: a seismologically transparent transition? Science, 331(6031):64–67, 2011. URL: http://www.sciencemag.org/content/331/6013/64.short.
- BS81
JM Brown and TJ Shankland. Thermodynamic parameters in the Earth as determined from seismic profiles. Geophys. J. Int., 66(3):579–596, 1981. URL: http://gji.oxfordjournals.org/content/66/3/579.short.
- CGDG05
F Cammarano, S Goes, A Deuss, and D Giardini. Is a pyrolitic adiabatic mantle compatible with seismic data? Earth Planet. Sci. Lett., 232(3):227–243, 2005. URL: http://www.sciencedirect.com/science/article/pii/S0012821X05000804.
- Cam13
F. Cammarano. A short note on the pressure-depth conversion for geophysical interpretation. Geophysical Research Letters, 40(18):4834–4838, 2013. URL: https://doi.org/10.1002/grl.50887, doi:10.1002/grl.50887.
- CHS87
CP Chin, S Hertzman, and B Sundman. An evaluation of the composition dependence of the magnetic order-disorder transition in cr-fe-co-ni alloys. Materials Research Center, The Royal Institute of Technology (Stockholm, Sweden), Report TRITA-MAC, 1987.
- CGR+09
L Cobden, S Goes, M Ravenna, E Styles, F Cammarano, K Gallagher, and JA Connolly. Thermochemical interpretation of 1-D seismic data for the lower mantle: The significance of nonadiabatic thermal gradients and compositional heterogeneity. J. Geophys. Res., 114:B11309, 2009. URL: http://www.agu.org/journals/jb/jb0911/2008JB006262/2008jb006262-t01.txt.
- Con05
JAD Connolly. Computation of phase equilibria by linear programming: a tool for geodynamic modeling and its application to subduction zone decarbonation. Earth Planet. Sci. Lett., 236(1):524–541, 2005. URL: http://www.sciencedirect.com/science/article/pii/S0012821X05002839.
- CHRU14
Sanne Cottaar, Timo Heister, Ian Rose, and Cayman Unterborn. Burnman: a lower mantle mineral physics toolkit. Geochemistry, Geophysics, Geosystems, 15(4):1164–1179, 2014. URL: https://doi.org/10.1002/2013GC005122, doi:10.1002/2013GC005122.
- DGD+12
DR Davies, S Goes, JH Davies, BSA Shuberth, H-P Bunge, and J Ritsema. Reconciling dynamic and seismic models of Earth's lower mantle: The dominant role of thermal heterogeneity. Earth Planet. Sci. Lett., 353:253–269, 2012. URL: http://www.sciencedirect.com/science/article/pii/S0012821X1200444X.
- DCT12
F Deschamps, L Cobden, and PJ Tackley. The primitive nature of large low shear-wave velocity provinces. Earth Planet. Sci. Lett., 349-350:198–208, 2012. URL: http://www.sciencedirect.com/science/article/pii/S0012821X12003718.
- DT03
Frédéric Deschamps and Jeannot Trampert. Mantle tomography and its relation to temperature and composition. Phys. Earth Planet. Int., 140(4):277–291, December 2003. URL: http://www.sciencedirect.com/science/article/pii/S0031920103001894, doi:10.1016/j.pepi.2003.09.004.
- DPWH07
J. F. A. Diener, R. Powell, R. W. White, and T. J. B. Holland. A new thermodynamic model for clino- and orthoamphiboles in the system Na$_2$O–CaO–FeO–MgO–Al$_2$O$_3$–SiO$_2$–H$_2$O–O. Journal of Metamorphic Geology, 25(6):631–656, 2007. URL: https://doi.org/10.1111/j.1525-1314.2007.00720.x, doi:10.1111/j.1525-1314.2007.00720.x.
- DA81
A M Dziewonski and D L Anderson. Preliminary reference Earth model. Phys. Earth Planet. Int., 25(4):297–356, 1981.
- HW12
Y He and L Wen. Geographic boundary of the “Pacific Anomaly” and its geometry and transitional structure in the north. J. Geophys. Res.-Sol. Ea., 2012. URL: http://onlinelibrary.wiley.com/doi/10.1029/2012JB009436/full, doi:DOI: 10.1029/2012JB009436.
- HW89
George Helffrich and Bernard J Wood. Subregular model for multicomponent solutions. American Mineralogist, 74(9-10):1016–1022, 1989.
- HernandezAlfeB13
ER Hernández, D Alfè, and J Brodholt. The incorporation of water into lower-mantle perovskites: A first-principles study. Earth Planet. Sci. Lett., 364:37–43, 2013. URL: http://www.sciencedirect.com/science/article/pii/S0012821X13000137.
- HHPH13a
T. J. B. Holland, N. F. C. Hudson, R. Powell, and B. Harte. New Thermodynamic Models and Calculated Phase Equilibria in NCFMAS for Basic and Ultrabasic Compositions through the Transition Zone into the Uppermost Lower Mantle. Journal of Petrology, 54(9):1901–1920, July 2013. URL: http://petrology.oxfordjournals.org/content/54/9/1901.short, doi:10.1093/petrology/egt035.
- HP90
T. J. B. Holland and R. Powell. An enlarged and updated internally consistent thermodynamic dataset with uncertainties and correlations: the system K2O-Na$_2$O-CaO-MgO-MnO-FeO-Fe$_2$O$_3$-Al$_2$O$_3$-TiO$_2$-SiO$_2$-C-H$_2$-O$_2$. Journal of Metamorphic Geology, 8(1):89–124, 1990. URL: https://doi.org/10.1111/j.1525-1314.1990.tb00458.x, doi:10.1111/j.1525-1314.1990.tb00458.x.
- HP06
T. J. B. Holland and R. Powell. Mineral activity–composition relations and petrological calculations involving cation equipartition in multisite minerals: a logical inconsistency. Journal of Metamorphic Geology, 24(9):851–861, 2006. URL: https://doi.org/10.1111/j.1525-1314.2006.00672.x, doi:10.1111/j.1525-1314.2006.00672.x.
- HP91
Tim Holland and Roger Powell. A Compensated-Redlich-Kwong (CORK) equation for volumes and fugacities of CO2 and H2O in the range 1 bar to 50 kbar and 100–1600°C. Contributions to Mineralogy and Petrology, 109(2):265–273, 1991. URL: https://doi.org/10.1007/BF00306484, doi:10.1007/BF00306484.
- HP96
Tim Holland and Roger Powell. Thermodynamics of order-disorder in minerals; ii, symmetric formalism applied to solid solutions. American Mineralogist, 81(11-12):1425–1437, 1996. URL: http://ammin.geoscienceworld.org/content/81/11-12/1425, arXiv:http://ammin.geoscienceworld.org/content/81/11-12/1425, doi:10.2138/am-1996-11-1215.
- HHPH13b
Tim J.B. Holland, Neil F.C. Hudson, Roger Powell, and Ben Harte. New thermodynamic models and calculated phase equilibria in NCFMAS for basic and ultrabasic compositions through the transition zone into the uppermost lower mantle. Journal of Petrology, 54(9):1901–1920, 2013. URL: http://petrology.oxfordjournals.org/content/54/9/1901.abstract, arXiv:http://petrology.oxfordjournals.org/content/54/9/1901.full.pdf+html, doi:10.1093/petrology/egt035.
- HMSL08
C Houser, G Masters, P Shearer, and G Laske. Shear and compressional velocity models of the mantle from cluster analysis of long-period waveforms. Geophys. J. Int., 174(1):195–212, 2008.
- IWSY10
T Inoue, T Wada, R Sasaki, and H Yurimoto. Water partitioning in the Earth's mantle. Phys. Earth Planet. Int., 183(1):245–251, 2010. URL: http://www.sciencedirect.com/science/article/pii/S0031920110001573.
- IS92
Joel Ita and Lars Stixrude. Petrology, elasticity, and composition of the mantle transition zone. Journal of Geophysical Research, 97(B5):6849, 1992. URL: http://doi.wiley.com/10.1029/92JB00068, doi:10.1029/92JB00068.
- Jac98
Ian Jackson. Elasticity, composition and temperature of the Earth’s lower mantle: a reappraisal. Geophys. J. Int., 134(1):291–311, July 1998. URL: http://gji.oxfordjournals.org/content/134/1/291.abstract, doi:10.1046/j.1365-246x.1998.00560.x.
- JCK+10
Matthew G Jackson, Richard W Carlson, Mark D Kurz, Pamela D Kempton, Don Francis, and Jerzy Blusztajn. Evidence for the survival of the oldest terrestrial mantle reservoir. Nature, 466(7308):853–856, 2010.
- KS90
SI Karato and HA Spetzler. Defect microdynamics in minerals and solid-state mechanisms of seismic wave attenuation and velocity dispersion in the mantle. Rev. Geophys., 28(4):399–421, 1990. URL: http://onlinelibrary.wiley.com/doi/10.1029/RG028i004p00399/full.
- Kea54
A Keane. An Investigation of Finite Strain in an Isotropic Material Subjected to Hydrostatic Pressure and its Seismological Applications. Australian Journal of Physics, 7(2):322, 1954. URL: http://www.publish.csiro.au/?paper=PH540322, doi:10.1071/PH540322.
- KEB95
BLN Kennett, E R Engdahl, and R Buland. Constraints on seismic velocities in the Earth from traveltimes. Geophys. J. Int., 122(1):108–124, 1995. URL: http://gji.oxfordjournals.org/content/122/1/108.short.
- KE91
BLN Kennett and ER Engdahl. Traveltimes for global earthquake location and phase identification. Geophysical Journal International, 105(2):429–465, 1991.
- KHM+12
Y Kudo, K Hirose, M Murakami, Y Asahara, H Ozawa, Y Ohishi, and N Hirao. Sound velocity measurements of CaSiO_3 perovskite to 133 GPa and implications for lowermost mantle seismic anomalies. Earth Planet. Sci. Lett., 349:1–7, 2012. URL: http://www.sciencedirect.com/science/article/pii/S0012821X1200324X.
- KED08
B Kustowski, G Ekstrom, and AM Dziewoński. Anisotropic shear-wave velocity structure of the Earth's mantle: a global model. J. Geophys. Res., 113(B6):B06306, 2008. URL: http://www.agu.org/pubs/crossref/2008/2007JB005169.shtml.
- LCDR12
V Lekic, S Cottaar, A M Dziewonski, and B Romanowicz. Cluster analysis of global lower mantle tomography: A new class of structure and implications for chemical heterogeneity. Earth Planet. Sci. Lett., 357-358:68–77, 2012. URL: http://www.sciencedirect.com/science/article/pii/S0012821X12005109.
- LvdH08
C Li and RD van der Hilst. A new global model for P wave speed variations in Earth's mantle. Geochem. Geophys. Geosyst., 2008. URL: http://onlinelibrary.wiley.com/doi/10.1029/2007GC001806/full.
- LSMM13
JF Lin, S Speziale, Z Mao, and H Marquardt. Effects of the electronic spin transitions of iron in lower mantle minerals: Implications for deep mantle geophysics and geochemistry. Rev. Geophys., 2013. URL: http://onlinelibrary.wiley.com/doi/10.1002/rog.20010/full.
- LVJ+07
Jung-Fu Lin, György Vankó, Steven D. Jacobsen, Valentin Iota, Viktor V. Struzhkin, Vitali B. Prakapenka, Alexei Kuznetsov, and Choong-Shik Yoo. Spin transition zone in Earth's lower mantle. Science, 317(5845):1740–1743, 2007. URL: http://www.sciencemag.org/content/317/5845/1740.abstract, arXiv:http://www.sciencemag.org/content/317/5845/1740.full.pdf.
- MegninR00
C Mégnin and B Romanowicz. The three-dimensional shear velocity structure of the mantle from the inversion of body, surface and higher-mode waveforms. Geophys. J. Int., 143(3):709–728, 2000.
- MLS+11
Z Mao, JF Lin, HP Scott, HC Watson, VB Prakapenka, Y Xiao, P Chow, and C McCammon. Iron-rich perovskite in the Earth's lower mantle. Earth Planet. Sci. Lett., 309(3):179–184, 2011. URL: http://www.sciencedirect.com/science/article/pii/S0012821X11004018.
- MWF11
G. Masters, J.H. Woodhouse, and G. Freeman. Mineos v1.0.2 [software]. Computational Infrastructure for Geodynamics, :99, 2011. URL: https://geodynamics.org/cig/software/mineos/.
- MBR+07
J Matas, J Bass, Y Ricard, E Mattern, and MST Bukowinski. On the bulk composition of the lower mantle: predictions and limitations from generalized inversion of radial seismic profiles. Geophys. J. Int., 170(2):764–780, 2007. URL: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-246X.2007.03454.x/full.
- MB07
J Matas and MST Bukowinski. On the anelastic contribution to the temperature dezpendence of lower mantle seismic velocities. Earth Planet. Sci. Lett., 259(1):51–65, 2007. URL: http://www.sciencedirect.com/science/article/pii/S0012821X07002555.
- MMRB05
E. Mattern, J. Matas, Y. Ricard, and J. Bass. Lower mantle composition and temperature from mineral physics and thermodynamic modelling. Geophys. J. Int., 160(3):973–990, March 2005. URL: http://gji.oxfordjournals.org/cgi/doi/10.1111/j.1365-246X.2004.02549.x, doi:10.1111/j.1365-246X.2004.02549.x.
- MS95
WF McDonough and SS Sun. The composition of the Earth. Chem. Geol., 120(3):223–253, 1995. URL: http://www.sciencedirect.com/science/article/pii/0009254194001404.
- MA81
JB Minster and DL Anderson. A model of dislocation-controlled rheology for the mantle. Phil. Trans. R. Soc. Lond., 299(1449):319–359, 1981. URL: http://rsta.royalsocietypublishing.org/content/299/1449/319.short.
- MCD+12
I Mosca, L Cobden, A Deuss, J Ritsema, and J Trampert. Seismic and mineralogical structures of the lower mantle from probabilistic tomography. J. Geophys. Res.: Solid Earth, 2012. URL: http://onlinelibrary.wiley.com/doi/10.1029/2011JB008851/full.
- Mur13
M Murakami. 6 Chemical Composition of the Earth's Lower Mantle: Constraints from Elasticity. In Physics and Chemistry of the Deep Earth (ed S.-I. Karato), pages 183–212. John Wiley & Sons, Ltd, Chichester, UK, 2013. URL: http://books.google.com/books?hl=en\&lr=\&id=7z9yES2XNyEC\&pgis=1.
- MOHH12
M Murakami, Y Ohishi, N Hirao, and K Hirose. A perovskitic lower mantle inferred from high-pressure, high-temperature sound velocity data. Nature, 485(7396):90–94, 2012.
- MSH+07
M Murakami, S Sinogeikin, H Hellwig, J Bass, and J Li. Sound velocity of MgSiO3 perovskite to Mbar pressure. Earth Planet. Sci. Lett., 256(1-2):47–54, April 2007. URL: http://www.sciencedirect.com/science/article/pii/S0012821X07000167, doi:10.1016/j.epsl.2007.01.011.
- MOHH09
Motohiko Murakami, Yasuo Ohishi, Naohisa Hirao, and Kei Hirose. Elasticity of MgO to 130 GPa: Implications for lower mantle mineralogy. Earth Planet. Sci. Lett., 277(1-2):123–129, January 2009. URL: http://www.sciencedirect.com/science/article/pii/S0012821X08006675, doi:10.1016/j.epsl.2008.10.010.
- NTDC12
T Nakagawa, PJ Tackley, F Deschamps, and JAD Connolly. Radial 1-D seismic structures in the deep mantle in mantle convection simulations with self-consistently calculated mineralogy. Geochem. Geophys. Geosyst., 2012. URL: http://onlinelibrary.wiley.com/doi/10.1029/2012GC004325/full.
- NFR12
Y Nakajima, DJ Frost, and DC Rubie. Ferrous iron partitioning between magnesium silicate perovskite and ferropericlase and the composition of perovskite in the Earth's lower mantle. J. Geophys. Res., 2012. URL: http://onlinelibrary.wiley.com/doi/10.1029/2012JB009151/full.
- NKHO13
M Noguchi, T Komabayashi, K Hirose, and Y Ohishi. High-temperature compression experiments of CaSiO_3 perovskite to lowermost mantle conditions and its thermal equation of state. Phys. Chem. Miner., 40(1):81–91, 2013. URL: http://link.springer.com/article/10.1007/s00269-012-0549-1.
- NOT+11
R Nomura, H Ozawa, S Tateno, K Hirose, J Hernlund, S Muto, H Ishii, and N Hiraoka. Spin crossover and iron-rich silicate melt in the Earth's deep mantle. Nature, 473(7346):199–202, 2011. URL: http://www.nature.com/nature/journal/v473/n7346/abs/nature09940.html.
- PR06
M Panning and B Romanowicz. A three-dimensional radially anisotropic model of shear velocity in the whole mantle. Geophys. J. Int., 167(1):361–379, 2006.
- Poi91
JP Poirier. Introduction to the Physics of the Earth. Cambridge Univ. Press, Cambridge, England, 1991.
- PH85
R. Powell and T. J. B. Holland. An internally consistent thermodynamic dataset with uncertainties and correlations: 1. methods and a worked example. Journal of Metamorphic Geology, 3(4):327–342, 1985. URL: https://doi.org/10.1111/j.1525-1314.1985.tb00324.x, doi:10.1111/j.1525-1314.1985.tb00324.x.
- Pow87
Roger Powell. Darken's quadratic formalism and the thermodynamics of minerals. American Mineralogist, 72(1-2):1–11, 1987. URL: http://ammin.geoscienceworld.org/content/72/1-2/1.short.
- PH93
Roger Powell and Tim Holland. On the formulation of simple mixing models for complex phases. American Mineralogist, 78(11-12):1174–1180, 1993. URL: http://ammin.geoscienceworld.org/content/78/11-12/1174.short.
- PH99
Roger Powell and Tim Holland. Relating formulations of the thermodynamics of mineral solid solutions; activity modeling of pyroxenes, amphiboles, and micas. American Mineralogist, 84(1-2):1–14, 1999. URL: http://ammin.geoscienceworld.org/content/84/1-2/1.abstract, arXiv:http://ammin.geoscienceworld.org/content/84/1-2/1.full.pdf+html.
- RDvHW11
J Ritsema, A Deuss, H. J. van Heijst, and J.H. Woodhouse. S40RTS: a degree-40 shear-velocity model for the mantle from new Rayleigh wave dispersion, teleseismic traveltime and normal-mode splitting function. Geophys. J. Int., 184(3):1223–1236, 2011. URL: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-246X.2010.04884.x/full.
- Sch16
F. A. H. Schreinemakers. In-, mono-, and di-variant equilibria. VIII. Further consideration of the bivariant regions; the turning lines. Proc. K. Akad. Wet. (Netherlands), 18:1539–1552, 1916.
- SZN12
BSA Schuberth, C Zaroli, and G Nolet. Synthetic seismograms for a synthetic Earth: long-period P- and S-wave traveltime variations can be explained by temperature alone. Geophys. J. Int., 188(3):1393–1412, 2012. URL: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-246X.2011.05333.x/full.
- SFBG10
NA Simmons, AM Forte, L Boschi, and SP Grand. GyPSuM: A joint tomographic model of mantle density and seismic wave speeds. J. Geophys. Res., 115(B12):B12310, 2010. URL: http://www.agu.org/pubs/crossref/2010/2010JB007631.shtml.
- SMJM12
NA Simmons, SC Myers, G Johanneson, and E Matzel. LLNL-G3Dv3: Global P wave tomography model for improved regional and teleseismic travel time prediction. J. Geophys. Res., 2012. URL: http://onlinelibrary.wiley.com/doi/10.1029/2012JB009525/full.
- SD04
F.D. Stacey and P.M. Davis. High pressure equations of state with applications to the lower mantle and core. Physics of the Earth and Planetary Interiors, 142(3-4):137–184, may 2004. URL: http://linkinghub.elsevier.com/retrieve/pii/S0031920104001049, doi:10.1016/j.pepi.2004.02.003.
- SD00
Frank D. Stacey and Frank D. The K-primed approach to high-pressure equations of state. Geophysical Journal International, 143(3):621–628, dec 2000. URL: https://academic.oup.com/gji/article-lookup/doi/10.1046/j.1365-246X.2000.00253.x, doi:10.1046/j.1365-246X.2000.00253.x.
- SLB05
L Stixrude and C Lithgow-Bertelloni. Thermodynamics of mantle minerals–I. Physical properties. Geophys. J. Int., 162(2):610–632, 2005. URL: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-246X.2005.02642.x/full.
- SLB11
L Stixrude and C Lithgow-Bertelloni. Thermodynamics of mantle minerals–II. Phase equilibria. Geophys. J. Int., 184(3):1180–1213, 2011. URL: http://onlinelibrary.wiley.com/doi/10.1111/j.1365-246X.2010.04890.x/full.
- SLB12
L Stixrude and C Lithgow-Bertelloni. Geophysics of chemical heterogeneity in the mantle. Annu. Rev. Earth Planet. Sci., 40:569–595, 2012. URL: http://www.annualreviews.org/doi/abs/10.1146/annurev.earth.36.031207.124244.
- SDG11
Elinor Styles, D. Rhodri Davies, and Saskia Goes. Mapping spherical seismic into physical structure: biases from 3-D phase-transition and thermal boundary-layer heterogeneity. Geophys. J. Int., 184(3):1371–1378, March 2011. URL: http://gji.oxfordjournals.org/cgi/doi/10.1111/j.1365-246X.2010.04914.x, doi:10.1111/j.1365-246X.2010.04914.x.
- Sun91
B. Sundman. An assessment of the fe-o system. Journal of Phase Equilibria, 12(2):127–140, 1991. URL: https://doi.org/10.1007/BF02645709, doi:10.1007/BF02645709.
- Tac00
PJ Tackley. Mantle convection and plate tectonics: Toward an integrated physical and chemical theory. Science, 288(5473):2002–2007, 2000. URL: http://www.sciencemag.org/content/288/5473/2002.short.
- TRCT05
A To, B Romanowicz, Y Capdeville, and N Takeuchi. 3D effects of sharp boundaries at the borders of the African and Pacific Superplumes: Observation and modeling. Earth Planet. Sci. Lett., 233(1-2):1447–1460, 2005.
- TDRY04
Jeannot Trampert, Frédéric Deschamps, Joseph Resovsky, and Dave Yuen. Probabilistic tomography maps chemical heterogeneities throughout the lower mantle. Science (New York, N.Y.), 306(5697):853–6, October 2004. URL: http://www.sciencemag.org/content/306/5697/853.full, doi:10.1126/science.1101996.
- TVV01
Jeannot Trampert, Pierre Vacher, and Nico Vlaar. Sensitivities of seismic velocities to temperature, pressure and composition in the lower mantle. Phys. Earth Planet. Int., 124(3-4):255–267, August 2001. URL: http://www.sciencedirect.com/science/article/pii/S0031920101002011, doi:10.1016/S0031-9201(01)00201-1.
- VSFR87
Pascal Vinet, John R Smith, John Ferrante, and James H Rose. Temperature effects on the universal equation of state of solids. Physical Review B, 35(4):1945, 1987. doi:10.1103/PhysRevB.35.1945.
- VFSR86
PJJR Vinet, J Ferrante, JR Smith, and JH Rose. A universal equation of state for solids. Journal of Physics C: Solid State Physics, 19(20):L467, 1986. doi:10.1088/0022-3719/19/20/001.
- WB07
E. Bruce Watson and Ethan F. Baxter. Diffusion in solid-earth systems. Earth and Planetary Science Letters, 253(3–4):307 – 327, 2007. URL: http://www.sciencedirect.com/science/article/pii/S0012821X06008168, doi:https://doi.org/10.1016/j.epsl.2006.11.015.
- WDOConnell76
JP Watt, GF Davies, and RJ O'Connell. The elastic properties of composite materials. Rev. Geophys., 14(4):541–563, 1976. URL: http://onlinelibrary.wiley.com/doi/10.1029/RG014i004p00541/full.
- WPB08
R. W. White, R. Powell, and J. A. Baldwin. Calculated phase equilibria involving chemical potentials to investigate the textural evolution of metamorphic rocks. Journal of Metamorphic Geology, 26(2):181–198, 2008. URL: https://doi.org/10.1111/j.1525-1314.2008.00764.x, doi:10.1111/j.1525-1314.2008.00764.x.
- WP11
RW White and R Powell. On the interpretation of retrograde reaction textures in granulite facies rocks. Journal of Metamorphic Geology, 29(1):131–149, 2011.
- WJW13
Z Wu, JF Justo, and RM Wentzcovitch. Elastic Anomalies in a Spin-Crossover System: Ferropericlase at Lower Mantle Conditions. Phys. Rev. Lett., 110(22):228501, 2013. URL: http://prl.aps.org/abstract/PRL/v110/i22/e228501.
- ZSB13
Zhigang Zhang, Lars Stixrude, and John Brodholt. Elastic properties of MgSiO3-perovskite under lower mantle conditions and the composition of the deep Earth. Earth Planet. Sci. Lett., 379:1–12, October 2013. URL: http://www.sciencedirect.com/science/article/pii/S0012821X13004093, doi:10.1016/j.epsl.2013.07.034.
- AndersonCrerar89
G. M. Anderson and D. A. Crerar. Thermodynamics in geochemistry: The equilibrium model. Oxford University Press, 1989.
- AndersonAhrens94
W. W. Anderson and T. J. Ahrens. An equation of state for liquid iron and implications for the Earth's core. Journal of Geophysical Research, 99:4273–4284, March 1994. doi:10.1029/93JB03158.
- Darken67
L. S. Darken. Thermodynamics of binary metallic solutions. Metallurgical Society of AIME Transactions, 239:80–89, 1967.
- deKokerKarkiStixrude13
N. de Koker, B. B. Karki, and L. Stixrude. Thermodynamics of the MgO-SiO$_2$ liquid system in Earth's lowermost mantle from first principles. Earth and Planetary Science Letters, 361:58–63, January 2013. doi:10.1016/j.epsl.2012.11.026.
- HamaSuito98
J. Hama and K. Suito. High-temperature equation of state of CaSiO $_3$ perovskite and its implications for the lower mantle. Physics of the Earth and Planetary Interiors, 105:33–46, February 1998. doi:10.1016/S0031-9201(97)00074-5.
- HollandPowell03
T. Holland and R. Powell. Activity-composition relations for phases in petrological calculations: an asymmetric multicomponent formulation. Contributions to Mineralogy and Petrology, 145:492–501, 2003. doi:10.1007/s00410-003-0464-z.
- HollandPowell98
T. J. B. Holland and R. Powell. An internally consistent thermodynamic data set for phases of petrological interest. Journal of Metamorphic Geology, 16(3):309–343, 1998. URL: https://doi.org/10.1111/j.1525-1314.1998.00140.x, doi:10.1111/j.1525-1314.1998.00140.x.
- HollandPowell11
T. J. B. Holland and R. Powell. An improved and extended internally consistent thermodynamic dataset for phases of petrological interest, involving a new equation of state for solids. Journal of Metamorphic Geology, 29(3):333–383, 2011. URL: https://doi.org/10.1111/j.1525-1314.2010.00923.x, doi:10.1111/j.1525-1314.2010.00923.x.
- HuangChow74
Y. K. Huang and C. Y. Chow. The generalized compressibility equation of Tait for dense matter. Journal of Physics D Applied Physics, 7:2021–2023, October 1974. doi:10.1088/0022-3727/7/15/305.
- NissenMeyervanDrielStahler+14
T. Nissen-Meyer, M. van Driel, S. C. Stähler, K. Hosseini, S. Hempel, L. Auer, A. Colombi, and A. Fournier. AxiSEM: broadband 3-D seismic wavefields in axisymmetric media. Solid Earth, 5:425–445, June 2014. doi:10.5194/se-5-425-2014.
- Putnis92
A. Putnis. An Introduction to Mineral Sciences. Cambridge University Press, November 1992.
- Rydberg32
R. Rydberg. Graphische Darstellung einiger bandenspektroskopischer Ergebnisse. Zeitschrift fur Physik, 73:376–385, May 1932. doi:10.1007/BF01341146.
- StaceyBrennanIrvine81
F. D. Stacey, B. J. Brennan, and R. D. Irvine. Finite strain theories and comparisons with seismological data. Geophysical Surveys, 4:189–232, April 1981. doi:10.1007/BF01449185.
- vanLaar06
J. J. van Laar. Sechs vorträge über das thermodynamischer potential. Vieweg, Brunswick, 1906.