21 #ifndef _aspect_material_model_rheology_composite_visco_plastic_h 22 #define _aspect_material_model_rheology_composite_visco_plastic_h 35 namespace MaterialModel
66 parse_parameters (ParameterHandler &prm,
67 const std::unique_ptr<std::vector<unsigned int>> &expected_n_phases_per_composition =
nullptr);
77 compute_viscosity (
const double pressure,
79 const double grain_size,
80 const std::vector<double> &volume_fractions,
82 std::vector<double> &partial_strain_rates,
83 const std::vector<double> &phase_function_values = std::vector<double>(),
84 const std::vector<unsigned int> &n_phase_transitions_per_composition = std::vector<unsigned int>())
const;
95 compute_composition_viscosity (
const double pressure,
96 const double temperature,
97 const double grain_size,
98 const unsigned int composition,
99 const SymmetricTensor<2,dim> &strain_rate,
100 std::vector<double> &partial_strain_rates,
101 const std::vector<double> &phase_function_values = std::vector<double>(),
102 const std::vector<unsigned int> &n_phase_transitions_per_composition = std::vector<unsigned int>())
const;
109 std::pair<double, double>
110 calculate_log_strain_rate_and_derivative(
const std::array<std::pair<double, double>, 4> &logarithmic_strain_rates_and_stress_derivatives,
111 const double viscoplastic_stress,
112 std::vector<double> &partial_strain_rates)
const;
190 const double logmin = std::log(std::numeric_limits<double>::min());
std::vector< unsigned int > active_flow_mechanisms
std::unique_ptr< Rheology::PeierlsCreep< dim > > peierls_creep
double log_strain_rate_residual_threshold
double strain_rate_scaling_factor
std::unique_ptr< Rheology::DruckerPragerPower< dim > > drucker_prager
bool use_dislocation_creep
void declare_parameters(ParameterHandler &prm)
std::unique_ptr< Rheology::DislocationCreep< dim > > dislocation_creep
unsigned int number_of_chemical_compositions
double minimum_strain_rate
std::unique_ptr< Rheology::DiffusionCreep< dim > > diffusion_creep
unsigned int stress_max_iteration_number