ASPECT
|
Private Attributes | |
double | reference_T |
double | thermal_conductivities |
EquationOfState::LinearizedIncompressible< dim > | equation_of_state |
Rheology::DruckerPrager< dim > | drucker_prager_plasticity |
double | angle_of_internal_friction |
double | cohesion |
double | minimum_viscosity |
double | maximum_viscosity |
double | reference_strain_rate |
Functions used in dealing with run-time parameters | |
void | parse_parameters (ParameterHandler &prm) override |
static void | declare_parameters (ParameterHandler &prm) |
Additional Inherited Members | |
Public Types inherited from aspect::MaterialModel::Interface< dim > | |
using | MaterialModelInputs = MaterialModel::MaterialModelInputs< dim > |
using | MaterialModelOutputs = MaterialModel::MaterialModelOutputs< dim > |
Static Public Member Functions inherited from aspect::Plugins::InterfaceBase | |
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) |
Protected Attributes inherited from aspect::MaterialModel::Interface< dim > | |
NonlinearDependence::ModelDependence | model_dependence |
A material model that consists of globally constant values for all material parameters except density and viscosity.
The model is considered incompressible, following the definition described in Interface::is_compressible.
The viscosity is computed according to the Drucker Prager frictional plasticity criterion based on a user-defined internal angle of friction \(\phi\) and cohesion \(C\). In 3D: \(\sigma_y = \frac{6 C \cos(\phi)}{\sqrt{3} (3+\sin(\phi))} + \frac{6 P \sin(\phi)}{\sqrt{3} (3+\sin(\phi))}\), where \(P\) is the pressure. See for example Zienkiewicz, O. C., Humpheson, C. and Lewis, R. W. (1975), Géotechnique 25, No. 4, 671-689. With this formulation we circumscribe instead of inscribe the Mohr Coulomb yield surface. In 2D the Drucker Prager yield surface is the same as the Mohr Coulomb surface: \(\sigma_y = P \sin(\phi) + C \cos(\phi)\). Note that in 2D for \(\phi=0\), these criteria revert to the von Mises criterion (no pressure dependence). See for example Thieulot, C. (2011), PEPI 188, 47-68.
Note that we enforce the pressure to be positive in the computation of the yield strength by replacing it with a zero value whenever it is negative to prevent negative yield strengths and viscosities. We then use the computed yield strength to scale back the viscosity on to the yield surface using the Viscosity Rescaling Method described in Kachanov, L. M. (2004), Fundamentals of the Theory of Plasticity, Dover Publications, Inc.
To avoid numerically unfavourably large (or even negative) viscosity ranges, we cut off the viscosity with a user-defined minimum and maximum viscosity: \(\eta_eff = \frac{1}{\frac{1}{\eta_min + \eta}+\\ \frac{1}{\eta_max}}\).
Note that this model uses the formulation that assumes an incompressible medium despite the fact that the density follows the law \(\rho(T)=\rho_0(1-\beta(T-T_{\text{ref}}))\).
Definition at line 81 of file drucker_prager.h.
|
overridevirtual |
Function to compute the material properties in out
given the inputs in in
.
Implements aspect::MaterialModel::Interface< dim >.
|
overridevirtual |
Return whether the model is compressible or not. Incompressibility does not necessarily imply that the density is constant; rather, it may still depend on temperature or pressure. In the current context, compressibility means whether we should solve the continuity equation as \(\nabla \cdot (\rho \mathbf u)=0\) (compressible Stokes) or as \(\nabla \cdot \mathbf{u}=0\) (incompressible Stokes).
Implements aspect::MaterialModel::Interface< dim >.
|
static |
Declare the parameters this class takes through input files.
|
overridevirtual |
Read the parameters this class declares from the parameter file.
Reimplemented from aspect::Plugins::InterfaceBase.
|
private |
Definition at line 135 of file drucker_prager.h.
|
private |
Definition at line 136 of file drucker_prager.h.
|
private |
Definition at line 138 of file drucker_prager.h.
|
private |
Definition at line 143 of file drucker_prager.h.
|
private |
The angle of internal friction
Definition at line 148 of file drucker_prager.h.
|
private |
The cohesion
Definition at line 153 of file drucker_prager.h.
|
private |
The applied viscosity bounds
Definition at line 158 of file drucker_prager.h.
|
private |
Definition at line 159 of file drucker_prager.h.
|
private |
The reference strain rate used as a first estimate
Definition at line 164 of file drucker_prager.h.