Materials

Burnman operates on materials (type Material) most prominently in form of minerals (Mineral) and composites (Composite).

Inheritance diagram of burnman.Material, burnman.Composite, burnman.Mineral, burnman.solidsolution.SolidSolution, burnman.mineral_helpers.HelperSpinTransition

Material Base Class

class burnman.material.Material[source]

Bases: object

Base class for all materials. The main functionality is unroll() which returns a list of objects of type Mineral and their molar fractions. This class is available as burnman.Material.

The user needs to call set_method() (once in the beginning) and set_state() before querying the material with unroll() or density().

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

set_method(method)[source]

Set the averaging method. See Averaging Schemes for details.

Notes

Needs to be implemented in derived classes.

to_string()[source]

Returns a human-readable name of this material. The default implementation will return the name of the class, which is a reasonable default.

Returns:

name : string

Name of this material.

debug_print(indent='')[source]

Print a human-readable representation of this Material.

print_minerals_of_current_state()[source]

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

set_state(pressure, temperature)[source]

Set the material to the given pressure and temperature.

Parameters:

pressure : float

The desired pressure in [Pa].

temperature : float

The desired temperature in [K].

reset()[source]

Resets all cached material properties.

It is typically not required for the user to call this function.

unroll()[source]

Unroll this material into a list of burnman.Mineral and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).

Returns:

fractions : list of float

List of molar fractions, should sum to 1.0.

minerals : list of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

evaluate(vars_list, pressures, temperatures)[source]

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
internal_energy

Returns the internal energy of the mineral.

Returns:

internal_energy : float

The internal energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with energy().
molar_gibbs

Returns the Gibbs free energy of the mineral.

Returns:

molar_gibbs : float

Gibbs free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gibbs().
molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns:

molar_helmholtz : float

Helmholtz free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with helmholtz().
molar_mass

Returns molar mass of the mineral.

Returns:

molar_mass : float

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.
molar_volume

Returns molar volume of the mineral.

Returns:

molar_volume : float

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with V().
density

Returns the density of this material.

Returns:

density : float

The density of this material in [kg/m^3].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with rho().
molar_entropy

Returns entropy of the mineral.

Returns:

entropy : float

Entropy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with S().
molar_enthalpy

Returns enthalpy of the mineral.

Returns:

enthalpy : float

Enthalpy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with H().
isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns:

isothermal_bulk_modulus : float

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_T().
adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns:

adiabatic_bulk_modulus : float

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_S().
isothermal_compressibility

Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).

Returns:

(K_T)^-1 : float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_T().
adiabatic_compressibility

Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).

Returns:

adiabatic_compressibility : float

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_S().
shear_modulus

Returns shear modulus of the mineral.

Returns:

shear_modulus : float

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_G().
p_wave_velocity

Returns P wave speed of the mineral.

Returns:

p_wave_velocity : float

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_p().
bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns:

bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_phi().
shear_wave_velocity

Returns shear wave speed of the mineral.

Returns:

shear_wave_velocity : float

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_s().
grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns:

gr : float

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gr().
thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns:

alpha : float

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with alpha().
heat_capacity_v

Returns heat capacity at constant volume of the mineral.

Returns:

heat_capacity_v : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_v().
heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns:

heat_capacity_p : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_p().
P

Alias for pressure()

T

Alias for temperature()

energy

Alias for internal_energy()

helmholtz

Alias for molar_helmholtz()

gibbs

Alias for molar_gibbs()

V

Alias for molar_volume()

rho

Alias for density()

S

Alias for molar_entropy()

H

Alias for molar_enthalpy()

K_T

Alias for isothermal_bulk_modulus()

K_S

Alias for adiabatic_bulk_modulus()

beta_T

Alias for isothermal_compressibility()

beta_S

Alias for adiabatic_compressibility()

G

Alias for shear_modulus()

v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()

gr

Alias for grueneisen_parameter()

alpha

Alias for thermal_expansivity()

C_v

Alias for heat_capacity_v()

C_p

Alias for heat_capacity_p()

PerpleX Class

class burnman.perplex.PerplexMaterial(tab_file)[source]

Bases: burnman.material.Material

This is the base class for a PerpleX material. States of the material can only be queried after setting the pressure and temperature using set_state().

Instances of this class are initialised with a 2D PerpleX tab file. This file should be in the standard format (as output by werami), and should have columns with the following names: ‘rho,kg/m3’, ‘alpha,1/K’, ‘beta,1/bar’, ‘Ks,bar’, ‘Gs,bar’, ‘v0,km/s’, ‘vp,km/s’, ‘vs,km/s’, ‘s,J/K/kg’, ‘h,J/kg’, ‘cp,J/K/kg’, ‘V,J/bar/mol’. The order of these names is not important.

Properties of the material are determined by linear interpolation from the PerpleX grid. They are all returned in SI units on a molar basis, even though the PerpleX tab file is not in these units.

This class is available as burnman.PerplexMaterial.

set_state(*args)

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters:

pressure : float

The desired pressure in [Pa].

temperature : float

The desired temperature in [K].

molar_volume

Returns molar volume of the mineral.

Returns:

molar_volume : float

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with V().
molar_enthalpy

Returns enthalpy of the mineral.

Returns:

enthalpy : float

Enthalpy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with H().
molar_entropy

Returns entropy of the mineral.

Returns:

entropy : float

Entropy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with S().
isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns:

isothermal_bulk_modulus : float

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_T().
adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns:

adiabatic_bulk_modulus : float

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_S().
heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns:

heat_capacity_p : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_p().
thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns:

alpha : float

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with alpha().
shear_modulus

Returns shear modulus of the mineral.

Returns:

shear_modulus : float

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_G().
p_wave_velocity

Returns P wave speed of the mineral.

Returns:

p_wave_velocity : float

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_p().
bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns:

bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_phi().
shear_wave_velocity

Returns shear wave speed of the mineral.

Returns:

shear_wave_velocity : float

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_s().
molar_gibbs

Returns the Gibbs free energy of the mineral.

Returns:

molar_gibbs : float

Gibbs free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gibbs().
molar_mass

Returns molar mass of the mineral.

Returns:

molar_mass : float

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.
density

Returns the density of this material.

Returns:

density : float

The density of this material in [kg/m^3].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with rho().
internal_energy

Returns the internal energy of the mineral.

Returns:

internal_energy : float

The internal energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with energy().
molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns:

molar_helmholtz : float

Helmholtz free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with helmholtz().
isothermal_compressibility

Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).

Returns:

(K_T)^-1 : float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_T().
adiabatic_compressibility

Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).

Returns:

adiabatic_compressibility : float

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_S().
heat_capacity_v

Returns heat capacity at constant volume of the mineral.

Returns:

heat_capacity_v : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_v().
grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns:

gr : float

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gr().
C_p

Alias for heat_capacity_p()

C_v

Alias for heat_capacity_v()

G

Alias for shear_modulus()

H

Alias for molar_enthalpy()

K_S

Alias for adiabatic_bulk_modulus()

K_T

Alias for isothermal_bulk_modulus()

P

Alias for pressure()

S

Alias for molar_entropy()

T

Alias for temperature()

V

Alias for molar_volume()

alpha

Alias for thermal_expansivity()

beta_S

Alias for adiabatic_compressibility()

beta_T

Alias for isothermal_compressibility()

debug_print(indent='')

Print a human-readable representation of this Material.

energy

Alias for internal_energy()

evaluate(vars_list, pressures, temperatures)

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

gibbs

Alias for molar_gibbs()

gr

Alias for grueneisen_parameter()

helmholtz

Alias for molar_helmholtz()

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
print_minerals_of_current_state()

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

reset()

Resets all cached material properties.

It is typically not required for the user to call this function.

rho

Alias for density()

set_method(method)

Set the averaging method. See Averaging Schemes for details.

Notes

Needs to be implemented in derived classes.

temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
to_string()

Returns a human-readable name of this material. The default implementation will return the name of the class, which is a reasonable default.

Returns:

name : string

Name of this material.

unroll()

Unroll this material into a list of burnman.Mineral and their molar fractions. All averaging schemes then operate on this list of minerals. Note that the return value of this function may depend on the current state (temperature, pressure).

Returns:

fractions : list of float

List of molar fractions, should sum to 1.0.

minerals : list of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()

Minerals

Endmembers

class burnman.mineral.Mineral(params=None, property_modifiers=None)[source]

Bases: burnman.material.Material

This is the base class for all minerals. States of the mineral can only be queried after setting the pressure and temperature using set_state(). The method for computing properties of the material is set using set_method(). This is done during initialisation if the param ‘equation_of_state’ has been defined. The method can be overridden later by the user.

This class is available as burnman.Mineral.

If deriving from this class, set the properties in self.params to the desired values. For more complicated materials you can overwrite set_state(), change the params and then call set_state() from this class.

All the material parameters are expected to be in plain SI units. This means that the elastic moduli should be in Pascals and NOT Gigapascals, and the Debye temperature should be in K not C. Additionally, the reference volume should be in m^3/(mol molecule) and not in unit cell volume and ‘n’ should be the number of atoms per molecule. Frequently in the literature the reference volume is given in Angstrom^3 per unit cell. To convert this to m^3/(mol of molecule) you should multiply by 10^(-30) * N_a / Z, where N_a is Avogadro’s number and Z is the number of formula units per unit cell. You can look up Z in many places, including www.mindat.org

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

set_method(equation_of_state)[source]

Set the equation of state to be used for this mineral. Takes a string corresponding to any of the predefined equations of state: ‘bm2’, ‘bm3’, ‘mgd2’, ‘mgd3’, ‘slb2’, ‘slb3’, ‘mt’, ‘hp_tmt’, or ‘cork’. Alternatively, you can pass a user defined class which derives from the equation_of_state base class. After calling set_method(), any existing derived properties (e.g., elastic parameters or thermodynamic potentials) will be out of date, so set_state() will need to be called again.

to_string()[source]

Returns the name of the mineral class

debug_print(indent='')[source]
unroll()[source]
set_state(*args)

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters:

pressure : float

The desired pressure in [Pa].

temperature : float

The desired temperature in [K].

molar_gibbs

Returns the Gibbs free energy of the mineral.

Returns:

molar_gibbs : float

Gibbs free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gibbs().
molar_volume

Returns molar volume of the mineral.

Returns:

molar_volume : float

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with V().
molar_entropy

Returns entropy of the mineral.

Returns:

entropy : float

Entropy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with S().
isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns:

isothermal_bulk_modulus : float

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_T().
heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns:

heat_capacity_p : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_p().
thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns:

alpha : float

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with alpha().
shear_modulus

Returns shear modulus of the mineral.

Returns:

shear_modulus : float

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_G().
molar_mass

Returns molar mass of the mineral.

Returns:

molar_mass : float

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.
density

Returns the density of this material.

Returns:

density : float

The density of this material in [kg/m^3].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with rho().
internal_energy

Returns the internal energy of the mineral.

Returns:

internal_energy : float

The internal energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with energy().
molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns:

molar_helmholtz : float

Helmholtz free energy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with helmholtz().
molar_enthalpy

Returns enthalpy of the mineral.

Returns:

enthalpy : float

Enthalpy in [J].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with H().
adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns:

adiabatic_bulk_modulus : float

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with K_S().
isothermal_compressibility

Returns isothermal compressibility of the mineral (or inverse isothermal bulk modulus).

Returns:

(K_T)^-1 : float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_T().
adiabatic_compressibility

Returns adiabatic compressibility of the mineral (or inverse adiabatic bulk modulus).

Returns:

adiabatic_compressibility : float

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with beta_S().
p_wave_velocity

Returns P wave speed of the mineral.

Returns:

p_wave_velocity : float

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_p().
bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns:

bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_phi().
shear_wave_velocity

Returns shear wave speed of the mineral.

Returns:

shear_wave_velocity : float

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with v_s().
C_p

Alias for heat_capacity_p()

C_v

Alias for heat_capacity_v()

G

Alias for shear_modulus()

H

Alias for molar_enthalpy()

K_S

Alias for adiabatic_bulk_modulus()

K_T

Alias for isothermal_bulk_modulus()

P

Alias for pressure()

S

Alias for molar_entropy()

T

Alias for temperature()

V

Alias for molar_volume()

alpha

Alias for thermal_expansivity()

beta_S

Alias for adiabatic_compressibility()

beta_T

Alias for isothermal_compressibility()

energy

Alias for internal_energy()

evaluate(vars_list, pressures, temperatures)

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

gibbs

Alias for molar_gibbs()

gr

Alias for grueneisen_parameter()

grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns:

gr : float

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with gr().
helmholtz

Alias for molar_helmholtz()

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
print_minerals_of_current_state()

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

reset()

Resets all cached material properties.

It is typically not required for the user to call this function.

rho

Alias for density()

temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()

heat_capacity_v

Returns heat capacity at constant volume of the mineral.

Returns:

heat_capacity_v : float

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.
  • Aliased with C_v().

Solid solutions

class burnman.solidsolution.SolidSolution(name=None, solution_type=None, endmembers=None, energy_interaction=None, volume_interaction=None, entropy_interaction=None, alphas=None, molar_fractions=None)[source]

Bases: burnman.mineral.Mineral

This is the base class for all solid solutions. Site occupancies, endmember activities and the constant and pressure and temperature dependencies of the excess properties can be queried after using set_composition() States of the solid solution can only be queried after setting the pressure, temperature and composition using set_state().

This class is available as burnman.SolidSolution. It uses an instance of burnman.SolutionModel to calculate interaction terms between endmembers.

All the solid solution parameters are expected to be in SI units. This means that the interaction parameters should be in J/mol, with the T and P derivatives in J/K/mol and m^3/mol.

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

get_endmembers()[source]
set_composition(molar_fractions)[source]

Set the composition for this solid solution.

Parameters:

molar_fractions: list of float

molar abundance for each endmember, needs to sum to one.

set_method(method)[source]
set_state(pressure, temperature)[source]
activities

Returns a list of endmember activities [unitless]

activity_coefficients

Returns a list of endmember activity coefficients (gamma = activity / ideal activity) [unitless]

internal_energy

Returns internal energy of the mineral [J] Aliased with self.energy

excess_partial_gibbs

Returns excess partial gibbs free energy [J] Property specific to solid solutions.

partial_gibbs

Returns excess partial gibbs free energy [J] Property specific to solid solutions.

excess_gibbs

Returns excess gibbs free energy [J] Property specific to solid solutions.

molar_gibbs

Returns Gibbs free energy of the solid solution [J] Aliased with self.gibbs

molar_helmholtz

Returns Helmholtz free energy of the solid solution [J] Aliased with self.helmholtz

molar_mass

Returns molar mass of the solid solution [kg/mol]

formula

Returns chemical formula of the solid solution

excess_volume

Returns excess volume of the solid solution [m^3/mol] Specific property for solid solutions

molar_volume

Returns molar volume of the solid solution [m^3/mol] Aliased with self.V

density

Returns density of the solid solution [kg/m^3] Aliased with self.rho

C_p

Alias for heat_capacity_p()

C_v

Alias for heat_capacity_v()

G

Alias for shear_modulus()

H

Alias for molar_enthalpy()

K_S

Alias for adiabatic_bulk_modulus()

K_T

Alias for isothermal_bulk_modulus()

P

Alias for pressure()

S

Alias for molar_entropy()

T

Alias for temperature()

V

Alias for molar_volume()

alpha

Alias for thermal_expansivity()

beta_S

Alias for adiabatic_compressibility()

beta_T

Alias for isothermal_compressibility()

debug_print(indent='')
energy

Alias for internal_energy()

evaluate(vars_list, pressures, temperatures)

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

excess_entropy

Returns excess entropy [J] Property specific to solid solutions.

gibbs

Alias for molar_gibbs()

gr

Alias for grueneisen_parameter()

helmholtz

Alias for molar_helmholtz()

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
print_minerals_of_current_state()

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

reset()

Resets all cached material properties.

It is typically not required for the user to call this function.

rho

Alias for density()

temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
to_string()

Returns the name of the mineral class

unroll()
v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()

molar_entropy

Returns entropy of the solid solution [J] Aliased with self.S

excess_enthalpy

Returns excess enthalpy [J] Property specific to solid solutions.

molar_enthalpy

Returns enthalpy of the solid solution [J] Aliased with self.H

isothermal_bulk_modulus

Returns isothermal bulk modulus of the solid solution [Pa] Aliased with self.K_T

adiabatic_bulk_modulus

Returns adiabatic bulk modulus of the solid solution [Pa] Aliased with self.K_S

isothermal_compressibility

Returns isothermal compressibility of the solid solution (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.K_T

adiabatic_compressibility

Returns adiabatic compressibility of the solid solution (or inverse adiabatic bulk modulus) [1/Pa] Aliased with self.K_S

shear_modulus

Returns shear modulus of the solid solution [Pa] Aliased with self.G

p_wave_velocity

Returns P wave speed of the solid solution [m/s] Aliased with self.v_p

bulk_sound_velocity

Returns bulk sound speed of the solid solution [m/s] Aliased with self.v_phi

shear_wave_velocity

Returns shear wave speed of the solid solution [m/s] Aliased with self.v_s

grueneisen_parameter

Returns grueneisen parameter of the solid solution [unitless] Aliased with self.gr

thermal_expansivity

Returns thermal expansion coefficient (alpha) of the solid solution [1/K] Aliased with self.alpha

heat_capacity_v

Returns heat capacity at constant volume of the solid solution [J/K/mol] Aliased with self.C_v

heat_capacity_p

Returns heat capacity at constant pressure of the solid solution [J/K/mol] Aliased with self.C_p

Mineral helpers

class burnman.mineral_helpers.HelperSpinTransition(transition_pressure, ls_mat, hs_mat)[source]

Bases: burnman.composite.Composite

Helper class that makes a mineral that switches between two materials (for low and high spin) based on some transition pressure [Pa]

debug_print(indent='')[source]
set_state(pressure, temperature)[source]
C_p

Alias for heat_capacity_p()

C_v

Alias for heat_capacity_v()

G

Alias for shear_modulus()

H

Alias for molar_enthalpy()

K_S

Alias for adiabatic_bulk_modulus()

K_T

Alias for isothermal_bulk_modulus()

P

Alias for pressure()

S

Alias for molar_entropy()

T

Alias for temperature()

V

Alias for molar_volume()

adiabatic_bulk_modulus

Returns adiabatic bulk modulus of the mineral [Pa] Aliased with self.K_S

adiabatic_compressibility

Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_S

alpha

Alias for thermal_expansivity()

beta_S

Alias for adiabatic_compressibility()

beta_T

Alias for isothermal_compressibility()

bulk_sound_velocity

Returns bulk sound speed of the composite [m/s] Aliased with self.v_phi

density

Compute the density of the composite based on the molar volumes and masses Aliased with self.rho

energy

Alias for internal_energy()

evaluate(vars_list, pressures, temperatures)

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

gibbs

Alias for molar_gibbs()

gr

Alias for grueneisen_parameter()

grueneisen_parameter

Returns grueneisen parameter of the composite [unitless] Aliased with self.gr

heat_capacity_p

Returns heat capacity at constant pressure of the composite [J/K/mol] Aliased with self.C_p

heat_capacity_v

Returns heat capacity at constant volume of the composite [J/K/mol] Aliased with self.C_v

helmholtz

Alias for molar_helmholtz()

internal_energy

Returns internal energy of the mineral [J] Aliased with self.energy

isothermal_bulk_modulus

Returns isothermal bulk modulus of the composite [Pa] Aliased with self.K_T

isothermal_compressibility

Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_T

molar_enthalpy

Returns enthalpy of the mineral [J] Aliased with self.H

molar_entropy

Returns enthalpy of the mineral [J] Aliased with self.S

molar_gibbs

Returns Gibbs free energy of the composite [J] Aliased with self.gibbs

molar_helmholtz

Returns Helmholtz free energy of the mineral [J] Aliased with self.helmholtz

molar_mass

Returns molar mass of the composite [kg/mol]

molar_volume

Returns molar volume of the composite [m^3/mol] Aliased with self.V

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

p_wave_velocity

Returns P wave speed of the composite [m/s] Aliased with self.v_p

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
print_minerals_of_current_state()

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

reset()

Resets all cached material properties.

It is typically not required for the user to call this function.

rho

Alias for density()

set_averaging_scheme(averaging_scheme)

Set the averaging scheme for the moduli in the composite. Default is set to VoigtReussHill, when Composite is initialized.

set_fractions(fractions, fraction_type='molar')

Change the fractions of the phases of this Composite.

Parameters:

fractions: list of floats

molar or mass fraction for each phase.

fraction_type: ‘molar’ or ‘mass’

specify whether molar or mass fractions are specified.

set_method(method)

set the same equation of state method for all the phases in the composite

shear_modulus

Returns shear modulus of the mineral [Pa] Aliased with self.G

shear_wave_velocity

Returns shear wave speed of the composite [m/s] Aliased with self.v_s

temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
thermal_expansivity

Returns thermal expansion coefficient of the composite [1/K] Aliased with self.alpha

to_string()

return the name of the composite

unroll()
v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()

Composites

class burnman.composite.Composite(phases, fractions=None, fraction_type='molar')[source]

Bases: burnman.material.Material

Base class for a composite material. The static phases can be minerals or materials, meaning composite can be nested arbitrarily.

The fractions of the phases can be input as either ‘molar’ or ‘mass’ during instantiation, and modified (or initialised) after this point by using set_fractions.

This class is available as burnman.Composite.

set_fractions(fractions, fraction_type='molar')[source]

Change the fractions of the phases of this Composite.

Parameters:

fractions: list of floats

molar or mass fraction for each phase.

fraction_type: ‘molar’ or ‘mass’

specify whether molar or mass fractions are specified.

set_method(method)[source]

set the same equation of state method for all the phases in the composite

set_averaging_scheme(averaging_scheme)[source]

Set the averaging scheme for the moduli in the composite. Default is set to VoigtReussHill, when Composite is initialized.

set_state(pressure, temperature)[source]

Update the material to the given pressure [Pa] and temperature [K].

debug_print(indent='')[source]
unroll()[source]
to_string()[source]

return the name of the composite

internal_energy

Returns internal energy of the mineral [J] Aliased with self.energy

molar_gibbs

Returns Gibbs free energy of the composite [J] Aliased with self.gibbs

molar_helmholtz

Returns Helmholtz free energy of the mineral [J] Aliased with self.helmholtz

molar_volume

Returns molar volume of the composite [m^3/mol] Aliased with self.V

molar_mass

Returns molar mass of the composite [kg/mol]

density

Compute the density of the composite based on the molar volumes and masses Aliased with self.rho

molar_entropy

Returns enthalpy of the mineral [J] Aliased with self.S

molar_enthalpy

Returns enthalpy of the mineral [J] Aliased with self.H

isothermal_bulk_modulus

Returns isothermal bulk modulus of the composite [Pa] Aliased with self.K_T

adiabatic_bulk_modulus

Returns adiabatic bulk modulus of the mineral [Pa] Aliased with self.K_S

isothermal_compressibility

Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_T

adiabatic_compressibility

Returns isothermal compressibility of the composite (or inverse isothermal bulk modulus) [1/Pa] Aliased with self.beta_S

shear_modulus

Returns shear modulus of the mineral [Pa] Aliased with self.G

p_wave_velocity

Returns P wave speed of the composite [m/s] Aliased with self.v_p

bulk_sound_velocity

Returns bulk sound speed of the composite [m/s] Aliased with self.v_phi

shear_wave_velocity

Returns shear wave speed of the composite [m/s] Aliased with self.v_s

grueneisen_parameter

Returns grueneisen parameter of the composite [unitless] Aliased with self.gr

thermal_expansivity

Returns thermal expansion coefficient of the composite [1/K] Aliased with self.alpha

heat_capacity_v

Returns heat capacity at constant volume of the composite [J/K/mol] Aliased with self.C_v

heat_capacity_p

Returns heat capacity at constant pressure of the composite [J/K/mol] Aliased with self.C_p

C_p

Alias for heat_capacity_p()

C_v

Alias for heat_capacity_v()

G

Alias for shear_modulus()

H

Alias for molar_enthalpy()

K_S

Alias for adiabatic_bulk_modulus()

K_T

Alias for isothermal_bulk_modulus()

P

Alias for pressure()

S

Alias for molar_entropy()

T

Alias for temperature()

V

Alias for molar_volume()

alpha

Alias for thermal_expansivity()

beta_S

Alias for adiabatic_compressibility()

beta_T

Alias for isothermal_compressibility()

energy

Alias for internal_energy()

evaluate(vars_list, pressures, temperatures)

Returns an array of material properties requested through a list of strings at given pressure and temperature conditions. At the end it resets the set_state to the original values. The user needs to call set_method() before.

Parameters:

vars_list : list of strings

Variables to be returned for given conditions

pressures : ndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperatures : ndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns:

output : array of array of float

Array returning all variables at given pressure/temperature values. output[i][j] is property vars_list[j] and temperatures[i] and pressures[i].

gibbs

Alias for molar_gibbs()

gr

Alias for grueneisen_parameter()

helmholtz

Alias for molar_helmholtz()

name

Human-readable name of this material.

By default this will return the name of the class, but it can be set to an arbitrary string. Overriden in Mineral.

pressure

Returns current pressure that was set with set_state().

Returns:

pressure : float

Pressure in [Pa].

Notes

  • Aliased with P().
print_minerals_of_current_state()

Print a human-readable representation of this Material at the current P, T as a list of minerals. This requires set_state() has been called before.

reset()

Resets all cached material properties.

It is typically not required for the user to call this function.

rho

Alias for density()

temperature

Returns current temperature that was set with set_state().

Returns:

temperature : float

Temperature in [K].

Notes

  • Aliased with T().
v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()