CHROMA
Public Member Functions | Private Attributes | List of all members

Polynomial preconditioner. More...

#include <polprec_op.h>

Inheritance diagram for Chroma::PolyPrec< T, P, Q >:
Chroma::DiffLinearOperator< T, P, Q > Chroma::LinearOperator< T >

Public Member Functions

 PolyPrec (Handle< DiffLinearOperator< T, P, Q > > m_, Handle< DiffLinearOperator< T, P, Q > > p_)
 
 ~PolyPrec ()
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
const Subset & subset () const
 Subset comes from underlying operator. More...
 
void g5M (T &out, const T &in, enum PlusMinus isign) const
 
void operator() (T &chi, const T &psi, PlusMinus isign) const
 The operator is Q P(Q^2) Q. More...
 
void deriv (P &ds_u, const T &chi, const T &psi, PlusMinus isign) const
 Apply the derivative of the linop. More...
 
- Public Member Functions inherited from Chroma::DiffLinearOperator< T, P, Q >
virtual ~DiffLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, const Real &epsilon) const
 Apply the derivative of the operator onto a source std::vector to some precision. More...
 
virtual void derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Return the force for multiple poles. More...
 
- Public Member Functions inherited from Chroma::LinearOperator< T >
virtual ~LinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 
virtual unsigned long nFlops () const
 

Private Attributes

Handle< DiffLinearOperator< T, P, Q > > M
 
Handle< DiffLinearOperator< T, P, Q > > Pol
 

Detailed Description

template<typename T, typename P, typename Q>
class Chroma::PolyPrec< T, P, Q >

Polynomial preconditioner.

Definition at line 24 of file polprec_op.h.

Constructor & Destructor Documentation

◆ PolyPrec()

template<typename T , typename P , typename Q >
Chroma::PolyPrec< T, P, Q >::PolyPrec ( Handle< DiffLinearOperator< T, P, Q > >  m_,
Handle< DiffLinearOperator< T, P, Q > >  p_ 
)
inline

Definition at line 32 of file polprec_op.h.

◆ ~PolyPrec()

template<typename T , typename P , typename Q >
Chroma::PolyPrec< T, P, Q >::~PolyPrec ( )
inline

Definition at line 36 of file polprec_op.h.

Member Function Documentation

◆ deriv()

template<typename T , typename P , typename Q >
void Chroma::PolyPrec< T, P, Q >::deriv ( P ds_u,
const T chi,
const T psi,
PlusMinus  isign 
) const
inlinevirtual

Apply the derivative of the linop.

Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.

Definition at line 76 of file polprec_op.h.

References chi, Chroma::G5, Chroma::MINUS, Nd, Chroma::PLUS, psi, and Chroma::zero.

◆ g5M()

template<typename T , typename P , typename Q >
void Chroma::PolyPrec< T, P, Q >::g5M ( T out,
const T in,
enum PlusMinus  isign 
) const
inline

Definition at line 46 of file polprec_op.h.

References Chroma::G5, Chroma::in, Chroma::out, Chroma::PLUS, and tmp.

◆ getFermBC()

template<typename T , typename P , typename Q >
const FermBC<T,P,Q>& Chroma::PolyPrec< T, P, Q >::getFermBC ( ) const
inlinevirtual

Return the fermion BC object for this linear operator.

Implements Chroma::DiffLinearOperator< T, P, Q >.

Definition at line 39 of file polprec_op.h.

◆ operator()()

template<typename T , typename P , typename Q >
void Chroma::PolyPrec< T, P, Q >::operator() ( T chi,
const T psi,
PlusMinus  isign 
) const
inlinevirtual

The operator is Q P(Q^2) Q.

Implements Chroma::LinearOperator< T >.

Definition at line 64 of file polprec_op.h.

References chi, Chroma::PLUS, psi, and tmp.

◆ subset()

template<typename T , typename P , typename Q >
const Subset& Chroma::PolyPrec< T, P, Q >::subset ( void  ) const
inlinevirtual

Subset comes from underlying operator.

Implements Chroma::LinearOperator< T >.

Definition at line 44 of file polprec_op.h.

Member Data Documentation

◆ M

template<typename T , typename P , typename Q >
Handle< DiffLinearOperator<T,P,Q> > Chroma::PolyPrec< T, P, Q >::M
private

Definition at line 27 of file polprec_op.h.

◆ Pol

template<typename T , typename P , typename Q >
Handle< DiffLinearOperator<T,P,Q> > Chroma::PolyPrec< T, P, Q >::Pol
private

Definition at line 28 of file polprec_op.h.


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