21 #ifndef _aspect_material_model_reaction_model_grain_size_evolution_h 22 #define _aspect_material_model_reaction_model_grain_size_evolution_h 29 namespace MaterialModel
31 namespace ReactionModel
81 const std::vector<double> &adiabatic_pressure,
82 const std::vector<unsigned int> &phase_indices,
84 const double,
const SymmetricTensor<2,dim> &,
const unsigned int,
const double,
const double)> &dislocation_viscosity,
86 const double,
const double,
const double,
const double,
const double,
const unsigned int)> &diffusion_viscosity,
109 const std::vector<unsigned int> &phase_indices,
110 const std::vector<double> &dislocation_viscosities,
186 if (input ==
"paleowattmeter")
188 else if (input ==
"paleopiezometer")
190 else if (input ==
"pinned grain damage")
193 AssertThrow(
false, ExcNotImplemented());
void create_additional_named_outputs(MaterialModel::MaterialModelOutputs< dim > &out) const
double grain_size_reduction_work_fraction_exponent
double compute_partitioning_fraction(const double temperature) const
std::vector< double > grain_growth_activation_volume
static void declare_parameters(ParameterHandler &prm)
double maximum_grain_size_reduction_work_fraction
void parse_parameters(ParameterHandler &prm)
void initialize_phase_function(std::shared_ptr< MaterialUtilities::PhaseFunction< dim >> &phase_function)
std::vector< double > recrystallized_grain_size
std::shared_ptr< MaterialUtilities::PhaseFunction< dim > > phase_function
double temperature_minimum_partitioning_power
std::vector< double > boundary_area_change_work_fraction
std::vector< double > reciprocal_required_strain
std::vector< double > grain_growth_activation_energy
std::vector< double > grain_boundary_energy
std::vector< double > grain_growth_rate_constant
std::vector< double > grain_growth_exponent
double minimum_grain_size_reduction_work_fraction
double temperature_maximum_partitioning_power
double phase_distribution
double minimum_grain_size
Formulation::Kind grain_size_evolution_formulation
void calculate_reaction_terms(const typename Interface< dim >::MaterialModelInputs &in, const std::vector< double > &adiabatic_pressure, const std::vector< unsigned int > &phase_indices, const std::function< double(const double, const double, const double, const SymmetricTensor< 2, dim > &, const unsigned int, const double, const double)> &dislocation_viscosity, const std::function< double(const double, const double, const double, const double, const double, const unsigned int)> &diffusion_viscosity, const double min_eta, const double max_eta, typename Interface< dim >::MaterialModelOutputs &out) const
std::vector< double > geometric_constant
void fill_additional_outputs(const typename MaterialModel::MaterialModelInputs< dim > &in, const typename MaterialModel::MaterialModelOutputs< dim > &out, const std::vector< unsigned int > &phase_indices, const std::vector< double > &dislocation_viscosities, std::vector< std::unique_ptr< MaterialModel::AdditionalMaterialOutputs< dim >>> &additional_outputs) const
double roughness_to_grain_size
unsigned int n_phase_transitions