Grid 0.7.0
Grid::FlexibleGeneralisedMinimalResidual< Field > Class Template Reference

#include <FlexibleGeneralisedMinimalResidual.h>

Inheritance diagram for Grid::FlexibleGeneralisedMinimalResidual< Field >:
OperatorFunction< Field >

Public Member Functions

 FlexibleGeneralisedMinimalResidual (RealD tol, Integer maxit, LinearFunction< Field > &Prec, Integer restart_length, bool err_on_no_conv=true)
void operator() (LinearOperatorBase< Field > &LinOp, const Field &src, Field &psi)
RealD outerLoopBody (LinearOperatorBase< Field > &LinOp, const Field &src, Field &psi, RealD rsq)
void arnoldiStep (LinearOperatorBase< Field > &LinOp, std::vector< Field > &v, std::vector< Field > &z, Field &w, int iter)
void qrUpdate (int iter)
void computeSolution (std::vector< Field > const &z, Field &psi, int iter)
virtual void operator() (LinearOperatorBase< Field > &Linop, const std::vector< Field > &in, std::vector< Field > &out)

Data Fields

bool ErrorOnNoConverge
RealD Tolerance
Integer MaxIterations
Integer RestartLength
Integer MaxNumberOfRestarts
Integer IterationCount
GridStopWatch MatrixTimer
GridStopWatch PrecTimer
GridStopWatch LinalgTimer
GridStopWatch QrTimer
GridStopWatch CompSolutionTimer
Eigen::MatrixXcd H
std::vector< ComplexDy
std::vector< ComplexDgamma
std::vector< ComplexDc
std::vector< ComplexDs
LinearFunction< Field > & Preconditioner

Detailed Description

template<class Field>
class Grid::FlexibleGeneralisedMinimalResidual< Field >

Definition at line 35 of file FlexibleGeneralisedMinimalResidual.h.

Constructor & Destructor Documentation

◆ FlexibleGeneralisedMinimalResidual()

template<class Field>
Grid::FlexibleGeneralisedMinimalResidual< Field >::FlexibleGeneralisedMinimalResidual ( RealD tol,
Integer maxit,
LinearFunction< Field > & Prec,
Integer restart_length,
bool err_on_no_conv = true )
inline

Member Function Documentation

◆ operator()() [1/2]

◆ outerLoopBody()

template<class Field>
RealD Grid::FlexibleGeneralisedMinimalResidual< Field >::outerLoopBody ( LinearOperatorBase< Field > & LinOp,
const Field & src,
Field & psi,
RealD rsq )
inline

◆ arnoldiStep()

template<class Field>
void Grid::FlexibleGeneralisedMinimalResidual< Field >::arnoldiStep ( LinearOperatorBase< Field > & LinOp,
std::vector< Field > & v,
std::vector< Field > & z,
Field & w,
int iter )
inline

◆ qrUpdate()

template<class Field>
void Grid::FlexibleGeneralisedMinimalResidual< Field >::qrUpdate ( int iter)
inline

Definition at line 217 of file FlexibleGeneralisedMinimalResidual.h.

References c, conjugate(), gamma, H, QrTimer, s, and sqrt().

Referenced by outerLoopBody().

◆ computeSolution()

template<class Field>
void Grid::FlexibleGeneralisedMinimalResidual< Field >::computeSolution ( std::vector< Field > const & z,
Field & psi,
int iter )
inline

Definition at line 240 of file FlexibleGeneralisedMinimalResidual.h.

References CompSolutionTimer, gamma, H, and y.

Referenced by outerLoopBody().

◆ operator()() [2/2]

template<class Field>
virtual void OperatorFunction< Field >::operator() ( LinearOperatorBase< Field > & Linop,
const std::vector< Field > & in,
std::vector< Field > & out )
inlinevirtualinherited

Reimplemented in BlockConjugateGradient< Field >.

Definition at line 625 of file LinearOperator.h.

Field Documentation

◆ ErrorOnNoConverge

template<class Field>
bool Grid::FlexibleGeneralisedMinimalResidual< Field >::ErrorOnNoConverge

◆ Tolerance

template<class Field>
RealD Grid::FlexibleGeneralisedMinimalResidual< Field >::Tolerance

◆ MaxIterations

template<class Field>
Integer Grid::FlexibleGeneralisedMinimalResidual< Field >::MaxIterations

◆ RestartLength

template<class Field>
Integer Grid::FlexibleGeneralisedMinimalResidual< Field >::RestartLength

◆ MaxNumberOfRestarts

template<class Field>
Integer Grid::FlexibleGeneralisedMinimalResidual< Field >::MaxNumberOfRestarts

◆ IterationCount

template<class Field>
Integer Grid::FlexibleGeneralisedMinimalResidual< Field >::IterationCount

Definition at line 47 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by operator()(), and outerLoopBody().

◆ MatrixTimer

template<class Field>
GridStopWatch Grid::FlexibleGeneralisedMinimalResidual< Field >::MatrixTimer

Definition at line 50 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by arnoldiStep(), operator()(), and outerLoopBody().

◆ PrecTimer

template<class Field>
GridStopWatch Grid::FlexibleGeneralisedMinimalResidual< Field >::PrecTimer

Definition at line 51 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by arnoldiStep(), and operator()().

◆ LinalgTimer

template<class Field>
GridStopWatch Grid::FlexibleGeneralisedMinimalResidual< Field >::LinalgTimer

Definition at line 52 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by arnoldiStep(), operator()(), and outerLoopBody().

◆ QrTimer

template<class Field>
GridStopWatch Grid::FlexibleGeneralisedMinimalResidual< Field >::QrTimer

Definition at line 53 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by operator()(), and qrUpdate().

◆ CompSolutionTimer

template<class Field>
GridStopWatch Grid::FlexibleGeneralisedMinimalResidual< Field >::CompSolutionTimer

Definition at line 54 of file FlexibleGeneralisedMinimalResidual.h.

Referenced by computeSolution(), and operator()().

◆ H

template<class Field>
Eigen::MatrixXcd Grid::FlexibleGeneralisedMinimalResidual< Field >::H

◆ y

template<class Field>
std::vector<ComplexD> Grid::FlexibleGeneralisedMinimalResidual< Field >::y

◆ gamma

template<class Field>
std::vector<ComplexD> Grid::FlexibleGeneralisedMinimalResidual< Field >::gamma

◆ c

template<class Field>
std::vector<ComplexD> Grid::FlexibleGeneralisedMinimalResidual< Field >::c

◆ s

template<class Field>
std::vector<ComplexD> Grid::FlexibleGeneralisedMinimalResidual< Field >::s

◆ Preconditioner


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