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

#include <ginkgo.hpp>

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

Public Member Functions

void write () const
 
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
 
 ResidualLogger (bool compute_real_residual)
 

Protected Member Functions

virtual void 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 =0
 

Protected Attributes

std::vector< real_tresidual_norms {}
 
std::vector< std::size_t > iterations {}
 
const bool compute_real_residual
 

Detailed Description

Custom logger base class which intercepts the residual norm scalar and solution vector in order to print a table of real vs recurrent (internal to the solvers) residual norms.

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

Definition at line 670 of file ginkgo.hpp.

Constructor & Destructor Documentation

◆ ResidualLogger()

mfem::Ginkgo::ResidualLogger::ResidualLogger ( bool compute_real_residual)
inline

Definition at line 743 of file ginkgo.hpp.

Member Function Documentation

◆ iteration_complete_core()

virtual void mfem::Ginkgo::ResidualLogger::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
protectedpure virtual

◆ on_iteration_complete() [1/3]

void mfem::Ginkgo::ResidualLogger::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 728 of file ginkgo.hpp.

◆ on_iteration_complete() [2/3]

void mfem::Ginkgo::ResidualLogger::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 707 of file ginkgo.hpp.

◆ on_iteration_complete() [3/3]

void mfem::Ginkgo::ResidualLogger::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 717 of file ginkgo.hpp.

◆ write()

void mfem::Ginkgo::ResidualLogger::write ( ) const
inline

Definition at line 674 of file ginkgo.hpp.

Member Data Documentation

◆ compute_real_residual

const bool mfem::Ginkgo::ResidualLogger::compute_real_residual
protected

Definition at line 761 of file ginkgo.hpp.

◆ iterations

std::vector<std::size_t> mfem::Ginkgo::ResidualLogger::iterations {}
mutableprotected

Definition at line 758 of file ginkgo.hpp.

◆ residual_norms

std::vector<real_t> mfem::Ginkgo::ResidualLogger::residual_norms {}
mutableprotected

Definition at line 756 of file ginkgo.hpp.


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