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

Dslash-like Linear Operator. More...

#include <linearop.h>

Inheritance diagram for Chroma::DslashLinearOperator< T, P, Q >:
Chroma::DiffLinearOperator< T, P, Q > Chroma::LinearOperator< T > Chroma::CloverTermBase< LatticeFermionD, LatticeColorMatrixD > Chroma::CloverTermBase< LatticeFermion, LatticeColorMatrix > Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > > Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > > Chroma::WilsonDslashBase< T, P, Q > Chroma::SSEDCloverTerm Chroma::BAGELCloverTerm Chroma::PABWilsonDslash Chroma::SSEWilsonDslash Chroma::CPPWilsonDslashF Chroma::CPPWilsonDslashD Chroma::LLVMWilsonDslashT< T, P, Q > Chroma::QDPWilsonDslashOptT< T, P, Q > Chroma::QDPWilsonDslashT< T, P, Q >

Public Member Functions

virtual ~DslashLinearOperator ()
 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 void operator() (T &d, const T &psi, enum PlusMinus isign) const
 Apply operator on both checkerboards (entire lattice) More...
 
virtual void apply (T &chi, const T &psi, enum PlusMinus isign, int cb) const =0
 Apply checkerboarded linear operator. More...
 
virtual void deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
 Take deriv of D. More...
 
virtual void deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, int cb) const
 Take deriv of D. 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...
 
virtual void derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const
 
- 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...
 
- 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 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::DslashLinearOperator< T, P, Q >

Dslash-like Linear Operator.

These are concessions/optimizations for red-black checkboarding

Definition at line 220 of file linearop.h.

Constructor & Destructor Documentation

◆ ~DslashLinearOperator()

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

Virtual destructor to help in cleanup.

Definition at line 224 of file linearop.h.

Member Function Documentation

◆ apply()

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

◆ deriv() [1/2]

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

◆ deriv() [2/2]

template<typename T , typename P , typename Q >
virtual void Chroma::DslashLinearOperator< T, P, Q >::deriv ( P ds_u,
const T chi,
const 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::WilsonDslashBase< T, P, Q >, Chroma::CloverTermBase< T, U >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, and Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 268 of file linearop.h.

◆ derivMultipole() [1/2]

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

Return the force for multiple poles.

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

Reimplemented in Chroma::CloverTermBase< T, U >.

Definition at line 275 of file linearop.h.

References chi, deriv(), i, Chroma::isign, Nd, psi, and Chroma::zero.

◆ derivMultipole() [2/2]

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

Reimplemented in Chroma::CloverTermBase< T, U >.

Definition at line 290 of file linearop.h.

References Chroma::cb, chi, deriv(), i, Chroma::isign, Nd, psi, and Chroma::zero.

◆ getFermBC()

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

◆ operator()()

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

Apply operator on both checkerboards (entire lattice)

Implements Chroma::LinearOperator< T >.

Definition at line 230 of file linearop.h.

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


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