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<SolveBlock> &solve_blocks)
50 {
51 // Perform and postprocessing of user inputs and run checks
52 spatial_discretization.validate();
53 temporal_discretization.validate();
54 linear_solve_parameters.validate();
56 output_parameters.validate();
57 checkpoint_parameters.validate();
58 boundary_parameters.validate();
59 nucleation_parameters.validate();
60 misc_parameters.postprocess_and_validate();
61 load_ic_parameters.postprocess_and_validate();
62 }
63
67 std::string
69 {
70 // Print all the parameters to summary.log
71 spatial_discretization.print_parameter_summary();
72 temporal_discretization.print_parameter_summary();
73 linear_solve_parameters.print_parameter_summary();
74 nonlinear_solve_parameters.print_parameter_summary();
75 output_parameters.print_parameter_summary();
76 checkpoint_parameters.print_parameter_summary();
77 boundary_parameters.print_parameter_summary();
78 load_ic_parameters.print_parameter_summary();
79 nucleation_parameters.print_parameter_summary();
80 misc_parameters.print_parameter_summary();
81 user_constants.print();
82 return "";
83 }
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
167 load_model_constants(const InputFileReader &input_file_reader,
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
205PRISMS_PF_END_NAMESPACE
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
void validate(const std::vector< FieldAttributes > &field_attributes, const std::vector< SolveBlock > &solve_blocks)
Ensure that the parameters are compatible with a set of fields and solvers.
Definition user_input_parameters.h:48
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:306
void load_model_constants(const InputFileReader &input_file_reader, dealii::ParameterHandler &parameter_handler)
Assign the provided user constants.
Definition user_input_parameters.cc:505
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:464
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 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:410
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:220
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:377
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:491
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:185
UserInputParameters()=default
Default Constructor.
UserConstants< dim > user_constants
Definition user_input_parameters.h:202
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
Struct that holds linear solver parameters.
Definition linear_solve_parameters.h:55
Struct that stores relevant load initial condition information.
Definition load_initial_condition_parameters.h:48
Struct that holds miscellaneous parameters.
Definition miscellaneous_parameters.h:25
Struct that holds nonlinear solver parameters.
Definition nonlinear_solve_parameters.h:33
Struct that holds nucleation parameters.
Definition nucleation_parameters.h:27
Struct that holds output parameters.
Definition output_parameters.h:27
Struct that holds spatial discretization parameters.
Definition spatial_discretization.h:230
Struct that holds temporal discretization parameters.
Definition temporal_discretization.h:17