Geotherms¶
- class burnman.classes.geotherm.Geotherm(depths_array, temperatures_array)[source]¶
Bases:
objectBase class for all geotherms. Subclasses should implement a temperatures(depths) method or inherit the one provided here.
- Parameters:
depths_array (np.array) – Array of depths (in meters).
temperatures_array (np.array) – Array of temperatures (in Kelvin).
- temperatures(depths)[source]¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.BrownShankland[source]¶
Bases:
GeothermGeotherm from Brown and Shankland, 1981 ([BS81])
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.Anderson[source]¶
Bases:
GeothermGeotherm from Anderson, 1982 ([And82])
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.StaceyContinental[source]¶
Bases:
GeothermContinental geotherm from Stacey, 1977 ([Sta77])
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.StaceyOceanic[source]¶
Bases:
GeothermOceanic geotherm from Stacey, 1977 ([Sta77])
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.Katsura2022[source]¶
Bases:
GeothermGeotherm from Katsura, 2022 ([Kat22])
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.Plesa2022Mars6cm3[source]¶
Bases:
GeothermMartian areotherm from Plesa, 2022 ([PWK+22]) assuming 6 cm³/mol activation volume for mantle viscosity.
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- Parameters:
depths (array-like of float) – Depths at which to evaluate the geotherm (in meters).
- Returns:
Temperatures at the given depths (in Kelvin).
- Return type:
np.array of float
- Raises:
ValueError – If depths are outside the range of the geotherm.
ValueError – If depths_array or temperatures_array is None.
- class burnman.classes.geotherm.GeothermFromPressures(pressures_array, temperatures_array, depth_to_pressure_model=<burnman.classes.seismic.PREM object>)[source]¶
Bases:
GeothermGeotherm defined by pressures and temperatures.
- Parameters:
pressures_array (np.array) – Array of pressures (in Pa).
temperatures_array (np.array) – Array of temperatures (in Kelvin).
depth_to_pressure_model (
burnman.seismic.SeismicModelor other object with a pressure(depth) method.) – Object with an object.pressure(depth) method, such asburnman.seismic.SeismicModel. If not given, the PREM model will be used.
- class burnman.classes.geotherm.Anzellini2013(depth_to_pressure_model=<burnman.classes.seismic.PREM object>)[source]¶
Bases:
GeothermFromPressuresGeotherm from Anzellini et al., 2013 ([ADM+13]) (their Figure S4). Mantle part is from Steinberger and Holme, 2008 ([SH08]).
- Parameters:
depth_to_pressure_model (
burnman.seismic.SeismicModelor other object with a pressure(depth) method.) – Object with an object.pressure(depth) method, such asburnman.seismic.SeismicModel. If not given, the PREM model will be used.
- temperatures(depths)¶
Evaluate the geotherm at given depths.
- class burnman.classes.geotherm.AdiabaticGeotherm(material, T_0, P_0, depth_to_pressure_model=<burnman.classes.seismic.PREM object>)[source]¶
Bases:
GeothermFromPressuresGeotherm calculated as an adiabat for a given material, anchored on a specified temperature and pressure.
In addition to the temperature method of the standard Geotherm class, this class also provides a temperatures_from_pressures method.
Initialisation parameters:
- Parameters:
material (burnman.Material) –
burnman.Materialobject.T_0 (float) – Temperature at the anchor pressure [K].
P_0 (float) – The anchor pressure [Pa].
depth_to_pressure_model (
burnman.seismic.SeismicModelor other object with a pressure(depth) method.) – Object with an object.pressure(depth) method, such asburnman.seismic.SeismicModel. If not given, the PREM model will be used.
- burnman.classes.geotherm.adiabatic_profile(pressures, rock, T_0, P_0=None)[source]¶
This function calculates an adiabat for a rock anchored on a specified temperature and pressure.
A starting guess is provided by integrating:
\[\frac{\partial T}{\partial P} = \frac{ \gamma T}{ K_s }\]from the anchor point. In this expression, \(\gamma\) is the Grueneisen parameter and \(K_s\) is the adiabatic bulk modulus. The exact adiabatic profile is then found by finding the temperature profile along which the entropy is constant.
- Parameters:
pressures (list of floats) – The list of pressures in \([Pa]\) at which to evaluate the geotherm.
rock (
burnman.composite) – Composite for which we compute the adiabat. From this material we must compute average Grueneisen parameters and adiabatic bulk moduli for each pressure/temperature.T_0 (float) – An anchor temperature, corresponding to the temperature at the anchor pressure. \([K]\)
P_0 (float, optional) – An anchor pressure. If not given, the first pressure in the pressures list will be used.
- Returns:
The list of temperatures for each pressure. \([K]\)
- Return type:
numpy.array of floats