TidalPy.rheology.viscosity package
Submodules
TidalPy.rheology.viscosity.viscosity module
- class TidalPy.rheology.viscosity.viscosity.LiquidViscosity[source]
Bases:
ViscosityParentClassModel 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:
ViscosityParentClassModel 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:
LayerModelHolderCommon 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