CHROMA
|
4D Even Odd preconditioned domain-wall Dirac operator More...
#include <eoprec_dwf_linop_array_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
EvenOddPrecDWLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &m_q, int N5_, const AnisoParam_t &aniso_) | |
Full constructor. More... | |
~EvenOddPrecDWLinOpArray () | |
Destructor is automatic. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
int | size () const |
Length of DW flavor index/space. More... | |
void | evenEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the even-even block onto a source std::vector. More... | |
void | evenEvenInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the inverse of the even-even block onto a source std::vector. More... | |
void | evenOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the even-odd block onto a source std::vector. More... | |
void | oddEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
void | oddOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
void | oddOddInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the inverse of the odd-odd block onto a source std::vector. More... | |
void | Dminus (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int s5) const |
Apply the Dminus operator on a lattice fermion. More... | |
void | derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the even-even block onto a source std::vector. More... | |
void | derivOddOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
void | derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the even-odd block onto a source std::vector. More... | |
void | derivOddEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
unsigned long | evenEvenNFlops (void) const |
Return flops performed by the evenEvenLinOp. More... | |
unsigned long | oddOddNFlops (void) const |
Return flops performed by the oddOddLinOp. More... | |
unsigned long | evenOddNFlops (void) const |
Return flops performed by the evenOddLinOp. More... | |
unsigned long | oddEvenNFlops (void) const |
Return flops performed by the oddEvenLinOp. More... | |
unsigned long | evenEvenInvNFlops (void) const |
Return flops performed by the evenEvenInvLinOp. More... | |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
Public Member Functions inherited from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~EvenOddPrecConstDetLinearOperatorArray () |
Virtual destructor to help with cleanup;. More... | |
const Subset & | subset () const |
Only defined on the odd lattice. More... | |
virtual void | deriv (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
Public Member Functions inherited from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q > | |
virtual | ~EvenOddPrecLinearOperatorArray () |
Virtual destructor to help with cleanup;. More... | |
virtual void | operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
virtual void | unprecLinOp (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Apply the UNPRECONDITIONED operator onto a source std::vector. More... | |
virtual void | derivUnprecLinOp (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
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 | |
EvenOddPrecDWLinOpArray () | |
Partial constructor. More... | |
void | applyDiag (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const |
Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator. More... | |
void | applyDiagInv (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const |
Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator. More... | |
void | applyOffDiag (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const |
Apply the off diagonal block. More... | |
void | applyDerivOffDiag (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const |
Apply the even-odd (odd-even) coupling piece of the NEF operator. More... | |
unsigned long | diagNFlops (void) const |
Return flops performed by the diagonal part. More... | |
unsigned long | offDiagNFlops (void) const |
Return flops performed by the diagonal part. More... | |
unsigned long | diagInvNFlops (void) const |
Return flops performed by the diagonal part. More... | |
Private Attributes | |
Real | WilsonMass |
Real | m_q |
Real | a5 |
int | N5 |
Real | InvTwoKappa |
Real | TwoKappa |
Real | Kappa |
Real | invDfactor |
WilsonDslashArray | D |
4D Even Odd preconditioned domain-wall Dirac operator
This routine is specific to Wilson fermions!
Definition at line 22 of file eoprec_dwf_linop_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecDWLinOpArray::P |
Definition at line 28 of file eoprec_dwf_linop_array_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecDWLinOpArray::Q |
Definition at line 29 of file eoprec_dwf_linop_array_w.h.
typedef LatticeFermion Chroma::EvenOddPrecDWLinOpArray::T |
Definition at line 27 of file eoprec_dwf_linop_array_w.h.
|
inline |
Destructor is automatic.
Definition at line 37 of file eoprec_dwf_linop_array_w.h.
|
inlineprotected |
Partial constructor.
Definition at line 176 of file eoprec_dwf_linop_array_w.h.
|
protected |
Apply the even-odd (odd-even) coupling piece of the NEF operator.
Apply the the even-odd block onto a source std::vector.
ds_u | conjugate momenta (Read) |
psi | left pseudofermion field (Read) |
psi | right pseudofermion field (Read) |
isign | Flag ( PLUS | MINUS ) (Read) |
cb | checkerboard ( 0 | 1 ) (Read) |
Definition at line 346 of file eoprec_dwf_linop_array_w.cc.
References Chroma::cb, chi, END_CODE, Chroma::isign, mu, Nd, psi, and START_CODE.
Referenced by derivEvenOddLinOp(), and derivOddEvenLinOp().
|
protected |
Apply the off diagonal block.
chi | result (Modify) |
psi | source (Read) |
isign | Flag ( PLUS | MINUS ) (Read) |
cb | checkerboard ( 0 | 1 ) (Read) |
Definition at line 310 of file eoprec_dwf_linop_array_w.cc.
References Chroma::cb, chi, Chroma::isign, N5, psi, and s.
Referenced by evenOddLinOp(), and oddEvenLinOp().
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 106 of file eoprec_dwf_linop_array_w.h.
References Nd, and Chroma::zero.
|
inlinevirtual |
Apply the the even-odd block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 124 of file eoprec_dwf_linop_array_w.h.
References applyDerivOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Apply the the odd-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 132 of file eoprec_dwf_linop_array_w.h.
References applyDerivOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 115 of file eoprec_dwf_linop_array_w.h.
References Nd, and Chroma::zero.
|
inlineprotected |
Return flops performed by the diagonal part.
Definition at line 243 of file eoprec_dwf_linop_array_w.h.
References N5.
Referenced by evenEvenInvNFlops().
|
inlineprotected |
Return flops performed by the diagonal part.
Definition at line 231 of file eoprec_dwf_linop_array_w.h.
References N5.
Referenced by evenEvenNFlops(), and oddOddNFlops().
|
virtual |
Apply the Dminus operator on a lattice fermion.
Apply the Dminus operator on a lattice fermion. See my notes ;-)
Definition at line 335 of file eoprec_dwf_linop_array_w.cc.
|
inlinevirtual |
Apply the inverse of the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 56 of file eoprec_dwf_linop_array_w.h.
References applyDiagInv(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Return flops performed by the evenEvenInvLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 161 of file eoprec_dwf_linop_array_w.h.
References diagInvNFlops().
Referenced by nFlops().
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 47 of file eoprec_dwf_linop_array_w.h.
References applyDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Return flops performed by the evenEvenLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 141 of file eoprec_dwf_linop_array_w.h.
References diagNFlops().
|
inlinevirtual |
Apply the the even-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 64 of file eoprec_dwf_linop_array_w.h.
References applyOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Return flops performed by the evenOddLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 151 of file eoprec_dwf_linop_array_w.h.
References offDiagNFlops().
Referenced by nFlops().
Return the fermion BC object for this linear operator.
Definition at line 40 of file eoprec_dwf_linop_array_w.h.
References D, and Chroma::QDPWilsonDslashArrayOpt::getFermBC().
|
inlinevirtual |
Return flops performed by the operator()
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 166 of file eoprec_dwf_linop_array_w.h.
References evenEvenInvNFlops(), evenOddNFlops(), N5, oddEvenNFlops(), and oddOddNFlops().
|
inlinevirtual |
Apply the the odd-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 72 of file eoprec_dwf_linop_array_w.h.
References applyOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Return flops performed by the oddEvenLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 156 of file eoprec_dwf_linop_array_w.h.
References offDiagNFlops().
Referenced by nFlops().
|
inline |
Apply the inverse of the odd-odd block onto a source std::vector.
Definition at line 90 of file eoprec_dwf_linop_array_w.h.
References applyDiagInv(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 81 of file eoprec_dwf_linop_array_w.h.
References applyDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.
|
inlinevirtual |
Return flops performed by the oddOddLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 146 of file eoprec_dwf_linop_array_w.h.
References diagNFlops().
Referenced by nFlops().
|
inlineprotected |
Return flops performed by the diagonal part.
Definition at line 237 of file eoprec_dwf_linop_array_w.h.
References N5.
Referenced by evenOddNFlops(), and oddEvenNFlops().
|
inlinevirtual |
Length of DW flavor index/space.
Definition at line 43 of file eoprec_dwf_linop_array_w.h.
References N5.
|
private |
Definition at line 251 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 259 of file eoprec_dwf_linop_array_w.h.
Referenced by getFermBC().
|
private |
Definition at line 257 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 254 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 256 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 250 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 252 of file eoprec_dwf_linop_array_w.h.
Referenced by diagInvNFlops(), diagNFlops(), nFlops(), offDiagNFlops(), and size().
|
private |
Definition at line 255 of file eoprec_dwf_linop_array_w.h.
|
private |
Definition at line 249 of file eoprec_dwf_linop_array_w.h.