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();
65 bool all_converged =
true;
68 const auto status = conv->checkConvergence(iter);
69 if (status == Convergence::MooseConvergenceStatus::DIVERGED)
70 return Convergence::MooseConvergenceStatus::DIVERGED;
71 else if (status == Convergence::MooseConvergenceStatus::ITERATING)
72 all_converged =
false;
76 mooseAssert(status == Convergence::MooseConvergenceStatus::CONVERGED,
77 "Status not implemented");
82 return Convergence::MooseConvergenceStatus::CONVERGED;
84 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 preIteration() override
virtual void initialSetup() override
std::vector< Convergence * > _convergence_objects
Convergence objects for all Components that provide one.
virtual void preLoop() override
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.