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

#include <ConjugateGradientMixedPrec.h>

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

Public Member Functions

 MixedPrecisionConjugateGradient (RealD tol, Integer maxinnerit, Integer maxouterit, GridBase *_sp_grid, LinearOperatorBase< FieldF > &_Linop_f, LinearOperatorBase< FieldD > &_Linop_d)
void useGuesser (LinearFunction< FieldF > &g)
void operator() (const FieldD &src_d_in, FieldD &sol_d)

Data Fields

RealD Tolerance
RealD InnerTolerance
Integer MaxInnerIterations
Integer MaxOuterIterations
GridBaseSinglePrecGrid
RealD OuterLoopNormMult
LinearOperatorBase< FieldF > & Linop_f
LinearOperatorBase< FieldD > & Linop_d
Integer TotalInnerIterations
Integer TotalOuterIterations
Integer TotalFinalStepIterations
RealD TrueResidual
LinearFunction< FieldF > * guesser

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

Definition at line 37 of file ConjugateGradientMixedPrec.h.

Constructor & Destructor Documentation

◆ MixedPrecisionConjugateGradient()

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>
MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::MixedPrecisionConjugateGradient ( RealD tol,
Integer maxinnerit,
Integer maxouterit,
GridBase * _sp_grid,
LinearOperatorBase< FieldF > & _Linop_f,
LinearOperatorBase< FieldD > & _Linop_d )
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 MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::useGuesser ( LinearFunction< FieldF > & g)
inline

Definition at line 67 of file ConjugateGradientMixedPrec.h.

References guesser.

◆ operator()()

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

Definition at line 40 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 41 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 42 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 43 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 44 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 45 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 46 of file ConjugateGradientMixedPrec.h.

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

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

Definition at line 47 of file ConjugateGradientMixedPrec.h.

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

◆ TotalInnerIterations

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 MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::TotalInnerIterations

Definition at line 49 of file ConjugateGradientMixedPrec.h.

Referenced by operator()().

◆ TotalOuterIterations

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 MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::TotalOuterIterations

Definition at line 50 of file ConjugateGradientMixedPrec.h.

Referenced by operator()().

◆ TotalFinalStepIterations

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 MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::TotalFinalStepIterations

Definition at line 51 of file ConjugateGradientMixedPrec.h.

Referenced by operator()().

◆ TrueResidual

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 MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::TrueResidual

◆ 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>* MixedPrecisionConjugateGradient< FieldD, FieldF, type, type >::guesser

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