ASPECT
|
Static Public Member Functions | |
static void | declare_parameters (ParameterHandler &prm) |
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) |
Private Attributes | |
Rheology::DiffusionDislocation< dim > | diffusion_dislocation |
double | reference_T |
double | thermal_diffusivity |
double | heat_capacity |
std::vector< double > | densities |
std::vector< double > | thermal_expansivities |
MaterialUtilities::CompositionalAveragingOperation | viscosity_averaging |
Additional Inherited Members | |
Public Types inherited from aspect::MaterialModel::Interface< dim > | |
using | MaterialModelInputs = MaterialModel::MaterialModelInputs< dim > |
using | MaterialModelOutputs = MaterialModel::MaterialModelOutputs< dim > |
Protected Attributes inherited from aspect::MaterialModel::Interface< dim > | |
NonlinearDependence::ModelDependence | model_dependence |
A material model based on a viscous rheology including diffusion and dislocation creep.
The effective viscosity is defined as the harmonic mean of the two effective viscosity functions describing diffusion and dislocation creep:
\[ v_\text{eff} = \left( \frac{1}{v_\text{eff}^\text{diff}} + \frac{1}{v_\text{eff}^\text{dis}} \right)^{-1} \]
where
\[ v_\text{eff}^\text{diff} = A_\text{diff}^{-1} \exp\left(\frac{E_\text{diff} + PV_\text{diff}}{RT}\right), \]
and
\[ v_\text{eff}^\text{dis} = A_\text{dis}^{\frac{-1}{n_\text{dis}}} \dot{\varepsilon}^{\frac{1-n}{n}} \exp\left(\frac{E_\text{diff} + PV_\text{diff}}{n_\text{dis}RT}\right) \]
where \(\dot{\varepsilon}\) is the second invariant of the strain rate tensor, \(A_i\) are prefactors where \(i\) corresponds to diffusion or dislocation creep, \(E_i\) are the activation energies, \(V_i\) are the activation volumes, \(\rho_m\) is the mantle density, \(R\) is the gas constant, \(T\) is temperature, and \(P\) is pressure.
Several model parameters (reference densities, thermal expansivities and rheology parameters) can be defined per-compositional field. For each material parameter the user supplies a comma delimited list of length N+1, where N is the number of compositional fields. The additional field corresponds to the value for background mantle. They should be ordered ``background, composition1, composition2...''
If a list of values is given for the density and thermal expansivity, the volume weighted sum of the values of each of the compositional fields is used in their place, for example \(\rho = \sum \left( \rho_i V_i \right)\)
The individual output viscosities for each compositional field are also averaged. The user can choose from a range of options for this viscosity averaging. If only one value is given for any of these parameters, all compositions are assigned the same value. The first value in the list is the value assigned to "background mantle" (regions where the sum of the compositional fields is < 1.0).
Definition at line 80 of file diffusion_dislocation.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).
This material model is incompressible.
Implements aspect::MaterialModel::Interface< dim >.
|
static |
|
overridevirtual |
Read the parameters this class declares from the parameter file. The default implementation of this function does not read any parameters. Consequently, derived classes do not have to overload this function if they do not take any runtime parameters. On the other hand, most plugins do have run-time parameters, and they may then overload this function.
Reimplemented from aspect::Plugins::InterfaceBase.
|
private |
Object for computing viscous creep viscosities.
Definition at line 111 of file diffusion_dislocation.h.
|
private |
Definition at line 113 of file diffusion_dislocation.h.
|
private |
Definition at line 115 of file diffusion_dislocation.h.
|
private |
Definition at line 116 of file diffusion_dislocation.h.
|
private |
Definition at line 118 of file diffusion_dislocation.h.
|
private |
Definition at line 119 of file diffusion_dislocation.h.
|
private |
Definition at line 121 of file diffusion_dislocation.h.