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

#include <GeneralisedMinimalResidual.h>

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

Public Member Functions

 GeneralisedMinimalResidual (RealD tol, Integer maxit, 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, Field &w, int iter)
void qrUpdate (int iter)
void computeSolution (std::vector< Field > const &v, 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 LinalgTimer
GridStopWatch QrTimer
GridStopWatch CompSolutionTimer
Eigen::MatrixXcd H
std::vector< ComplexDy
std::vector< ComplexDgamma
std::vector< ComplexDc
std::vector< ComplexDs

Detailed Description

template<class Field>
class Grid::GeneralisedMinimalResidual< Field >

Definition at line 35 of file GeneralisedMinimalResidual.h.

Constructor & Destructor Documentation

◆ GeneralisedMinimalResidual()

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

Member Function Documentation

◆ operator()() [1/2]

◆ outerLoopBody()

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

◆ arnoldiStep()

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

◆ qrUpdate()

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

Definition at line 205 of file GeneralisedMinimalResidual.h.

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

Referenced by outerLoopBody().

◆ computeSolution()

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

Definition at line 228 of file GeneralisedMinimalResidual.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::GeneralisedMinimalResidual< Field >::ErrorOnNoConverge

Definition at line 39 of file GeneralisedMinimalResidual.h.

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

◆ Tolerance

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

Definition at line 42 of file GeneralisedMinimalResidual.h.

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

◆ MaxIterations

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

Definition at line 44 of file GeneralisedMinimalResidual.h.

Referenced by GeneralisedMinimalResidual(), and outerLoopBody().

◆ RestartLength

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

Definition at line 45 of file GeneralisedMinimalResidual.h.

Referenced by GeneralisedMinimalResidual(), and outerLoopBody().

◆ MaxNumberOfRestarts

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

Definition at line 46 of file GeneralisedMinimalResidual.h.

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

◆ IterationCount

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

Definition at line 47 of file GeneralisedMinimalResidual.h.

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

◆ MatrixTimer

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

Definition at line 50 of file GeneralisedMinimalResidual.h.

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

◆ LinalgTimer

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

Definition at line 51 of file GeneralisedMinimalResidual.h.

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

◆ QrTimer

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

Definition at line 52 of file GeneralisedMinimalResidual.h.

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

◆ CompSolutionTimer

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

Definition at line 53 of file GeneralisedMinimalResidual.h.

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

◆ H

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

◆ y

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

Definition at line 57 of file GeneralisedMinimalResidual.h.

Referenced by computeSolution(), and GeneralisedMinimalResidual().

◆ gamma

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

◆ c

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

Definition at line 59 of file GeneralisedMinimalResidual.h.

Referenced by GeneralisedMinimalResidual(), and qrUpdate().

◆ s

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

Definition at line 60 of file GeneralisedMinimalResidual.h.

Referenced by GeneralisedMinimalResidual(), and qrUpdate().


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