22 #ifndef _aspect_material_model_grain_size_h 23 #define _aspect_material_model_grain_size_h 32 #include <deal.II/matrix_free/fe_point_evaluation.h> 38 namespace MaterialModel
51 std::vector<double>
get_nth_output(
const unsigned int idx)
const override;
110 bool is_compressible ()
const override;
133 parse_parameters (ParameterHandler &prm)
override;
148 const Point<dim> &position)
const;
161 std::array<std::pair<double, unsigned int>,2>
289 double diffusion_viscosity (
const double temperature,
290 const double adiabatic_temperature,
291 const double adiabatic_pressure,
292 const double grain_size,
293 const double second_strain_rate_invariant,
294 const unsigned int phase_index)
const;
307 double dislocation_viscosity (
const double temperature,
308 const double adiabatic_temperature,
309 const double adiabatic_pressure,
311 const unsigned int phase_index,
312 const double diffusion_viscosity,
313 const double viscosity_guess = 0)
const;
315 double density (
const double temperature,
316 const double pressure,
317 const std::vector<double> &compositional_fields,
318 const Point<dim> &position)
const;
321 const double pressure,
322 const std::vector<double> &compositional_fields,
323 const Point<dim> &position)
const;
326 const double pressure,
327 const std::vector<double> &compositional_fields,
328 const Point<dim> &position)
const;
331 const double pressure,
332 const std::vector<double> &compositional_fields,
333 const Point<dim> &position)
const;
338 double seismic_Vp (
const double temperature,
339 const double pressure,
340 const std::vector<double> &compositional_fields,
341 const Point<dim> &position)
const;
346 double seismic_Vs (
const double temperature,
347 const double pressure,
348 const std::vector<double> &compositional_fields,
349 const Point<dim> &position)
const;
430 std::vector<std::unique_ptr<MaterialModel::MaterialUtilities::Lookup::MaterialLookup>>
material_lookup;
std::vector< double > diffusion_activation_volume
Rheology::DruckerPrager< dim > drucker_prager_plasticity
double max_thermal_expansivity
std::vector< std::string > material_file_names
double reference_specific_heat
std::unique_ptr< ReactionModel::GrainSizeEvolution< dim > > grain_size_evolution
std::vector< double > diffusion_creep_exponent
double dislocation_viscosity_iteration_threshold
std::vector< double > dislocation_activation_volume
bool use_table_properties
std::vector< unsigned int > n_phase_transitions
std::vector< double > get_nth_output(const unsigned int idx) const override
void declare_parameters(ParameterHandler &prm)
std::vector< std::unique_ptr< MaterialModel::MaterialUtilities::Lookup::MaterialLookup > > material_lookup
Rheology::DruckerPragerParameters drucker_prager_parameters
DislocationViscosityOutputs(const unsigned int n_points)
std::vector< double > diffusion_creep_grain_size_exponent
formats material_file_format
std::vector< double > diffusion_creep_prefactor
std::vector< double > dislocation_activation_energy
double reference_compressibility
unsigned int dislocation_viscosity_iteration_number
bool use_adiabatic_pressure_for_yielding
std::vector< double > dislocation_creep_exponent
std::vector< double > dislocation_viscosities
std::vector< double > diffusion_viscosities
std::unique_ptr< FEPointEvaluation< 1, dim > > temperature_evaluator
std::vector< double > diffusion_activation_energy
bool enable_drucker_prager_rheology
unsigned int n_material_data
double max_temperature_dependence_of_eta
bool use_bilinear_interpolation
unsigned int max_latent_heat_substeps
std::string datadirectory
double min_thermal_expansivity
double minimum_grain_size
std::vector< std::string > derivatives_file_names
std::unique_ptr< FEPointEvaluation< 1, dim > > pressure_evaluator
std::shared_ptr< MaterialUtilities::PhaseFunction< dim > > phase_function
std::vector< double > dislocation_creep_prefactor