21 params.
addClassDescription(
"Assesses convergence of all Component objects in a simulation.");
32 mooseError(
"ComponentsConvergence only works with THMProblem.");
42 const auto nl_conv = comp->getNonlinearConvergence();
51 bool all_converged =
true;
54 const auto status = conv->checkConvergence(iter);
55 if (status == Convergence::MooseConvergenceStatus::DIVERGED)
56 return Convergence::MooseConvergenceStatus::DIVERGED;
57 else if (status == Convergence::MooseConvergenceStatus::ITERATING)
58 all_converged =
false;
62 mooseAssert(status == Convergence::MooseConvergenceStatus::CONVERGED,
63 "Status not implemented");
68 return Convergence::MooseConvergenceStatus::CONVERGED;
70 return Convergence::MooseConvergenceStatus::ITERATING;
registerMooseObject("ThermalHydraulicsApp", ComponentsConvergence)
Assesses convergence of all Component objects in a simulation.
static InputParameters validParams()
ComponentsConvergence(const InputParameters ¶meters)
virtual void initialSetup() override
std::vector< Convergence * > _convergence_objects
Convergence objects for all Components that provide one.
const THMProblem *const _thm_problem
THM problem.
virtual MooseConvergenceStatus checkConvergenceInner(unsigned int iter) override
virtual void initialSetup() override
static InputParameters validParams()
void mooseError(Args &&... args) const
const std::vector< std::shared_ptr< Component > > & getComponents() const
Return list of components available in the simulation.
Specialization of FEProblem to run with component subsystem.