CHROMA
Public Types | Public Member Functions | Protected Member Functions | List of all members

General Wilson-Dirac dslash over arrays. More...

#include <lwldslash_base_array_w.h>

Inheritance diagram for Chroma::WilsonDslashBaseArray:
Chroma::DslashLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T > Chroma::PABWilsonDslashArray Chroma::QDPWilsonDslashArray Chroma::QDPWilsonDslashArrayOpt Chroma::SSEWilsonDslashArray

Public Types

typedef LatticeFermion T
 
typedef multi1d< LatticeColorMatrix > P
 
typedef multi1d< LatticeColorMatrix > Q
 

Public Member Functions

virtual ~WilsonDslashBaseArray ()
 No real need for cleanup here. More...
 
const Subset & subset () const
 Subset is all here. More...
 
virtual void apply (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const =0
 
virtual void apply (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const =0
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Take deriv of D. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const
 Take deriv of D. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int cb) const
 Take deriv of D. More...
 
unsigned long nFlops () const
 Return flops performed by the operator() More...
 
virtual const FermBC< T, P, Q > & getFermBC () const =0
 Return the fermion BC object for this linear operator. More...
 
- Public Member Functions inherited from Chroma::DslashLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~DslashLinearOperatorArray ()
 Virtual destructor to help in cleanup. More...
 
virtual int size () const=0
 Expected length of array index. More...
 
virtual void operator() (multi1d< LatticeFermion > &d, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply operator on both checkerboards (entire lattice) 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...
 

Protected Member Functions

virtual const multi1d< Real > & getCoeffs () const =0
 Get the anisotropy parameters. More...
 

Detailed Description

General Wilson-Dirac dslash over arrays.

DSLASH

This routine is specific to Wilson fermions!

Description:

This routine applies the operator D' to Psi, putting the result in Chi.

      Nd-1
      ---
      \

chi(x) := > U (x) (1 - isign gamma ) psi(x+mu)

/ mu mu

mu=0

  Nd-1
  ---
  \    +
 +    >  U  (x-mu) (1 + isign gamma  ) psi(x-mu)
  /    mu                    mu
  ---
  mu=0

Definition at line 45 of file lwldslash_base_array_w.h.

Member Typedef Documentation

◆ P

typedef multi1d<LatticeColorMatrix> Chroma::WilsonDslashBaseArray::P

Definition at line 51 of file lwldslash_base_array_w.h.

◆ Q

typedef multi1d<LatticeColorMatrix> Chroma::WilsonDslashBaseArray::Q

Definition at line 52 of file lwldslash_base_array_w.h.

◆ T

typedef LatticeFermion Chroma::WilsonDslashBaseArray::T

Definition at line 50 of file lwldslash_base_array_w.h.

Constructor & Destructor Documentation

◆ ~WilsonDslashBaseArray()

virtual Chroma::WilsonDslashBaseArray::~WilsonDslashBaseArray ( )
inlinevirtual

No real need for cleanup here.

Definition at line 55 of file lwldslash_base_array_w.h.

Member Function Documentation

◆ apply() [1/2]

virtual void Chroma::WilsonDslashBaseArray::apply ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign,
int  cb 
) const
pure virtual

Apply a dslash

Parameters
chiresult (Write)
psisource (Read)
isignD'^dag or D' ( MINUS | PLUS ) resp. (Read)
cbCheckerboard of OUTPUT std::vector (Read)
Returns
The output of applying dslash on psi

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

◆ apply() [2/2]

virtual void Chroma::WilsonDslashBaseArray::apply ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
int  cb 
) const
pure virtual

Apply a std::vector dslash

Parameters
chiresult (Write)
psisource (Read)
isignD'^dag or D' ( MINUS | PLUS ) resp. (Read)
cbCheckerboard of OUTPUT std::vector (Read)
Returns
The output of applying dslash on psi

Implements Chroma::DslashLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

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

◆ deriv() [1/3]

void Chroma::WilsonDslashBaseArray::deriv ( multi1d< LatticeColorMatrix > &  ds_u,
const LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign,
int  cb 
) const
virtual

Take deriv of D.

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

Definition at line 67 of file lwldslash_base_array_w.cc.

References Chroma::cb, Chroma::chi(), Chroma::END_CODE(), FORWARD, getCoeffs(), getFermBC(), Chroma::isign, Chroma::MINUS, mu, Nd, Chroma::PLUS, Chroma::psi, Chroma::QDP_error_exit(), Chroma::START_CODE(), and Chroma::zero.

◆ deriv() [2/3]

void Chroma::WilsonDslashBaseArray::deriv ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
virtual

◆ deriv() [3/3]

void Chroma::WilsonDslashBaseArray::deriv ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
int  cb 
) const
virtual

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$
Computes $\chi^\dag * \dot(D} * \psi$

Reimplemented from Chroma::DslashLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 42 of file lwldslash_base_array_w.cc.

References Chroma::cb, Chroma::chi(), deriv(), Chroma::END_CODE(), Chroma::isign, n, Nd, Chroma::psi, Chroma::START_CODE(), and Chroma::zero.

◆ getCoeffs()

virtual const multi1d<Real>& Chroma::WilsonDslashBaseArray::getCoeffs ( ) const
protectedpure virtual

◆ getFermBC()

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

◆ nFlops()

unsigned long Chroma::WilsonDslashBaseArray::nFlops ( void  ) const
virtual

◆ subset()

const Subset& Chroma::WilsonDslashBaseArray::subset ( void  ) const
inlinevirtual

Subset is all here.

Implements Chroma::LinearOperatorArray< T >.

Definition at line 58 of file lwldslash_base_array_w.h.


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