|
CHROMA
|
Symmetric even-odd preconditioned Clover-Dirac operator. More...
#include <seoprec_clover_linop_w.h>
Public Types | |
| typedef LatticeFermion | T |
| typedef multi1d< LatticeColorMatrix > | P |
| typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
| SymEvenOddPrecCloverLinOp () | |
| Partial constructor. More... | |
| SymEvenOddPrecCloverLinOp (Handle< FermState< T, P, Q > > fs, const CloverFermActParams ¶m_) | |
| Full constructor. More... | |
| ~SymEvenOddPrecCloverLinOp () | |
| 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 CloverFermActParams ¶m_) |
| Creation routine. More... | |
| void | unprecEvenEvenLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the even-even block onto a source std::vector. More... | |
| void | unprecEvenEvenInvLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the inverse of the even-even block onto a source std::vector. More... | |
| void | unprecOddOddLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the odd-odd block onto a source std::vector. More... | |
| void | unprecOddOddInvLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the inverse of the odd-odd block onto a source std::vector. More... | |
| void | unprecEvenOddLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the even-odd block onto a source std::vector. More... | |
| void | unprecOddEvenLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the odd-even block onto a source std::vector. More... | |
| virtual void | derivUnprecEvenEvenLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the even-even block onto a source std::vector. More... | |
| virtual void | derivUnprecOddOddLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the odd-odd block onto a source std::vector. More... | |
| virtual void | derivUnprecEvenOddLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the even-odd block onto a source std::vector. More... | |
| virtual void | derivUnprecOddEvenLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the the odd-even block onto a source std::vector. More... | |
| void | derivLogDetEvenEvenLinOp (P &ds_u, enum PlusMinus isign) const |
| Apply the even-even block onto a source std::vector. More... | |
| void | derivLogDetOddOddLinOp (P &ds_u, enum PlusMinus isign) const |
| Apply the odd-odd block onto a source std::vector. More... | |
| void | operator() (T &chi, const T &psi, enum PlusMinus isign) const override |
| Apply even-odd preconditioned Clover fermion linear operator. More... | |
| void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const override |
| Deriv. More... | |
| void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const override |
| Deriv. More... | |
| unsigned long | nFlops () const |
| Return flops performed by the operator() More... | |
| Double | logDetEvenEvenLinOp (void) const |
| Get the log det of the even even part. More... | |
| Double | logDetOddOddLinOp (void) const |
| Get the log det of the odd odd part. More... | |
Public Member Functions inherited from Chroma::SymEvenOddPrecLogDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
| virtual | ~SymEvenOddPrecLogDetLinearOperator () |
| Virtual destructor to help with cleanup;. More... | |
| const Subset & | subset () const |
| Only defined on the odd lattice. More... | |
| virtual void | derivUnprecEvenEvenInvLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
| deriv of A^{-1} = - A^{-1} deriv(A) A^{-1} More... | |
| virtual void | derivUnprecOddOddInvLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
| deriv of A^{-1} = - A^{-1} deriv(A) A^{-1} More... | |
| virtual void | derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const override |
| Apply the the even-odd block onto a source std::vector. More... | |
| virtual void | derivOddEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const override |
| Apply the the odd-even block onto a source std::vector. More... | |
Public Member Functions inherited from Chroma::SymEvenOddPrecConstDetLinearOperator< T, P, Q > | |
| virtual | ~SymEvenOddPrecConstDetLinearOperator () |
| Virtual destructor to help with cleanup;. More... | |
Public Member Functions inherited from Chroma::SymEvenOddPrecLinearOperator< T, P, Q > | |
| virtual | ~SymEvenOddPrecLinearOperator () |
| Virtual destructor to help with cleanup;. More... | |
| virtual void | evenOddLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the EvenOdd Linop for which we have a category default) More... | |
| virtual void | oddEvenLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| virtual void | jacobiOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the Jacobi Operator. More... | |
| virtual void | unprecLinOp (T &chi, const T &psi, enum PlusMinus isign) const |
| Apply the UNPRECONDITIONED operator onto a source std::vector. 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 | |
| CloverFermActParams | param |
| WilsonDslash | D |
| CloverTerm | clov |
| CloverTerm | invclov |
| double | clov_apply_time |
| double | clov_deriv_time |
| StopWatch | swatch |
Symmetric even-odd preconditioned Clover-Dirac operator.
This routine is specific to Wilson fermions!
The kernel for Clover fermions is
M = A + (d+M) - (1/2) D'
Definition at line 29 of file seoprec_clover_linop_w.h.
| typedef multi1d<LatticeColorMatrix> Chroma::SymEvenOddPrecCloverLinOp::P |
Definition at line 35 of file seoprec_clover_linop_w.h.
| typedef multi1d<LatticeColorMatrix> Chroma::SymEvenOddPrecCloverLinOp::Q |
Definition at line 36 of file seoprec_clover_linop_w.h.
| typedef LatticeFermion Chroma::SymEvenOddPrecCloverLinOp::T |
Definition at line 34 of file seoprec_clover_linop_w.h.
|
inline |
Partial constructor.
Definition at line 39 of file seoprec_clover_linop_w.h.
|
inline |
Destructor is automatic.
Definition at line 49 of file seoprec_clover_linop_w.h.
| void Chroma::SymEvenOddPrecCloverLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
| const CloverFermActParams & | param_ | ||
| ) |
Creation routine.
Creation routine with Anisotropy.
| u_ | gauge field (Read) |
| param_ | fermion kappa (Read) |
Definition at line 16 of file seoprec_clover_linop_w.cc.
References Chroma::END_CODE(), Chroma::START_CODE(), and Chroma::CloverFermActParams::twisted_m_usedP.
Referenced by SymEvenOddPrecCloverLinOp().
|
overridevirtual |
Deriv.
Reimplemented from Chroma::SymEvenOddPrecLinearOperator< T, P, Q >.
Definition at line 275 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::isign, Chroma::MINUS, mu, Nd, Chroma::PLUS, Chroma::psi, Chroma::tmp, and Chroma::zero.
|
virtual |
Apply the even-even block onto a source std::vector.
Definition at line 221 of file seoprec_clover_linop_w.cc.
References Chroma::END_CODE(), Chroma::isign, and Chroma::START_CODE().
|
virtual |
Apply the odd-odd block onto a source std::vector.
Apply the even-even block onto a source std::vector.
Definition at line 233 of file seoprec_clover_linop_w.cc.
References Chroma::END_CODE(), Chroma::isign, and Chroma::START_CODE().
|
overridevirtual |
Deriv.
Reimplemented from Chroma::SymEvenOddPrecLinearOperator< T, P, Q >.
Definition at line 363 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::i, Chroma::isign, Chroma::MINUS, mu, Nd, Chroma::PLUS, Chroma::psi, Chroma::tmp, and Chroma::zero.
|
virtual |
Apply the even-even block onto a source std::vector.
Definition at line 193 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the the even-odd block onto a source std::vector.
Definition at line 245 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, mu, Nd, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the the odd-even block onto a source std::vector.
Definition at line 260 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, mu, Nd, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the the odd-odd block onto a source std::vector.
Definition at line 208 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
Return the fermion BC object for this linear operator.
Definition at line 53 of file seoprec_clover_linop_w.h.
References D, and Chroma::QDPWilsonDslashT< T, P, Q >::getFermBC().
|
virtual |
Get the log det of the even even part.
Definition at line 484 of file seoprec_clover_linop_w.cc.
|
virtual |
Get the log det of the odd odd part.
Definition at line 490 of file seoprec_clover_linop_w.cc.
|
virtual |
Return flops performed by the operator()
Reimplemented from Chroma::LinearOperator< T >.
Definition at line 473 of file seoprec_clover_linop_w.cc.
|
overridevirtual |
Apply even-odd preconditioned Clover fermion linear operator.
| chi | Pseudofermion field (Write) |
| psi | Pseudofermion field (Read) |
| isign | Flag ( PLUS | MINUS ) (Read) |
Reimplemented from Chroma::SymEvenOddPrecLinearOperator< T, P, Q >.
Definition at line 145 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::PLUS, Chroma::psi, Chroma::START_CODE(), and tmp2.
|
virtual |
Apply the inverse of the even-even block onto a source std::vector.
Definition at line 81 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the the even-even block onto a source std::vector.
Definition at line 71 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
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) |
Definition at line 101 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
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) |
Definition at line 124 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the inverse of the odd-odd block onto a source std::vector.
Definition at line 59 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
virtual |
Apply the the odd-odd block onto a source std::vector.
Definition at line 45 of file seoprec_clover_linop_w.cc.
References Chroma::chi(), Chroma::END_CODE(), Chroma::isign, Chroma::psi, and Chroma::START_CODE().
|
private |
Definition at line 136 of file seoprec_clover_linop_w.h.
|
mutableprivate |
Definition at line 138 of file seoprec_clover_linop_w.h.
|
mutableprivate |
Definition at line 139 of file seoprec_clover_linop_w.h.
|
private |
Definition at line 135 of file seoprec_clover_linop_w.h.
Referenced by getFermBC().
|
private |
Definition at line 137 of file seoprec_clover_linop_w.h.
|
private |
Definition at line 134 of file seoprec_clover_linop_w.h.
|
mutableprivate |
Definition at line 140 of file seoprec_clover_linop_w.h.