21 #ifndef _aspect_material_model_rheology_visco_plastic_h
22 #define _aspect_material_model_rheology_visco_plastic_h
44 namespace MaterialModel
206 const unsigned int i,
207 const std::vector<double> &volume_fractions,
208 const std::vector<double> &phase_function_values = std::vector<double>(),
209 const std::vector<unsigned int> &n_phase_transitions_per_composition =
210 std::vector<unsigned int>())
const;
222 const std::vector<double> &volume_fractions,
226 const std::vector<double> &phase_function_values = std::vector<double>(),
227 const std::vector<unsigned int> &n_phase_transitions_per_composition =
228 std::vector<unsigned int>())
const;
254 const std::unique_ptr<std::vector<unsigned int>> &expected_n_phases_per_composition =
nullptr);
269 const std::vector<double> &volume_fractions,
270 const bool plastic_yielding,
285 const std::vector<double> &volume_fractions,
std::vector< double > yield_stresses
std::vector< double > friction_angles
std::vector< double > yielding
PlasticAdditionalOutputs(const unsigned int n_points)
std::vector< double > get_nth_output(const unsigned int idx) const override
std::vector< double > cohesions
std::unique_ptr< Rheology::GrainBoundarySliding< dim > > grain_boundary_sliding_rheology
bool allow_negative_pressures_in_plasticity
Rheology::DislocationCreep< dim > dislocation_creep
@ minimum_diffusion_dislocation
static void declare_parameters(ParameterHandler &prm)
void 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
std::vector< double > exponents_stress_limiter
Rheology::Elasticity< dim > elastic_rheology
bool use_adiabatic_pressure_in_creep
void parse_parameters(ParameterHandler &prm, const std::unique_ptr< std::vector< unsigned int >> &expected_n_phases_per_composition=nullptr)
void 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
Rheology::FrictionModels< dim > friction_models
std::unique_ptr< Rheology::FrankKamenetskii< dim > > frank_kamenetskii_rheology
double adiabatic_temperature_gradient_for_viscosity
std::vector< double > maximum_viscosity
Rheology::CompositionalViscosityPrefactors< dim > compositional_viscosity_prefactors
MaterialUtilities::CompositionalAveragingOperation viscosity_averaging
std::vector< double > minimum_viscosity
void create_viscosity_outputs(MaterialModel::MaterialModelOutputs< dim > &out) const
void fill_viscosity_outputs(const unsigned int point_index, const std::vector< double > &volume_fractions, MaterialModel::MaterialModelOutputs< dim > &out, const IsostrainViscosities &isostrain_viscosities) const
Rheology::DruckerPrager< dim > drucker_prager_plasticity
ViscosityScheme viscous_flow_law
ComponentMask get_volumetric_composition_mask() const
Rheology::DiffusionCreep< dim > diffusion_creep
bool use_adiabatic_pressure_in_plasticity
IsostrainViscosities 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
bool use_grain_boundary_sliding
void create_plastic_outputs(MaterialModel::MaterialModelOutputs< dim > &out) const
Rheology::ConstantViscosityPrefactors< dim > constant_viscosity_prefactors
std::unique_ptr< Rheology::PeierlsCreep< dim > > peierls_creep
Rheology::StrainDependent< dim > strain_rheology
YieldScheme yield_mechanism
std::vector< double > dislocation_viscosities
std::vector< Property > active_properties
std::vector< double > diffusion_viscosities
ViscosityAdditionalOutputs(const unsigned int n_points, const std::vector< Property > &active_properties)
std::vector< double > get_nth_output(const unsigned int idx) const override
CompositionalAveragingOperation
std::vector< Rheology::DruckerPragerParameters > drucker_prager_parameters
std::vector< double > composition_viscosities
std::vector< double > diffusion_viscosities
std::vector< bool > composition_yielding
std::vector< double > dislocation_viscosities
std::vector< double > dilation_rhs_terms
std::vector< double > dilation_lhs_terms