|
CHROMA
|
The "asq" or "asqtad" dslash operator D'. More...
#include <asq_dsl_s.h>
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< AsqtadConnectStateBase > | state |
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=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.
| typedef multi1d<LatticeColorMatrix> Chroma::QDPStaggeredDslash::P |
Definition at line 58 of file asq_dsl_s.h.
| typedef multi1d<LatticeColorMatrix> Chroma::QDPStaggeredDslash::Q |
Definition at line 59 of file asq_dsl_s.h.
| typedef LatticeStaggeredFermion Chroma::QDPStaggeredDslash::T |
Definition at line 57 of file asq_dsl_s.h.
|
inline |
Empty constructor. Must use create later.
Definition at line 62 of file asq_dsl_s.h.
|
inline |
|
inline |
No real need for cleanup here.
Definition at line 72 of file asq_dsl_s.h.
|
virtual |
Arguments:
| u_fat | Fat7 links (Read) |
| u_triple | triple links (Read) |
| psi | Pseudofermion field - Source (Read) |
| isign | D' or D'^+ ( +1 | -1 ) respectively (Read) |
| cb | Checkerboard of OUTPUT std::vector (Read) |
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().
| 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=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)
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().
Return the fermion BC object for this linear operator.
Definition at line 89 of file asq_dsl_s.h.
References state.
Referenced by Chroma::AsqtadLinOp::getFermBC(), and Chroma::AsqtadMdagM::getFermBC().
|
inlinevirtual |
Subset is all here.
Implements Chroma::LinearOperator< T >.
Definition at line 86 of file asq_dsl_s.h.
|
private |
Definition at line 92 of file asq_dsl_s.h.
Referenced by apply(), create(), and getFermBC().