|
CHROMA
|
EvenOddPreconditioned Extended-Overlap (N&N) linear operator. More...
#include <eoprec_ovext_linop_array_w.h>
Public Types | |
| typedef LatticeFermion | T |
| typedef multi1d< LatticeColorMatrix > | P |
| typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
| EvenOddPrecOvExtLinOpArray (Handle< FermState< T, P, Q > > fs, const int Npoles_, const Real &coeffP_, const multi1d< Real > &resP_, const multi1d< Real > &rootQ_, const multi1d< Real > &beta_, const Real &OverMass_, const Real &Mass_, const Real &b5_, const Real &c5_) | |
| Full constructor. More... | |
| void | create (Handle< FermState< T, P, Q > > fs, const int Npoles_, const Real &coeffP_, const multi1d< Real > &resP_, const multi1d< Real > &rootQ_, const multi1d< Real > &beta_, const Real &OverMass_, const Real &m_q_, const Real &b5_, const Real &c5_) |
| Creation routine. More... | |
| int | size () const |
| Length of DW flavor index/space. More... | |
| ~EvenOddPrecOvExtLinOpArray () | |
| Destructor is automatic. More... | |
| const FermBC< T, P, Q > & | getFermBC () const |
| Return the fermion BC object for this linear operator. 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 | 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 | 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 | evenEvenInvLinOp (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 | 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 | 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 | |
| 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 off diagonal part. More... | |
| unsigned long | diagInvNFlops (void) const |
| Return flops performed by the diag inv part. More... | |
| EvenOddPrecOvExtLinOpArray () | |
| Partial constructor. More... | |
| void | operator= (const EvenOddPrecOvExtLinOpArray &) |
| Hide =. More... | |
Private Attributes | |
| int | Npoles |
| int | N5 |
| Real | A |
| multi1d< Real > | B |
| multi1d< Real > | D |
| multi1d< Real > | C |
| Real | E |
| WilsonDslashArray | Dslash |
| Real | Aprime |
| Real | Eprime |
| multi1d< Real > | Bprime |
| multi1d< Real > | Dprime |
| multi1d< Real > | Cprime |
| multi1d< Real > | Atilde |
| multi1d< Real > | Btilde |
| multi1d< Real > | Ctilde |
| multi1d< Real > | D_bd_inv |
| Real | S |
EvenOddPreconditioned Extended-Overlap (N&N) linear operator.
This operator applies the extended version of the hermitian overlap operator Chi = ((1+m_q)/(1-m_q)*gamma_5 + B) . Psi where B is the continued fraction of the pole approx. to eps(H(m))
This operator implements hep-lat/0005004
Definition at line 29 of file eoprec_ovext_linop_array_w.h.
| typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecOvExtLinOpArray::P |
Definition at line 35 of file eoprec_ovext_linop_array_w.h.
| typedef multi1d<LatticeColorMatrix> Chroma::EvenOddPrecOvExtLinOpArray::Q |
Definition at line 36 of file eoprec_ovext_linop_array_w.h.
| typedef LatticeFermion Chroma::EvenOddPrecOvExtLinOpArray::T |
Definition at line 34 of file eoprec_ovext_linop_array_w.h.
|
inline |
Full constructor.
Definition at line 39 of file eoprec_ovext_linop_array_w.h.
|
inline |
Destructor is automatic.
Definition at line 68 of file eoprec_ovext_linop_array_w.h.
|
inlineprotected |
Partial constructor.
Definition at line 269 of file eoprec_ovext_linop_array_w.h.
|
protected |
Apply the even-odd (odd-even) coupling piece of the NEF operator.
| 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 431 of file eoprec_ovext_linop_array_w.cc.
References Chroma::END_CODE(), and Chroma::START_CODE().
|
protected |
Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator.
| chi | result (Modify) |
| psi | source (Read) |
| isign | Flag ( PLUS | MINUS ) (Read) |
| cb | checkerboard ( 0 | 1 ) (Read) |
| chi | result (Modify) |
| psi | source (Read) |
| isign | Flag ( PLUS | MINUS ) (Read) |
| cb | checkerboard ( 0 | 1 ) (Read) |
Flopcount = 10*Nc*Ns*(N5-1) + 2*Nc*Ns = 10*Nc*Ns*N5 - 8*Nc*Ns = (10N5 - 8)*Nc*Ns
Definition at line 109 of file eoprec_ovext_linop_array_w.cc.
References A, B, C, Chroma::cb, Chroma::chi(), D, E, Chroma::END_CODE(), Chroma::G5, Chroma::i, Chroma::isign, Chroma::MINUS, N5, Chroma::p, Chroma::PLUS, Chroma::psi, and Chroma::START_CODE().
|
protected |
Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator.
| chi | result (Modify) |
| psi | source (Read) |
| isign | Flag ( PLUS | MINUS ) (Read) |
| cb | checkerboard ( 0 | 1 ) (Read) |
Definition at line 266 of file eoprec_ovext_linop_array_w.cc.
References Atilde, Btilde, Chroma::cb, Chroma::chi(), Ctilde, D_bd_inv, Chroma::END_CODE(), ftmp2, Chroma::i, Chroma::isign, Chroma::MINUS, N5, Npoles, Chroma::p, Chroma::PLUS, Chroma::psi, S, and Chroma::START_CODE().
|
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 176 of file eoprec_ovext_linop_array_w.cc.
References Chroma::QDPWilsonDslashArrayOpt::apply(), Aprime, Bprime, Chroma::cb, Chroma::chi(), Cprime, Dprime, Dslash, Chroma::END_CODE(), Eprime, Chroma::G5, Chroma::i, Chroma::isign, Chroma::MINUS, N5, Chroma::p, Chroma::PLUS, Chroma::psi, Chroma::START_CODE(), and Chroma::tmp.
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 126 of file eoprec_ovext_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 146 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and 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 154 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and 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 137 of file eoprec_ovext_linop_array_w.h.
References Nd, and Chroma::zero.
|
inlineprotected |
Return flops performed by the diag inv part.
Definition at line 262 of file eoprec_ovext_linop_array_w.h.
References N5.
|
inlineprotected |
Return flops performed by the diagonal part.
Definition at line 250 of file eoprec_ovext_linop_array_w.h.
References N5.
|
inlinevirtual |
Apply the inverse of the odd-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 108 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Return flops performed by the evenEvenInvLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 183 of file eoprec_ovext_linop_array_w.h.
|
inlinevirtual |
Apply the even-even block onto a source std::vector.
This does not need to be optimized
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 74 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Return flops performed by the evenEvenLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 163 of file eoprec_ovext_linop_array_w.h.
|
inlinevirtual |
Apply the the even-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 91 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Return flops performed by the evenOddLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 173 of file eoprec_ovext_linop_array_w.h.
Return the fermion BC object for this linear operator.
Definition at line 71 of file eoprec_ovext_linop_array_w.h.
|
inlinevirtual |
Return flops performed by the operator()
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 188 of file eoprec_ovext_linop_array_w.h.
References N5.
|
inlinevirtual |
Apply the the odd-even block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 99 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Return flops performed by the oddEvenLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 178 of file eoprec_ovext_linop_array_w.h.
|
inline |
Apply the inverse of the odd-odd block onto a source std::vector.
Definition at line 117 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Apply the the odd-odd block onto a source std::vector.
Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 83 of file eoprec_ovext_linop_array_w.h.
References chi, Chroma::isign, and psi.
|
inlinevirtual |
Return flops performed by the oddOddLinOp.
Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.
Definition at line 168 of file eoprec_ovext_linop_array_w.h.
|
inlineprotected |
Return flops performed by the off diagonal part.
Definition at line 256 of file eoprec_ovext_linop_array_w.h.
References N5.
|
inlineprotected |
Hide =.
Definition at line 271 of file eoprec_ovext_linop_array_w.h.
|
inlinevirtual |
Length of DW flavor index/space.
Definition at line 65 of file eoprec_ovext_linop_array_w.h.
References N5.
|
private |
Definition at line 279 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), and create().
|
private |
Definition at line 287 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 294 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().
|
private |
Definition at line 280 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), and create().
|
private |
Definition at line 289 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 295 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().
|
private |
Definition at line 282 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), and create().
|
private |
Definition at line 291 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 296 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().
|
private |
Definition at line 281 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), and create().
|
private |
Definition at line 297 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().
|
private |
Definition at line 290 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 284 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 283 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), and create().
|
private |
Definition at line 288 of file eoprec_ovext_linop_array_w.h.
Referenced by applyOffDiag(), and create().
|
private |
Definition at line 275 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiag(), applyDiagInv(), applyOffDiag(), and create().
|
private |
Definition at line 274 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().
|
private |
Definition at line 298 of file eoprec_ovext_linop_array_w.h.
Referenced by applyDiagInv(), and create().