Grid 0.7.0
BlockConjugateGradient< Field > Class Template Reference

#include <BlockConjugateGradient.h>

Inheritance diagram for BlockConjugateGradient< Field >:
OperatorFunction< Field >

Public Types

typedef Field::scalar_type scomplex

Public Member Functions

 BlockConjugateGradient (BlockCGtype cgtype, int _Orthog, RealD tol, Integer maxit, bool err_on_no_conv=true)
void ThinQRfact (Eigen::MatrixXcd &m_rr, Eigen::MatrixXcd &C, Eigen::MatrixXcd &Cinv, Field &Q, const Field &R)
void ThinQRfact (Eigen::MatrixXcd &m_rr, Eigen::MatrixXcd &C, Eigen::MatrixXcd &Cinv, std::vector< Field > &Q, const std::vector< Field > &R)
void operator() (LinearOperatorBase< Field > &Linop, const Field &Src, Field &Psi)
virtual void operator() (LinearOperatorBase< Field > &Linop, const std::vector< Field > &Src, std::vector< Field > &Psi)
void BlockCGrQsolve (LinearOperatorBase< Field > &Linop, const Field &B, Field &X)
void CGmultiRHSsolve (LinearOperatorBase< Field > &Linop, const Field &Src, Field &Psi)
void BlockCGrQsolveVec (LinearOperatorBase< Field > &Linop, const std::vector< Field > &B, std::vector< Field > &X)

Data Fields

int blockDim
int Nblock
BlockCGtype CGtype
bool ErrorOnNoConverge
RealD Tolerance
Integer MaxIterations
Integer IterationsToComplete
Integer PrintInterval
RealD TrueResidual

Detailed Description

template<class Field>
class BlockConjugateGradient< Field >

Definition at line 92 of file BlockConjugateGradient.h.

Member Typedef Documentation

◆ scomplex

template<class Field>
typedef Field::scalar_type BlockConjugateGradient< Field >::scomplex

Definition at line 95 of file BlockConjugateGradient.h.

Constructor & Destructor Documentation

◆ BlockConjugateGradient()

template<class Field>
BlockConjugateGradient< Field >::BlockConjugateGradient ( BlockCGtype cgtype,
int _Orthog,
RealD tol,
Integer maxit,
bool err_on_no_conv = true )
inline

Member Function Documentation

◆ ThinQRfact() [1/2]

template<class Field>
void BlockConjugateGradient< Field >::ThinQRfact ( Eigen::MatrixXcd & m_rr,
Eigen::MatrixXcd & C,
Eigen::MatrixXcd & Cinv,
Field & Q,
const Field & R )
inline

Definition at line 132 of file BlockConjugateGradient.h.

References blockDim, sliceInnerProductMatrix(), and sliceMulMatrix().

Referenced by BlockCGrQsolve(), and BlockCGrQsolveVec().

◆ ThinQRfact() [2/2]

template<class Field>
void BlockConjugateGradient< Field >::ThinQRfact ( Eigen::MatrixXcd & m_rr,
Eigen::MatrixXcd & C,
Eigen::MatrixXcd & Cinv,
std::vector< Field > & Q,
const std::vector< Field > & R )
inline

Definition at line 167 of file BlockConjugateGradient.h.

References InnerProductMatrix(), and MulMatrix().

◆ operator()() [1/2]

template<class Field>
void BlockConjugateGradient< Field >::operator() ( LinearOperatorBase< Field > & Linop,
const Field & Src,
Field & Psi )
inlinevirtual

◆ operator()() [2/2]

template<class Field>
virtual void BlockConjugateGradient< Field >::operator() ( LinearOperatorBase< Field > & Linop,
const std::vector< Field > & Src,
std::vector< Field > & Psi )
inlinevirtual

Reimplemented from OperatorFunction< Field >.

Definition at line 207 of file BlockConjugateGradient.h.

References BlockCGrQsolveVec(), BlockCGrQVec, and CGtype.

◆ BlockCGrQsolve()

◆ CGmultiRHSsolve()

◆ BlockCGrQsolveVec()

template<class Field>
void BlockConjugateGradient< Field >::BlockCGrQsolveVec ( LinearOperatorBase< Field > & Linop,
const std::vector< Field > & B,
std::vector< Field > & X )
inline

Field Documentation

◆ blockDim

template<class Field>
int BlockConjugateGradient< Field >::blockDim

◆ Nblock

template<class Field>
int BlockConjugateGradient< Field >::Nblock

Definition at line 98 of file BlockConjugateGradient.h.

Referenced by BlockCGrQsolve(), BlockCGrQsolveVec(), and CGmultiRHSsolve().

◆ CGtype

template<class Field>
BlockCGtype BlockConjugateGradient< Field >::CGtype

Definition at line 100 of file BlockConjugateGradient.h.

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

◆ ErrorOnNoConverge

template<class Field>
bool BlockConjugateGradient< Field >::ErrorOnNoConverge

◆ Tolerance

template<class Field>
RealD BlockConjugateGradient< Field >::Tolerance

◆ MaxIterations

template<class Field>
Integer BlockConjugateGradient< Field >::MaxIterations

◆ IterationsToComplete

template<class Field>
Integer BlockConjugateGradient< Field >::IterationsToComplete

Definition at line 105 of file BlockConjugateGradient.h.

Referenced by BlockCGrQsolve(), BlockCGrQsolveVec(), and CGmultiRHSsolve().

◆ PrintInterval

template<class Field>
Integer BlockConjugateGradient< Field >::PrintInterval

Definition at line 106 of file BlockConjugateGradient.h.

Referenced by BlockConjugateGradient().

◆ TrueResidual

template<class Field>
RealD BlockConjugateGradient< Field >::TrueResidual

Definition at line 107 of file BlockConjugateGradient.h.

Referenced by BlockCGrQsolve(), BlockCGrQsolveVec(), and CGmultiRHSsolve().


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