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

The "asq" or "asqtad" dslash operator D'. More...

#include <asq_dsl_s.h>

Inheritance diagram for Chroma::QDPStaggeredDslash:
Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::DiffLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::LinearOperator< T >

Public Types

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

Public Member Functions

 QDPStaggeredDslash ()
 Empty constructor. Must use create later. More...
 
 QDPStaggeredDslash (Handle< AsqtadConnectStateBase > state_)
 Full constructor. More...
 
void create (Handle< AsqtadConnectStateBase > state_)
 Creation routine
More...
 
 ~QDPStaggeredDslash ()
 No real need for cleanup here. More...
 
void apply (LatticeStaggeredFermion &chi, const LatticeStaggeredFermion &psi, enum PlusMinus isign, int cb) const
 
const Subset & subset () const
 Subset is all here. More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
- Public Member Functions inherited from Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~DslashLinearOperator ()
 Virtual destructor to help in cleanup. More...
 
virtual void operator() (LatticeStaggeredFermion &d, const LatticeStaggeredFermion &psi, enum PlusMinus isign) const
 Apply operator on both checkerboards (entire lattice) More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeStaggeredFermion &chi, const LatticeStaggeredFermion &psi, enum PlusMinus isign) const
 Take deriv of D. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeStaggeredFermion &chi, const LatticeStaggeredFermion &psi, enum PlusMinus isign, int cb) const
 Take deriv of D. More...
 
virtual void derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeStaggeredFermion > &chi, const multi1d< LatticeStaggeredFermion > &psi, enum PlusMinus isign) const
 Return the force for multiple poles. More...
 
virtual void derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeStaggeredFermion > &chi, const multi1d< LatticeStaggeredFermion > &psi, enum PlusMinus isign, int cb) const
 
- Public Member Functions inherited from Chroma::DiffLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~DiffLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeStaggeredFermion &chi, const LatticeStaggeredFermion &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) const =0
 Apply the operator onto a source std::vector. 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< AsqtadConnectStateBasestate
 

Detailed Description

The "asq" or "asqtad" dslash operator D'.

This routine is specific to staggered fermions!

Description:

This routine applies the "asq" or "asqtad" operator D' to Psi, putting the result in Chi.

      Nd-1
      ---
      \                     F                     

chi(x) := > isign eta (x) [U (x) psi(x+mu)

/ mu mu

mu=0

  + c_3 U  (x) U  (x+mu) U  (x+2mu) psi(x+3mu) ]
              mu     mu        mu

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

              +      +          +
  + c_3 U  (x) U  (x-2mu) U  (x-3mu) psi(x-3mu) ]
              mu     mu         mu

Note the KS phase factors are already included in the U's!

Definition at line 52 of file asq_dsl_s.h.

Member Typedef Documentation

◆ P

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

Definition at line 58 of file asq_dsl_s.h.

◆ Q

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

Definition at line 59 of file asq_dsl_s.h.

◆ T

typedef LatticeStaggeredFermion Chroma::QDPStaggeredDslash::T

Definition at line 57 of file asq_dsl_s.h.

Constructor & Destructor Documentation

◆ QDPStaggeredDslash() [1/2]

Chroma::QDPStaggeredDslash::QDPStaggeredDslash ( )
inline

Empty constructor. Must use create later.

Definition at line 62 of file asq_dsl_s.h.

◆ QDPStaggeredDslash() [2/2]

Chroma::QDPStaggeredDslash::QDPStaggeredDslash ( Handle< AsqtadConnectStateBase state_)
inline

Full constructor.

Definition at line 65 of file asq_dsl_s.h.

References create().

◆ ~QDPStaggeredDslash()

Chroma::QDPStaggeredDslash::~QDPStaggeredDslash ( )
inline

No real need for cleanup here.

Definition at line 72 of file asq_dsl_s.h.

Member Function Documentation

◆ apply()

void Chroma::QDPStaggeredDslash::apply ( LatticeStaggeredFermion &  chi,
const LatticeStaggeredFermion &  psi,
enum PlusMinus  isign,
int  cb 
) const
virtual

Arguments:

Parameters
u_fatFat7 links (Read)
u_tripletriple links (Read)
psiPseudofermion field - Source (Read)
isignD' or D'^+ ( +1 | -1 ) respectively (Read)
cbCheckerboard of OUTPUT std::vector (Read)

Implements Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 74 of file asq_dsl_s.cc.

References BACKWARD, Chroma::cb, Chroma::chi(), Chroma::END_CODE(), FORWARD, Chroma::isign, Chroma::MINUS, mu, Nd, Chroma::psi, Chroma::START_CODE(), state, tmp_1, tmp_2, and Chroma::zero.

Referenced by Chroma::AsqtadLinOp::evenOddLinOp(), and Chroma::AsqtadLinOp::oddEvenLinOp().

◆ create()

void Chroma::QDPStaggeredDslash::create ( Handle< AsqtadConnectStateBase state_)

Creation routine

Creation routine.

This routine is specific to staggered fermions!

Description:

This routine applies the "asq" or "asqtad" operator D' to Psi, putting the result in Chi.

      Nd-1
      ---
      \                     F                     

chi(x) := > isign eta (x) [U (x) psi(x+mu)

/ mu mu

mu=0

  + c_3 U  (x) U  (x+mu) U  (x+2mu) psi(x+3mu) ]
              mu     mu        mu

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

              +      +          +
  + c_3 U  (x) U  (x-2mu) U  (x-3mu) psi(x-3mu) ]
              mu     mu         mu

Note the KS phase factors are already included in the U's!

Arguments:

U_fat 'fat link' Gauge field (Read) U_triple 'triple-links' UUU (Read) Psi Pseudofermion field (Read) Chi Pseudofermion field (Write)

  • ISign D' or D' ( +1 | -1 ) respectively (Read) CB Checkerboard of OUTPUT std::vector (Read)

NOTE: the coefficient c_3 is included in u_triple!

recoded by mcneile

Definition at line 59 of file asq_dsl_s.cc.

References Chroma::END_CODE(), Chroma::START_CODE(), and state.

Referenced by Chroma::AsqtadLinOp::create(), and QDPStaggeredDslash().

◆ getFermBC()

const FermBC<T,P,Q>& Chroma::QDPStaggeredDslash::getFermBC ( ) const
inlinevirtual

Return the fermion BC object for this linear operator.

Implements Chroma::DslashLinearOperator< LatticeStaggeredFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 89 of file asq_dsl_s.h.

References state.

Referenced by Chroma::AsqtadLinOp::getFermBC(), and Chroma::AsqtadMdagM::getFermBC().

◆ subset()

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

Subset is all here.

Implements Chroma::LinearOperator< T >.

Definition at line 86 of file asq_dsl_s.h.

Member Data Documentation

◆ state

Handle<AsqtadConnectStateBase> Chroma::QDPStaggeredDslash::state
private

Definition at line 92 of file asq_dsl_s.h.

Referenced by apply(), create(), and getFermBC().


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