21 #ifndef _aspect_material_model_rheology_drucker_prager_power_h 22 #define _aspect_material_model_rheology_drucker_prager_power_h 33 namespace MaterialModel
76 const std::unique_ptr<std::vector<unsigned int>> &expected_n_phases_per_composition =
nullptr);
87 const std::vector<double> &phase_function_values = std::vector<double>(),
88 const std::vector<unsigned int> &n_phase_transitions_per_composition = std::vector<unsigned int>())
const;
95 const double angle_internal_friction,
104 const double angle_internal_friction,
105 const double pressure,
106 const double effective_strain_rate,
107 const double max_yield_stress)
const;
113 std::pair<double, double>
115 const double pressure,
122 std::pair<double, double>
124 const double pressure,
std::pair< double, double > compute_log_strain_rate_and_derivative(const double log_stress, const double pressure, const DruckerPragerParameters &p) const
double drucker_prager_edot_ref
double compute_viscosity(const double cohesion, const double angle_internal_friction, const double pressure, const double effective_strain_rate, const double max_yield_stress) const
double drucker_prager_stress_exponent
std::vector< double > cohesions
double compute_yield_stress(const double cohesion, const double angle_internal_friction, const double pressure, const double max_yield_stress) const
double drucker_prager_log_edot_ref
static void declare_parameters(ParameterHandler &prm)
std::vector< double > angles_internal_friction
void parse_parameters(ParameterHandler &prm, const std::unique_ptr< std::vector< unsigned int >> &expected_n_phases_per_composition=nullptr)
const DruckerPragerParameters compute_drucker_prager_parameters(const unsigned int composition, 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
std::pair< double, double > compute_strain_rate_and_derivative(const double stress, const double pressure, const DruckerPragerParameters &p) const