21 #ifndef _aspect_material_model_rheology_drucker_prager_h 22 #define _aspect_material_model_rheology_drucker_prager_h 31 namespace MaterialModel
95 parse_parameters (ParameterHandler &prm,
96 const std::unique_ptr<std::vector<unsigned int>> &expected_n_phases_per_composition =
nullptr);
106 compute_drucker_prager_parameters (
const unsigned int composition,
107 const std::vector<double> &phase_function_values = std::vector<double>(),
108 const std::vector<unsigned int> &n_phase_transitions_per_composition = std::vector<unsigned int>())
const;
118 compute_yield_stress (
const double cohesion,
134 compute_yield_stress (
const double pressure,
148 compute_viscosity (
const double cohesion,
149 const double angle_internal_friction,
150 const double pressure,
151 const double effective_strain_rate,
152 const double max_yield_stress,
153 const double non_yielding_viscosity = std::numeric_limits<double>::infinity())
const;
162 compute_viscosity (
const double pressure,
163 const double effective_strain_rate,
165 const double non_yielding_viscosity = std::numeric_limits<double>::infinity())
const;
171 std::pair<double, double>
172 compute_strain_rate_and_derivative (
const double stress,
173 const double pressure,
180 compute_derivative (
const double angle_internal_friction,
181 const double effective_strain_rate)
const;
192 std::pair<double,double>
194 const double non_yielding_viscosity,
195 const double effective_strain_rate)
const;
double yield_stress_prefactor
std::vector< double > angles_internal_friction
void declare_parameters(ParameterHandler &prm)
double angle_internal_friction
std::vector< double > yield_stress_prefactors
std::vector< double > cohesions
std::vector< double > max_yield_stresses
std::vector< double > angles_dilation
DruckerPragerParameters()