TidalPy.rheology.partial_melt package

TidalPy.rheology.partial_melt.get_partial_melt_model_default_inputs(layer_type: str)[source]

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

calculate_melt_fraction(temperature: FloatArray) FloatArray[source]
calculate_temperature_frommelt(melt_fraction: FloatArray) FloatArray[source]
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