Grid 0.7.0
TwoLevelCG< Field > Class Template Referenceabstract

#include <AdefGeneric.h>

Inheritance diagram for TwoLevelCG< Field >:
LinearFunction< Field > TwoLevelADEF1defl< Field > TwoLevelADEF2< Field, CoarseField, Aggregation >

Public Member Functions

 TwoLevelCG (RealD tol, Integer maxit, LinearOperatorBase< Field > &FineLinop, LinearFunction< Field > &Smoother, GridBase *fine)
virtual void operator() (const Field &src, Field &x)
virtual void operator() (std::vector< Field > &src, std::vector< Field > &x)
virtual void PcgM1 (std::vector< Field > &in, std::vector< Field > &out)
virtual void PcgM1 (Field &in, Field &out)=0
virtual void Vstart (std::vector< Field > &x, std::vector< Field > &src)
virtual void Vstart (Field &x, const Field &src)=0
virtual void PcgM2 (const Field &in, Field &out)
virtual RealD PcgM3 (const Field &p, Field &mmp)
virtual void operator() (const std::vector< Field > &in, std::vector< Field > &out)

Data Fields

RealD Tolerance
Integer MaxIterations
GridBasegrid
LinearOperatorBase< Field > & _FineLinop
LinearFunction< Field > & _Smoother

Detailed Description

template<class Field>
class TwoLevelCG< Field >

Definition at line 46 of file AdefGeneric.h.

Constructor & Destructor Documentation

◆ TwoLevelCG()

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

Member Function Documentation

◆ operator()() [1/3]

template<class Field>
virtual void TwoLevelCG< Field >::operator() ( const Field & src,
Field & x )
inlinevirtual

◆ operator()() [2/3]

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

◆ PcgM1() [1/2]

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

Definition at line 401 of file AdefGeneric.h.

References PcgM1().

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

◆ PcgM1() [2/2]

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

◆ Vstart() [1/2]

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

Definition at line 409 of file AdefGeneric.h.

References Vstart().

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

◆ Vstart() [2/2]

template<class Field>
virtual void TwoLevelCG< Field >::Vstart ( Field & x,
const Field & src )
pure virtual

◆ PcgM2()

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

Definition at line 418 of file AdefGeneric.h.

Referenced by operator()().

◆ PcgM3()

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

Definition at line 422 of file AdefGeneric.h.

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

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

◆ operator()() [3/3]

template<class Field>
virtual void LinearFunction< Field >::operator() ( const std::vector< Field > & in,
std::vector< Field > & out )
inlinevirtualinherited

Definition at line 638 of file LinearOperator.h.

Field Documentation

◆ Tolerance

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

Definition at line 49 of file AdefGeneric.h.

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

◆ MaxIterations

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

Definition at line 50 of file AdefGeneric.h.

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

◆ grid

◆ _FineLinop

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

◆ _Smoother

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

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