TidalPy.rheology.partial_melt package
Submodules
TidalPy.rheology.partial_melt.melting_models module
Partial Melting Models for Viscosity and Shear Modulus
- TidalPy.rheology.partial_melt.melting_models.henning(melt_fraction: float | float64 | ndarray, temperature: float | float64 | ndarray, premelt_viscosity: float | float64 | ndarray, liquid_viscosity: float | float64 | ndarray, premelt_shear: float | float64 | ndarray, solidus: float, liquidus: float, liquid_shear: float, crit_melt_frac: float = 0.5, crit_melt_frac_width: float = 0.05, hn_visc_slope_1: float = 13.5, hn_visc_falloff_slope: float = 370.0, hn_shear_param_1: float = 40000.0, hn_shear_param_2: float = 25.0, hn_shear_falloff_slope: float = 700.0) Tuple[float | float64 | ndarray, float | float64 | ndarray][source]
Viscosity and Shear Modulus Partial Melting Model: henning
Henning (2009, 2010) Partial-Melt Viscosity Function See also Moore’s work and Renaud and Henning (2018)
!TPY_args live: self.temperature, self.premelt_viscosity, self.liquid_viscosity, self.premelt_shear, self.solidus, self.liquidus !TPY_args const: liquid_shear, crit_melt_frac, crit_melt_frac_width, hn_visc_slope_1, hn_visc_slope_2, hn_shear_param_1, hn_shear_param_2, hn_shear_falloff_slope
- Parameters:
melt_fraction (FloatArray) – Layer/Material volumetric melt fraction [m3 m-3]
temperature (FloatArray) – Layer/Material temperature [K]
premelt_viscosity (FloatArray) – Layer/Material viscosity before partial melting is considered [Pa s]
premelt_shear (FloatArray) – Layer/Material shear modulus before partial melting is considered [Pa]
solidus (float) – Layer/Material solidus temperature
liquidus (float) – Layer/Material liquidus temperature
liquid_viscosity (float) – Layer/Material viscosity if it were completely molten at this temperature [Pa s]
liquid_shear (float) – Material’s shear modulus assuming pure liquid [Pa]
crit_melt_frac (float) – Melt Fraction where the material behaves more like a liquid than a solid [m3 m-3]
crit_melt_frac_width (float) –
Defines the partial melt transition zone [m3 m-3] Zone crit_melt_frac and crit_melt_frac + crit_melt_frac_width defines the transition between solid-like and
liquid-like responses.
hn_visc_slope_1 (float) – Henning, pre-breakdown, viscosity exponent multiplier parameter
hn_visc_falloff_slope (float) – Henning, breakdown, viscosity exponent multiplier parameter
hn_shear_param_1 (float) – Henning, pre-breakdown, shear modulus exponent multiplier parameter 1 [K]
hn_shear_param_2 (float) – Henning, pre-breakdown, shear modulus exponent multiplier parameter 2
hn_shear_falloff_slope (float) – Henning, breakdown, shear modulus exponent multiplier parameter
- Returns:
postmelt_viscosity (FloatArray) – Post melting viscosity
postmelt_shear_modulus (FloatArray) – Post melting shear modulus
- TidalPy.rheology.partial_melt.melting_models.off(melt_fraction: float | float64 | ndarray, premelt_viscosity: float | float64 | ndarray, premelt_shear: float | float64 | ndarray) Tuple[float | float64 | ndarray, float | float64 | ndarray][source]
Viscosity and Shear Modulus Partial Melting Model: off
!TPY_args live: self.premelt_viscosity, self.premelt_shear
- Parameters:
melt_fraction (FloatArray) – Layer/Material volumetric melt fraction [m3 m-3]
premelt_viscosity (FloatArray) – Layer/Material viscosity before partial melting is considered [Pa s]
premelt_shear (FloatArray) – Layer/Material shear modulus before partial melting is considered [Pa]
- Returns:
postmelt_viscosity (FloatArray) – Post melting viscosity
postmelt_shear_modulus (FloatArray) – Post melting shear modulus
- TidalPy.rheology.partial_melt.melting_models.spohn(melt_fraction: float | float64 | ndarray, temperature: float | float64 | ndarray, liquid_viscosity: float | float64 | ndarray, liquid_shear: float = 1e-05, fs_visc_power_slope: float = 27000.0, fs_visc_power_phase: float = 1.0, fs_shear_power_slope: float = 82000.0, fs_shear_power_phase: float = 40.6) Tuple[float | float64 | ndarray, float | float64 | ndarray][source]
Viscosity and Shear Modulus Partial Melting Model: spohn
Fischer and Spohn (1990) Partial-Melt Viscosity Function
!TPY_args live: self.temperature, self.liquid_viscosity !TPY_args const: liquid_shear, fs_visc_power_slope, fs_visc_power_phase, fs_shear_power_slope, fs_shear_power_phase
- Parameters:
melt_fraction (FloatArray) – Layer/Material volumetric melt fraction [m3 m-3]
temperature (FloatArray) – Layer/Material temperature [K]
liquid_viscosity (FloatArray) – Layer/Material viscosity if it were completely molten at this temperature [Pa s]
liquid_shear (float) – Material’s shear modulus assuming pure liquid [Pa]
fs_visc_power_slope (float) – Fischer & Spohn viscosity exponent multiplier parameter [K]
fs_visc_power_phase (float) – Fischer & Spohn viscosity exponent additive parameter [K]
fs_shear_power_slope (float) – Fischer & Spohn viscosity exponent multiplier parameter [K]
fs_shear_power_phase (float) – Fischer & Spohn viscosity exponent additive parameter [K]
- Returns:
postmelt_viscosity (FloatArray) – Post melting viscosity
postmelt_shear_modulus (FloatArray) – Post melting shear modulus
TidalPy.rheology.partial_melt.partialmelt module
- class TidalPy.rheology.partial_melt.partialmelt.PartialMelt[source]
Bases:
LayerModelHolder- Partial melting provides a further temperature dependence to both viscosity and shear modulus. Depending upon the
specific partial-melt model, the higher the temperature, the higher the partial melt fraction, and the lower the viscosity and shear modulus of the material.
See also
TidalPy.utilities.methods.model.LayerModelHolder,TidalPy.rheology.Rheology- clear_state()[source]
Clears the current state of the class without destroying data set by initialization.
- known_model_const_args = {'henning': ('liquid_shear', 'crit_melt_frac', 'crit_melt_frac_width', 'hn_visc_slope_1', 'hn_visc_slope_2', 'hn_shear_param_1', 'hn_shear_param_2', 'hn_shear_falloff_slope'), 'off': (), 'spohn': ('liquid_shear', 'fs_visc_power_slope', 'fs_visc_power_phase', 'fs_shear_power_slope', 'fs_shear_power_phase')}
- known_model_live_args = {'henning': ('self.temperature', 'self.premelt_viscosity', 'self.liquid_viscosity', 'self.premelt_shear', 'self.solidus', 'self.liquidus'), 'off': ('self.premelt_viscosity', 'self.premelt_shear'), 'spohn': ('self.temperature', 'self.liquid_viscosity')}
- known_models = {'henning': CPUDispatcher(<function henning>), 'off': CPUDispatcher(<function off>), 'spohn': CPUDispatcher(<function spohn>)}
- property liquid_viscosity
Outer-scope wrapper for layer.liquid_viscosity
- property melt_fraction: FloatArray
Layer’s volumetric melt fraction
- model_config_key = 'partial_melting'
- property postmelt_compliance: FloatArray
Material’s compliance (inverse of rigidity) after the effects of partial melting have been applied
- property postmelt_shear_modulus: FloatArray
Material’s shear modulus (rigidity) after the effects of partial melting have been applied
- property postmelt_viscosity: FloatArray
Material’s solid viscosity after the effects of partial melting have been applied
- property premelt_shear
Outer-scope wrapper for layer.premelt_shear
- property premelt_viscosity
Outer-scope wrapper for layer.premelt_viscosity
- reinit(initial_init: bool = False)[source]
Reinit method for the PartialMelting class
Model will look at the user-provided configurations and pull out model information including constants
- Parameters:
initial_init (bool = False) –
- Must be set to True if this is the first time this method has been called (additional steps may be
preformed during the first reinit call).
- property rheology_class: Rheology
The rheology class instance where the complex compliance model is stored
- property temperature
Outer-scope wrapper for layer.temperature
- TidalPy.rheology.partial_melt.partialmelt.calculate_melt_fraction(temperature: float, solidus: float, liquidus: float) float[source]
Calculates the partial melt volume fraction based on the material’s solidus and liquidus - NonArray Only
- Parameters:
temperature (float) – Temperature of the layer or material [K]
solidus (float) – Solidus temperature of the material [K]
liquidus (float) – Liquidus temperature of the material [K]
- Returns:
partial_melt_volume_frac – Volumetric Melt Fraction [m3 m-3]
- Return type:
float
- TidalPy.rheology.partial_melt.partialmelt.calculate_melt_fraction_array(temperature: ndarray, solidus: float, liquidus: float) ndarray[source]
Calculates the partial melt volume fraction based on the material’s solidus and liquidus - Arrays Only
- Parameters:
temperature (np.ndarray) – Temperature of the layer or material [K]
solidus (float) – Solidus temperature of the material [K]
liquidus (float) – Liquidus temperature of the material [K]
- Returns:
partial_melt_volume_frac – Volumetric Melt Fraction [m3 m-3]
- Return type:
np.ndarray
- TidalPy.rheology.partial_melt.partialmelt.calculate_temperature_frommelt(melt_frac: float, solidus: float, liquidus: float) float[source]
Calculates the temperature from the volumetric melt fraction - NonArray Only
- Parameters:
melt_frac (float) – Volumetric Melt Fraction [m3 m-3]
solidus (float) – Material/Layer solidus temperature [K]
liquidus (float) – Material/Layer liquidus temperature [K]
- Returns:
temp_at_melt – Temperature at melt fraction [K]
- Return type:
float
- TidalPy.rheology.partial_melt.partialmelt.calculate_temperature_frommelt_array(melt_frac: ndarray, solidus: float, liquidus: float) ndarray[source]
Calculates the temperature from the volumetric melt fraction - Arrays Only
- Parameters:
melt_frac (np.ndarray) – Volumetric Melt Fraction [m3 m-3]
solidus (float) – Material/Layer solidus temperature [K]
liquidus (float) – Material/Layer liquidus temperature [K]
- Returns:
temp_at_melt – Temperature at melt fraction [K]
- Return type:
np.ndarray