19 params.
addParam<std::vector<SolverSystemName>>(
21 "Names of the solver systems (both linear and nonlinear) that will be solved");
33 for (
const auto & sys_name : nl_sys_names)
35 for (
const auto & sys_name : linear_sys_names)
43 for (
const auto & sys_name :
getParam<std::vector<SolverSystemName>>(
"system_names"))
45 if (std::find(nl_sys_names.begin(), nl_sys_names.end(), sys_name) != nl_sys_names.end())
50 else if (std::find(linear_sys_names.begin(), linear_sys_names.end(), sys_name) !=
51 linear_sys_names.end())
55 "System '" + sys_name +
56 "' was not found in the Problem. Did you forget to declare it in the " static InputParameters validParams()
const std::vector< NonlinearSystemName > & getNonlinearSystemNames() const
FEProblemBase & _problem
Reference to FEProblem.
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Executioners are objects that do the actual work of solving your problem.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
const std::vector< LinearSystemName > & getLinearSystemNames() const
unsigned int solverSysNum(const SolverSystemName &solver_sys_name) const override
unsigned int _num_nl_systems
Number of nonlinear systems.
SolverSystem & getSolverSystem(unsigned int sys_num)
Get non-constant reference to a solver system.
MultiSystemSolveObject(Executioner &ex)
std::vector< SolverSystem * > _systems
Vector of pointers to the systems.