48 const std::vector<double>& block_norms,
71 mutable double abs_tol_;
72 mutable double rel_tol_;
Small interface for nonlinear solvers that can accept Smith-managed convergence state.
virtual void setConvergenceManager(std::shared_ptr< EquationSolverConvergenceManager > convergence_manager)=0
Attach the shared convergence manager used to evaluate nonlinear stopping criteria.
Owns nonlinear convergence state for an inner EquationSolver solve.
void reset() const
Reset stored initial residual norms.
ConvergenceStatus evaluate(double tolerance_multiplier, const mfem::Vector &residual) const
Evaluate convergence for the current monolithic residual vector.
void setTolerances(double abs_tol, double rel_tol) const
Set scalar tolerances.
EquationSolverConvergenceManager(MPI_Comm comm, double abs_tol, double rel_tol)
Construct a convergence manager for one nonlinear solver.
Accelerator functionality.
std::vector< double > computeResidualBlockNorms(const std::vector< mfem::Vector > &residuals, MPI_Comm comm)
Compute one L2 norm per residual block.
ConvergenceStatus evaluateResidualConvergence(double tolerance_multiplier, double abs_tol, double rel_tol, const std::vector< double > &block_norms, NonlinearConvergenceContext &context)
Evaluate scalar nonlinear residual convergence.
Detailed status from evaluating nonlinear residual convergence.
double global_norm
Current scalar global residual norm.
bool global_converged
True when the scalar global residual criterion passes.
bool converged
True when the scalar global residual criterion passes.
std::vector< double > block_norms
Residual norms used to form the scalar global norm.
double global_goal
Scalar convergence threshold used for the global check.
Stores initial residual norms used for relative nonlinear convergence checks.
void reset()
Clear all stored initial norms for a new solve. The next convergence evaluation seeds a fresh relativ...
double initial_global_norm
Initial scalar global residual norm for the current solve.