Grid 0.7.0
TwoLevelCGmrhs< Field > Class Template Referenceabstract

#include <AdefMrhs.h>

Inheritance diagram for TwoLevelCGmrhs< Field >:
TwoLevelADEF2mrhs< Field, CoarseField >

Public Member Functions

 TwoLevelCGmrhs (RealD tol, Integer maxit, LinearOperatorBase< Field > &FineLinop, LinearFunction< Field > &Smoother, GridBase *fine)
virtual void operator() (std::vector< Field > &src, std::vector< Field > &x)
void ThinQRfact (Eigen::MatrixXcd &m_zz, Eigen::MatrixXcd &C, Eigen::MatrixXcd &Cinv, std::vector< Field > &Q, std::vector< Field > &MQ, const std::vector< Field > &Z, const std::vector< Field > &MZ)
virtual void SolvePrecBlockCG (std::vector< Field > &src, std::vector< Field > &X)
virtual void SolveSingleSystem (std::vector< Field > &src, std::vector< Field > &x)
virtual void PcgM1 (std::vector< Field > &in, std::vector< Field > &out)=0
virtual void Vstart (std::vector< Field > &x, std::vector< Field > &src)=0
virtual void PcgM2 (const Field &in, Field &out)
virtual RealD PcgM3 (const Field &p, Field &mmp)

Data Fields

RealD Tolerance
Integer MaxIterations
GridBasegrid
LinearOperatorBase< Field > & _FineLinop
LinearFunction< Field > & _Smoother
MultiRHSBlockCGLinalg< Field > _BlockCGLinalg
GridStopWatch ProjectTimer
GridStopWatch PromoteTimer
GridStopWatch DeflateTimer
GridStopWatch CoarseTimer
GridStopWatch FineTimer
GridStopWatch SmoothTimer
GridStopWatch InsertTimer

Detailed Description

template<class Field>
class TwoLevelCGmrhs< Field >

Definition at line 46 of file AdefMrhs.h.

Constructor & Destructor Documentation

◆ TwoLevelCGmrhs()

template<class Field>
TwoLevelCGmrhs< Field >::TwoLevelCGmrhs ( RealD tol,
Integer maxit,
LinearOperatorBase< Field > & FineLinop,
LinearFunction< Field > & Smoother,
GridBase * fine )
inline

Member Function Documentation

◆ operator()()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::operator() ( std::vector< Field > & src,
std::vector< Field > & x )
inlinevirtual

Definition at line 93 of file AdefMrhs.h.

References SolvePrecBlockCG().

◆ ThinQRfact()

template<class Field>
void TwoLevelCGmrhs< Field >::ThinQRfact ( Eigen::MatrixXcd & m_zz,
Eigen::MatrixXcd & C,
Eigen::MatrixXcd & Cinv,
std::vector< Field > & Q,
std::vector< Field > & MQ,
const std::vector< Field > & Z,
const std::vector< Field > & MZ )
inline

Definition at line 118 of file AdefMrhs.h.

References _BlockCGLinalg, and usecond().

Referenced by SolvePrecBlockCG().

◆ SolvePrecBlockCG()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::SolvePrecBlockCG ( std::vector< Field > & src,
std::vector< Field > & X )
inlinevirtual

◆ SolveSingleSystem()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::SolveSingleSystem ( std::vector< Field > & src,
std::vector< Field > & x )
inlinevirtual

◆ PcgM1()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::PcgM1 ( std::vector< Field > & in,
std::vector< Field > & out )
pure virtual

◆ Vstart()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::Vstart ( std::vector< Field > & x,
std::vector< Field > & src )
pure virtual

◆ PcgM2()

template<class Field>
virtual void TwoLevelCGmrhs< Field >::PcgM2 ( const Field & in,
Field & out )
inlinevirtual

Definition at line 577 of file AdefMrhs.h.

◆ PcgM3()

template<class Field>
virtual RealD TwoLevelCGmrhs< Field >::PcgM3 ( const Field & p,
Field & mmp )
inlinevirtual

Definition at line 581 of file AdefMrhs.h.

References _FineLinop, innerProduct(), and real().

Referenced by SolveSingleSystem().

Field Documentation

◆ Tolerance

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

Definition at line 49 of file AdefMrhs.h.

Referenced by SolvePrecBlockCG(), SolveSingleSystem(), and TwoLevelCGmrhs().

◆ MaxIterations

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

Definition at line 50 of file AdefMrhs.h.

Referenced by SolvePrecBlockCG(), SolveSingleSystem(), and TwoLevelCGmrhs().

◆ grid

template<class Field>
GridBase* TwoLevelCGmrhs< Field >::grid

◆ _FineLinop

template<class Field>
LinearOperatorBase<Field>& TwoLevelCGmrhs< Field >::_FineLinop

◆ _Smoother

template<class Field>
LinearFunction<Field>& TwoLevelCGmrhs< Field >::_Smoother

Definition at line 55 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs< Field, CoarseField >::PcgM1(), and TwoLevelCGmrhs().

◆ _BlockCGLinalg

template<class Field>
MultiRHSBlockCGLinalg<Field> TwoLevelCGmrhs< Field >::_BlockCGLinalg

Definition at line 56 of file AdefMrhs.h.

Referenced by SolvePrecBlockCG(), and ThinQRfact().

◆ ProjectTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::ProjectTimer

◆ PromoteTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::PromoteTimer

◆ DeflateTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::DeflateTimer

◆ CoarseTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::CoarseTimer

◆ FineTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::FineTimer

◆ SmoothTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::SmoothTimer

◆ InsertTimer

template<class Field>
GridStopWatch TwoLevelCGmrhs< Field >::InsertTimer

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