16#include <prismspf/config.h>
72 dealii::ExcMessage(
"Nucleus exclusion distance must be non-negative."));
92 dealii::ExcMessage(
"Nucleus exclusion distance must be non-negative."));
112 dealii::ExcMessage(
"Nucleation refinement radius must be non-negative."));
167 template <
unsigned int dim>
219 dealii::ExcMessage(
"Nucleation period must be positive."));
226 <<
"================================================\n"
227 <<
" Nucleation Parameters\n"
228 <<
"================================================\n"
static dealii::ConditionalOStream & pout_summary()
Log output stream for writing a summary.log file.
Definition conditional_ostreams.cc:34
Definition simulation_timer.h:13
@ Value
Use value of the variable as a criterion for refinement.
Definition grid_refiner_criterion.h:31
Definition conditional_ostreams.cc:20
Struct that holds nucleation parameters.
Definition nucleation_parameters.h:27
double get_seeding_time() const
Get the seeding time.
Definition nucleation_parameters.h:138
unsigned int nucleation_period
Definition nucleation_parameters.h:187
bool should_attempt_nucleation(unsigned int increment) const
Return if the increment should be nucleationted.
Definition nucleation_parameters.h:209
double get_exclusion_distance() const
Get the nucleus exclusion distance.
Definition nucleation_parameters.h:80
unsigned int seeding_increments
Definition nucleation_parameters.h:205
void set_seeding_time(const double &_seeding_time)
Set the seeding time.
Definition nucleation_parameters.h:129
double get_same_field_exclusion_distance() const
Get the nucleus exclusion distance.
Definition nucleation_parameters.h:100
bool check_active(const Nucleus< dim > &nucleus, const SimulationTimer &time_info) const
Check if a nucleus is still active based on its seed time and increment. A nucleus is considered acti...
Definition nucleation_parameters.h:169
unsigned int get_seeding_increments() const
Get the seeding increments.
Definition nucleation_parameters.h:156
void set_same_field_exclusion_distance(const double &exclusion_distance)
Set the nucleus exclusion distance.
Definition nucleation_parameters.h:89
bool postprocessed_nucleation_rate_exists() const
Whether a postprocessed nucleation rate exists.
Definition nucleation_parameters.h:180
double refinement_radius
Definition nucleation_parameters.h:199
void set_refinement_radius(const double &_refinement_radius)
Set the refinement radius.
Definition nucleation_parameters.h:109
void set_exclusion_distance(const double &_nucleus_exclusion_distance)
Set the nucleus exclusion distance.
Definition nucleation_parameters.h:69
double same_field_nucleus_exclusion_distance
Definition nucleation_parameters.h:196
double nucleus_exclusion_distance
Definition nucleation_parameters.h:193
void print_parameter_summary() const
Print parameters to summary.log.
Definition nucleation_parameters.h:223
unsigned int get_nucleation_period() const
Get the nucleation period.
Definition nucleation_parameters.h:60
void validate() const
Postprocess and validate parameters.
Definition nucleation_parameters.h:215
bool pp_nucleation_rate_exists
Definition nucleation_parameters.h:190
void set_nucleation_period(const unsigned int &_nucleation_period)
Set the print nucleation period.
Definition nucleation_parameters.h:51
double seeding_time
Definition nucleation_parameters.h:202
void set_seeding_increments(const unsigned int &_seeding_increments)
Set the seeding increments.
Definition nucleation_parameters.h:147
double get_refinement_radius() const
Get the refinement radius.
Definition nucleation_parameters.h:120
This class contains mutable utilities for phase field problems.
Definition nucleus.h:23