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

#include <ConjugateGradientMixedPrecBatched.h>

Inheritance diagram for MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >:
LinearFunction< FieldD >

Public Member Functions

 MixedPrecisionConjugateGradientBatched (RealD tol, Integer maxinnerit, Integer maxouterit, Integer maxpatchit, GridBase *_sp_grid, LinearOperatorBase< FieldF > &_Linop_f, LinearOperatorBase< FieldD > &_Linop_d, bool _updateResidual=true)
void useGuesser (LinearFunction< FieldF > &g)
void operator() (const FieldD &src_d_in, FieldD &sol_d)
void operator() (const std::vector< FieldD > &src_d_in, std::vector< FieldD > &sol_d)

Data Fields

RealD Tolerance
RealD InnerTolerance
Integer MaxInnerIterations
Integer MaxOuterIterations
Integer MaxPatchupIterations
GridBaseSinglePrecGrid
RealD OuterLoopNormMult
LinearOperatorBase< FieldF > & Linop_f
LinearOperatorBase< FieldD > & Linop_d
LinearFunction< FieldF > * guesser
bool updateResidual

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >

Definition at line 37 of file ConjugateGradientMixedPrecBatched.h.

Constructor & Destructor Documentation

◆ MixedPrecisionConjugateGradientBatched()

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>
MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::MixedPrecisionConjugateGradientBatched ( RealD tol,
Integer maxinnerit,
Integer maxouterit,
Integer maxpatchit,
GridBase * _sp_grid,
LinearOperatorBase< FieldF > & _Linop_f,
LinearOperatorBase< FieldD > & _Linop_d,
bool _updateResidual = true )
inline

Member Function Documentation

◆ useGuesser()

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::useGuesser ( LinearFunction< FieldF > & g)
inline

Definition at line 66 of file ConjugateGradientMixedPrecBatched.h.

References guesser.

◆ operator()() [1/2]

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::operator() ( const FieldD & src_d_in,
FieldD & sol_d )
inlinevirtual

Implements LinearFunction< FieldD >.

Definition at line 70 of file ConjugateGradientMixedPrecBatched.h.

◆ operator()() [2/2]

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::operator() ( const std::vector< FieldD > & src_d_in,
std::vector< FieldD > & sol_d )
inline

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::Tolerance

◆ InnerTolerance

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::InnerTolerance

◆ MaxInnerIterations

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::MaxInnerIterations

◆ MaxOuterIterations

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::MaxOuterIterations

◆ MaxPatchupIterations

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::MaxPatchupIterations

◆ 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* MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::SinglePrecGrid

◆ OuterLoopNormMult

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 MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::OuterLoopNormMult

◆ 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>& MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::Linop_f

◆ Linop_d

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<FieldD>& MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::Linop_d

◆ guesser

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>
LinearFunction<FieldF>* MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::guesser

◆ updateResidual

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>
bool MixedPrecisionConjugateGradientBatched< FieldD, FieldF, type, type >::updateResidual

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