Equation of State Classes and Functions¶
Isothermal Equations of State¶
Base class¶
- class burnman.eos.IsothermalEquationOfState[source]¶
Bases:
EquationOfState- entropy(pressure, temperature, volume, params)[source]¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- gibbs_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Gibbs energy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Isothermal bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Shear modulus of the mineral. \([Pa]\)
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- volume(pressure, temperature, params)¶
- Parameters:
- Returns:
Molar volume of the mineral \([m^3]\).
- Return type:
birch murnaghan¶
- class burnman.eos.birch_murnaghan.BM3[source]¶
Bases:
BirchMurnaghanBaseThe third order Birch-Murnaghan isothermal equation of state. The negative finite-strain (or compression) is defined as
\[f=\frac{1}{2}\left[\left(\frac{V}{V_0}\right)^{-2/3}-1\right]\]where \(V\) is the volume at a given pressure and \(V_0\) is the volume at a reference state (\(P = 10^5\) Pa , \(T\) = 300 K). The pressure and elastic moduli are derived from a third-order Taylor expansion of Helmholtz free energy in \(f\) and evaluating the appropriate volume and strain derivatives (e.g., [Poi91]). For an isotropic material one obtains for the pressure, isothermal bulk modulus, and shear modulus:
\[P = 3 K_0 f \left(1+2f\right)^{5/2} \left[1+\frac{3}{2} \left(K_0^\prime -4\right) f\right],\]\[\begin{split}K_{T} = (1+2f)^{5/2} \biggl[ & K_0+(3K_0{K}^\prime_{0}-5K_0)f\\ &+ \frac{27}{2}(K_0{K}^\prime_{0}-4K_0)f^2 \biggr],\end{split}\]\[\begin{split}G = (1+& 2f)^{5/2} \biggl[G_0+(3K_0{G}^\prime_{0}-5G_0)f\\ & +(6K_0{G}^\prime_{0}-24K_0-14G_{0} + \frac{9}{2}K_{0}{K}^\prime_{0})f^2 \biggr].\end{split}\]Here \(K_0\) and \(G_0\) are the reference bulk modulus and shear modulus and \(K_0^\prime\) and \({G}^\prime_{0}\) are the derivative of the respective moduli with respect to pressure.
Parameter
Description
Units
F_0Reference Helmholtz free energy
J/mol
P_0Reference pressure
Pa
V_0Reference volume
\(\textrm{m}^3\)
K_0Reference isothermal bulk modulus
Pa
Kprime_0Pressure derivative of the isothermal bulk modulus at the reference state
Dimensionless
G_0Reference shear modulus
Pa
Gprime_0Pressure derivative of the shear modulus at the reference state
Dimensionless
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- gibbs_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
- 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.birch_murnaghan.BM3Shear2[source]¶
Bases:
BirchMurnaghanBaseThe third order Birch-Murnaghan isothermal equation of state with second order expansion for the shear modulus. Do not use this unless you have a good reason to.
The negative finite-strain (or compression) is defined as
\[f=\frac{1}{2} \left[ \left(\frac{V}{V_0} \right)^{-2/3}-1 \right]\]where \(V\) is the volume at a given pressure and \(V_0\) is the volume at a reference state (\(P = 10^5\) Pa , \(T\) = 300 K).
For an isotropic material one obtains for the pressure, isothermal bulk modulus, and shear modulus:
\[P=3 K_0 f \left(1+2f\right)^{5/2} \left[1+\frac{3}{2} \left(K_0^\prime -4\right) f\right],\]\[\begin{split}K_{T}=(1+2f)^{5/2} \biggl[ & K_0+(3K_0{K}^\prime_{0}-5K_0)f\\ &+\frac{27}{2}(K_0{K}^\prime_{0}-4K_0)f^2 \biggr],\end{split}\]\[G = (1 + 2f)^{5/2} \biggl[ G_0+(3K_0{G}^\prime_{0}-5G_0)f \biggr].\]Here \(K_0\) and \(G_0\) are the reference bulk modulus and shear modulus and \(K_0^\prime\) and \({G}^\prime_{0}\) are the derivative of the respective moduli with respect to pressure.
Parameter
Description
Units
F_0Reference Helmholtz free energy
J/mol
P_0Reference pressure
Pa
V_0Reference volume
\(\textrm{m}^3\)
K_0Reference isothermal bulk modulus
Pa
Kprime_0Pressure derivative of the isothermal bulk modulus at the reference state
Dimensionless
G_0Reference shear modulus
Pa
Gprime_0Pressure derivative of the shear modulus at the reference state
Dimensionless
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- gibbs_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- shear_modulus(pressure, temperature, volume, params)¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
- 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.birch_murnaghan.BM4[source]¶
Bases:
BirchMurnaghanBaseBase class for the isothermal Birch Murnaghan equation of state. This is fourth order in strain, and has no temperature dependence.
Note that unlike the third order Birch-Murnaghan equation of state, the shear modulus is not defined for this equation of state.
Parameter
Description
Units
F_0Reference Helmholtz free energy
J/mol
P_0Reference pressure
Pa
V_0Reference volume
\(\textrm{m}^3\)
K_0Reference isothermal bulk modulus
Pa
Kprime_0Pressure derivative of the isothermal bulk modulus at the reference state
Dimensionless
Kprime_prime_0Second pressure derivative of the isothermal bulk modulus at the reference state
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) 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.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- gibbs_energy(pressure, temperature, volume, params)¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
- class burnman.eos.birch_murnaghan.BirchMurnaghanBase[source]¶
Bases:
IsothermalEquationOfStateBase 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.BM3Shear2andburnman.birch_murnaghan.BM3.- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
macaw¶
- class burnman.eos.macaw.MACAW[source]¶
Bases:
IsothermalEquationOfStateClass for the MACAW equation of state detailed in [LA22].
This equation of state has no temperature dependence.
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
P_0Reference pressure.
\(\text{Pa}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of the bulk modulus at reference pressure.
Dimensionless
Kprime_infInfinite pressure derivative of the bulk modulus.
Dimensionless
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- volume(pressure, temperature, params)[source]¶
Get the Vinet volume at a reference temperature for a given pressure \([Pa]\). Returns molar volume in \([m^3]\)
- pressure(temperature, volume, params)[source]¶
Returns pressure \([Pa]\) as a function of volume \([m^3]\).
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- 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.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
modified tait¶
- class burnman.eos.modified_tait.MT[source]¶
Bases:
IsothermalEquationOfStateThe Modified Tait equation of state was developed by [HuangChow74]. It has the considerable benefit of allowing volume to be expressed as a function of pressure. It performs very well to pressures and temperatures relevant to the deep Earth [HollandPowell11].
\[\begin{split}\frac{V_{P, T}}{V_{1 bar, 298 K}} &= 1 - a(1-(1 + bP)^{-c}), \\ a &= \frac{1 + K_0'}{1 + K_0' + K_0 K_0''}, \\ b &= \frac{K_0'}{K_0} - \frac{K_0''}{1 + K_0'}, \\ c &= \frac{1 + K_0' + K_0 K_0''}{K_0'^2 + K_0' - K_0 K_0''}\end{split}\]Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
P_0Reference pressure.
\(\text{Pa}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus.
Dimensionless
Kdprime_0Second pressure derivative of bulk modulus.
\(\text{Pa}^{-1}\)
- 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_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) of the mineral. \([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.
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
morse potential¶
- class burnman.eos.morse_potential.Morse[source]¶
Bases:
IsothermalEquationOfStateClass for the isothermal Morse Potential equation of state detailed in [StaceyBrennanIrvine81]. This equation of state has no temperature dependence.
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
P_0Reference pressure.
\(\text{Pa}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus at zero pressure.
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
murnaghan¶
- class burnman.eos.murnaghan.Murnaghan[source]¶
Bases:
IsothermalEquationOfStateThe isothermal Murnaghan equation of state, as described in [Mur44].
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus.
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\) Currently not included in the Murnghan EOS, so omitted.
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
reciprocal kprime¶
- class burnman.eos.reciprocal_kprime.RKprime[source]¶
Bases:
IsothermalEquationOfStateClass 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.
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus at reference conditions.
Dimensionless
Kprime_infPressure derivative of bulk modulus at infinite pressure.
Dimensionless
- 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_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- 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.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
spock¶
- class burnman.eos.spock.SPOCK[source]¶
Bases:
IsothermalEquationOfStateClass for the Scaled Power Of Compression K-prime equation of state. This equation is derived from the assumption that
\[K' = b \left( \frac{V}{V_0} \right)^a\]This equation of state is described in [Myh25a], but was originally derived by [WMTZ15].
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
P_0Reference pressure.
\(\text{Pa}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus at zero pressure.
Dimensionless
Kdprime_0Second pressure derivative of bulk modulus at zero pressure.
\(\text{Pa}^{-1}\)
Kprime_infInfinite pressure limit of the pressure derivative of bulk modulus.
Dimensionless
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- volume(pressure, temperature, params)[source]¶
Returns volume at a given pressure \([Pa]\) in \([m^3]\)
- pressure(temperature, volume, params)[source]¶
Returns pressure \([Pa]\) as a function of volume \([m^3]\).
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\) This equation of state is athermal, so the function returns a very large number.
- 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.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
vinet¶
- class burnman.eos.vinet.Vinet[source]¶
Bases:
IsothermalEquationOfStateBase class for the isothermal Vinet equation of state. References for this equation of state are [VFSR86] and [VSFR87]. This equation of state actually predates Vinet by 55 years [Rydberg32], and was investigated further by [StaceyBrennanIrvine81].
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
P_0Reference pressure.
\(\text{Pa}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of bulk modulus.
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus \(G\) of the mineral. \([Pa]\) Not included in the Vinet EOS, so returns 0.
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy \(\mathcal{G}\) of the mineral. \([J/mol]\)
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Entropy of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so the entropy arbitrarily returns a value of zero.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Isobaric molar heat capacity of the equation of state (\([J/K/mol]\)). This equation of state is isothermal, so this function arbitrarily returns a very small number.
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- thermal_expansivity(pressure, temperature, volume, params)¶
Thermal expansivity of the equation of state (\([1/K]\)). This equation of state is isothermal, so this function arbitrarily returns a value of zero.
Thermal Equations of State¶
Base class¶
- class burnman.eos.EquationOfState[source]¶
Bases:
objectThis 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:
- Returns:
Molar volume of the mineral \([m^3]\).
- Return type:
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- density(volume, params)[source]¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- isothermal_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Isothermal bulk modulus of the mineral. \([Pa]\)
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Shear modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant pressure of the mineral. \([J/K/mol]\)
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Thermal expansivity of the mineral. \([1/K]\)
- Return type:
- gibbs_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Gibbs energy of the mineral \([J/mol]\).
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- entropy(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Entropy of the mineral \([J/K/mol]\).
- Return type:
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
aa¶
- class burnman.eos.aa.AA[source]¶
Bases:
EquationOfStateClass for the liquid metal EOS detailed in [AndersonAhrens94].
This equation of state is complicated because there is not a single set of independent variables.
The equation of state is based on a reference isentrope passing through a defined volume and entropy point. Internal energy (\(E\)) at a given volume is calculated along this isentrope using a fourth order BM EoS (\(V_0\), \(KS\), \(KS'\), \(KS''\)).
The temperature along the isentrope is calculated via integration of the Grueneisen parameter:
\(\gamma = \partial (\ln T)/\partial (\ln \rho) |_S\)
which gives:
\(T_S/T_0 = \exp(\int( \gamma/\rho ) d \rho)\)
Finally, the internal energy away from the reference isentrope is calculated as a function of temperature, using an expression for the isochoric heat capacity as a function of volume and temperature.
In this BurnMan implementation, the Helmholtz energy is used as the natural potential, with volume and temperature as the natural variables.
We note that [AndersonAhrens94] also include a detailed description of the Gruneisen parameter as a function of volume and energy (Equation 15), and use this to determine the temperature along the principal isentrope (Equations B1-B10) and the thermal pressure away from that isentrope (Equation 23). However, the thermal pressure expression is inconsistent with the equation of state away from the principal isentrope.
Note: the expression for \(\Lambda\) (Appendix C) does not reproduce Figure 5. We assume that the figure is correct, and that the correct expression has the form: \(F(-325.23 + 302.07 (\rho/\rho_0) + 30.45 (\rho/\rho_0)^{0.4})\).
Parameter
Description
Units
E_0Reference internal energy.
\(\text{J/mol}\)
V_0Reference volume.
\(\text{m}^3\)
K_SReference isentropic bulk modulus.
\(\text{Pa}\)
Kprime_SFirst pressure derivative of the isentropic bulk modulus.
\(\text{unitless}\)
Kprime_prime_SSecond pressure derivative of the isentropic bulk modulus.
\(\text{Pa}^{-1}\)
T_0Reference temperature on the principal isentrope.
\(\text{K}\)
S_0Reference entropy on the principal isentrope.
\(\text{J/K/mol}\)
nNumber of atoms per formula unit.
\(\text{unitless}\)
grueneisen_0Reference Gruneisen parameter on the principal isentrope.
\(\text{unitless}\)
grueneisen_nVolume dependence of the Gruneisen parameter on the principal isentrope.
\(\text{unitless}\)
grueneisen_primeFirst pressure derivative of the Gruneisen parameter on the principal isentrope.
\(\text{Pa}^{-1}\)
thetaDebye temperature on the principal isentrope.
\(\text{K}\)
aElectronic heat capacity parameter A (length 2 array).
\(\text{unitless}\)
bElectronic heat capacity parameter B (length 2 array).
\(\text{unitless}\)
ThetaVolume dependence parameters for electronic heat capacity (length 2 array).
\(\text{unitless}\)
lmdaPotential heat capacity parameter lambda (length 3 array).
\(\text{unitless}\)
xi_0Reference xi parameter.
\(\text{unitless}\)
FReference F parameter (length 2 array).
\(\text{unitless}\)
- entropy(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Entropy of the mineral \([J/K/mol]\).
- Return type:
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns the thermal expansivity. \([1/K]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol] F + PV
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus. \([Pa]\) Zero for a liquid
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
brosh calphad¶
- class burnman.eos.brosh_calphad.BroshCalphad[source]¶
Bases:
EquationOfStateClass for the high pressure CALPHAD equation of state by [BMS07].
This equation of state includes contributions from cold compression, quasiharmonic lattice vibrations, and thermal excitation of electrons.
Parameter
Description
Units
gibbs_coefficientsCoefficients for the piecewise polynomial fit to the Gibbs free energy at 1 bar. Format is a list of lists, where each sublist contains the maximum temperature for that segment and the coefficients in the following order: [const, T, T*ln(T), T^(-1), T^(-2), T^(-3), T^(-9), T^2, T^3, T^4, T^7, T^(1/2), ln(T)]
varies
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
nNumber of atoms per formula unit.
Dimensionless
aParameter array for cold compression (length 4 array).
Dimensionless
bParameter array for thermal excitation (length 2 array).
Dimensionless
c[OPTIONAL] Parameter array for cold compression (length 4 array). If you do not know how to calculate it, do not add it to the parameters dictionary. It will be calculated from the other input parameters.
Dimensionless
deltaParameter array for thermal excitation (length 2 array).
Dimensionless
theta_0Reference Debye temperature.
\(\text{K}\)
grueneisen_0Reference Grüneisen parameter.
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume \([m^3]\) as a function of pressure \([Pa]\).
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns the isothermal bulk modulus \(K_T\) \([Pa]\) as a function of pressure \([Pa]\), temperature \([K]\) and volume \([m^3]\).
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns the shear modulus \(G\) of the mineral. \([Pa]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy of the mineral. \([J/mol]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the molar entropy of the mineral. \([J/K/mol]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns the molar isobaric heat capacity \([J/K/mol]\). For now, this is calculated by numerical differentiation.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns the volumetric thermal expansivity \([1/K]\). For now, this is calculated by numerical differentiation.
- calculate_transformed_parameters(params)[source]¶
This function calculates the “c” parameters of the [BMS07] equation of state.
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
cork¶
- class burnman.eos.cork.CORK[source]¶
Bases:
EquationOfStateClass 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.
\[\begin{split}V &= \frac{RT}{P} + c_1 - \frac{c_0 R T^{0.5}}{(RT + c_1 P)(RT + 2 c_1 P)} + c_2 P^{0.5} + c_3 P, \\ c_0 &= c_{0,0} T_c^{2.5}/P_c + c_{0,1} T_c^{1.5}/P_c T, \\ c_1 &= c_{1,0} T_c/P_c, \\ c_2 &= c_{2,0} T_c/P_c^{1.5} + c_{2,1}/P_c^{1.5} T, \\ c_3 &= c_{3,0} T_c/P_c^2 + c_{3,1}/P_c^2 T\end{split}\]where \(c_{i,j}\) are the CoRK parameters, \(T_c\) is the critical temperature, and \(P_c\) is the critical pressure.
Parameter
Description
Units
H_0Reference enthalpy.
\(\text{J/mol}\)
S_0Reference entropy.
\(\text{J/(mol K)}\)
CpHeat capacity parameters (length 4 array).
\(\text{J/(mol K)}\)
T_0Reference temperature.
\(\text{K}\)
P_0Reference pressure.
\(\text{Pa}\)
cork_paramsCoRK parameters (length 4x2 array).
varies
cork_TCritical temperature.
\(\text{K}\)
cork_PCritical pressure.
\(\text{Pa}\)
- 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_reuss(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.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K] Replace -Pth in EQ 13+1 with P-Pth for non-ambient temperature
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy [J/K/mol] as a function of pressure [Pa] and temperature [K].
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
dks liquid¶
- class burnman.eos.dks_liquid.DKS_L[source]¶
Bases:
EquationOfStateBase class for the finite strain liquid equation of state detailed in [deKokerKarkiStixrude13] (supplementary materials).
This equation of state includes contributions from ideal gas (translational and electronic), electronic, and excess (bonding) components to the thermodynamic properties.
The parameters required for this equation of state do not all correspond to natural variables; please refer to [deKokerKarkiStixrude13] for details.
Parameter
Description
Units
V_0Reference volume.
\(\text{m}^3\)
T_0Reference temperature.
\(\text{K}\)
O_thetaO_fmazeta_0Reference electronic strength parameter.
xiPower law exponent for the volume dependence on zeta.
Unitless
Tel_0Reference temperature for electronic contributions.
K
etaPower law exponent for the volume dependence on the electronic temperature.
Unitless
formulaChemical formula of the substance.
Dict[str, float]
el_V_0Reference volume for electronic contributions.
\(\text{m}^3\)
spin_aDescription of spin_a.
Length 2 list describing spin_a.
spin_bLength 4 list describing spin_b.
Units of spin_b.
- pressure(temperature, volume, params)[source]¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- volume(pressure, temperature, params)[source]¶
- Parameters:
- Returns:
Molar volume of the mineral \([m^3]\).
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- shear_modulus(pressure, temperature, volume, params)[source]¶
Returns shear modulus. \([Pa]\) Zero for fluids
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- gibbs_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]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
dks solid¶
- class burnman.eos.dks_solid.DKS_S[source]¶
Bases:
EquationOfStateBase class for the finite strain solid equation of state detailed in [deKokerKarkiStixrude13] (supplementary materials).
This equation of state is a somewhat modified version of that described in [SLB05].
Parameter
Description
Units
P_0Reference pressure.
\(\text{Pa}\)
T_0Reference temperature.
\(\text{K}\)
E_0Reference internal energy.
\(\text{J/mol}\)
S_0Reference entropy.
\(\text{J/K/mol}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of the reference bulk modulus.
\(\text{unitless}\)
grueneisen_0Reference Grüneisen parameter.
\(\text{unitless}\)
q_0Volume derivative of the Grüneisen parameter.
\(\text{unitless}\)
eta_s_0Isotropic shear strain derivative of the Grüneisen parameter.
\(\text{unitless}\)
CvConstant volume heat capacity.
\(\text{J/K/mol}\)
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- gibbs_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]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
hp¶
- class burnman.eos.hp.HP98[source]¶
Bases:
EquationOfStateBase class for the thermal equation of state described in [HollandPowell98].
Parameter
Description
Units
P_0Reference pressure.
Pa
T_0Reference temperature.
K
H_0Enthalpy at the reference state.
J/mol
S_0Entropy at the reference state.
J/(mol K)
CpHeat capacity coefficients at the reference pressure (length 4 list).
Various
V_0Volume at the reference state.
m^3/mol
K_0Isothermal bulk modulus at the reference state.
Pa
Kprime_0Pressure derivative of bulk modulus at the reference state.
Dimensionless
a_0Thermal expansivity at reference state.
1/K
dKdT_0Temperature derivative of bulk modulus at reference state.
Pa/K
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3].
- shear_modulus(pressure, temperature, volume, params)[source]¶
Not implemented. Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy [J/K/mol] as a function of pressure [Pa] and temperature [K].
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns the heat capacity [J/K/mol] as a function of pressure [Pa] and temperature [K].
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
- class burnman.eos.hp.HP_TMT[source]¶
Bases:
EquationOfStateBase class for the thermal equation of state based on the isothermal modified Tait equation of state (class MT), as described in [HollandPowell11].
\[\begin{split}\mathcal{G}(P,T) &= \mathcal{H}_{\textrm{1 bar, T}} - T\mathcal{S}_{\textrm{1 bar, T}} + \int_{\textrm{1 bar}}^P V(P,T)~dP, \\ \mathcal{H}_{\textrm{1 bar, T}} &= \Delta_f\mathcal{H}_{\textrm{1 bar, 298 K}} + \int_{298}^T C_P~dT, \\ \mathcal{S}_{\textrm{1 bar, T}} &= \mathcal{S}_{\textrm{1 bar, 298 K}} + \int_{298}^T \frac{C_P}{T}~dT, \\ \int_{\textrm{1 bar}}^P V(P,T)~dP &= P V_0 \left( 1 - a + \left( a \frac{(1-b P_{th})^{1-c} - (1 + b(P-P_{th}))^{1-c}}{b (c-1) P} \right) \right)\end{split}\]The heat capacity at one bar is given by an empirical polynomial fit to experimental data:
\[C_p = a + bT + cT^{-2} + dT^{-0.5}\]The thermal pressure is calculated using a Mie-Grüneisen-like function:
\[\begin{split}P_{\textrm{th}} &= \frac{\alpha_0 K_0 E_{\textrm{th}} }{C_{V0}}, \\ E_{\textrm{th}} &= 3 n R \Theta \left(0.5 + \frac{1}{ \exp(\frac{\Theta}{T}) - 1 }\right), \\ C_{V} &= 3 n R \frac{(\frac{\Theta}{T})^2\exp(\frac{\Theta}{T})}{(\exp(\frac{\Theta}{T})-1)^2}\end{split}\]\(\Theta\) is the Einstein temperature of the crystal in Kelvin, approximated for a substance \(i\) with \(n_i\) atoms in the unit formula and a molar entropy \(S_i\) using the empirical formula:
\[\Theta_i=\frac{10636}{S_i/n_i + 6.44}\]Parameter
Description
Units
P_0Reference pressure.
Pa
T_0Reference temperature.
K
H_0Enthalpy at the reference state.
J/mol
S_0Entropy at the reference state.
J/(mol K)
CpHeat capacity coefficients at the reference pressure (length 4 list).
Various
V_0Volume at the reference state.
m^3/mol
K_0Isothermal bulk modulus at the reference state.
Pa
Kprime_0Pressure derivative of bulk modulus at the reference state.
Dimensionless
Kdprime_0Second pressure derivative of bulk modulus at the reference state.
Dimensionless
a_0Thermal expansivity at reference state.
1/K
T_einsteinEinstein temperature.
K
nNumber of atoms in the unit formula.
Dimensionless
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] 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]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3].
- shear_modulus(pressure, temperature, volume, params)[source]¶
Not implemented. Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]. This function replaces -Pth in Equation 13+1 in [HollandPowell11] with P-Pth for non-ambient temperature
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy [J/K/mol] as a function of pressure [Pa] and temperature [K].
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns the heat capacity [J/K/mol] as a function of pressure [Pa] and temperature [K].
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- class burnman.eos.hp.HP_TMTL[source]¶
Bases:
EquationOfStateBase class for the thermal equation of state described in [HollandPowell98], but with the Modified Tait as the static part, as described in [HollandPowell11].
Parameter
Description
Units
P_0Reference pressure.
Pa
T_0Reference temperature.
K
H_0Enthalpy at the reference state.
J/mol
S_0Entropy at the reference state.
J/(mol K)
CpHeat capacity coefficients at the reference pressure (length 4 list).
Various
V_0Volume at the reference state.
m^3/mol
K_0Isothermal bulk modulus at the reference state.
Pa
Kprime_0Pressure derivative of bulk modulus at the reference state.
Dimensionless
Kdprime_0Second pressure derivative of bulk modulus at the reference state.
Dimensionless
a_0Thermal expansivity at reference state.
1/K
dKdT_0Temperature derivative of bulk modulus at reference state.
Pa/K
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3].
- shear_modulus(pressure, temperature, volume, params)[source]¶
Not implemented. Returns 0. Could potentially apply a fixed Poissons ratio as a rough estimate.
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the gibbs free energy [J/mol] as a function of pressure [Pa] and temperature [K].
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy [J/K/mol] as a function of pressure [Pa] and temperature [K].
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns the heat capacity [J/K/mol] as a function of pressure [Pa] and temperature [K].
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- pressure(temperature, volume, params)¶
- Parameters:
- Returns:
Pressure of the mineral, including cold and thermal parts \([m^3]\).
- Return type:
mie grueneisen debye¶
- class burnman.eos.mie_grueneisen_debye.MGD2[source]¶
Bases:
MGDBaseMGD 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!
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B8
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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.mie_grueneisen_debye.MGD3[source]¶
Bases:
MGDBaseMie-Grueneisen-Debye equation of state with third order finite strain expansion for the shear modulus.
The Debye model for the Helmholtz free energy can be written as follows [MBR+07]
\[\begin{split}\mathcal{F} &= \frac{9nRT}{V}\frac{1}{x^3} \int_{0}^{x} \xi^2 \ln (1-e^{-\xi}) d\xi, \\ x &= \theta / T, \\ \theta &= \theta_0 \exp \left( \frac{\gamma_0-\gamma}{q_0} \right), \\ \gamma &= \gamma_0 \left( \frac{V}{V_0} \right)^{q_0}\end{split}\]where \(\theta\) is the Debye temperature and \(\gamma\) is the Grüneisen parameter.
Using thermodynamic relations we can derive equations for the thermal pressure and bulk modulus
\[\begin{split}P_{th}(V,T) &= - \frac{\partial \mathcal{F(V, T)}}{\partial V}, \\ &= \frac{3 n \gamma R T}{V} D(x), \\ K_{th}(V,T) &= -V \frac{\partial P(V, T)}{\partial V}, \\ &= \frac{3 n \gamma R T}{V} \gamma \left[ (1-q_0 - 3 \gamma) D(x) + 3\gamma \frac{x}{e^x - 1} \right], \\ D(x) &= \frac{3}{x^3} \int_{0}^{x} \frac{\xi^3}{e^{\xi} - 1} d\xi\end{split}\]The thermal shear correction used in BurnMan was developed by [HamaSuito98]
\[G_{th}(V,T) = \frac{3}{5} \left[ K_{th} (V, T) - 2\frac{3nRT}{V}\gamma D(x) \right]\]The total pressure, bulk and shear moduli can be calculated from the following sums
\[\begin{split}P(V, T) &= P_{\textrm{ref}}(V, T_0) + P_{th}(V, T) - P_{th}(V, T_0), \\ K(V, T) &= K_{\textrm{ref}}(V, T_0) + K_{th}(V, T) - K_{th}(V, T_0), \\ G(V, T) &= G_{\textrm{ref}}(V, T_0) + G_{th}(V, T) - G_{th}(V, T_0)\end{split}\]This equation of state is substantially the same as that in [SLB05]. The primary differences are in the thermal correction to the shear modulus and in the volume dependences of the Debye temperature and the Gruneisen parameter.
Parameter
Description
Units
F_0Reference Helmholtz free energy.
\(\text{J/mol}\)
V_0Reference volume.
\(\text{m}^3\)
K_0Reference bulk modulus.
\(\text{Pa}\)
Kprime_0Pressure derivative of the bulk modulus at reference pressure.
Dimensionless
molar_massMolar mass of the mineral.
\(\text{kg/mol}\)
nNumber of atoms per formula unit.
Dimensionless
Debye_0Debye temperature at reference state.
\(\text{K}\)
grueneisen_0Grüneisen parameter at reference state.
Dimensionless
q_0Volume dependence of the Grüneisen parameter.
Dimensionless
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus [Pa] as a function of pressure [Pa], temperature [K], and volume [m^3]. EQ B8
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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.mie_grueneisen_debye.MGDBase[source]¶
Bases:
EquationOfStateBase class for a generic finite-strain Mie-Grueneisen-Debye equation of state. References for this can be found in many places, such as [SDT02] and [JR96]. Here we mostly follow the appendices of [MBR+07]. Of particular note is the thermal correction to the shear modulus, which was developed by [HS98].
- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] EQ B7
- isothermal_bulk_modulus_reuss(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
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity at the pressure, temperature, and volume [1/K]
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure at the pressure, temperature, and volume [J/K/mol]
- pressure(temperature, volume, params)[source]¶
Returns pressure [Pa] as a function of temperature [K] and volume[m^3] EQ B7
- gibbs_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]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
modular mie grueneisen debye¶
- class burnman.eos.modular_mie_grueneisen_debye.ModularMGD[source]¶
Bases:
EquationOfStateThis class implements a modular Mie-Grueneisen-Debye (MGD) equation of state (EoS) where the reference (isothermal) EoS and Debye temperature model can be chosen by the user.
The equation of state also supports electronic contributions to the Helmholtz energy and thermodynamic properties according to the model of [BK77].
Parameter
Description
Units
V_0Reference volume
\(\textrm{m}^3\)
T_0Reference temperature
K
bel_0Electronic contribution parameter
unitless
gelElectronic contribution exponent
unitless
nNumber of atoms per formula unit
atoms per formula unit
molar_massMolar mass
kg/mol
reference_eosReference isothermal equation of state. Must have methods for pressure, isothermal bulk modulus, and Gibbs energy.
debye_temperature_modelDebye temperature model. An object providing the Debye temperature as a function of relative volume via
value, and its first and second derivatives with respect to relative volume viadVrelanddVrel2.callable. Examples include
burnman.eos.debye_temperature_models.SLB,burnman.eos.debye_temperature_models.PowerLawGammaSimple, andburnman.eos.debye_temperature_models.PowerLawGamma.anharmonic_thermal_modelAnharmonic thermal model. An object providing the anharmonic contribution to the energy.
callable. Examples include
burnman.eos.anharmonic_thermal_models.Padeandburnman.eos.anharmonic_thermal_models.LogNormal.- volume(pressure, temperature, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K]
- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Shear modulus of the mineral. \([Pa]\)
- Return type:
- class burnman.eos.modular_mie_grueneisen_debye.ModularMGDWithAnharmonicity[source]¶
Bases:
ModularMGDThis class extends the ModularMGD class to include anharmonicity effects according to a simplification of the model proposed by Wu and Wentzcovitch, 2009.
The basis of the anharmonic model is the definition of a scaled volume, \(V'\): \(\ln (V'/V) = = - c \ln (V/V_0)\). In this expression, \(V\) is the target volume, \(V_0\) is a first order approximation to the volume at the same pressure and reference temperature \(T_0\), and \(c\) is an anharmonicity parameter provided in the params dictionary as c_anh.
The anharmonic Helmholtz energy \(F\) is related to the scaled volume by the equation:
\[F(V,T) = F_h(V',T) + F_h(V,T_0) - F_h(V',T_0)\]where \(F_h\) is the harmonic Helmholtz energy, potentially with electronic contributions.
Note: This model is not the same as that published in Wu and Wentzcovitch (2009). The results are expected to be similar, but the \(c\) parameter will in general need to be changed. This is because only a local approximation to the volume change between 0 K and the target temperature is used. This does not mean that the model is less able to capture the essential physics of the problem; indeed, the model of Wu and Wentzcovitch (2009) is only intended to be an effective ansatz.
Parameter
Description
Units
V_0Reference volume
\(\textrm{m}^3\)
T_0Reference temperature
K
bel_0Electronic contribution parameter
unitless
gelElectronic contribution exponent
unitless
nNumber of atoms per formula unit
atoms per formula unit
molar_massMolar mass
kg/mol
reference_eosReference isothermal equation of state. Must have methods for pressure, isothermal bulk modulus, and Gibbs energy.
debye_temperature_modelDebye temperature model. An object providing the Debye temperature as a function of relative volume via
value, and its first and second derivatives with respect to relative volume viadVrelanddVrel2.callable. Examples include
burnman.eos.debye_temperature_models.SLB,burnman.eos.debye_temperature_models.PowerLawGammaSimple, andburnman.eos.debye_temperature_models.PowerLawGamma.anharmonic_thermal_modelAnharmonic thermal model. An object providing the anharmonic contribution to the energy.
callable. Examples include
burnman.eos.anharmonic_thermal_models.Padeandburnman.eos.anharmonic_thermal_models.LogNormal.c_anhAnharmonicity parameter
unitless
- pressure()¶
(copied from pressure):
Returns the pressure of the mineral at a given temperature and volume [Pa]
- isothermal_bulk_modulus_reuss()¶
(copied from isothermal_bulk_modulus_reuss):
Returns isothermal bulk modulus \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Shear modulus of the mineral. \([Pa]\)
- Return type:
- volume(pressure, temperature, params)¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K]
slb¶
- class burnman.eos.slb.SLB2[source]¶
Bases:
SLBBaseSLB 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!
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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]\)
- class burnman.eos.slb.SLB3[source]¶
Bases:
SLBBaseThird-order finite strain-Mie-Grueneisen-Debye equation of state detailed in [SLB05].
This equation of state combines the third-order Birch-Murnaghan isothermal equation of state with thermal corrections derived from the Mie-Grüneisen-Debye equation of state with the quasi-harmonic approximation:
\[\begin{split}\mathcal{F}_{th}(T, \theta(V)) &= nRT \left(3 \ln( 1 - e^{-\frac{\theta}{T}}) - \int_{0}^{\frac{\theta}{T}}\frac{\tau^3}{(e^{\tau}-1)}d\tau \right), \\ P_{th}(V,T) &={\frac{\gamma \Delta \mathcal{U}}{V}}, \\ K_{th}(V,T) &=(\gamma +1-q)\frac{\gamma \Delta \mathcal{U}}{V} -\gamma ^{2} \frac{\Delta(C_{V}T)}{V} ,\\ G_{th}(V,T) &= -\frac{\eta_{S} \Delta \mathcal{U}}{V}.\end{split}\]The expression for the Debye temperature \(\theta(V)\) as a function of volume is given by:
\[\begin{split}\theta(V) &= \theta_{0} \sqrt{\frac{\nu^{2}}{\nu_{0}^{2}}}, \\ \frac{\nu^2}{\nu^2_0} &= 1+a_{ii}^{(1)}f+\frac{1}{2}a_{iikk}^{(2)}f^2, \\ f &= \frac{1}{2} \left[ \left( \frac{V_0}{V} \right)^{\frac{2}{3}} -1 \right].\end{split}\]The \(\Delta\) refers to the difference in the relevant quantity from the reference temperature (300 K). \(\gamma\) is the Grüneisen parameter, \(q\) is the logarithmic volume derivative of the Grüneisen parameter, \(\eta_{S}\) is the shear strain derivative of the Grüneisen parameter, \(C_V\) is the heat capacity at constant volume, and \(\mathcal{U}\) is the internal energy at temperature \(T\). \(C_V\) and \(\mathcal{U}\) are calculated using the Debye model for vibrational energy of a lattice. These quantities are calculated as follows:
\[\begin{split}C_V &= 9nR \left( \frac{T}{\theta} \right)^3 \int_{0}^{\frac{\theta}{T}} \frac{e^{\tau}\tau^{4}}{(e^{\tau}-1)^2} d\tau, \\ \mathcal{U} &= 9nRT \left( \frac{T}{\theta} \right)^3 \int_{0}^{\frac{\theta}{T}} \frac{\tau^3}{(e^{\tau}-1)} d\tau, \\ \gamma &= \frac{1}{6} \frac{\nu_{0}^2}{\nu^{2}}(2f+1) \left[ a_{ii}^{(1)} + a_{iikk}^{(2)}f \right], \\ q &= \frac{1}{9\gamma} \left[ 18\gamma^{2} - 6\gamma - \frac{1}{2} \frac{\nu^{2}_0}{\nu^2} (2f+1)^{2} a_{iikk}^{(2)} \right], \\ \eta_S &=-\gamma-\frac{1}{2}\frac{\nu_{0}^2}{\nu^2}(2f+1)^{2}a_{S}^{(2)}, \\ a_{ii}^{(1)} &= 6\gamma _0, \\ a_{iikk}^{(2)} &= -12\gamma _0+36\gamma_{0}^{2}-18q_{0}\gamma_0,\\ a_{S}^{(2)} &=-2\gamma _0-2\eta_{S0},\end{split}\]where \(\nu\) is the frequency of vibrational modes for the mineral, \(n\) is the number of atoms per formula unit (e.g. 2 for periclase, 5 for perovskite), and \(R\) is the gas constant. Under the approximation that the vibrational frequencies behave the same under strain, we may identify \(\nu/\nu_0 = \theta/\theta_0\). The quantities \(\gamma_0\), \(\eta_{S0}\) \(q_0\), and \(\theta_0\) are the experimentally determined values for those parameters at the reference state.
All together this makes an eleven parameter EoS model, which is summarized in the Table below. For more details on the EoS, we refer readers to [SLB05].
Parameter
Description
Units
V_0Volume at P = \(10^5\) Pa , T = 300 K
\(\textrm{m}^{3}/\textrm{mol}\)
K_0Isothermal bulk modulus at P = \(10^5\) Pa, T = 300 K
Pa
Kprime_0Pressure derivative of \(K_{0}\)
unitless
G_0Shear modulus at P = \(10^5\) Pa, T = 300 K
Pa
Gprime_0Pressure derivative of \(G_{0}\)
unitless
molar_massmass per mole formula unit
kg \(\mathrm{mol}^{-1}\)
nnumber of atoms per formula unit
atoms/formula unit
Debye_0Debye Temperature
K
grueneisen_0Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
q_0Volume dependence of Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
eta_s_0Shear strain dependence of Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
This equation of state is substantially the same as Mie-Gruneisen-Debye. The primary differences are in the thermal correction to the shear modulus and in the volume dependences of the Debye temperature and the Gruneisen parameter.
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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]\)
- class burnman.eos.slb.SLB3Conductive[source]¶
Bases:
SLBBaseSLB equation of state with third order finite strain expansion for the shear modulus and a contribution to the Helmholtz free energy that arises from the thermal excitation of electrons [BK77].
For more details on the underlying EoS, we refer readers to [SLB05] and the documentation for
burnman.eos.slb.SLB3. The electronic contribution to the Helmholtz free energy is given by:\[\mathcal{F}_{el}(V,T) = -\frac{1}{2} b^{el}_0 V \left( \frac{V}{V_0} \right)^{g^{el}} (T^2 - T_0^2)\]Parameter
Description
Units
V_0Volume at P = \(10^5\) Pa , T = 300 K
\(\textrm{m}^{3}/\textrm{mol}\)
K_0Isothermal bulk modulus at P = \(10^5\) Pa, T = 300 K
Pa
Kprime_0Pressure derivative of \(K_{0}\)
unitless
G_0Shear modulus at P = \(10^5\) Pa, T = 300 K
Pa
Gprime_0Pressure derivative of \(G_{0}\)
unitless
molar_massmass per mole formula unit
kg \(\mathrm{mol}^{-1}\)
nnumber of atoms per formula unit
atoms/formula unit
Debye_0Debye Temperature
K
grueneisen_0Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
q_0Volume dependence of Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
eta_s_0Shear strain dependence of Grüneisen parameter at P = \(10^5\) Pa, T = 300 K
unitless
bel_0Electronic bulk modulus coefficient
Pa
gelElectronic bulk modulus volume exponent
unitless
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- entropy(pressure, temperature, volume, params)¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- gibbs_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)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)¶
Returns isothermal bulk modulus \([Pa]\)
- molar_heat_capacity_p(pressure, temperature, volume, params)¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- molar_heat_capacity_v(pressure, temperature, volume, params)¶
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
- 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]\)
- class burnman.eos.slb.SLBBase[source]¶
Bases:
EquationOfStateBase 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.SLB2andburnman.slb.SLB3classes.- pressure(temperature, volume, params)[source]¶
Returns the pressure of the mineral at a given temperature and volume [Pa]
- isothermal_bulk_modulus_reuss(pressure, temperature, volume, params)[source]¶
Returns isothermal bulk modulus \([Pa]\)
- thermal_expansivity(pressure, temperature, volume, params)[source]¶
Returns thermal expansivity. \([1/K]\)
- entropy(pressure, temperature, volume, params)[source]¶
Returns the entropy at the pressure and temperature of the mineral [J/K/mol]
- molar_heat_capacity_p(pressure, temperature, volume, params)[source]¶
Returns heat capacity at constant pressure. \([J/K/mol]\)
- gibbs_energy(pressure, temperature, volume, params)[source]¶
Returns the Gibbs free energy at the pressure and temperature of the mineral [J/mol]
- density(volume, params)¶
Calculate the density of the mineral \([kg/m^3]\). The params object must include a “molar_mass” field.
- 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]\).
volume (float) – Molar volume of the mineral. For consistency this should be calculated using
volume()\([m^3]\).params (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Enthalpy of the mineral \([J/mol]\).
- Return type:
- 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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Grueneisen parameter of the mineral. \([unitless]\)
- Return type:
- helmholtz_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Helmholtz energy of the mineral \([J/mol]\).
- Return type:
- isentropic_bulk_modulus_reuss(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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Adiabatic bulk modulus of the mineral. \([Pa]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Heat capacity at constant volume of the mineral. \([J/K/mol]\)
- Return type:
- molar_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 (dict) – Dictionary containing material parameters required by the equation of state.
- Returns:
Internal energy of the mineral \([J/mol]\).
- Return type:
Other Equation of State classes¶
anharmonic debye¶
- class burnman.eos.anharmonic_debye.AnharmonicDebye[source]¶
Bases:
objectClass providing methods to compute the anharmonic contribution to the Helmholtz free energy, pressure, entropy, isochoric heat capacity, isothermal bulk modulus and thermal expansion coefficient multiplied by the isothermal bulk modulus.
The Helmholtz energy is defined as \(F(V, T) = A(V) (F_a(T, \Theta(V)) - F_a(T_0, \Theta(V)))\) where \(A(V)\) is the anharmonic prefactor, \(F_a(T, \Theta)\) is the anharmonic Helmholtz energy, and \(\Theta(V)\) is the Debye temperature.
These three functions and their derivatives with respect to their arguments are provided as class instances contained within the params dictionary, with keys “anharmonic_prefactor_model”, “debye_temperature_model”, and “anharmonic_thermal_model”.
- Returns:
_description_
- Return type:
_type_
anharmonic prefactor models¶
- class burnman.eos.anharmonic_prefactor_models.AnharmonicPrefactorModel[source]¶
Bases:
objectBase class for anharmonic prefactor models.
- class burnman.eos.anharmonic_prefactor_models.PowerLaw[source]¶
Bases:
AnharmonicPrefactorModelClass providing methods to compute the prefactor A in the anharmonic contribution to thermodynamic models.
The prefactor is defined as \(A = a_{anh} * (V/V_0)^{m_{anh}}\), with both \(a_{anh}\) and \(m_{anh}\) being parameters of the model.
- Returns:
_description_
- Return type:
_type_
- class burnman.eos.anharmonic_prefactor_models.Sigmoid[source]¶
Bases:
AnharmonicPrefactorModelClass providing methods to compute the prefactor A in the anharmonic contribution to thermodynamic models.
The prefactor is defined as \(A = a_{anh} * (1 - 1/(1 + (Vrel + b_{anh}) ** c_{anh}))\) where \(a_{anh}\), \(b_{anh}\) and \(c_{anh}\) are parameters of the model.
- Returns:
_description_
- Return type:
_type_
anharmonic thermal models¶
- class burnman.eos.anharmonic_thermal_models.AnharmonicThermalModelBase[source]¶
Bases:
objectAbstract base class for anharmonic thermal models.
- nondimensional_helmholtz_energy(T, debye_T, params)[source]¶
Anharmonic contribution to the Helmholtz free energy at a given temperature.
- nondimensional_entropy(T, debye_T, params)[source]¶
Anharmonic contribution to the entropy at a given temperature.
- nondimensional_heat_capacity(T, debye_T, params)[source]¶
Anharmonic contribution to the heat capacity at a given temperature.
- nondimensional_dhelmholtz_dTheta(T, debye_T, params)[source]¶
Anharmonic contribution to the derivative of the Helmholtz energy with respect to the Debye temperature.
debye temperature models¶
- class burnman.eos.debye_temperature_models.DebyeTemperatureModelBase[source]¶
Bases:
ABCAbstract base class for Debye temperature models.
- abstractmethod value(Vrel: float, params: dict) float[source]¶
Return the Debye temperature for the given relative volume.
Equation of State Functions¶
anharmonic thermal models¶
birch murnaghan¶
- burnman.eos.birch_murnaghan.bulk_modulus_fourth_order(volume, params)[source]¶
Bulk modulus for the fourth order Birch-Murnaghan equation of state.
- burnman.eos.birch_murnaghan.bulk_modulus_third_order(volume, params)[source]¶
Bulk modulus for the third order Birch-Murnaghan equation of state [Bir47].
- burnman.eos.birch_murnaghan.pressure_fourth_order(invVrel, params)[source]¶
Pressure for the fourth order Birch-Murnaghan equation of state.
- burnman.eos.birch_murnaghan.pressure_third_order(invVrel, params)[source]¶
Pressure for the third order Birch-Murnaghan equation of state.
- burnman.eos.birch_murnaghan.shear_modulus_second_order(volume, params)[source]¶
Shear modulus for the second order Birch Murnaghan equation of state (i.e. expanded to 2nd order in strain).
- burnman.eos.birch_murnaghan.shear_modulus_third_order(volume, params)[source]¶
Shear modulus for the third order Birch Murnaghan equation of state.
- burnman.eos.birch_murnaghan.volume_fourth_order(pressure, params)[source]¶
Volume for the fourth order Birch-Murnaghan equation of state.
bukowinski electronic¶
debye¶
- burnman.eos.debye.d2helmholtz_dTheta2(T, debye_T, n)[source]¶
Second derivative of the Helmholtz free energy with respect to the Debye temperature [J/K^2].
- burnman.eos.debye.debye_fn(x)[source]¶
Evaluate the Debye function. Takes the parameter xi = Debye_T/T
- burnman.eos.debye.debye_fn_cheb(x)[source]¶
Evaluate the Debye function using a Chebyshev series expansion coupled with asymptotic solutions of the function. Shamelessly adapted from the GSL implementation of the same function (Itself adapted from Collected Algorithms from ACM). Should give the same result as debye_fn(x) to near machine-precision.
- burnman.eos.debye.dentropy_dTheta(T, debye_T, n)[source]¶
First derivative of the entropy with respect to the Debye temperature [J/K].
- burnman.eos.debye.dhelmholtz_dTheta(T, debye_T, n)[source]¶
First derivative of the Helmholtz free energy with respect to the Debye temperature [J/K].
- burnman.eos.debye.dmolar_heat_capacity_v_dT(T, debye_T, n)[source]¶
First temperature derivative of the heat capacity at constant volume [J/K^2/mol].
- burnman.eos.debye.entropy(T, debye_T, n)[source]¶
Entropy due to lattice vibrations in the Debye model [J/K].
- burnman.eos.debye.helmholtz_energy(T, debye_T, n)[source]¶
Helmholtz free energy of lattice vibrations in the Debye model [J]. It is important to note that this does NOT include the zero point energy for the lattice. As long as you are calculating relative differences in F, this should cancel anyways.
debye temperature models¶
einstein¶
- burnman.eos.einstein.d2helmholtz_dTheta2(T, einstein_T, n)[source]¶
Second derivative of Helmholtz free energy with respect to Einstein temperature [J/K^2]
- burnman.eos.einstein.dentropy_dTheta(T, einstein_T, n)[source]¶
Derivative of Einstein entropy with respect to Einstein temperature [J/K^2]
- burnman.eos.einstein.dhelmholtz_dTheta(T, einstein_T, n)[source]¶
First derivative of Helmholtz free energy with respect to Einstein temperature [J/K]
- burnman.eos.einstein.dmolar_heat_capacity_v_dT(T, einstein_T, n)[source]¶
First temperature derivative of the heat capacity at constant volume according to the Einstein model [J/K^2/mol].
- burnman.eos.einstein.entropy(T, einstein_T, n)[source]¶
Entropy due to lattice vibrations in the Einstein model [J/K]
- burnman.eos.einstein.helmholtz_energy(T, einstein_T, n)[source]¶
Helmholtz free energy of lattice vibrations in the Einstein model [J]. It is important to note that this does NOT include the zero point energy for the lattice. As long as you are calculating relative differences in F, this should cancel anyway.
macaw¶
modified tait¶
- burnman.eos.modified_tait.bulk_modulus(pressure, params)[source]¶
Returns isothermal bulk modulus \(K_T\) of the mineral. \([Pa]\). EQ 13+2
- burnman.eos.modified_tait.intVdP(pressure, params)[source]¶
Returns the integral of VdP for the mineral. \([J]\). EQ 13
- burnman.eos.modified_tait.pressure_modified_tait(Vrel, params)[source]¶
Pressure according to the modified Tait equation of state. Equation 2 in [HollandPowell11].
- burnman.eos.modified_tait.tait_constants(params)[source]¶
returns parameters for the modified Tait equation of state derived from K_T and its two first pressure derivatives EQ 4 from Holland and Powell, 2011
- burnman.eos.modified_tait.volume(pressure, params)[source]¶
Returns volume [m^3] as a function of pressure [Pa] and temperature [K] Equation 12 in [HollandPowell11].
morse potential¶
- burnman.eos.morse_potential.bulk_modulus(volume, params)[source]¶
Compute the bulk modulus as per the Morse potential equation of state [Mor29]. Returns bulk modulus in the same units as the reference bulk modulus. Pressure must be in \([Pa]\).
- burnman.eos.morse_potential.morse_potential(VoverV0, params)[source]¶
Equation for the Morse Potential equation of state, returns pressure in the same units that are supplied for the reference bulk modulus (params[‘K_0’])
murnaghan¶
property modifiers¶
- burnman.eos.property_modifiers.bragg_williams_excesses(pressure, temperature, params)[source]¶
The Bragg-Williams model is a symmetric solution model with an excess configurational entropy term determined by the specifics of order-disorder in the mineral, multiplied by some empirical factor. Expressions for the excess Gibbs free energy can be found in [HP96].
Excess properties assume that order-disorder processes are rapid compared with the timescales of pressure and temperature changes (i.e., equilibrium is maintained).
This may not be reasonable for order-disorder, especially for slow or coupled diffusers (Si-Al, for example). Properties for minerals that order-disorder slowly should be calculated using an explicit solid solution model.
Parameters¶ Parameter
Description
deltaHEnthalpy change (J/mol)
deltaVVolume change (m³/mol)
WhEnthalpy interaction parameter (J/mol)
WvVolume interaction parameter (m³/mol)
nRelated to the number of available sites for ordering
factorAn empirical factor
- burnman.eos.property_modifiers.calculate_property_modifications(mineral)[source]¶
Sums the excesses from all the modifiers.
To calculate thermodynamic properties from the outputs, the following functions should be used (the _o suffix stands for original value):
gibbs = gibbs_o + excesses[‘G’] S = S_o - excesses[‘dGdT’] V = V_o + excesses[‘dGdP’] K_T = V / ((V_o / K_T_o) - excesses[‘d2GdP2’]) C_p = C_p_o - temperature*excesses[‘d2GdT2’] alpha = ((alpha_o*V_o) + excesses[‘d2GdPdT’]) / V
H = gibbs + temperature*S helmholtz = gibbs - pressure*V C_v = C_p - V*temperature*alpha*alpha*K_T gr = alpha*K_T*V/C_v K_S = K_T*C_p/C_v
- burnman.eos.property_modifiers.debye_delta_excesses(pressure, temperature, params)[source]¶
Applies an excess contribution based on a Debye model. The excess Gibbs energy and its derivatives are given by:
\[\begin{split}\mathcal{G} = - U_{\textrm{Debye}}, \\ \frac{\partial \mathcal{G}}{\partial T} = - C_{V,\textrm{Debye}}, \\ \frac{\partial \mathcal{G}}{\partial P} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = - \frac{dC_{V,\textrm{Debye}}}{dT}, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T \partial P} = 0\end{split}\]The excess entropy tends toward a constant value at high temperature and behaves like the heat capacity of a Debye model at finite temperature.
Parameters¶ Parameter
Description
S_infEntropy at infinite temperature (J/mol/K).
Theta_0Einstein temperature (K).
- burnman.eos.property_modifiers.debye_excesses(pressure, temperature, params)[source]¶
Applies an excess contribution based on a Debye model. The excess Gibbs energy and its derivatives are given by:
\[\begin{split}\mathcal{G} = F_{\textrm{Debye}}, \\ \frac{\partial \mathcal{G}}{\partial T} = - S_{\textrm{Debye}}, \\ \frac{\partial \mathcal{G}}{\partial P} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = - \frac{C_{V,\textrm{Debye}}}{T}, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T \partial P} = 0\end{split}\]The excess heat capacity tends toward a constant value at high temperature.
Parameters¶ Parameter
Description
Cv_infHeat capacity at infinite temperature (J/mol/K).
Theta_0Debye temperature (K).
- burnman.eos.property_modifiers.einstein_delta_excesses(pressure, temperature, params)[source]¶
Applies an excess contribution based an Einstein model. The excess Gibbs energy and its derivatives are given by:
\[\begin{split}\mathcal{G} = - U_{\textrm{Einstein}}, \\ \frac{\partial \mathcal{G}}{\partial T} = - C_{V,\textrm{Einstein}}, \\ \frac{\partial \mathcal{G}}{\partial P} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = - \frac{dC_{V,\textrm{Einstein}}}{dT}, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T \partial P} = 0\end{split}\]The excess entropy tends toward a constant value at high temperature and behaves like the heat capacity of an Einstein model at finite temperature.
Parameters¶ Parameter
Description
S_infEntropy at infinite temperature (J/mol/K).
Theta_0Einstein temperature (K).
- burnman.eos.property_modifiers.einstein_excesses(pressure, temperature, params)[source]¶
Applies an excess contribution based an Einstein model. The excess Gibbs energy and its derivatives are given by:
\[\begin{split}\mathcal{G} = F_{\textrm{Einstein}}, \\ \frac{\partial \mathcal{G}}{\partial T} = - S_{\textrm{Einstein}}, \\ \frac{\partial \mathcal{G}}{\partial P} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = - \frac{C_{V,\textrm{Einstein}}}{T}, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T \partial P} = 0\end{split}\]The excess heat capacity tends toward a constant value at high temperature.
Parameters¶ Parameter
Description
Cv_infHeat capacity at infinite temperature (J/mol/K).
Theta_0Einstein temperature (K).
- burnman.eos.property_modifiers.landau_excesses(pressure, temperature, params)[source]¶
Applies a tricritical Landau correction to the properties of an endmember which undergoes a displacive phase transition. These transitions are not associated with an activation energy, and therefore they occur rapidly compared with seismic wave propagation.
This correction follows [Putnis92], and is done relative to the completely ordered state (at 0 K). It therefore differs in implementation from both [SLB11] and [HollandPowell11], who compute properties relative to the completely disordered state and standard states respectively. The current implementation is preferred, as the excess entropy (and heat capacity) terms are equal to zero at 0 K.
\[Tc = Tc_0 + \frac{V_D P}{S_D}\]If the temperature is above the critical temperature, Q (the order parameter) is equal to zero, and the Gibbs free energy is simply that of the disordered phase:
\[\begin{split}\mathcal{G}_{\textrm{dis}} = -S_D \left( \left( T - Tc \right) + \frac{Tc_0}{3} \right), \\ \frac{\partial \mathcal{G}}{\partial P}_{\textrm{dis}} = V_D, \\ \frac{\partial \mathcal{G}}{\partial T}_{\textrm{dis}} = -S_D\end{split}\]If temperature is below the critical temperature, Q is between 0 and 1. The Gibbs energy can be described thus:
\[\begin{split}Q^2 = \sqrt{\left( 1 - \frac{T}{Tc} \right)}, \\ \mathcal{G} = S_D \left((T - Tc) Q^2 + \frac{Tc_0 Q^6}{3} \right) + \mathcal{G}_{\textrm{dis}}, \\ \frac{\partial \mathcal{G}}{\partial P} = - V_D Q^2 \left(1 + \frac{T}{2 Tc} \left(1. - \frac{Tc_0}{Tc} \right) \right) + \frac{\partial \mathcal{G}}{\partial P}_{\textrm{dis}}, \\ \frac{\partial \mathcal{G}}{\partial T} = S_D Q^2 \left(\frac{3}{2} - \frac{Tc_0}{2 Tc} \right) + \frac{\partial \mathcal{G}}{\partial T}_{\textrm{dis}}, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = V_D^2 \frac{T}{S_D Tc^2 Q^2} \left( \frac{T}{4 Tc} \left(1. + \frac{Tc_0}{Tc} \right) + Q^4 \left(1. - \frac{Tc_0}{Tc} \right) - 1 \right), \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = - \frac{S_D}{Tc Q^2} \left(\frac{3}{4} - \frac{Tc_0}{4 Tc} \right), \\ \frac{\partial^2 \mathcal{G}}{\partial P \partial T} = \frac{V_D}{2 Tc Q^2} \left(1 + \left(\frac{T}{2 Tc} - Q^4 \right) \left(1 - \frac{Tc_0}{Tc} \right) \right)\end{split}\]Parameters¶ Parameter
Description
Tc_0Critical temperature at reference pressure (K)
S_DEntropy parameter (J/mol/K)
V_DVolume parameter (m³/mol)
- burnman.eos.property_modifiers.landau_hp_excesses(pressure, temperature, params)[source]¶
Applies a tricritical Landau correction similar to that described above. However, this implementation follows [HollandPowell11], who compute properties relative to the standard state.
Includes the correction published within landaunote.pdf (Holland, pers. comm), which ‘corrects’ the terms involving the critical temperature Tc / Tc*.
Note that this implementation allows the order parameter Q to be greater than one.
\[Tc = Tc0 + \frac{V_D P}{S_D}\]If the temperature is above the critical temperature, Q (the order parameter) is equal to zero. Otherwise
\[Q^2 = \sqrt{\left( \frac{Tc - T}{Tc0} \right)}\]\[\begin{split}\mathcal{G} = Tc_0 S_D \left( Q_0^2 - \frac{Q_0 ^ 6}{3} \right) \\ - S_D \left( Tc Q^2 - Tc_0 \frac{Q ^ 6}{3} \right) \\ - T S_D \left( Q_0^2 - Q^2 \right) + P V_D Q_0^2, \\ \frac{\partial \mathcal{G}}{\partial P} = -V_D \left( Q^2 - Q_0^2 \right), \\ \frac{\partial \mathcal{G}}{\partial T} = S_D \left( Q^2 - Q_0^2 \right), \\\end{split}\]The second derivatives of the Gibbs free energy are only non-zero if the order parameter exceeds zero. Then
\[\begin{split}\frac{\partial^2 \mathcal{G}}{\partial P^2} = -\frac{V_D^2}{2 S_D Tc_0 Q^2}, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = -\frac{S_D}{2 Tc_0 Q^2}, \\ \frac{\partial^2 \mathcal{G}}{\partial P \partial T} = \frac{V_D}{2 Tc_0 Q^2}\end{split}\]Parameters¶ Parameter
Description
P_0Reference pressure (Pa)
T_0Reference temperature (K)
Tc_0Critical temperature at reference pressure (K)
S_DEntropy parameter (J/mol/K)
V_DVolume parameter (m³/mol)
- burnman.eos.property_modifiers.landau_slb_2022_excesses(pressure, temperature, params)[source]¶
Applies a tricritical Landau correction to the properties of an endmember which undergoes a displacive phase transition. This correction follows [SLB22], and is done relative to the state with order parameter \(Q=1\).
The order parameter of this formulation can exceed one, at odds with [Putnis92], but in better agreement with atomic intuition [SLB22]. Nevertheless, this implementation is still not perfect, as the excess entropy (and heat capacity) terms are not equal to zero at 0 K. \(Q\) is limited to values less than or equal to 2 to avoid unrealistic stabilisation at ultrahigh pressure.
Parameters¶ Parameter
Description
Tc_0Critical temperature at reference pressure (K)
S_DEntropy parameter (J/mol/K)
V_DVolume parameter (m³/mol)
- burnman.eos.property_modifiers.linear_excesses(pressure, temperature, params)[source]¶
A simple linear correction in pressure and temperature.
The excess Gibbs energy and its derivatives are given by:
\[\begin{split}\mathcal{G} = \Delta \mathcal{E} - T \Delta S + P \Delta V, \\ \frac{\partial \mathcal{G}}{\partial T} = - \Delta S, \\ \frac{\partial \mathcal{G}}{\partial P} = \Delta V, \\ \frac{\partial^2 \mathcal{G}}{\partial T^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial P^2} = 0, \\ \frac{\partial^2 \mathcal{G}}{\partial T \partial P} = 0\end{split}\]This form of excess is extremely useful as a first order tweak to free energies (especially in solid solutions where data on all endmembers may not be available).
Parameters¶ Parameter
Description
delta_EEnergy correction (J/mol)
delta_SEntropy correction (J/mol/K)
delta_VVolume correction (m³/mol)
- burnman.eos.property_modifiers.magnetic_excesses_chs(pressure, temperature, params)[source]¶
This model approximates the excess energy due to magnetic ordering. It was originally described in [CHS87]. The expressions used in this implementation can be found in [Sun91].
Parameters¶ Parameter
Description
structural_parameterA dimensionless parameter related to the crystal structure
curie_temperatureA list of length 2: zero pressure Curie temperature (K) and pressure dependence (K/Pa)
magnetic_momentA list of length 2: zero pressure magnetic moment (Bohr magnetons) and pressure dependence (Bohr magnetons/Pa)
reciprocal kprime¶
vinet¶
- burnman.eos.vinet.bulk_modulus_vinet(volume, params)[source]¶
compute the bulk modulus as per the Vinet equation of state. Reference bulk modulus should be in \([Pa]\).