21 #ifndef _aspect_material_model_rheology_visco_plastic_h 22 #define _aspect_material_model_rheology_visco_plastic_h 40 #include<deal.II/fe/component_mask.h> 44 namespace MaterialModel
57 std::vector<double>
get_nth_output(
const unsigned int idx)
const override;
144 const unsigned int i,
145 const std::vector<double> &volume_fractions,
146 const std::vector<double> &phase_function_values = std::vector<double>(),
147 const std::vector<unsigned int> &n_phase_transitions_per_composition =
148 std::vector<unsigned int>())
const;
159 void compute_viscosity_derivatives(
const unsigned int point_index,
160 const std::vector<double> &volume_fractions,
164 const std::vector<double> &phase_function_values = std::vector<double>(),
165 const std::vector<unsigned int> &n_phase_transitions_per_composition =
166 std::vector<unsigned int>())
const;
174 ComponentMask get_volumetric_composition_mask()
const;
191 parse_parameters (ParameterHandler &prm,
192 const std::unique_ptr<std::vector<unsigned int>> &expected_n_phases_per_composition =
nullptr);
206 void fill_plastic_outputs(
const unsigned int point_index,
207 const std::vector<double> &volume_fractions,
208 const bool plastic_yielding,
266 minimum_diffusion_dislocation
double adiabatic_temperature_gradient_for_viscosity
std::vector< double > dilation_rhs_terms
bool use_adiabatic_pressure_in_creep
MaterialUtilities::CompositionalAveragingOperation viscosity_averaging
std::vector< double > dilation_lhs_terms
Rheology::FrictionModels< dim > friction_models
std::vector< double > yielding
std::vector< double > cohesions
CompositionalAveragingOperation
std::unique_ptr< Rheology::FrankKamenetskii< dim > > frank_kamenetskii_rheology
std::vector< double > friction_angles
Rheology::DruckerPrager< dim > drucker_prager_plasticity
std::vector< Rheology::DruckerPragerParameters > drucker_prager_parameters
void declare_parameters(ParameterHandler &prm)
Rheology::ConstantViscosityPrefactors< dim > constant_viscosity_prefactors
bool use_grain_boundary_sliding
Rheology::DislocationCreep< dim > dislocation_creep
PlasticAdditionalOutputs(const unsigned int n_points)
std::vector< double > exponents_stress_limiter
std::vector< double > minimum_viscosity
std::vector< double > composition_viscosities
bool allow_negative_pressures_in_plasticity
Rheology::CompositionalViscosityPrefactors< dim > compositional_viscosity_prefactors
bool use_adiabatic_pressure_in_plasticity
Rheology::StrainDependent< dim > strain_rheology
std::vector< double > maximum_viscosity
std::vector< bool > composition_yielding
std::vector< double > yield_stresses
Rheology::DiffusionCreep< dim > diffusion_creep
std::unique_ptr< Rheology::PeierlsCreep< dim > > peierls_creep
std::unique_ptr< Rheology::GrainBoundarySliding< dim > > grain_boundary_sliding_rheology
Rheology::Elasticity< dim > elastic_rheology
std::vector< double > get_nth_output(const unsigned int idx) const override