CHROMA
Public Member Functions | List of all members
Chroma::DslashLinearOperatorArray< T, P, Q > Class Template Referenceabstract

Dslash-like Linear Operator for arrays. More...

#include <linearop.h>

Inheritance diagram for Chroma::DslashLinearOperatorArray< T, P, Q >:
Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T >

Public Member Functions

virtual ~DslashLinearOperatorArray ()
 Virtual destructor to help in cleanup. More...
 
virtual const FermBC< T, P, Q > & getFermBC () const =0
 Return the fermion BC object for this linear operator. More...
 
virtual int size () const =0
 Expected length of array index. More...
 
virtual void operator() (multi1d< T > &d, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply operator on both checkerboards (entire lattice) More...
 
virtual void apply (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const =0
 Apply checkerboarded linear operator. More...
 
virtual void deriv (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Take deriv of D. More...
 
virtual void deriv (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const
 Take deriv of D. More...
 
- Public Member Functions inherited from Chroma::DiffLinearOperatorArray< T, P, Q >
virtual ~DiffLinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, const Real &epsilon) const
 Apply the derivative of the operator onto a source std::vector to some precision. More...
 
- Public Member Functions inherited from Chroma::LinearOperatorArray< T >
virtual ~LinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 
virtual const Subset & subset () const =0
 Return the subset on which the operator acts. More...
 
virtual unsigned long nFlops () const
 

Detailed Description

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

Dslash-like Linear Operator for arrays.

These are concessions/optimizations for red-black checkboarding

Definition at line 314 of file linearop.h.

Constructor & Destructor Documentation

◆ ~DslashLinearOperatorArray()

template<typename T , typename P , typename Q >
virtual Chroma::DslashLinearOperatorArray< T, P, Q >::~DslashLinearOperatorArray ( )
inlinevirtual

Virtual destructor to help in cleanup.

Definition at line 318 of file linearop.h.

Member Function Documentation

◆ apply()

template<typename T , typename P , typename Q >
virtual void Chroma::DslashLinearOperatorArray< T, P, Q >::apply ( multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign,
int  cb 
) const
pure virtual

Apply checkerboarded linear operator.

To avoid confusion (especially of the compilers!), call the checkerboarded apply instead of operator()

Implemented in Chroma::WilsonDslashBaseArray, Chroma::QDPWilsonDslashArray, Chroma::SSEWilsonDslashArray, Chroma::QDPWilsonDslashArrayOpt, and Chroma::PABWilsonDslashArray.

◆ deriv() [1/2]

template<typename T , typename P , typename Q >
virtual void Chroma::DslashLinearOperatorArray< T, P, Q >::deriv ( P ds_u,
const multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Take deriv of D.

Parameters
chileft std::vector (Read)
psiright std::vector (Read)
isignD'^dag or D' ( MINUS | PLUS ) resp. (Read)
Returns
Computes $chi^\dag * \dot(D} * psi$

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

Reimplemented in Chroma::WilsonDslashBaseArray.

Definition at line 349 of file linearop.h.

◆ deriv() [2/2]

template<typename T , typename P , typename Q >
virtual void Chroma::DslashLinearOperatorArray< T, P, Q >::deriv ( P ds_u,
const multi1d< T > &  chi,
const multi1d< T > &  psi,
enum PlusMinus  isign,
int  cb 
) const
inlinevirtual

Take deriv of D.

Parameters
chileft std::vector on cb (Read)
psiright std::vector on 1-cb (Read)
isignD'^dag or D' ( MINUS | PLUS ) resp. (Read)
cbCheckerboard of chi std::vector (Read)
Returns
Computes $chi^\dag * \dot(D} * psi$

Reimplemented in Chroma::WilsonDslashBaseArray.

Definition at line 365 of file linearop.h.

◆ getFermBC()

template<typename T , typename P , typename Q >
virtual const FermBC<T,P,Q>& Chroma::DslashLinearOperatorArray< T, P, Q >::getFermBC ( ) const
pure virtual

◆ operator()()

template<typename T , typename P , typename Q >
virtual void Chroma::DslashLinearOperatorArray< T, P, Q >::operator() ( multi1d< T > &  d,
const multi1d< T > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply operator on both checkerboards (entire lattice)

Implements Chroma::LinearOperatorArray< T >.

Definition at line 327 of file linearop.h.

References Chroma::d, Chroma::isign, and psi.

◆ size()

template<typename T , typename P , typename Q >
virtual int Chroma::DslashLinearOperatorArray< T, P, Q >::size ( ) const
pure virtual

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