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:

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)[source]
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)[source]

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)[source]
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)[source]
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)[source]
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)[source]
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)[source]
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)[source]
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)[source]
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)[source]
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)[source]
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)[source]

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

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

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[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:

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[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:

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.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]
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

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].

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]\) Currently not included in the Vinet EOS, so omitted.

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

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

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

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. 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:

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

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[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:

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[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:

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[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:

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[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:

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[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.

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

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.

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

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]

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]

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

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.

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

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

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]

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]

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