Averaging Schemes¶
Given a set of mineral physics parameters and an equation of state we can calculate the density, bulk, and shear modulus for a given phase.
However, as soon as we have a composite material (e.g., a rock), the determination of elastic properties become more complicated.
The bulk and shear modulus of a rock are dependent on the specific geometry of the grains in the rock, so there is no general
formula for its averaged elastic properties. Instead, we must choose from a number of averaging schemes if we want a single value,
or use bounding methods to get a range of possible values. The module burnman.averaging_schemes
provides a number of different
average and bounding schemes for determining a composite rock’s physical parameters.
Base class¶
- class burnman.averaging_schemes.AveragingScheme¶
Bases:
object
Base class defining an interface for determining average elastic properties of a rock. Given a list of volume fractions for the different mineral phases in a rock, as well as their bulk and shear moduli, an averaging will give back a single scalar values for the averages. New averaging schemes should define the functions average_bulk_moduli and average_shear_moduli, as specified here.
- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli \(K\) for a composite. This defines the interface for this method, and is not implemented in the base class.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli \(G\) for a composite. This defines the interface for this method, and is not implemented in the base class.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
Voigt bound¶
- class burnman.averaging_schemes.Voigt¶
Bases:
AveragingScheme
Class for computing the Voigt (iso-strain) bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite \(K\) with the Voigt (iso-strain) bound, given by:
\[K_V = \Sigma_i V_i K_i\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Voigt average bulk modulus \(K_V\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli of a composite with the Voigt (iso-strain) bound, given by:
\[G_V = \Sigma_i V_i G_i\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The Voigt average shear modulus \(G_V\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Reuss bound¶
- class burnman.averaging_schemes.Reuss¶
Bases:
AveragingScheme
Class for computing the Reuss (iso-stress) bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the Reuss (iso-stress) bound, given by:
\[K_R = \left(\Sigma_i \frac{V_i}{K_i} \right)^{-1}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Reuss average bulk modulus \(K_R\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli of a composite with the Reuss (iso-stress) bound, given by:
\[G_R = \left( \Sigma_i \frac{V_i}{G_i} \right)^{-1}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The Reuss average shear modulus \(G_R\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Voigt-Reuss-Hill average¶
- class burnman.averaging_schemes.VoigtReussHill¶
Bases:
AveragingScheme
Class for computing the Voigt-Reuss-Hill average for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the Voigt-Reuss-Hill average, given by:
\[K_{VRH} = \frac{K_V + K_R}{2}\]This is simply a shorthand for an arithmetic average of the bounds given by
burnman.averaging_schemes.voigt
andburnman.averaging_schemes.reuss
.- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The Voigt-Reuss-Hill average bulk modulus \(K_{VRH}\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli \(G\) of a composite with the Voigt-Reuss-Hill average, given by:
\[G_{VRH} = \frac{G_V + G_R}{2}\]This is simply a shorthand for an arithmetic average of the bounds given by
burnman.averaging_schemes.voigt
andburnman.averaging_schemes.reuss
.- Parameters
- volumeslist of floats
List of the volume of each phase in the composite \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite \([Pa]\)
- Returns
- Gfloat
The Voigt-Reuss-Hill average shear modulus \(G_{VRH}\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman upper bound¶
- class burnman.averaging_schemes.HashinShtrikmanUpper¶
Bases:
AveragingScheme
Class for computing the upper Hashin-Shtrikman bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions. Implements formulas from [WDOConnell76]. The Hashin-Shtrikman bounds are tighter than the Voigt and Reuss bounds because they make the additional assumption that the orientation of the phases are statistically isotropic. In some cases this may be a good assumption, and in others it may not be.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the upper Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The upper Hashin-Shtrikman average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli of a composite with the upper Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The upper Hashin-Shtrikman average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman lower bound¶
- class burnman.averaging_schemes.HashinShtrikmanLower¶
Bases:
AveragingScheme
Class for computing the lower Hashin-Shtrikman bound for elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions. Implements Formulas from [WDOConnell76]. The Hashin-Shtrikman bounds are tighter than the Voigt and Reuss bounds because they make the additional assumption that the orientation of the phases are statistically isotropic. In some cases this may be a good assumption, and in others it may not be.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the lower Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Kfloat
The lower Hashin-Shtrikman average bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the shear moduli of a composite with the lower Hashin-Shtrikman bound. Implements Formulas from [WDOConnell76], which are too lengthy to reproduce here.
- Parameters
- volumeslist of floats
List of volumes of each phase in the composite. \([m^3]\).
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\).
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The lower Hashin-Shtrikman average shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)
Hashin-Shtrikman arithmetic average¶
- class burnman.averaging_schemes.HashinShtrikmanAverage¶
Bases:
AveragingScheme
Class for computing arithmetic mean of the Hashin-Shtrikman bounds on elastic properties. This derives from
burnman.averaging_schemes.averaging_scheme
, and implements theburnman.averaging_schemes.averaging_scheme.average_bulk_moduli()
andburnman.averaging_schemes.averaging_scheme.average_shear_moduli()
functions.- average_bulk_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the arithmetic mean of the upper and lower Hashin-Shtrikman bounds.
- Parameters
- volumeslist of floats
List of the volumes of each phase in the composite. \([m^3]\)
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. Not used in this average. \([Pa]\)
- Returns
- Kfloat
The arithmetic mean of the Hashin-Shtrikman bounds on bulk modulus \(K\). \([Pa]\)
- average_shear_moduli(volumes, bulk_moduli, shear_moduli)¶
Average the bulk moduli of a composite with the arithmetic mean of the upper and lower Hashin-Shtrikman bounds.
- Parameters
- volumeslist of floats
List of the volumes of each phase in the composite. [m^3].
- bulk_modulilist of floats
List of bulk moduli \(K\) of each phase in the composite. Not used in this average. \([Pa]\)
- shear_modulilist of floats
List of shear moduli \(G\) of each phase in the composite. \([Pa]\)
- Returns
- Gfloat
The arithmetic mean of the Hashin-Shtrikman bounds on shear modulus \(G\). \([Pa]\)
- average_density(volumes, densities)¶
Average the densities of a composite, given a list of volume fractions and densitites. This is implemented in the base class, as how to calculate it is not dependent on the geometry of the rock. The formula for density is given by
\[\rho = \frac{\Sigma_i \rho_i V_i }{\Sigma_i V_i}\]- Parameters
- volumeslist of floats
List of the volume of each phase in the composite. \([m^3]\)
- densitieslist of floats
List of densities of each phase in the composite. \([kg/m^3]\)
- Returns
- rhofloat
Density \(\rho\). \([kg/m^3]\)
- average_heat_capacity_p(fractions, c_p)¶
Averages the heat capacities at constant pressure \(C_P\) by molar fractions.
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_plist of floats
List of heat capacities at constant pressure \(C_P\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_pfloat
heat capacity at constant pressure \(C_P\) of the composite. \([J/K/mol]\)
- average_heat_capacity_v(fractions, c_v)¶
Averages the heat capacities at constant volume \(C_V\) by molar fractions as in eqn. (16) in [IS92].
- Parameters
- fractionslist of floats
List of molar fractions of each phase in the composite (should sum to 1.0).
- c_vlist of floats
List of heat capacities at constant volume \(C_V\) of each phase in the composite. \([J/K/mol]\)
- Returns
- c_vfloat
heat capacity at constant volume of the composite \(C_V\). \([J/K/mol]\)
- average_thermal_expansivity(volumes, alphas)¶
thermal expansion coefficient of the mineral \(\alpha\). \([1/K]\)