Equations of state

Base class

class burnman.eos.EquationOfState

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

volume : float

Molar volume of the mineral. \([m^3]\)

pressure(temperature, volume, params)
Parameters:

volume : float

Molar volume at which to evaluate the equation of state. [m^3]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

pressure : float

Pressure of the mineral, including cold and thermal parts. [m^3]

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

grueneisen_parameter(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

gamma : float

Grueneisen parameter of the mineral. \([unitless]\)

isothermal_bulk_modulus(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

K_T : float

Isothermal bulk modulus of the mineral. \([Pa]\)

adiabatic_bulk_modulus(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

K_S : float

Adiabatic bulk modulus of the mineral. \([Pa]\)

shear_modulus(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Shear modulus of the mineral. \([Pa]\)

heat_capacity_v(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

C_V : float

Heat capacity at constant volume of the mineral. \([J/K/mol]\)

heat_capacity_p(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

C_P : float

Heat capacity at constant pressure of the mineral. \([J/K/mol]\)

thermal_expansivity(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. \([Pa]\)

temperature : float

Temperature at which to evaluate the equation of state. \([K]\)

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). \([m^3]\)

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

alpha : float

Thermal expansivity of the mineral. \([1/K]\)

gibbs_free_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

entropy(pressure, temperature, volume, params)

Returns the entropy at the pressure and temperature of the mineral [J/K/mol]

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

validate_parameters(params)

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:

params : dictionary

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 and burnman.birch_murnaghan.BM3.

volume(pressure, temperature, params)[source]

Returns volume \([m^3]\) as a function of pressure \([Pa]\).

pressure(temperature, volume, params)[source]
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]\)

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]\)

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

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

class burnman.eos.BM2

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

grueneisen_parameter(pressure, temperature, volume, params)

Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)

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]\)

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]\)

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal 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]\).

pressure(temperature, volume, params)
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

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

grueneisen_parameter(pressure, temperature, volume, params)

Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)

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]\)

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]\)

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal 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]\).

pressure(temperature, volume, params)
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]\).

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 and burnman.slb.SLB3 classes.

volume_dependent_q(x, params)[source]

Finite strain approximation for \(q\), the isotropic volume strain derivative of the grueneisen parameter.

volume(pressure, temperature, params)[source]

Returns molar volume. \([m^3]\)

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]\)

heat_capacity_v(pressure, temperature, volume, params)[source]

Returns heat capacity at constant volume. \([J/K/mol]\)

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]

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]

validate_parameters(params)[source]

Check for existence and validity of the parameters

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

class burnman.eos.SLB2

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

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]\)

heat_capacity_p(pressure, temperature, volume, params)

Returns heat capacity at constant pressure. \([J/K/mol]\)

heat_capacity_v(pressure, temperature, volume, params)

Returns heat capacity at constant volume. \([J/K/mol]\)

helmholtz_free_energy(pressure, temperature, volume, params)

Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]

internal_energy(pressure, temperature, volume, params)

Returns the internal energy at the pressure and temperature of the mineral [J/mol]

isothermal_bulk_modulus(pressure, temperature, volume, params)

Returns isothermal bulk modulus \([Pa]\)

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

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

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]\)

heat_capacity_p(pressure, temperature, volume, params)

Returns heat capacity at constant pressure. \([J/K/mol]\)

heat_capacity_v(pressure, temperature, volume, params)

Returns heat capacity at constant volume. \([J/K/mol]\)

helmholtz_free_energy(pressure, temperature, volume, params)

Returns the Helmholtz free energy at the pressure and temperature of the mineral [J/mol]

internal_energy(pressure, temperature, volume, params)

Returns the internal energy at the pressure and temperature of the mineral [J/mol]

isothermal_bulk_modulus(pressure, temperature, volume, params)

Returns isothermal bulk modulus \([Pa]\)

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

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]

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

validate_parameters(params)[source]

Check for existence and validity of the parameters

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

class burnman.eos.MGD2

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

grueneisen_parameter(pressure, temperature, volume, params)

Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume (EQ B6)

heat_capacity_p(pressure, temperature, volume, params)

Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]

heat_capacity_v(pressure, temperature, volume, params)

Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol]

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

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

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

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:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

grueneisen_parameter(pressure, temperature, volume, params)

Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume (EQ B6)

heat_capacity_p(pressure, temperature, volume, params)

Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]

heat_capacity_v(pressure, temperature, volume, params)

Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol]

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

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

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

Bases: burnman.eos.equation_of_state.EquationOfState

Base class for a generic modified Tait equation of state. References for this can be found in Huang and Chow (1974) and Holland and Powell (2011; 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)

Returns volume \([m^3]\) as a function of pressure \([Pa]\).

pressure(temperature, volume, params)

Returns pressure [Pa] as a function of temperature [K] and volume[m^3]

isothermal_bulk_modulus(pressure, temperature, volume, params)

Returns isothermal bulk modulus \(K_T\) of the mineral. \([Pa]\).

adiabatic_bulk_modulus(pressure, temperature, volume, params)

Since this equation of state does not contain temperature effects, simply return a very large number. \([Pa]\)

shear_modulus(pressure, temperature, volume, params)

Not implemented in the Modified Tait EoS. \([Pa]\) Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.

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]\)

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]\)

thermal_expansivity(pressure, temperature, volume, params)

Since this equation of state does not contain temperature effects, simply return zero. \([1/K]\)

grueneisen_parameter(pressure, temperature, volume, params)

Since this equation of state does not contain temperature effects, simply return zero. \([unitless]\)

validate_parameters(params)

Check for existence and validity of the parameters

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

Enthalpy of the mineral

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)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

G : float

Gibbs free energy of the mineral

helmholtz_free_energy(pressure, temperature, volume, params)
Parameters:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

Cork

class burnman.eos.CORK

Bases: burnman.eos.equation_of_state.EquationOfState

Base class for a generic modified Tait equation of state. References for this can be found in Huang and Chow (1974) and Holland and Powell (2011; followed here).

grueneisen_parameter(pressure, temperature, volume, params)

Returns grueneisen parameter [unitless] as a function of pressure, temperature, and volume.

volume(pressure, temperature, params)

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)

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)

Not implemented. Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.

heat_capacity_v(pressure, temperature, volume, params)

Returns heat capacity at constant volume at the pressure, temperature, and volume [J/K/mol].

thermal_expansivity(pressure, temperature, volume, params)

Returns thermal expansivity at the pressure, temperature, and volume [1/K] Replace -Pth in EQ 13+1 with P-Pth for non-ambient temperature

heat_capacity_p0(temperature, params)

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

heat_capacity_p(pressure, temperature, volume, params)

Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]

adiabatic_bulk_modulus(pressure, temperature, volume, params)

Returns adiabatic bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3].

gibbs_free_energy(pressure, temperature, volume, params)

Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].

pressure(temperature, volume, params)

Returns pressure [Pa] as a function of temperature [K] and volume[m^3]

validate_parameters(params)

Check for existence and validity of the parameters

density(volume, params)

Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.

Parameters:

volume : float

Molar volume of the mineral. For consistency this should be calculated :

using :func:`volume`. :math:`[m^3]` :

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

density : float

Density of the mineral. \([kg/m^3]\)

enthalpy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

H : float

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:

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

F : float

Helmholtz free energy of the mineral

internal_energy(pressure, temperature, volume, params)
Parameters:

pressure : float

Pressure at which to evaluate the equation of state. [Pa]

temperature : float

Temperature at which to evaluate the equation of state. [K]

volume : float

Molar volume of the mineral. For consistency this should be calculated using volume(). [m^3]

params : dictionary

Dictionary containing material parameters required by the equation of state.

Returns:

U : float

Internal energy of the mineral

Table Of Contents

Next topic

Averaging Schemes

This Page