# Materials¶

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

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

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

temperature

Returns current temperature that was set with set_state().

Returns: temperature : float Temperature in [K].

Notes

internal_energy

Returns the internal energy of the mineral.

Returns: internal_energy : float The internal energy in [J].

Notes

molar_gibbs

Returns the Gibbs free energy of the mineral.

Returns: molar_gibbs : float Gibbs free energy in [J].

Notes

molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns: molar_helmholtz : float Helmholtz free energy in [J].

Notes

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

density

Returns the density of this material.

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

Notes

molar_entropy

Returns entropy of the mineral.

Returns: entropy : float Entropy in [J].

Notes

molar_enthalpy

Returns enthalpy of the mineral.

Returns: enthalpy : float Enthalpy in [J].

Notes

isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns: isothermal_bulk_modulus : float Bulk modulus in [Pa].

Notes

adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Notes

isothermal_compressibility

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

Returns: (K_T)^-1 : float Compressibility in [1/Pa].

Notes

adiabatic_compressibility

Notes

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

bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns: bulk sound velocity: float Sound velocity in [m/s].

Notes

shear_wave_velocity

Returns shear wave speed of the mineral.

Returns: shear_wave_velocity : float Wave speed in [m/s].

Notes

grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns: gr : float Grueneisen parameters [unitless].

Notes

thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns: alpha : float Thermal expansivity in [1/K].

Notes

heat_capacity_v

Returns heat capacity at constant volume of the mineral.

Returns: heat_capacity_v : float Heat capacity in [J/K/mol].

Notes

heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns: heat_capacity_p : float Heat capacity in [J/K/mol].

Notes

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

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

molar_enthalpy

Returns enthalpy of the mineral.

Returns: enthalpy : float Enthalpy in [J].

Notes

molar_entropy

Returns entropy of the mineral.

Returns: entropy : float Entropy in [J].

Notes

isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns: isothermal_bulk_modulus : float Bulk modulus in [Pa].

Notes

adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Notes

heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns: heat_capacity_p : float Heat capacity in [J/K/mol].

Notes

thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns: alpha : float Thermal expansivity in [1/K].

Notes

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

bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns: bulk sound velocity: float Sound velocity in [m/s].

Notes

shear_wave_velocity

Returns shear wave speed of the mineral.

Returns: shear_wave_velocity : float Wave speed in [m/s].

Notes

molar_gibbs

Returns the Gibbs free energy of the mineral.

Returns: molar_gibbs : float Gibbs free energy in [J].

Notes

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

internal_energy

Returns the internal energy of the mineral.

Returns: internal_energy : float The internal energy in [J].

Notes

molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns: molar_helmholtz : float Helmholtz free energy in [J].

Notes

isothermal_compressibility

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

Returns: (K_T)^-1 : float Compressibility in [1/Pa].

Notes

adiabatic_compressibility

Notes

heat_capacity_v

Returns heat capacity at constant volume of the mineral.

Returns: heat_capacity_v : float Heat capacity in [J/K/mol].

Notes

grueneisen_parameter

Returns the grueneisen parameter of the mineral.

Returns: gr : float Grueneisen parameters [unitless].

Notes

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

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

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

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]

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

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

molar_volume

Returns molar volume of the mineral.

Returns: molar_volume : float Molar volume in [m^3/mol].

Notes

molar_entropy

Returns entropy of the mineral.

Returns: entropy : float Entropy in [J].

Notes

isothermal_bulk_modulus

Returns isothermal bulk modulus of the material.

Returns: isothermal_bulk_modulus : float Bulk modulus in [Pa].

Notes

heat_capacity_p

Returns heat capacity at constant pressure of the mineral.

Returns: heat_capacity_p : float Heat capacity in [J/K/mol].

Notes

thermal_expansivity

Returns thermal expansion coefficient of the mineral.

Returns: alpha : float Thermal expansivity in [1/K].

Notes

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

internal_energy

Returns the internal energy of the mineral.

Returns: internal_energy : float The internal energy in [J].

Notes

molar_helmholtz

Returns the Helmholtz free energy of the mineral.

Returns: molar_helmholtz : float Helmholtz free energy in [J].

Notes

molar_enthalpy

Returns enthalpy of the mineral.

Returns: enthalpy : float Enthalpy in [J].

Notes

adiabatic_bulk_modulus

Returns the adiabatic bulk modulus of the mineral.

Notes

isothermal_compressibility

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

Returns: (K_T)^-1 : float Compressibility in [1/Pa].

Notes

adiabatic_compressibility

Notes

p_wave_velocity

Returns P wave speed of the mineral.

Returns: p_wave_velocity : float P wave speed in [m/s].

Notes

bulk_sound_velocity

Returns bulk sound speed of the mineral.

Returns: bulk sound velocity: float Sound velocity in [m/s].

Notes

shear_wave_velocity

Returns shear wave speed of the mineral.

Returns: shear_wave_velocity : float Wave speed in [m/s].

Notes

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

helmholtz

Alias for molar_helmholtz()

pressure

Returns current pressure that was set with set_state().

Returns: pressure : float Pressure in [Pa].

Notes

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

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

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

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

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

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

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]

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

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

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

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]

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

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

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

v_p

Alias for p_wave_velocity()

v_phi

Alias for bulk_sound_velocity()

v_s

Alias for shear_wave_velocity()