PRISMS-PF Manual v3.0-pre
All Classes Functions Variables Enumerations Pages
nonlinear_solve_parameters.h
1// SPDX-FileCopyrightText: © 2025 PRISMS Center at the University of Michigan
2// SPDX-License-Identifier: GNU Lesser General Public Version 2.1
3
4#ifndef nonlinear_solve_parameters_h
5#define nonlinear_solve_parameters_h
6
7#include <prismspf/config.h>
8#include <prismspf/core/types.h>
9#include <prismspf/user_inputs/linear_solve_parameters.h>
10
11PRISMS_PF_BEGIN_NAMESPACE
12
17{
18public:
19 // Nonlinear step length
20 mutable double step_length = 1.0;
21
22 // Max number of iterations for the nonlinear solve
23 unsigned int max_iterations = defaults::iterations;
24};
25
30{
31public:
35 void
37
41 void
43
44 // Map of nonlinear solve parameters for fields that require them
45 std::map<unsigned int, nonlinearSolverParameters> nonlinear_solve;
46};
47
48inline void
50{
51 // Nothing to do here for now
52}
53
54inline void
56{
57 if (!nonlinear_solve.empty())
58 {
60 << "================================================\n"
61 << " Nonlinear Solve Parameters\n"
62 << "================================================\n";
63
64 for (const auto &[index, nonlinear_solver_parameters] : nonlinear_solve)
65 {
67 << "Index: " << index << "\n"
68 << " Max iterations: " << nonlinear_solver_parameters.max_iterations << "\n"
69 << " Step length: " << nonlinear_solver_parameters.step_length << "\n";
70 }
71
72 conditionalOStreams::pout_summary() << "\n" << std::flush;
73 }
74}
75
76PRISMS_PF_END_NAMESPACE
77
78#endif
static dealii::ConditionalOStream & pout_summary()
Log output stream for writing a summary.log file.
Definition conditional_ostreams.cc:22
Struct that holds nonlinear solver parameters.
Definition nonlinear_solve_parameters.h:30
void postprocess_and_validate()
Postprocess and validate parameters.
Definition nonlinear_solve_parameters.h:49
void print_parameter_summary() const
Print parameters to summary.log.
Definition nonlinear_solve_parameters.h:55
Struct that stores relevant nonlinear solve information of a certain field.
Definition nonlinear_solve_parameters.h:17