TidalPy.rheology.viscosity package

TidalPy.rheology.viscosity.get_liquid_viscosity_model_default_inputs(layer_type: str)[source]
TidalPy.rheology.viscosity.get_solid_viscosity_model_default_inputs(layer_type: str)[source]

Submodules

TidalPy.rheology.viscosity.viscosity module

class TidalPy.rheology.viscosity.viscosity.LiquidViscosity[source]

Bases: ViscosityParentClass

Model for calculating viscosity of a liquid.

See also

TidalPy.utilities.methods.model.LayerModelHolder, TidalPy.rheology.Rheology, TidalPy.rheology.viscosity.ViscosityParentClass

is_liquid = True
known_model_const_args = {'arrhenius': ('arrhenius_coeff', 'additional_temp_dependence', 'stress', 'stress_expo', 'grain_size', 'grain_size_expo', 'molar_activation_energy', 'molar_activation_volume'), 'constant': ('reference_viscosity',), 'reference': ('reference_viscosity', 'reference_temperature', 'molar_activation_energy', 'molar_activation_volume')}
known_model_live_args = {'arrhenius': ('self.temperature', 'self.pressure'), 'constant': ('self.temperature', 'self.pressure'), 'reference': ('self.temperature', 'self.pressure')}
known_models = {'arrhenius': CPUDispatcher(<function arrhenius>), 'constant': CPUDispatcher(<function constant>), 'reference': CPUDispatcher(<function reference>)}
model_config_key = 'liquid_viscosity'
class TidalPy.rheology.viscosity.viscosity.SolidViscosity[source]

Bases: ViscosityParentClass

Model for calculating viscosity of a solid.

See also

TidalPy.utilities.methods.model.LayerModelHolder, TidalPy.rheology.Rheology, TidalPy.rheology.viscosity.ViscosityParentClass

is_liquid = False
known_model_const_args = {'arrhenius': ('arrhenius_coeff', 'additional_temp_dependence', 'stress', 'stress_expo', 'grain_size', 'grain_size_expo', 'molar_activation_energy', 'molar_activation_volume'), 'constant': ('reference_viscosity',), 'reference': ('reference_viscosity', 'reference_temperature', 'molar_activation_energy', 'molar_activation_volume')}
known_model_live_args = {'arrhenius': ('self.temperature', 'self.pressure'), 'constant': ('self.temperature', 'self.pressure'), 'reference': ('self.temperature', 'self.pressure')}
known_models = {'arrhenius': CPUDispatcher(<function arrhenius>), 'constant': CPUDispatcher(<function constant>), 'reference': CPUDispatcher(<function reference>)}
model_config_key = 'solid_viscosity'
class TidalPy.rheology.viscosity.viscosity.ViscosityParentClass[source]

Bases: LayerModelHolder

Common Viscosity class for liquid and solid viscosity models.

See also

TidalPy.utilities.methods.model.LayerModelHolder, TidalPy.rheology.Rheology, TidalPy.rheology.viscosity.LiquidViscosityParent, TidalPy.rheology.viscosity.SolidViscosityParent

clear_state()[source]

Clear all state properties to None.

Purposefully avoid clearing things set during initialization: This should not clear configurations, methods,

or loaded functions. Instead it will reset properties like temperature, pressure, orbital frequency, etc.

is_liquid = False
property pressure: FloatArray

Outer-scope wrapper for layer.pressure

property rheology_class: Rheology

The rheology class instance where the complex compliance model is stored

property temperature

Outer-scope wrapper for layer.temperature

property viscosity: FloatArray

Viscosity (Solid or Liquid depending on the class type) no partial melting effects have been applied

TidalPy.rheology.viscosity.viscosity_models module

TidalPy.rheology.viscosity.viscosity_models.arrhenius(temperature: float | float64 | ndarray, pressure: float | float64 | ndarray, arrhenius_coeff: float, additional_temp_dependence: bool, stress: float, stress_expo: float, grain_size: float, grain_size_expo: float, molar_activation_energy: float, molar_activation_volume: float) float | float64 | ndarray[source]

Solid Viscosity Function: Generic Arrhenius Relationship

See, for example, Moore (2006)

!TPY_args live: self.temperature, self.pressure !TPY_args const: arrhenius_coeff, additional_temp_dependence, stress, stress_expo, grain_size, grain_size_expo, molar_activation_energy, molar_activation_volume

Parameters:
  • temperature (FloatArray) – Layer/Material temperature [K]

  • pressure (FloatArray) –

    Layer/Material pressure [Pa] This could be bottom, surface, or (probably best option) middle or average pressure.

    It should be defined at the same location as temperature.

  • arrhenius_coeff (float) – Overall coefficient [s m^(-grain_size) Pa^(stress_expo); also see note in additional_temp_dependence]

  • additional_temp_dependence (bool) – If True, the result will be multiplied by temperature If True, this will also change the units of the arrhenius coeff to have an additional [K-1]

  • stress (float) – Tidal stress [Pa]

  • stress_expo (float) – Tidal stress will be raised to (1 - stress_expo)

  • grain_size (float) – Material average grain size [m]

  • grain_size_expo (float) – Material average grain size will be raised to grain_size_expo

  • molar_activation_energy (float) – Defines the pure temperature dependence of the Arrhenius exponential component [J mol-1]

  • molar_activation_volume (float) – Defines the pressure dependence of the Arrhenius exponential component [m3 mol-1]

Returns:

viscosity – Solid body viscosity of the material (before any partial melting) [Pa s]

Return type:

FloatArray

TidalPy.rheology.viscosity.viscosity_models.constant(temperature: float | float64 | ndarray, pressure: float | float64 | ndarray, reference_viscosity: float) float | float64 | ndarray[source]

Solid Viscosity Function: Constant. Ignores other input and returns the reference viscosity value

!TPY_args live: self.temperature, self.pressure !TPY_args const: reference_viscosity

Parameters:
  • temperature (FloatArray) – Layer/Material temperature [K] FOR THIS FUNCTION: this is unused.

  • pressure (FloatArray) –

    Layer/Material pressure [Pa] This could be bottom, surface, or (probably best option) middle or average pressure.

    It should be defined at the same location as temperature.

    FOR THIS FUNCTION: this is unused.

  • reference_viscosity (float) – Constant viscosity that will be returned by this function [Pa s]

Returns:

viscosity – Solid body viscosity of the material (before any partial melting) [Pa s]

Return type:

FloatArray

TidalPy.rheology.viscosity.viscosity_models.reference(temperature: float | float64 | ndarray, pressure: float | float64 | ndarray, reference_viscosity: float, reference_temperature: float, molar_activation_energy: float, molar_activation_volume: float) float | float64 | ndarray[source]

Solid Viscosity Function: Arrhnius-like utilizing a reference viscosity

See, for example, Henning (2009)

!TPY_args live: self.temperature, self.pressure !TPY_args const: reference_viscosity, reference_temperature, molar_activation_energy, molar_activation_volume

Parameters:
  • temperature (FloatArray) – Layer/Material temperature [K]

  • pressure (FloatArray) –

    Layer/Material pressure [Pa] This could be bottom, surface, or (probably best option) middle or average pressure.

    It should be defined at the same location as temperature.

  • reference_viscosity (float) –

    Material’s viscosity at reference temperature [Pa s] Warning: the results of this function will become more inaccurate the further the material’s temperature moves

    away from the reference temperature.

  • reference_temperature (float) – Defining temperature of the reference viscosity [K]

  • molar_activation_energy (float) – Defines the pure temperature dependence of the Arrhenius exponential component [J mol-1]

  • molar_activation_volume (float) – Defines the pressure dependence of the Arrhenius exponential component [m3 mol-1]

Returns:

viscosity – Solid body viscosity of the material (before any partial melting) [Pa s]

Return type:

FloatArray