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

#include <FlexibleCommunicationAvoidingGeneralisedMinimalResidual.h>

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

Public Member Functions

 FlexibleCommunicationAvoidingGeneralisedMinimalResidual (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::FlexibleCommunicationAvoidingGeneralisedMinimalResidual< Field >

Definition at line 35 of file FlexibleCommunicationAvoidingGeneralisedMinimalResidual.h.

Constructor & Destructor Documentation

◆ FlexibleCommunicationAvoidingGeneralisedMinimalResidual()

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

Member Function Documentation

◆ operator()() [1/2]

◆ outerLoopBody()

◆ arnoldiStep()

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

◆ qrUpdate()

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

Definition at line 219 of file FlexibleCommunicationAvoidingGeneralisedMinimalResidual.h.

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

Referenced by outerLoopBody().

◆ computeSolution()

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

Definition at line 242 of file FlexibleCommunicationAvoidingGeneralisedMinimalResidual.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

◆ Tolerance

◆ MaxIterations

◆ RestartLength

◆ MaxNumberOfRestarts

◆ IterationCount

◆ MatrixTimer

◆ PrecTimer

◆ LinalgTimer

◆ QrTimer

◆ CompSolutionTimer

◆ H

◆ y

◆ gamma

◆ c

◆ s

◆ Preconditioner


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