CHROMA
|
Even-odd preconditioned Wilson-Dirac operator. More...
#include <eoprec_wilson_linop_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
EvenOddPrecWilsonLinOp () | |
Partial constructor. More... | |
EvenOddPrecWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_) | |
Full constructor. More... | |
EvenOddPrecWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso) | |
Full constructor with Anisotropy. More... | |
EvenOddPrecWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const multi1d< Real > &coeffs_) | |
Full constructor with array of coefficients. More... | |
~EvenOddPrecWilsonLinOp () | |
Destructor is automatic. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
void | create (Handle< FermState< T, P, Q > > fs, const Real &Mass_) |
Creation routine. More... | |
void | create (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso) |
Creation routine with Anisotropy. More... | |
void | create (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const multi1d< Real > &coeffs_) |
Creation routine with general coefficients. More... | |
void | evenEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the even-even block onto a source std::vector. More... | |
void | evenEvenInvLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the inverse of the even-even block onto a source std::vector. More... | |
void | evenOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the even-odd block onto a source std::vector. More... | |
void | oddEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
void | oddOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
void | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Override inherited one with a few more funkies. More... | |
void | derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the even-even block onto a source std::vector. More... | |
void | derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const 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 LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
void | derivOddOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
EvenOddPrecWilsonLinOp () | |
Partial constructor. More... | |
EvenOddPrecWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_) | |
Full constructor. More... | |
EvenOddPrecWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso) | |
Full constructor with Anisotropy. More... | |
~EvenOddPrecWilsonLinOp () | |
Destructor is automatic. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
void | create (Handle< FermState< T, P, Q > > fs, const Real &Mass_) |
Creation routine. More... | |
void | create (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso) |
Creation routine with Anisotropy. More... | |
void | evenEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the even-even block onto a source std::vector. More... | |
void | evenEvenInvLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the inverse of the even-even block onto a source std::vector. More... | |
void | evenOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the even-odd block onto a source std::vector. More... | |
void | oddEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
void | oddOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
void | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Override inherited one with a few more funkies. More... | |
void | derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the even-even block onto a source std::vector. More... | |
void | derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const 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 LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-even block onto a source std::vector. More... | |
void | derivOddOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the the odd-odd block onto a source std::vector. More... | |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
Public Member Functions inherited from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~EvenOddPrecConstDetLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual void | deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the derivative of the operator onto a source std::vector. More... | |
virtual void | derivEvenEvenLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
virtual void | derivEvenOddLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
virtual void | derivOddEvenLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
virtual void | derivOddOddLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
virtual void | derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Apply the derivative of the operator onto a source std::vector. More... | |
Public Member Functions inherited from Chroma::EvenOddPrecLinearOperator< T, P, Q > | |
virtual | ~EvenOddPrecLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
const Subset & | subset () const |
Only defined on the odd lattice. More... | |
virtual void | unprecLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
Apply the UNPRECONDITIONED operator onto a source std::vector. More... | |
virtual void | derivUnprecLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
virtual unsigned long | evenEvenNFlops () const |
Return flops performed by the evenEvenLinOp. More... | |
virtual unsigned long | evenOddNFlops () const |
Return flops performed by the evenOddLinOp. More... | |
virtual unsigned long | oddEvenNFlops () const |
Return flops performed by the oddEvenLinOp. More... | |
virtual unsigned long | oddOddNFlops () const |
Return flops performed by the oddOddLinOp. More... | |
virtual unsigned long | evenEvenInvNFlops () const |
Return flops performed by the evenEvenInvLinOp. More... | |
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... | |
Private Attributes | |
Real | Mass |
multi1d< Real > | coeffs |
Real | fact |
Real | invfact |
WilsonDslash | D |
Even-odd preconditioned Wilson-Dirac operator.
This routine is specific to Wilson fermions!
The kernel for Wilson fermions is
M = (d+M) - (1/2) D'
Definition at line 27 of file eoprec_wilson_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecWilsonLinOp::P |
Definition at line 33 of file eoprec_wilson_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecWilsonLinOp::P |
Definition at line 33 of file tprec_wilson_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecWilsonLinOp::Q |
Definition at line 34 of file eoprec_wilson_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecWilsonLinOp::Q |
Definition at line 34 of file tprec_wilson_linop_w.h.
typedef LatticeFermion Chroma::EvenOddPrecWilsonLinOp::T |
Definition at line 32 of file eoprec_wilson_linop_w.h.
typedef LatticeFermion Chroma::EvenOddPrecWilsonLinOp::T |
Definition at line 32 of file tprec_wilson_linop_w.h.
|
inline |
Partial constructor.
Definition at line 37 of file eoprec_wilson_linop_w.h.
|
inline |
Full constructor with Anisotropy.
Definition at line 45 of file eoprec_wilson_linop_w.h.
References create().
|
inline |
Full constructor with array of coefficients.
Definition at line 51 of file eoprec_wilson_linop_w.h.
References create().
|
inline |
Destructor is automatic.
Definition at line 57 of file eoprec_wilson_linop_w.h.
|
inline |
Partial constructor.
Definition at line 37 of file tprec_wilson_linop_w.h.
|
inline |
Full constructor with Anisotropy.
Definition at line 45 of file tprec_wilson_linop_w.h.
References create().
|
inline |
Destructor is automatic.
Definition at line 51 of file tprec_wilson_linop_w.h.
void Chroma::EvenOddPrecWilsonLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_ | ||
) |
Creation routine.
fs | gauge state (Read) |
Mass_ | fermion kappa (Read) |
u_ | gauge field (Read) |
Mass_ | fermion kappa (Read) |
Definition at line 15 of file eoprec_wilson_linop_w.cc.
References Nd.
Referenced by EvenOddPrecWilsonLinOp().
void Chroma::EvenOddPrecWilsonLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_ | ||
) |
Creation routine.
void Chroma::EvenOddPrecWilsonLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_, | ||
const AnisoParam_t & | anisoParam | ||
) |
Creation routine with Anisotropy.
fs | gauge state (Read) |
Mass_ | fermion kappa (Read) |
aniso | anisotropy struct (Read) |
u_ | gauge field (Read) |
Mass_ | fermion kappa (Read) |
aniso | anisotropy struct (Read) |
Definition at line 30 of file eoprec_wilson_linop_w.cc.
References END_CODE, Chroma::makeFermCoeffs(), and START_CODE.
void Chroma::EvenOddPrecWilsonLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_, | ||
const AnisoParam_t & | aniso | ||
) |
Creation routine with Anisotropy.
void Chroma::EvenOddPrecWilsonLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_, | ||
const multi1d< Real > & | coeffs_ | ||
) |
Creation routine with general coefficients.
fs | gauge state (Read) |
Mass_ | fermion kappa (Read) |
coeffs_ | fermion coeffs (Read) |
Definition at line 48 of file eoprec_wilson_linop_w.cc.
References END_CODE, Mass, mu, Nd, and START_CODE.
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 114 of file eoprec_wilson_linop_w.h.
References mu, Nd, and Chroma::zero.
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 103 of file tprec_wilson_linop_w.h.
References mu, Nd, and Chroma::zero.
|
virtual |
Apply the the even-odd block onto a source std::vector.
Derivative of even-odd linop component.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 172 of file eoprec_wilson_linop_w.cc.
References chi, END_CODE, Chroma::isign, mu, Nd, psi, and START_CODE.
|
virtual |
Apply the the even-odd block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
|
virtual |
Apply the the odd-even block onto a source std::vector.
Derivative of odd-even linop component.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 192 of file eoprec_wilson_linop_w.cc.
References chi, END_CODE, Chroma::isign, mu, Nd, psi, and START_CODE.
|
virtual |
Apply the the odd-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 135 of file eoprec_wilson_linop_w.h.
References mu, Nd, and Chroma::zero.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 124 of file tprec_wilson_linop_w.h.
References mu, Nd, and Chroma::zero.
|
inlinevirtual |
Apply the inverse of the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 86 of file eoprec_wilson_linop_w.h.
References Chroma::chi(), invfact, and Chroma::psi.
|
inlinevirtual |
Apply the inverse of the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 75 of file tprec_wilson_linop_w.h.
References Chroma::chi(), invfact, and Chroma::psi.
|
inlinevirtual |
Apply the the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 78 of file eoprec_wilson_linop_w.h.
References Chroma::chi(), fact, and Chroma::psi.
|
inlinevirtual |
Apply the the even-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 67 of file tprec_wilson_linop_w.h.
References Chroma::chi(), fact, and Chroma::psi.
|
virtual |
Apply the the even-odd block onto a source std::vector.
Apply even-odd linop component.
The operator acts on the entire even sublattice
chi | Pseudofermion field (Write) |
psi | Pseudofermion field (Read) |
isign | Flag ( PLUS | MINUS ) (Read) |
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 86 of file eoprec_wilson_linop_w.cc.
References chi, END_CODE, Chroma::isign, psi, and START_CODE.
|
virtual |
Apply the the even-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Return the fermion BC object for this linear operator.
Definition at line 60 of file eoprec_wilson_linop_w.h.
References D, and Chroma::QDPWilsonDslashT< T, P, Q >::getFermBC().
Return the fermion BC object for this linear operator.
Definition at line 54 of file tprec_wilson_linop_w.h.
References D, and Chroma::QDPWilsonDslashT< T, P, Q >::getFermBC().
|
virtual |
Return flops performed by the operator()
Reimplemented from Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 249 of file eoprec_wilson_linop_w.cc.
|
virtual |
Return flops performed by the operator()
Reimplemented from Chroma::EvenOddPrecLinearOperator< T, P, Q >.
|
virtual |
Apply the the odd-even block onto a source std::vector.
Apply odd-even linop component.
The operator acts on the entire odd sublattice
chi | Pseudofermion field (Write) |
psi | Pseudofermion field (Read) |
isign | Flag ( PLUS | MINUS ) (Read) |
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 109 of file eoprec_wilson_linop_w.cc.
References chi, END_CODE, Chroma::isign, psi, and START_CODE.
|
virtual |
Apply the the odd-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 102 of file eoprec_wilson_linop_w.h.
References Chroma::chi(), fact, and Chroma::psi.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 91 of file tprec_wilson_linop_w.h.
References Chroma::chi(), fact, and Chroma::psi.
|
virtual |
Override inherited one with a few more funkies.
Reimplemented from Chroma::EvenOddPrecLinearOperator< T, P, Q >.
Definition at line 126 of file eoprec_wilson_linop_w.cc.
References chi, END_CODE, Chroma::isign, psi, START_CODE, tmp2, and tmp3.
|
virtual |
Override inherited one with a few more funkies.
Reimplemented from Chroma::EvenOddPrecLinearOperator< T, P, Q >.
|
private |
Nd array of coefficients of terms in the action
Definition at line 151 of file eoprec_wilson_linop_w.h.
|
private |
Wilson dslash term
Definition at line 156 of file eoprec_wilson_linop_w.h.
Referenced by getFermBC().
|
private |
Definition at line 153 of file eoprec_wilson_linop_w.h.
Referenced by evenEvenLinOp(), and oddOddLinOp().
|
private |
tmp holding 1/(Nd+Mass)
Definition at line 154 of file eoprec_wilson_linop_w.h.
Referenced by evenEvenInvLinOp().
|
private |
yep, the mass
Definition at line 150 of file eoprec_wilson_linop_w.h.