Grid 0.7.0
ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type > Class Template Reference

#include <ConjugateGradientMultiShiftCleanup.h>

Inheritance diagram for ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >:
OperatorMultiFunction< FieldD > OperatorFunction< FieldD >

Public Member Functions

 ConjugateGradientMultiShiftMixedPrecCleanup (Integer maxit, const MultiShiftFunction &_shifts, GridBase *_SinglePrecGrid, LinearOperatorBase< FieldF > &_Linop_f, int _ReliableUpdateFreq)
void operator() (LinearOperatorBase< FieldD > &Linop, const FieldD &src, FieldD &psi)
void operator() (LinearOperatorBase< FieldD > &Linop, const FieldD &src, std::vector< FieldD > &results, FieldD &psi)
void operator() (LinearOperatorBase< FieldD > &Linop_d, const FieldD &src_d, std::vector< FieldD > &psi_d)

Data Fields

RealD Tolerance
Integer MaxIterationsMshift
Integer MaxIterations
Integer IterationsToComplete
std::vector< int > IterationsToCompleteShift
int verbose
MultiShiftFunction shifts
std::vector< RealDTrueResidualShift
int ReliableUpdateFreq
GridBaseSinglePrecGrid
LinearOperatorBase< FieldF > & Linop_f

Detailed Description

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
class ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >

Definition at line 44 of file ConjugateGradientMultiShiftCleanup.h.

Constructor & Destructor Documentation

◆ ConjugateGradientMultiShiftMixedPrecCleanup()

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::ConjugateGradientMultiShiftMixedPrecCleanup ( Integer maxit,
const MultiShiftFunction & _shifts,
GridBase * _SinglePrecGrid,
LinearOperatorBase< FieldF > & _Linop_f,
int _ReliableUpdateFreq )
inline

Member Function Documentation

◆ operator()() [1/3]

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
void ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::operator() ( LinearOperatorBase< FieldD > & Linop,
const FieldD & src,
FieldD & psi )
inlinevirtual

Implements OperatorFunction< FieldD >.

Definition at line 76 of file ConjugateGradientMultiShiftCleanup.h.

References shifts.

◆ operator()() [2/3]

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
void ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::operator() ( LinearOperatorBase< FieldD > & Linop,
const FieldD & src,
std::vector< FieldD > & results,
FieldD & psi )
inline

Definition at line 83 of file ConjugateGradientMultiShiftCleanup.h.

References shifts.

◆ operator()() [3/3]

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
void ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::operator() ( LinearOperatorBase< FieldD > & Linop_d,
const FieldD & src_d,
std::vector< FieldD > & psi_d )
inlinevirtual

Field Documentation

◆ Tolerance

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
RealD ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::Tolerance

Definition at line 51 of file ConjugateGradientMultiShiftCleanup.h.

◆ MaxIterationsMshift

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
Integer ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::MaxIterationsMshift

◆ MaxIterations

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
Integer ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::MaxIterations

◆ IterationsToComplete

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
Integer ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::IterationsToComplete

Definition at line 54 of file ConjugateGradientMultiShiftCleanup.h.

Referenced by operator()().

◆ IterationsToCompleteShift

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
std::vector<int> ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::IterationsToCompleteShift

◆ verbose

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
int ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::verbose

◆ shifts

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
MultiShiftFunction ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::shifts

◆ TrueResidualShift

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
std::vector<RealD> ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::TrueResidualShift

◆ ReliableUpdateFreq

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
int ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::ReliableUpdateFreq

◆ SinglePrecGrid

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
GridBase* ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::SinglePrecGrid

◆ Linop_f

template<class FieldD, class FieldF, typename std::enable_if< getPrecision< FieldD >::value==2, int >::type = 0, typename std::enable_if< getPrecision< FieldF >::value==1, int >::type = 0>
LinearOperatorBase<FieldF>& ConjugateGradientMultiShiftMixedPrecCleanup< FieldD, FieldF, type, type >::Linop_f

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