|
ASPECT
|

Static Public Member Functions | |
| static void | declare_parameters (ParameterHandler &prm) |
Static Public Member Functions inherited from aspect::SimulatorAccess< dim > | |
| static void | get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point) |
Public Attributes | |
| double | min_strain_rate |
| MaterialUtilities::CompositionalAveragingOperation | viscosity_averaging |
| Rheology::StrainDependent< dim > | strain_rheology |
| Rheology::FrictionModels< dim > | friction_models |
| Rheology::Elasticity< dim > | elastic_rheology |
Private Types | |
| enum | ViscosityScheme { diffusion , dislocation , frank_kamenetskii , composite , minimum_diffusion_dislocation } |
| enum | YieldScheme { stress_limiter , drucker_prager } |
Definition at line 188 of file visco_plastic.h.
|
private |
Enumeration for selecting which type of viscous flow law to use. Select between diffusion, dislocation, frank_kamenetskii, composite, or the minimum of the diffusion and dislocation viscosities.
| Enumerator | |
|---|---|
| diffusion | |
| dislocation | |
| frank_kamenetskii | |
| composite | |
| minimum_diffusion_dislocation | |
Definition at line 344 of file visco_plastic.h.
|
private |
Enumeration for selecting which type of yield mechanism to use. Select between Drucker Prager and stress limiter.
| Enumerator | |
|---|---|
| stress_limiter | |
| drucker_prager | |
Definition at line 361 of file visco_plastic.h.
| aspect::MaterialModel::Rheology::ViscoPlastic< dim >::ViscoPlastic | ( | ) |
Constructor.
| IsostrainViscosities aspect::MaterialModel::Rheology::ViscoPlastic< dim >::calculate_isostrain_viscosities | ( | const MaterialModel::MaterialModelInputs< dim > & | in, |
| const unsigned int | i, | ||
| const std::vector< double > & | volume_fractions, | ||
| const std::vector< double > & | phase_function_values = std::vector< double >(), |
||
| const std::vector< unsigned int > & | n_phase_transitions_per_composition = std::vector< unsigned int >() |
||
| ) | const |
This function calculates viscosities assuming that all the compositional fields experience the same strain rate (isostrain). If n_phase_transitions_per_composition points to a vector of unsigned integers this is considered the number of phase transitions for each compositional field and viscosity will be first computed on each phase and then averaged for each compositional field.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::compute_viscosity_derivatives | ( | const unsigned int | point_index, |
| const std::vector< double > & | volume_fractions, | ||
| const IsostrainViscosities & | isostrain_values, | ||
| const MaterialModel::MaterialModelInputs< dim > & | in, | ||
| MaterialModel::MaterialModelOutputs< dim > & | out, | ||
| const std::vector< double > & | phase_function_values = std::vector< double >(), |
||
| const std::vector< unsigned int > & | n_phase_transitions_per_composition = std::vector< unsigned int >() |
||
| ) | const |
A function that fills the viscosity derivatives in the MaterialModelOutputs object that is handed over, if they exist. Does nothing otherwise. If n_phase_transitions_per_composition points to a vector of unsigned integers this is considered the number of phase transitions for each compositional field and viscosity will be first computed on each phase and then averaged for each compositional field.
| ComponentMask aspect::MaterialModel::Rheology::ViscoPlastic< dim >::get_volumetric_composition_mask | ( | ) | const |
A function that returns a ComponentMask that represents all compositional fields that should be considered 'volumetric', that is representing a physical proportion of the material, e.g. volume fraction of peridotite (as opposed to non-volumetric quantities like the amount of finite-strain).
|
static |
Declare the parameters this function takes through input files.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::parse_parameters | ( | ParameterHandler & | prm, |
| const std::unique_ptr< std::vector< unsigned int >> & | expected_n_phases_per_composition = nullptr |
||
| ) |
Read the parameters this class declares from the parameter file. If expected_n_phases_per_composition points to a vector of unsigned integers this is considered the number of phases for each compositional field and will be checked against the parsed parameters.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::create_plastic_outputs | ( | MaterialModel::MaterialModelOutputs< dim > & | out | ) | const |
Create the additional material model outputs object that contains the plastic outputs.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::fill_plastic_outputs | ( | const unsigned int | point_index, |
| const std::vector< double > & | volume_fractions, | ||
| const bool | plastic_yielding, | ||
| const MaterialModel::MaterialModelInputs< dim > & | in, | ||
| MaterialModel::MaterialModelOutputs< dim > & | out, | ||
| const IsostrainViscosities & | isostrain_viscosities | ||
| ) | const |
A function that fills the plastic additional output in the MaterialModelOutputs object that is handed over, if it exists. Does nothing otherwise.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::create_viscosity_outputs | ( | MaterialModel::MaterialModelOutputs< dim > & | out | ) | const |
Create additional outputs for diffusion and dislocation viscosities.
| void aspect::MaterialModel::Rheology::ViscoPlastic< dim >::fill_viscosity_outputs | ( | const unsigned int | point_index, |
| const std::vector< double > & | volume_fractions, | ||
| MaterialModel::MaterialModelOutputs< dim > & | out, | ||
| const IsostrainViscosities & | isostrain_viscosities | ||
| ) | const |
Fill additional outputs for diffusion and dislocation viscosities, if viscosity additional output object is created.
| double aspect::MaterialModel::Rheology::ViscoPlastic< dim >::min_strain_rate |
Minimum strain rate used to stabilize the strain rate dependent rheology.
This variable is read from the parameter file through a parameter called 'Minimum strain rate'.
Definition at line 294 of file visco_plastic.h.
| MaterialUtilities::CompositionalAveragingOperation aspect::MaterialModel::Rheology::ViscoPlastic< dim >::viscosity_averaging |
Enumeration for selecting which viscosity averaging scheme to use. This variable is read from the parameter file through a parameter called 'Viscosity averaging scheme'.
Definition at line 300 of file visco_plastic.h.
| Rheology::StrainDependent<dim> aspect::MaterialModel::Rheology::ViscoPlastic< dim >::strain_rheology |
Object for computing the strain dependence of the rheology model.
Definition at line 305 of file visco_plastic.h.
| Rheology::FrictionModels<dim> aspect::MaterialModel::Rheology::ViscoPlastic< dim >::friction_models |
Object for computing the friction dependence of the rheology model.
Definition at line 310 of file visco_plastic.h.
| Rheology::Elasticity<dim> aspect::MaterialModel::Rheology::ViscoPlastic< dim >::elastic_rheology |
Object for computing viscoelastic viscosities and stresses.
Definition at line 315 of file visco_plastic.h.
|
private |
Reference strain rate for the first non-linear iteration in the first time step. This variable is read from the parameter file through a parameter called 'Reference strain rate'.
Definition at line 325 of file visco_plastic.h.
|
private |
Minimum and maximum viscosities used to improve the stability of the rheology model. These parameters contain one value per composition and phase (potentially the same value). This variable is read from the parameter file through a parameter called 'Minimum viscosity'.
Definition at line 333 of file visco_plastic.h.
|
private |
This variable is read from the parameter file through a parameter called 'Maximum viscosity'.
Definition at line 337 of file visco_plastic.h.
|
private |
This variable is read from the parameter file through a parameter called 'Viscous flow law'.
Definition at line 355 of file visco_plastic.h.
|
private |
This variable is read from the parameter file through a parameter called 'Yield mechanism'.
Definition at line 369 of file visco_plastic.h.
|
private |
Whether to allow negative pressures to be used in the computation of plastic yield stresses and viscosities. If false, the minimum pressure in the plasticity formulation will be set to zero. This variable is read from the parameter file through a parameter called 'Allow negative pressures in plasticity'.
Definition at line 377 of file visco_plastic.h.
|
private |
Whether to use the adiabatic pressure instead of the full pressure (default) when calculating creep (diffusion, dislocation, and peierls) viscosity. This may be helpful in models where the full pressure has an unusually large negative value arising from large negative dynamic pressure, resulting in solver convergence issue and in some cases a viscosity of zero. This variable is read from the parameter file through a parameter called 'Use adiabatic pressure in creep viscosity'.
Definition at line 388 of file visco_plastic.h.
|
private |
Whether to use the adiabatic pressure instead of the full pressure when calculating the plastic yield stress. This may be helpful in models where the full pressure has large variations resulting in solver convergence issues. Be aware that this setting will change the plastic shear band angle. This variable is read from the parameter file through a parameter called 'Use adiabatic pressure in plasticity'.
Definition at line 398 of file visco_plastic.h.
|
private |
List of exponents controlling the behavior of the stress limiter yielding mechanism. This variable is read from the parameter file through a parameter called 'Stress limiter exponents'.
Definition at line 405 of file visco_plastic.h.
|
private |
Temperature gradient added to temperature used in the flow law. This variable is read from the parameter file through a parameter called 'Adiabat temperature gradient for viscosity'.
Definition at line 411 of file visco_plastic.h.
|
private |
Objects for computing viscous creep viscosities.
Definition at line 416 of file visco_plastic.h.
|
private |
Definition at line 417 of file visco_plastic.h.
|
private |
Definition at line 418 of file visco_plastic.h.
|
private |
Whether to include grain boundary sliding in the constitutive formulation. This variable is read from the parameter file through a parameter called 'Include Grain Boundary Sliding'.
Definition at line 424 of file visco_plastic.h.
|
private |
Object for computing grain boundary sliding viscosities.
Definition at line 429 of file visco_plastic.h.
|
private |
Whether to include Peierls creep in the constitutive formulation.
This variable is read from the parameter file through a parameter called 'Include Peierls creep'.
Definition at line 436 of file visco_plastic.h.
|
private |
Object for computing Peierls creep viscosities.
Definition at line 441 of file visco_plastic.h.
|
private |
Object for computing the viscosity multiplied by a constant prefactor. This multiplication step is done just prior to calculating the effective viscoelastic viscosity or plastic viscosity.
Definition at line 448 of file visco_plastic.h.
|
private |
Object for computing the viscosity multiplied by a given prefactor term.
Definition at line 453 of file visco_plastic.h.
|
private |
Definition at line 458 of file visco_plastic.h.