PRISMS-PF Manual
Loading...
Searching...
No Matches
user_input_parameters.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: © 2025 PRISMS Center at the University of Michigan
2// SPDX-License-Identifier: GNU Lesser General Public Version 2.1
3
4#pragma once
5
6#include <deal.II/base/parameter_handler.h>
7
10
23
24#include <prismspf/config.h>
25
26#include <vector>
27
29
30template <unsigned int dim>
32{
33public:
42 explicit UserInputParameters(const std::string &file_name);
43
47 void
48 validate(const std::vector<FieldAttributes> &field_attributes,
49 const std::vector<SolveGroup> &solve_groups)
50 {
51 // Perform and postprocessing of user inputs and run checks
52 spatial_discretization.validate();
58 boundary_parameters.validate();
62 }
63
67 std::string
84
85private:
90 void
91 assign_spatial_discretization_parameters(dealii::ParameterHandler &parameter_handler);
92
97 void
98 assign_temporal_discretization_parameters(dealii::ParameterHandler &parameter_handler);
99
104 void
105 assign_linear_solve_parameters(dealii::ParameterHandler &parameter_handler);
106
111 void
112 assign_nonlinear_solve_parameters(dealii::ParameterHandler &parameter_handler);
113
118 void
119 assign_output_parameters(dealii::ParameterHandler &parameter_handler);
120
125 void
126 assign_checkpoint_parameters(dealii::ParameterHandler &parameter_handler);
127
132 void
133 assign_load_initial_condition_parameters(dealii::ParameterHandler &parameter_handler);
134
139 void
140 assign_nucleation_parameters(dealii::ParameterHandler &parameter_handler);
141
146 void
147 assign_grain_parameters(dealii::ParameterHandler &parameter_handler);
148
153 void
154 assign_boundary_parameters(dealii::ParameterHandler &parameter_handler);
155
160 void
161 assign_miscellaneous_parameters(dealii::ParameterHandler &parameter_handler);
162
166 void
168 dealii::ParameterHandler &parameter_handler);
169
170public:
171 // Spatial discretization parameters
173
174 // Temporal discretization parameters
176
177 // Linear solve parameters
179
180 // Nonlinear solve parameters
182
183 // Output parameters
185
186 // Checkpoint parameters
188
189 // Boundary parameters
191
192 // Load IC parameters
194
195 // Nucleation parameters
197
198 // Miscellaneous parameters
200
201 // User constants
203};
204
Parameters file reader. Declares parameter names in a dealii parameter_handler and parses the file fo...
Definition input_file_reader.h:20
Class the stores and manages user-defined constants.
Definition user_constants.h:28
Definition user_input_parameters.h:32
void assign_temporal_discretization_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to the temporal discretiziation.
Definition user_input_parameters.cc:129
void assign_linear_solve_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to linear solves.
Definition user_input_parameters.cc:305
void load_model_constants(const InputFileReader &input_file_reader, dealii::ParameterHandler &parameter_handler)
Assign the provided user constants.
Definition user_input_parameters.cc:504
SpatialDiscretization< dim > spatial_discretization
Definition user_input_parameters.h:172
void assign_grain_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to grain remapping and grain vtk l...
NonlinearSolveParameterSet nonlinear_solve_parameters
Definition user_input_parameters.h:181
std::string parameter_summary()
Ensure that the parameters are compatible with a set of fields and solvers.
Definition user_input_parameters.h:68
LinearSolveParameters linear_solve_parameters
Definition user_input_parameters.h:178
void assign_nucleation_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to nucleation.
Definition user_input_parameters.cc:463
void assign_output_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to outputs.
Definition user_input_parameters.cc:145
void validate(const std::vector< FieldAttributes > &field_attributes, const std::vector< SolveGroup > &solve_groups)
Ensure that the parameters are compatible with a set of fields and solvers.
Definition user_input_parameters.h:48
void assign_load_initial_condition_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to loading in initial condition.
Definition user_input_parameters.cc:409
MiscellaneousParameters misc_parameters
Definition user_input_parameters.h:199
LoadInitialConditionParameters load_ic_parameters
Definition user_input_parameters.h:193
void assign_spatial_discretization_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to the spatial discretiziation.
Definition user_input_parameters.cc:54
CheckpointParameters checkpoint_parameters
Definition user_input_parameters.h:187
void assign_boundary_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to boundaries.
Definition user_input_parameters.cc:219
void assign_nonlinear_solve_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to nonlinear solves.
Definition user_input_parameters.cc:376
OutputParameters output_parameters
Definition user_input_parameters.h:184
void assign_miscellaneous_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to miscellaneous parameters.
Definition user_input_parameters.cc:490
NucleationParameters nucleation_parameters
Definition user_input_parameters.h:196
TemporalDiscretization temporal_discretization
Definition user_input_parameters.h:175
BoundaryParameters< dim > boundary_parameters
Definition user_input_parameters.h:190
void assign_checkpoint_parameters(dealii::ParameterHandler &parameter_handler)
Assign the provided user inputs to parameters for anything related to checkpoints.
Definition user_input_parameters.cc:184
UserInputParameters()=default
Default Constructor.
UserConstants< dim > user_constants
Definition user_input_parameters.h:202
@ 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 boundary parameters.
Definition constraint_parameters.h:164
Struct that holds checkpoint parameters.
Definition checkpoint_parameters.h:25
void print_parameter_summary() const
Print parameters to summary.log.
Definition checkpoint_parameters.h:153
void validate()
Postprocess and validate parameters.
Definition checkpoint_parameters.h:39
Struct that holds linear solver parameters.
Definition linear_solve_parameters.h:55
void validate()
Postprocess and validate parameters.
Definition linear_solve_parameters.h:73
void print_parameter_summary() const
Print parameters to summary.log.
Definition linear_solve_parameters.h:79
Struct that stores relevant load initial condition information.
Definition load_initial_condition_parameters.h:48
void postprocess_and_validate()
Postprocess and validate parameters.
Definition load_initial_condition_parameters.h:134
void print_parameter_summary() const
Print parameters to summary.log.
Definition load_initial_condition_parameters.h:150
Struct that holds miscellaneous parameters.
Definition miscellaneous_parameters.h:25
void print_parameter_summary() const
Print parameters to summary.log.
Definition miscellaneous_parameters.h:59
void postprocess_and_validate()
Postprocess and validate parameters.
Definition miscellaneous_parameters.h:55
Struct that holds nonlinear solver parameters.
Definition nonlinear_solve_parameters.h:33
void validate()
Validate parameters.
Definition nonlinear_solve_parameters.h:51
void print_parameter_summary() const
Print parameters to summary.log.
Definition nonlinear_solve_parameters.h:67
Struct that holds nucleation parameters.
Definition nucleation_parameters.h:27
void print_parameter_summary() const
Print parameters to summary.log.
Definition nucleation_parameters.h:223
void validate() const
Postprocess and validate parameters.
Definition nucleation_parameters.h:215
Struct that holds output parameters.
Definition output_parameters.h:27
void print_parameter_summary() const
Print parameters to summary.log.
Definition output_parameters.h:170
void validate()
Postprocess and validate parameters.
Definition output_parameters.h:166
Struct that holds spatial discretization parameters.
Definition spatial_discretization.h:230
Struct that holds temporal discretization parameters.
Definition temporal_discretization.h:17
void validate()
Postprocess and validate parameters.
Definition temporal_discretization.h:39
void print_parameter_summary() const
Print parameters to summary.log.
Definition temporal_discretization.h:56