22 #ifndef _aspect_model_grain_size_h 23 #define _aspect_model_grain_size_h 28 #include <deal.II/matrix_free/fe_point_evaluation.h> 34 namespace MaterialModel
49 std::vector<double> get_nth_output(
const unsigned int idx)
const override;
108 bool is_compressible ()
const override;
128 parse_parameters (ParameterHandler &prm)
override;
144 const Point<dim> &position)
const;
157 std::array<std::pair<double, unsigned int>,2>
241 if (input ==
"paleowattmeter")
242 return Formulation::paleowattmeter;
243 else if (input ==
"paleopiezometer")
244 return Formulation::paleopiezometer;
245 else if (input ==
"pinned grain damage")
246 return Formulation::pinned_grain_damage;
248 AssertThrow(
false, ExcNotImplemented());
266 double compute_partitioning_fraction (
const double temperature)
const;
333 double diffusion_viscosity (
const double temperature,
334 const double adiabatic_temperature,
335 const double adiabatic_pressure,
336 const double grain_size,
337 const double second_strain_rate_invariant,
338 const Point<dim> &position)
const;
351 double dislocation_viscosity (
const double temperature,
352 const double adiabatic_temperature,
353 const double adiabatic_pressure,
355 const Point<dim> &position,
356 const double diffusion_viscosity,
357 const double viscosity_guess = 0)
const;
359 double density (
const double temperature,
360 const double pressure,
361 const std::vector<double> &compositional_fields,
362 const Point<dim> &position)
const;
365 const double pressure,
366 const std::vector<double> &compositional_fields,
367 const Point<dim> &position)
const;
370 const double pressure,
371 const std::vector<double> &compositional_fields,
372 const Point<dim> &position)
const;
375 const double pressure,
376 const std::vector<double> &compositional_fields,
377 const Point<dim> &position)
const;
382 double seismic_Vp (
const double temperature,
383 const double pressure,
384 const std::vector<double> &compositional_fields,
385 const Point<dim> &position)
const;
390 double seismic_Vs (
const double temperature,
391 const double pressure,
392 const std::vector<double> &compositional_fields,
393 const Point<dim> &position)
const;
411 grain_size_change (
const double temperature,
412 const double pressure,
413 const std::vector<double> &compositional_fields,
415 const Tensor<1,dim> &velocity,
416 const Point<dim> &position,
417 const unsigned int grain_size_index,
418 const int crossed_transition)
const;
426 phase_function (
const Point<dim> &position,
427 const double temperature,
428 const double pressure,
429 const unsigned int phase)
const;
437 get_phase_index (
const Point<dim> &position,
438 const double temperature,
439 const double pressure)
const;
450 convert_log_grain_size (std::vector<double> &compositional_fields)
const;
483 } material_file_format;
490 std::vector<std::unique_ptr<MaterialModel::MaterialUtilities::Lookup::MaterialLookup>>
material_lookup;
std::vector< double > grain_growth_rate_constant
std::vector< double > diffusion_activation_volume
double max_thermal_expansivity
std::vector< double > grain_boundary_energy
std::vector< std::string > material_file_names
double reference_specific_heat
double maximum_grain_size_reduction_work_fraction
std::vector< double > grain_growth_activation_energy
unsigned int grain_size_index
std::vector< double > transition_depths
std::vector< double > diffusion_creep_exponent
double dislocation_viscosity_iteration_threshold
double temperature_minimum_partitioning_power
std::vector< double > dislocation_activation_volume
std::vector< double > reciprocal_required_strain
bool use_table_properties
double phase_distribution
void declare_parameters(ParameterHandler &prm)
std::vector< std::unique_ptr< MaterialModel::MaterialUtilities::Lookup::MaterialLookup > > material_lookup
double temperature_maximum_partitioning_power
double grain_size_reduction_work_fraction_exponent
std::vector< double > geometric_constant
std::vector< double > grain_growth_exponent
std::vector< double > diffusion_creep_grain_size_exponent
double roughness_to_grain_size
std::vector< double > diffusion_creep_prefactor
double pv_grain_size_scaling
std::vector< double > dislocation_activation_energy
double reference_compressibility
unsigned int dislocation_viscosity_iteration_number
std::vector< double > transition_slopes
double minimum_grain_size_reduction_work_fraction
std::vector< double > grain_growth_activation_volume
std::vector< double > dislocation_creep_exponent
std::vector< double > recrystallized_grain_size
std::vector< double > dislocation_viscosities
std::vector< double > diffusion_viscosities
std::unique_ptr< FEPointEvaluation< 1, dim > > temperature_evaluator
std::vector< double > diffusion_activation_energy
unsigned int n_material_data
std::vector< double > transition_temperatures
std::vector< double > transition_widths
bool advect_log_grainsize
std::vector< double > boundary_area_change_work_fraction
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
Formulation::Kind grain_size_evolution_formulation
std::vector< std::string > derivatives_file_names
std::unique_ptr< FEPointEvaluation< 1, dim > > pressure_evaluator
std::vector< double > dislocation_creep_prefactor