Materials

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

Inheritance diagram of burnman.Material, burnman.Mineral, burnman.PerplexMaterial, burnman.SolidSolution, burnman.Composite, burnman.CombinedMineral, burnman.AnisotropicMaterial, burnman.AnisotropicMineral

Material Base Class

class burnman.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().

property name

Human-readable name of this material.

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

set_method(method)[source]

Set the averaging method. See Averaging Schemes for details.

Notes

Needs to be implemented in derived classes.

to_string()[source]

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

Returns
namestring

Name of this material.

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
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

reset()[source]

Resets all cached material properties.

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

copy()[source]
unroll()[source]

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

evaluate(vars_list, pressures, temperatures)[source]

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property molar_internal_energy

Returns the molar internal energy of the mineral.

Returns
molar_internal_energyfloat

The internal energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with energy().

property molar_gibbs

Returns the molar Gibbs free energy of the mineral.

Returns
molar_gibbsfloat

Gibbs free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gibbs().

property molar_helmholtz

Returns the molar Helmholtz free energy of the mineral.

Returns
molar_helmholtzfloat

Helmholtz free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with helmholtz().

property molar_mass

Returns molar mass of the mineral.

Returns
molar_massfloat

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.

property molar_volume

Returns molar volume of the mineral.

Returns
molar_volumefloat

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with V().

property density

Returns the density of this material.

Returns
densityfloat

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

Notes

  • Needs to be implemented in derived classes.

  • Aliased with rho().

property molar_entropy

Returns molar entropy of the mineral.

Returns
molar_entropyfloat

Entropy in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with S().

property molar_enthalpy

Returns molar enthalpy of the mineral.

Returns
molar_enthalpyfloat

Enthalpy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with H().

property isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns
isothermal_bulk_modulusfloat

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_T().

property adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns
adiabatic_bulk_modulusfloat

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_S().

property isothermal_compressibility

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

Returns
(K_T)^-1float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_T().

property adiabatic_compressibility

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

Returns
adiabatic_compressibilityfloat

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_S().

property shear_modulus

Returns shear modulus of the mineral.

Returns
shear_modulusfloat

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_G().

property p_wave_velocity

Returns P wave speed of the mineral.

Returns
p_wave_velocityfloat

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_p().

property bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns
bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_phi().

property shear_wave_velocity

Returns shear wave speed of the mineral.

Returns
shear_wave_velocityfloat

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_s().

property grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns
grfloat

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gr().

property thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns
alphafloat

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with alpha().

property molar_heat_capacity_v

Returns molar heat capacity at constant volume of the mineral.

Returns
molar_heat_capacity_vfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_v().

property molar_heat_capacity_p

Returns molar heat capacity at constant pressure of the mineral.

Returns
molar_heat_capacity_pfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_p().

property P

Alias for pressure()

property T

Alias for temperature()

property energy

Alias for molar_internal_energy()

property helmholtz

Alias for molar_helmholtz()

property gibbs

Alias for molar_gibbs()

property V

Alias for molar_volume()

property rho

Alias for density()

property S

Alias for molar_entropy()

property H

Alias for molar_enthalpy()

property K_T

Alias for isothermal_bulk_modulus()

property K_S

Alias for adiabatic_bulk_modulus()

property beta_T

Alias for isothermal_compressibility()

property beta_S

Alias for adiabatic_compressibility()

property G

Alias for shear_modulus()

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

property gr

Alias for grueneisen_parameter()

property alpha

Alias for thermal_expansivity()

property C_v

Alias for molar_heat_capacity_v()

property C_p

Alias for molar_heat_capacity_p()

Perple_X Class

class burnman.PerplexMaterial(tab_file, name='Perple_X material')[source]

Bases: burnman.classes.material.Material

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

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

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

This class is available as burnman.PerplexMaterial.

property name

Human-readable name of this material.

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

set_state()

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

property molar_volume

Returns molar volume of the mineral.

Returns
molar_volumefloat

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with V().

property molar_enthalpy

Returns molar enthalpy of the mineral.

Returns
molar_enthalpyfloat

Enthalpy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with H().

property molar_entropy

Returns molar entropy of the mineral.

Returns
molar_entropyfloat

Entropy in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with S().

property isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns
isothermal_bulk_modulusfloat

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_T().

property adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns
adiabatic_bulk_modulusfloat

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_S().

property molar_heat_capacity_p

Returns molar heat capacity at constant pressure of the mineral.

Returns
molar_heat_capacity_pfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_p().

property thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns
alphafloat

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with alpha().

property shear_modulus

Returns shear modulus of the mineral.

Returns
shear_modulusfloat

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_G().

property p_wave_velocity

Returns P wave speed of the mineral.

Returns
p_wave_velocityfloat

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_p().

property bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns
bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_phi().

property shear_wave_velocity

Returns shear wave speed of the mineral.

Returns
shear_wave_velocityfloat

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_s().

property molar_gibbs

Returns the molar Gibbs free energy of the mineral.

Returns
molar_gibbsfloat

Gibbs free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gibbs().

property molar_mass

Returns molar mass of the mineral.

Returns
molar_massfloat

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.

property density

Returns the density of this material.

Returns
densityfloat

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

Notes

  • Needs to be implemented in derived classes.

  • Aliased with rho().

property molar_internal_energy

Returns the molar internal energy of the mineral.

Returns
molar_internal_energyfloat

The internal energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with energy().

property molar_helmholtz

Returns the molar Helmholtz free energy of the mineral.

Returns
molar_helmholtzfloat

Helmholtz free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with helmholtz().

property isothermal_compressibility

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

Returns
(K_T)^-1float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_T().

property adiabatic_compressibility

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

Returns
adiabatic_compressibilityfloat

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_S().

property molar_heat_capacity_v

Returns molar heat capacity at constant volume of the mineral.

Returns
molar_heat_capacity_vfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_v().

property grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns
grfloat

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gr().

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

copy()
debug_print(indent='')

Print a human-readable representation of this Material.

property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property helmholtz

Alias for molar_helmholtz()

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

set_method(method)

Set the averaging method. See Averaging Schemes for details.

Notes

Needs to be implemented in derived classes.

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

to_string()

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

Returns
namestring

Name of this material.

unroll()

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

Minerals

Endmembers

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

Bases: burnman.classes.material.Material

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

This class is available as burnman.Mineral.

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

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

property name

Human-readable name of this material.

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

set_method(equation_of_state)[source]

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

to_string()[source]

Returns the name of the mineral class

debug_print(indent='')[source]

Print a human-readable representation of this Material.

unroll()[source]

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

set_state()

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

property molar_gibbs

Returns the molar Gibbs free energy of the mineral.

Returns
molar_gibbsfloat

Gibbs free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gibbs().

property molar_volume

Returns molar volume of the mineral.

Returns
molar_volumefloat

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with V().

property molar_entropy

Returns molar entropy of the mineral.

Returns
molar_entropyfloat

Entropy in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with S().

property isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns
isothermal_bulk_modulusfloat

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_T().

property molar_heat_capacity_p

Returns molar heat capacity at constant pressure of the mineral.

Returns
molar_heat_capacity_pfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_p().

property thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns
alphafloat

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with alpha().

property shear_modulus

Returns shear modulus of the mineral.

Returns
shear_modulusfloat

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_G().

property formula

Returns the chemical formula of the Mineral class

property molar_mass

Returns molar mass of the mineral.

Returns
molar_massfloat

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.

property density

Returns the density of this material.

Returns
densityfloat

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

Notes

  • Needs to be implemented in derived classes.

  • Aliased with rho().

property molar_internal_energy

Returns the molar internal energy of the mineral.

Returns
molar_internal_energyfloat

The internal energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with energy().

property molar_helmholtz

Returns the molar Helmholtz free energy of the mineral.

Returns
molar_helmholtzfloat

Helmholtz free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with helmholtz().

property molar_enthalpy

Returns molar enthalpy of the mineral.

Returns
molar_enthalpyfloat

Enthalpy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with H().

property adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns
adiabatic_bulk_modulusfloat

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_S().

property isothermal_compressibility

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

Returns
(K_T)^-1float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_T().

property adiabatic_compressibility

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

Returns
adiabatic_compressibilityfloat

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_S().

property p_wave_velocity

Returns P wave speed of the mineral.

Returns
p_wave_velocityfloat

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_p().

property bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns
bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_phi().

property shear_wave_velocity

Returns shear wave speed of the mineral.

Returns
shear_wave_velocityfloat

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_s().

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

copy()
property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns
grfloat

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gr().

property helmholtz

Alias for molar_helmholtz()

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

property molar_heat_capacity_v

Returns molar heat capacity at constant volume of the mineral.

Returns
molar_heat_capacity_vfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_v().

Solid solutions

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

Bases: burnman.classes.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.

The parameters are relevant to all solution models. Please see the documentation for individual models for details about other parameters.

Parameters
namestring

Name of the solid solution

solution_typestring

String determining which SolutionModel to use. One of ‘mechanical’, ‘ideal’, ‘symmetric’, ‘asymmetric’ or ‘subregular’.

endmemberslist of lists

List of endmembers in this solid solution. The first item of each list should be a burnman.Mineral object. The second item should be a string with the site formula of the endmember.

molar_fractionsnumpy array (optional)

The molar fractions of each endmember in the solid solution. Can be reset using the set_composition() method.

property name

Human-readable name of this material.

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

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

Set the composition for this solid solution. Resets cached properties.

Parameters
molar_fractions: list of float

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

set_method(method)[source]

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

set_state(pressure, temperature)[source]

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

property formula

Returns molar chemical formula of the solid solution.

property activities

Returns a list of endmember activities [unitless].

property activity_coefficients

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

property molar_internal_energy

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

property excess_partial_gibbs

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

property excess_partial_volumes

Returns excess partial volumes [m^3]. Property specific to solid solutions.

property excess_partial_entropies

Returns excess partial entropies [J/K]. Property specific to solid solutions.

property partial_gibbs

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

property partial_volumes

Returns excess partial volumes [m^3]. Property specific to solid solutions.

property partial_entropies

Returns excess partial entropies [J/K]. Property specific to solid solutions.

property excess_gibbs

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

property gibbs_hessian

Returns an array containing the second compositional derivative of the Gibbs free energy [J]. Property specific to solid solutions.

property entropy_hessian

Returns an array containing the second compositional derivative of the entropy [J/K]. Property specific to solid solutions.

property volume_hessian

Returns an array containing the second compositional derivative of the volume [m^3]. Property specific to solid solutions.

property molar_gibbs

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

property molar_helmholtz

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

property molar_mass

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

property excess_volume

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

property molar_volume

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

property density

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

property excess_entropy

Returns excess molar entropy [J/K/mol]. Property specific to solid solutions.

property molar_entropy

Returns molar entropy of the solid solution [J/K/mol]. Aliased with self.S.

property excess_enthalpy

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

property molar_enthalpy

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

property isothermal_bulk_modulus

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

property adiabatic_bulk_modulus

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

property isothermal_compressibility

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

property adiabatic_compressibility

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

property shear_modulus

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

property p_wave_velocity

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

property bulk_sound_velocity

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

property shear_wave_velocity

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

property grueneisen_parameter

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

property thermal_expansivity

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

property molar_heat_capacity_v

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

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

copy()
debug_print(indent='')

Print a human-readable representation of this Material.

property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property helmholtz

Alias for molar_helmholtz()

property molar_heat_capacity_p

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

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

to_string()

Returns the name of the mineral class

unroll()

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

property stoichiometric_matrix[source]

A sympy Matrix where each element M[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property stoichiometric_array[source]

An array where each element arr[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property reaction_basis[source]

An array where each element arr[i,j] corresponds to the number of moles of endmember[j] involved in reaction[i].

property n_reactions[source]

The number of reactions in reaction_basis.

property independent_element_indices[source]

A list of an independent set of element indices. If the amounts of these elements are known (element_amounts), the amounts of the other elements can be inferred by -compositional_null_basis[independent_element_indices].dot(element_amounts).

property dependent_element_indices[source]

The element indices not included in the independent list.

property compositional_null_basis[source]

An array N such that N.b = 0 for all bulk compositions that can be produced with a linear sum of the endmembers in the solid solution.

property endmember_formulae[source]

A list of formulae for all the endmember in the solid solution.

property endmember_names[source]

A list of names for all the endmember in the solid solution.

property n_endmembers[source]

The number of endmembers in the solid solution.

property elements[source]

A list of the elements which could be contained in the solid solution, returned in the IUPAC element order.

Mineral helpers

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

Bases: burnman.classes.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]

Print a human-readable representation of this Material.

set_state(pressure, temperature)[source]

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

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property adiabatic_bulk_modulus

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

property adiabatic_compressibility

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

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

property bulk_sound_velocity

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

property compositional_null_basis

An array N such that N.b = 0 for all bulk compositions that can be produced with a linear sum of the endmembers in the composite.

copy()
property density

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

property dependent_element_indices

The element indices not included in the independent list.

property elements

A list of the elements which could be contained in the composite, returned in the IUPAC element order.

property endmember_formulae

A list of the formulae in the composite.

property endmember_names

A list of the endmember names contained in the composite. Mineral names are returned as given in Mineral.name. Solution endmember names are given in the format Mineral.name in SolidSolution.name.

property endmember_partial_gibbs

Returns the partial Gibbs energies for all the endmember minerals in the Composite

property endmembers_per_phase

A list of integers corresponding to the number of endmembers stored within each phase.

property energy

Alias for molar_internal_energy()

property equilibrated

Returns True if the reaction affinities are all zero within a given tolerance given by self.equilibrium_tolerance.

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property formula

Returns molar chemical formula of the composite

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property grueneisen_parameter

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

property helmholtz

Alias for molar_helmholtz()

property independent_element_indices

A list of an independent set of element indices. If the amounts of these elements are known (element_amounts), the amounts of the other elements can be inferred by -compositional_null_basis[independent_element_indices].dot(element_amounts)

property isothermal_bulk_modulus

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

property isothermal_compressibility

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

property molar_enthalpy

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

property molar_entropy

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

property molar_gibbs

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

property molar_heat_capacity_p

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

property molar_heat_capacity_v

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

property molar_helmholtz

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

property molar_internal_energy

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

property molar_mass

Returns molar mass of the composite [kg/mol]

property molar_volume

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

property n_elements

Returns the total number of distinct elements which might be in the composite.

property n_endmembers

Returns the number of endmembers in the composite.

property n_reactions

The number of reactions in reaction_basis.

property name

Human-readable name of this material.

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

property p_wave_velocity

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

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

property reaction_affinities

Returns the affinities corresponding to each reaction in reaction_basis

property reaction_basis

An array where each element arr[i,j] corresponds to the number of moles of endmember[j] involved in reaction[i].

property reaction_basis_as_strings

Returns a list of string representations of all the reactions in reaction_basis.

property reduced_stoichiometric_array

The stoichiometric array including only the independent elements

reset()

Resets all cached material properties.

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

property 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. Resets cached properties

Parameters
fractions: list or numpy array 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

property shear_modulus

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

property shear_wave_velocity

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

property stoichiometric_array

An array where each element arr[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property stoichiometric_matrix

An sympy Matrix where each element M[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property thermal_expansivity

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

to_string()

return the name of the composite

unroll()

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

Anisotropic materials

class burnman.AnisotropicMaterial(rho, cijs)[source]

Bases: burnman.classes.material.Material

A base class for anisotropic elastic materials. The base class is initialised with a density and a full isentropic stiffness tensor in Voigt notation. It can then be interrogated to find the values of different properties, such as bounds on seismic velocities. There are also several functions which can be called to calculate properties along directions oriented with respect to the isentropic elastic tensor.

See [MHS11] and https://docs.materialsproject.org/methodology/elasticity/ for mathematical descriptions of each function.

property isentropic_stiffness_tensor
property full_isentropic_stiffness_tensor
property isentropic_compliance_tensor
property full_isentropic_compliance_tensor
property density

Returns the density of this material.

Returns
densityfloat

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

Notes

  • Needs to be implemented in derived classes.

  • Aliased with rho().

property isentropic_bulk_modulus_voigt

Computes the isentropic bulk modulus (Voigt bound)

property isentropic_bulk_modulus_reuss

Computes the isentropic bulk modulus (Reuss bound)

property isentropic_bulk_modulus_vrh

Computes the isentropic bulk modulus (Voigt-Reuss-Hill average)

property isentropic_shear_modulus_voigt

Computes the isentropic shear modulus (Voigt bound)

property isentropic_shear_modulus_reuss

Computes the isentropic shear modulus (Reuss bound)

property isentropic_shear_modulus_vrh

Computes the shear modulus (Voigt-Reuss-Hill average)

property isentropic_universal_elastic_anisotropy

Compute the universal elastic anisotropy

property isentropic_isotropic_poisson_ratio

Compute mu, the isotropic Poisson ratio (a description of the laterial response to loading)

christoffel_tensor(propagation_direction)[source]

Computes the Christoffel tensor from an elastic stiffness tensor and a propagation direction for a seismic wave relative to the stiffness tensor

T_ik = C_ijkl n_j n_l

isentropic_linear_compressibility(direction)[source]

Computes the linear isentropic compressibility in a given direction relative to the stiffness tensor

isentropic_youngs_modulus(direction)[source]

Computes the isentropic Youngs modulus in a given direction relative to the stiffness tensor

isentropic_shear_modulus(plane_normal, shear_direction)[source]

Computes the isentropic shear modulus on a plane in a given shear direction relative to the stiffness tensor

isentropic_poissons_ratio(axial_direction, lateral_direction)[source]

Computes the isentropic poisson ratio given loading and response directions relative to the stiffness tensor

wave_velocities(propagation_direction)[source]

Computes the compressional wave velocity, and two shear wave velocities in a given propagation direction

Returns two lists, containing the wave speeds and directions of particle motion relative to the stiffness tensor

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns
adiabatic_bulk_modulusfloat

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_S().

property adiabatic_compressibility

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

Returns
adiabatic_compressibilityfloat

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_S().

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

property bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns
bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_phi().

copy()
debug_print(indent='')

Print a human-readable representation of this Material.

property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns
grfloat

Grueneisen parameters [unitless].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gr().

property helmholtz

Alias for molar_helmholtz()

property isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns
isothermal_bulk_modulusfloat

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_T().

property isothermal_compressibility

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

Returns
(K_T)^-1float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_T().

property molar_enthalpy

Returns molar enthalpy of the mineral.

Returns
molar_enthalpyfloat

Enthalpy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with H().

property molar_entropy

Returns molar entropy of the mineral.

Returns
molar_entropyfloat

Entropy in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with S().

property molar_gibbs

Returns the molar Gibbs free energy of the mineral.

Returns
molar_gibbsfloat

Gibbs free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gibbs().

property molar_heat_capacity_p

Returns molar heat capacity at constant pressure of the mineral.

Returns
molar_heat_capacity_pfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_p().

property molar_heat_capacity_v

Returns molar heat capacity at constant volume of the mineral.

Returns
molar_heat_capacity_vfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_v().

property molar_helmholtz

Returns the molar Helmholtz free energy of the mineral.

Returns
molar_helmholtzfloat

Helmholtz free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with helmholtz().

property molar_internal_energy

Returns the molar internal energy of the mineral.

Returns
molar_internal_energyfloat

The internal energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with energy().

property molar_mass

Returns molar mass of the mineral.

Returns
molar_massfloat

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.

property molar_volume

Returns molar volume of the mineral.

Returns
molar_volumefloat

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with V().

property name

Human-readable name of this material.

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

property p_wave_velocity

Returns P wave speed of the mineral.

Returns
p_wave_velocityfloat

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_p().

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

set_method(method)

Set the averaging method. See Averaging Schemes for details.

Notes

Needs to be implemented in derived classes.

set_state(pressure, temperature)

Set the material to the given pressure and temperature.

Parameters
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

property shear_modulus

Returns shear modulus of the mineral.

Returns
shear_modulusfloat

Shear modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_G().

property shear_wave_velocity

Returns shear wave speed of the mineral.

Returns
shear_wave_velocityfloat

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_s().

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns
alphafloat

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with alpha().

to_string()

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

Returns
namestring

Name of this material.

unroll()

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

class burnman.AnisotropicMineral(isotropic_mineral, cell_parameters, anisotropic_parameters)[source]

Bases: burnman.classes.mineral.Mineral, burnman.classes.anisotropy.AnisotropicMaterial

A class implementing the anisotropic mineral equation of state described in [Myh21]. This class is derived from both Mineral and AnisotropicMaterial, and inherits most of the methods from these classes.

Instantiation of an AnisotropicMineral takes three arguments; a reference Mineral (i.e. a standard isotropic mineral which provides volume as a function of pressure and temperature), cell_parameters, which give the lengths of the molar cell vectors and the angles between them (see cell_parameters_to_vectors()), and a 4D array of anisotropic parameters which describe the anisotropic behaviour of the mineral. For a description of the physical meaning of these parameters, please refer to the code or to the original paper.

States of the mineral can only be queried after setting the pressure and temperature using set_state().

This class is available as burnman.AnisotropicMineral.

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. Additionally, the cell parameters should be in m/(mol formula unit) and not in unit cell lengths. To convert unit cell lengths given in Angstrom to molar cell parameters you should multiply by 10^(-10) * (N_a / Z)^1/3, 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.

Finally, it is assumed that the unit cell of the anisotropic material is aligned in a particular way relative to the coordinate axes (the anisotropic_parameters are defined relative to the coordinate axes). The crystallographic a-axis is assumed to be parallel to the first spatial coordinate axis, and the crystallographic b-axis is assumed to be perpendicular to the third spatial coordinate axis.

property name

Human-readable name of this material.

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

set_state()

(copied from set_state):

Set the material to the given pressure and temperature.

Parameters
pressurefloat

The desired pressure in [Pa].

temperaturefloat

The desired temperature in [K].

property deformation_gradient_tensor
Returns
deformation_gradient_tensor2D numpy array

The deformation gradient tensor describing the deformation of the mineral from its undeformed state (i.e. the state at the reference pressure and temperature).

property unrotated_cell_vectors
Returns
unrotated_cell_vectors2D numpy array

The vectors of the cell constructed from one mole of formula units after deformation of the mineral from its undeformed state (i.e. the state at the reference pressure and temperature). Each vector is given in [m]. See the documentation for the function cell_parameters_to_vectors() for the assumed relationships between the cell vectors and spatial coordinate axes.

property deformed_coordinate_frame
Returns
deformed_coordinate_frame2D numpy array

The orientations of the three spatial coordinate axes after deformation of the mineral. For orthotropic minerals, this is equal to the identity matrix, as hydrostatic stresses only induce rotations in monoclinic and triclinic crystals.

property rotation_matrix
Returns
rotation_matrix2D numpy array

The matrix required to rotate the properties of the deformed mineral into the deformed coordinate frame. For orthotropic minerals, this is equal to the identity matrix.

property cell_vectors
Returns
cell_vectors2D numpy array

The vectors of the cell constructed from one mole of formula units. Each vector is given in [m]. See the documentation for the function cell_parameters_to_vectors() for the assumed relationships between the cell vectors and spatial coordinate axes.

property cell_parameters
Returns
cell_parameters1D numpy array

The molar cell parameters of the mineral, given in standard form: [\(a\), \(b\), \(c\), \(\alpha\), \(\beta\), \(\gamma\)], where the first three floats are the lengths of the vectors in [m] defining the cell constructed from one mole of formula units. The last three floats are angles between vectors (given in radians). See the documentation for the function cell_parameters_to_vectors() for the assumed relationships between the cell vectors and spatial coordinate axes.

property shear_modulus

Anisotropic minerals do not (in general) have a single shear modulus. This function returns a NotImplementedError. Users should instead consider directly querying the elements in the isothermal_stiffness_tensor or isentropic_stiffness_tensor.

property isothermal_bulk_modulus

Anisotropic minerals do not have a single isothermal bulk modulus. This function returns a NotImplementedError. Users should instead consider either using isothermal_bulk_modulus_reuss, isothermal_bulk_modulus_voigt, or directly querying the elements in the isothermal_stiffness_tensor.

property isentropic_bulk_modulus

Anisotropic minerals do not have a single isentropic bulk modulus. This function returns a NotImplementedError. Users should instead consider either using isentropic_bulk_modulus_reuss, isentropic_bulk_modulus_voigt (both derived from Anisotropicmineral), or directly querying the elements in the isentropic_stiffness_tensor.

property isothermal_bulk_modulus_reuss

Returns isothermal bulk modulus of the material.

Returns
isothermal_bulk_modulusfloat

Bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_T().

property isothermal_bulk_modulus_voigt
Returns
isothermal_bulk_modulus_voigtfloat

The Voigt bound on the isothermal bulk modulus in [Pa].

property isothermal_compressibility_reuss
Returns
isothermal_compressibility_reussfloat

The Reuss bound on the isothermal compressibility in [1/Pa].

property isothermal_compliance_tensor
Returns
isothermal_compliance_tensor2D numpy array

The isothermal compliance tensor [1/Pa] in Voigt form (\(\mathbb{S}_{\text{T} pq}\)).

property thermal_expansivity_tensor
Returns
thermal_expansivity_tensor2D numpy array

The tensor of thermal expansivities [1/K].

property isothermal_stiffness_tensor
Returns
isothermak_stiffness_tensor2D numpy array

The isothermal stiffness tensor [Pa] in Voigt form (\(\mathbb{C}_{\text{T} pq}\)).

property full_isothermal_compliance_tensor
Returns
full_isothermak_stiffness_tensor4D numpy array

The isothermal compliance tensor [1/Pa] in standard form (\(\mathbb{S}_{\text{T} ijkl}\)).

property full_isothermal_stiffness_tensor
Returns
full_isothermak_stiffness_tensor4D numpy array

The isothermal stiffness tensor [Pa] in standard form (\(\mathbb{C}_{\text{T} ijkl}\)).

property full_isentropic_compliance_tensor
Returns
full_isothermak_stiffness_tensor4D numpy array

The isentropic compliance tensor [1/Pa] in standard form (\(\mathbb{S}_{\text{N} ijkl}\)).

property isentropic_compliance_tensor
Returns
isentropic_compliance_tensor2D numpy array

The isentropic compliance tensor [1/Pa] in Voigt form (\(\mathbb{S}_{\text{N} pq}\)).

property isentropic_stiffness_tensor
Returns
isentropic_stiffness_tensor2D numpy array

The isentropic stiffness tensor [Pa] in Voigt form (\(\mathbb{C}_{\text{N} pq}\)).

property full_isentropic_stiffness_tensor
Returns
full_isentropic_stiffness_tensor4D numpy array

The isentropic stiffness tensor [Pa] in standard form (\(\mathbb{C}_{\text{N} ijkl}\)).

property grueneisen_tensor
Returns
grueneisen_tensor2D numpy array

The grueneisen tensor. This is defined by [BM67] as \(\mathbb{C}_{\text{N} ijkl} \alpha_{kl} V/C_{P}\).

property grueneisen_parameter

Anisotropic minerals do not (in general) have a single grueneisen parameter. This function returns a NotImplementedError. Users should instead consider directly querying the elements in the grueneisen_tensor.

property isothermal_compressibility_tensor
Returns
isothermal_compressibility_tensor2D numpy array

The isothermal compressibility tensor.

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Returns
adiabatic_bulk_modulusfloat

Adiabatic bulk modulus in [Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with K_S().

property adiabatic_compressibility

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

Returns
adiabatic_compressibilityfloat

adiabatic compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_S().

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

property bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns
bulk sound velocity: float

Sound velocity in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_phi().

christoffel_tensor(propagation_direction)

Computes the Christoffel tensor from an elastic stiffness tensor and a propagation direction for a seismic wave relative to the stiffness tensor

T_ik = C_ijkl n_j n_l

copy()
debug_print(indent='')

Print a human-readable representation of this Material.

property density

Returns the density of this material.

Returns
densityfloat

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

Notes

  • Needs to be implemented in derived classes.

  • Aliased with rho().

property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property formula

Returns the chemical formula of the Mineral class

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property helmholtz

Alias for molar_helmholtz()

property isentropic_bulk_modulus_reuss

Computes the isentropic bulk modulus (Reuss bound)

property isentropic_bulk_modulus_voigt

Computes the isentropic bulk modulus (Voigt bound)

property isentropic_bulk_modulus_vrh

Computes the isentropic bulk modulus (Voigt-Reuss-Hill average)

property isentropic_compressibility_tensor
Returns
isentropic_compressibility_tensor2D numpy array

The isentropic compressibility tensor.

property isentropic_isotropic_poisson_ratio

Compute mu, the isotropic Poisson ratio (a description of the laterial response to loading)

isentropic_linear_compressibility(direction)

Computes the linear isentropic compressibility in a given direction relative to the stiffness tensor

isentropic_poissons_ratio(axial_direction, lateral_direction)

Computes the isentropic poisson ratio given loading and response directions relative to the stiffness tensor

isentropic_shear_modulus(plane_normal, shear_direction)

Computes the isentropic shear modulus on a plane in a given shear direction relative to the stiffness tensor

property isentropic_shear_modulus_reuss

Computes the isentropic shear modulus (Reuss bound)

property isentropic_shear_modulus_voigt

Computes the isentropic shear modulus (Voigt bound)

property isentropic_shear_modulus_vrh

Computes the shear modulus (Voigt-Reuss-Hill average)

property isentropic_universal_elastic_anisotropy

Compute the universal elastic anisotropy

isentropic_youngs_modulus(direction)

Computes the isentropic Youngs modulus in a given direction relative to the stiffness tensor

property isothermal_compressibility

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

Returns
(K_T)^-1float

Compressibility in [1/Pa].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with beta_T().

property molar_enthalpy

Returns molar enthalpy of the mineral.

Returns
molar_enthalpyfloat

Enthalpy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with H().

property molar_entropy

Returns molar entropy of the mineral.

Returns
molar_entropyfloat

Entropy in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with S().

property molar_gibbs

Returns the molar Gibbs free energy of the mineral.

Returns
molar_gibbsfloat

Gibbs free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with gibbs().

property molar_heat_capacity_p

Returns molar heat capacity at constant pressure of the mineral.

Returns
molar_heat_capacity_pfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_p().

property molar_heat_capacity_v

Returns molar heat capacity at constant volume of the mineral.

Returns
molar_heat_capacity_vfloat

Heat capacity in [J/K/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with C_v().

property molar_helmholtz

Returns the molar Helmholtz free energy of the mineral.

Returns
molar_helmholtzfloat

Helmholtz free energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with helmholtz().

property molar_internal_energy

Returns the molar internal energy of the mineral.

Returns
molar_internal_energyfloat

The internal energy in [J/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with energy().

property molar_mass

Returns molar mass of the mineral.

Returns
molar_massfloat

Molar mass in [kg/mol].

Notes

  • Needs to be implemented in derived classes.

property molar_volume

Returns molar volume of the mineral.

Returns
molar_volumefloat

Molar volume in [m^3/mol].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with V().

property p_wave_velocity

Returns P wave speed of the mineral.

Returns
p_wave_velocityfloat

P wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_p().

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

set_method(equation_of_state)

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.

property shear_wave_velocity

Returns shear wave speed of the mineral.

Returns
shear_wave_velocityfloat

Wave speed in [m/s].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with v_s().

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns
alphafloat

Thermal expansivity in [1/K].

Notes

  • Needs to be implemented in derived classes.

  • Aliased with alpha().

to_string()

Returns the name of the mineral class

unroll()

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()

wave_velocities(propagation_direction)

Computes the compressional wave velocity, and two shear wave velocities in a given propagation direction

Returns two lists, containing the wave speeds and directions of particle motion relative to the stiffness tensor

burnman.cell_parameters_to_vectors(cell_parameters)[source]

Converts cell parameters to unit cell vectors.

Parameters
cell_parameters1D numpy array

An array containing the three lengths of the unit cell vectors [m], and the three angles [degrees]. The first angle (\(\alpha\)) corresponds to the angle between the second and the third cell vectors, the second (\(\beta\)) to the angle between the first and third cell vectors, and the third (\(\gamma\)) to the angle between the first and second vectors.

Returns
M2D numpy array

The three vectors defining the parallelopiped cell [m]. This function assumes that the first cell vector is colinear with the x-axis, and the second is perpendicular to the z-axis, and the third is defined in a right-handed sense.

burnman.cell_vectors_to_parameters(M)[source]

Converts unit cell vectors to cell parameters.

Parameters
M2D numpy array

The three vectors defining the parallelopiped cell [m]. This function assumes that the first cell vector is colinear with the x-axis, the second is perpendicular to the z-axis, and the third is defined in a right-handed sense.

Returns
cell_parameters1D numpy array

An array containing the three lengths of the unit cell vectors [m], and the three angles [degrees]. The first angle (\(\alpha\)) corresponds to the angle between the second and the third cell vectors, the second (\(\beta\)) to the angle between the first and third cell vectors, and the third (\(\gamma\)) to the angle between the first and second vectors.

Composites

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

Bases: burnman.classes.material.Material

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

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

This class is available as burnman.Composite.

property name

Human-readable name of this material.

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

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

Change the fractions of the phases of this Composite. Resets cached properties

Parameters
fractions: list or numpy array 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]

Print a human-readable representation of this Material.

unroll()[source]

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

Returns
fractionslist of float

List of molar fractions, should sum to 1.0.

mineralslist of burnman.Mineral

List of minerals.

Notes

Needs to be implemented in derived classes.

to_string()[source]

return the name of the composite

property formula

Returns molar chemical formula of the composite

property molar_internal_energy

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

property molar_gibbs

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

property molar_helmholtz

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

property molar_volume

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

property molar_mass

Returns molar mass of the composite [kg/mol]

property density

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

property molar_entropy

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

property molar_enthalpy

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

property isothermal_bulk_modulus

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

property adiabatic_bulk_modulus

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

property isothermal_compressibility

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

property adiabatic_compressibility

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

property shear_modulus

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

property p_wave_velocity

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

property bulk_sound_velocity

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

property shear_wave_velocity

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

property grueneisen_parameter

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

property thermal_expansivity

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

property molar_heat_capacity_v

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

property molar_heat_capacity_p

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

property endmember_partial_gibbs

Returns the partial Gibbs energies for all the endmember minerals in the Composite

property reaction_affinities

Returns the affinities corresponding to each reaction in reaction_basis

property equilibrated

Returns True if the reaction affinities are all zero within a given tolerance given by self.equilibrium_tolerance.

property stoichiometric_matrix[source]

An sympy Matrix where each element M[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property stoichiometric_array[source]

An array where each element arr[i,j] corresponds to the number of atoms of element[j] in endmember[i].

property reaction_basis[source]

An array where each element arr[i,j] corresponds to the number of moles of endmember[j] involved in reaction[i].

property reaction_basis_as_strings[source]

Returns a list of string representations of all the reactions in reaction_basis.

property n_reactions[source]

The number of reactions in reaction_basis.

property independent_element_indices[source]

A list of an independent set of element indices. If the amounts of these elements are known (element_amounts), the amounts of the other elements can be inferred by -compositional_null_basis[independent_element_indices].dot(element_amounts)

property dependent_element_indices[source]

The element indices not included in the independent list.

property reduced_stoichiometric_array[source]

The stoichiometric array including only the independent elements

property compositional_null_basis[source]

An array N such that N.b = 0 for all bulk compositions that can be produced with a linear sum of the endmembers in the composite.

property endmember_formulae[source]

A list of the formulae in the composite.

property endmember_names[source]

A list of the endmember names contained in the composite. Mineral names are returned as given in Mineral.name. Solution endmember names are given in the format Mineral.name in SolidSolution.name.

property endmembers_per_phase[source]

A list of integers corresponding to the number of endmembers stored within each phase.

property elements[source]

A list of the elements which could be contained in the composite, returned in the IUPAC element order.

property n_endmembers[source]

Returns the number of endmembers in the composite.

property n_elements[source]

Returns the total number of distinct elements which might be in the composite.

property C_p

Alias for molar_heat_capacity_p()

property C_v

Alias for molar_heat_capacity_v()

property G

Alias for shear_modulus()

property H

Alias for molar_enthalpy()

property K_S

Alias for adiabatic_bulk_modulus()

property K_T

Alias for isothermal_bulk_modulus()

property P

Alias for pressure()

property S

Alias for molar_entropy()

property T

Alias for temperature()

property V

Alias for molar_volume()

property alpha

Alias for thermal_expansivity()

property beta_S

Alias for adiabatic_compressibility()

property beta_T

Alias for isothermal_compressibility()

copy()
property energy

Alias for molar_internal_energy()

evaluate(vars_list, pressures, temperatures)

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

Parameters
vars_listlist of strings

Variables to be returned for given conditions

pressuresndlist or ndarray of float

n-dimensional array of pressures in [Pa].

temperaturesndlist or ndarray of float

n-dimensional array of temperatures in [K].

Returns
outputarray of array of float

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

property gibbs

Alias for molar_gibbs()

property gr

Alias for grueneisen_parameter()

property helmholtz

Alias for molar_helmholtz()

property pressure

Returns current pressure that was set with set_state().

Returns
pressurefloat

Pressure in [Pa].

Notes

  • Aliased with P().

print_minerals_of_current_state()

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

reset()

Resets all cached material properties.

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

property rho

Alias for density()

property temperature

Returns current temperature that was set with set_state().

Returns
temperaturefloat

Temperature in [K].

Notes

  • Aliased with T().

property v_p

Alias for p_wave_velocity()

property v_phi

Alias for bulk_sound_velocity()

property v_s

Alias for shear_wave_velocity()