Grid 0.7.0
TwoLevelADEF2mrhs< Field, CoarseField > Class Template Reference

#include <AdefMrhs.h>

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

Public Member Functions

 TwoLevelADEF2mrhs (RealD tol, Integer maxit, LinearOperatorBase< Field > &FineLinop, LinearFunction< Field > &Smoother, LinearFunction< CoarseField > &CoarseSolverMrhs, LinearFunction< CoarseField > &CoarseSolverPreciseMrhs, MultiRHSBlockProject< Field > &Projector, MultiRHSDeflation< CoarseField > &Deflator, GridBase *_coarsemrhsgrid)
virtual void Vstart (std::vector< Field > &x, std::vector< Field > &src)
virtual void PcgM1 (std::vector< Field > &in, std::vector< Field > &out)
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 PcgM2 (const Field &in, Field &out)
virtual RealD PcgM3 (const Field &p, Field &mmp)

Data Fields

GridBasecoarsegrid
GridBasecoarsegridmrhs
LinearFunction< CoarseField > & _CoarseSolverMrhs
LinearFunction< CoarseField > & _CoarseSolverPreciseMrhs
MultiRHSBlockProject< Field > & _Projector
MultiRHSDeflation< CoarseField > & _Deflator
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 CoarseField>
class TwoLevelADEF2mrhs< Field, CoarseField >

Definition at line 592 of file AdefMrhs.h.

Constructor & Destructor Documentation

◆ TwoLevelADEF2mrhs()

template<class Field, class CoarseField>
TwoLevelADEF2mrhs< Field, CoarseField >::TwoLevelADEF2mrhs ( RealD tol,
Integer maxit,
LinearOperatorBase< Field > & FineLinop,
LinearFunction< Field > & Smoother,
LinearFunction< CoarseField > & CoarseSolverMrhs,
LinearFunction< CoarseField > & CoarseSolverPreciseMrhs,
MultiRHSBlockProject< Field > & Projector,
MultiRHSDeflation< CoarseField > & Deflator,
GridBase * _coarsemrhsgrid )
inline

Member Function Documentation

◆ Vstart()

template<class Field, class CoarseField>
virtual void TwoLevelADEF2mrhs< Field, CoarseField >::Vstart ( std::vector< Field > & x,
std::vector< Field > & src )
inlinevirtual

◆ PcgM1()

◆ operator()()

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

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 )
inlineinherited

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 )
inlinevirtualinherited

◆ SolveSingleSystem()

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

◆ PcgM2()

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

Definition at line 577 of file AdefMrhs.h.

◆ PcgM3()

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

Definition at line 581 of file AdefMrhs.h.

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

Referenced by SolveSingleSystem().

Field Documentation

◆ coarsegrid

template<class Field, class CoarseField>
GridBase* TwoLevelADEF2mrhs< Field, CoarseField >::coarsegrid

Definition at line 595 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs().

◆ coarsegridmrhs

template<class Field, class CoarseField>
GridBase* TwoLevelADEF2mrhs< Field, CoarseField >::coarsegridmrhs

Definition at line 596 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs().

◆ _CoarseSolverMrhs

template<class Field, class CoarseField>
LinearFunction<CoarseField>& TwoLevelADEF2mrhs< Field, CoarseField >::_CoarseSolverMrhs

Definition at line 597 of file AdefMrhs.h.

Referenced by PcgM1(), and TwoLevelADEF2mrhs().

◆ _CoarseSolverPreciseMrhs

template<class Field, class CoarseField>
LinearFunction<CoarseField>& TwoLevelADEF2mrhs< Field, CoarseField >::_CoarseSolverPreciseMrhs

Definition at line 598 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs(), and Vstart().

◆ _Projector

template<class Field, class CoarseField>
MultiRHSBlockProject<Field>& TwoLevelADEF2mrhs< Field, CoarseField >::_Projector

Definition at line 599 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs().

◆ _Deflator

template<class Field, class CoarseField>
MultiRHSDeflation<CoarseField>& TwoLevelADEF2mrhs< Field, CoarseField >::_Deflator

Definition at line 600 of file AdefMrhs.h.

Referenced by TwoLevelADEF2mrhs().

◆ Tolerance

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

Definition at line 49 of file AdefMrhs.h.

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

◆ MaxIterations

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

Definition at line 50 of file AdefMrhs.h.

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

◆ grid

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

◆ _FineLinop

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

◆ _Smoother

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

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
inherited

Definition at line 56 of file AdefMrhs.h.

Referenced by SolvePrecBlockCG(), and ThinQRfact().

◆ ProjectTimer

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

◆ PromoteTimer

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

◆ DeflateTimer

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

◆ CoarseTimer

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

◆ FineTimer

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

◆ SmoothTimer

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

◆ InsertTimer

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

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