MFEM v4.10.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::Ginkgo::ConvergenceLogger Class Referenceabstract

#include <ginkgo.hpp>

Inheritance diagram for mfem::Ginkgo::ConvergenceLogger:
[legend]
Collaboration diagram for mfem::Ginkgo::ConvergenceLogger:
[legend]

Public Member Functions

int get_num_iterations ()
 
real_t get_final_residual_norm ()
 
bool has_converged ()
 
void on_iteration_complete (const gko::LinOp *op, const gko::size_type &iteration, const gko::LinOp *residual, const gko::LinOp *solution, const gko::LinOp *residual_norm) const override
 
void on_iteration_complete (const gko::LinOp *op, const gko::size_type &iteration, const gko::LinOp *residual, const gko::LinOp *solution, const gko::LinOp *residual_norm, const gko::LinOp *implicit_sq_residual_norm) const override
 
void on_iteration_complete (const gko::LinOp *op, const gko::LinOp *rhs, const gko::LinOp *solution, const gko::size_type &iteration, const gko::LinOp *residual, const gko::LinOp *residual_norm, const gko::LinOp *implicit_sq_residual_norm, const gko::array< gko::stopping_status > *status, bool stopped) const override
 
 ConvergenceLogger ()
 

Protected Member Functions

virtual void convergence_iteration_complete_core (const gko::size_type &iteration, const gko::LinOp *residual, const gko::LinOp *solution, const gko::LinOp *residual_norm, const gko::LinOp *implicit_sq_residual_norm, const gko::array< gko::stopping_status > *status) const =0
 

Protected Attributes

gko::size_type num_iterations
 
real_t final_residual_norm
 
bool convergence_status
 

Detailed Description

Custom gko::log::Logger base class for logging the final residual norm and iteration count. This is necessary because some solvers (e.g., IR) will not have the final residual available if they stop due to reaching maximum iterations prior to convergence, and the standard Convergence logger will not respect the use of derived types (VectorWrapper/ParallelVectorWrapper) when computing the final residual.

This base class should not be used directly; solvers should use EnableConvergenceLogger, which has vector type as a template parameter, instead.

Definition at line 493 of file ginkgo.hpp.

Constructor & Destructor Documentation

◆ ConvergenceLogger()

mfem::Ginkgo::ConvergenceLogger::ConvergenceLogger ( )
inline

Definition at line 542 of file ginkgo.hpp.

Member Function Documentation

◆ convergence_iteration_complete_core()

virtual void mfem::Ginkgo::ConvergenceLogger::convergence_iteration_complete_core ( const gko::size_type & iteration,
const gko::LinOp * residual,
const gko::LinOp * solution,
const gko::LinOp * residual_norm,
const gko::LinOp * implicit_sq_residual_norm,
const gko::array< gko::stopping_status > * status ) const
protectedpure virtual

◆ get_final_residual_norm()

real_t mfem::Ginkgo::ConvergenceLogger::get_final_residual_norm ( )
inline

Definition at line 499 of file ginkgo.hpp.

◆ get_num_iterations()

int mfem::Ginkgo::ConvergenceLogger::get_num_iterations ( )
inline

Definition at line 497 of file ginkgo.hpp.

◆ has_converged()

bool mfem::Ginkgo::ConvergenceLogger::has_converged ( )
inline

Definition at line 501 of file ginkgo.hpp.

◆ on_iteration_complete() [1/3]

void mfem::Ginkgo::ConvergenceLogger::on_iteration_complete ( const gko::LinOp * op,
const gko::LinOp * rhs,
const gko::LinOp * solution,
const gko::size_type & iteration,
const gko::LinOp * residual,
const gko::LinOp * residual_norm,
const gko::LinOp * implicit_sq_residual_norm,
const gko::array< gko::stopping_status > * status,
bool stopped ) const
inlineoverride

Definition at line 523 of file ginkgo.hpp.

◆ on_iteration_complete() [2/3]

void mfem::Ginkgo::ConvergenceLogger::on_iteration_complete ( const gko::LinOp * op,
const gko::size_type & iteration,
const gko::LinOp * residual,
const gko::LinOp * solution,
const gko::LinOp * residual_norm ) const
inlineoverride

Definition at line 504 of file ginkgo.hpp.

◆ on_iteration_complete() [3/3]

void mfem::Ginkgo::ConvergenceLogger::on_iteration_complete ( const gko::LinOp * op,
const gko::size_type & iteration,
const gko::LinOp * residual,
const gko::LinOp * solution,
const gko::LinOp * residual_norm,
const gko::LinOp * implicit_sq_residual_norm ) const
inlineoverride

Definition at line 513 of file ginkgo.hpp.

Member Data Documentation

◆ convergence_status

bool mfem::Ginkgo::ConvergenceLogger::convergence_status
mutableprotected

Definition at line 560 of file ginkgo.hpp.

◆ final_residual_norm

real_t mfem::Ginkgo::ConvergenceLogger::final_residual_norm
mutableprotected

Definition at line 558 of file ginkgo.hpp.

◆ num_iterations

gko::size_type mfem::Ginkgo::ConvergenceLogger::num_iterations
mutableprotected

Definition at line 556 of file ginkgo.hpp.


The documentation for this class was generated from the following file: