CHROMA
|
Dslash-like Linear Operator. More...
#include <linearop.h>
Public Member Functions | |
virtual | ~DslashLinearOperator () |
Virtual destructor to help in cleanup. More... | |
virtual const FermBC< T, P, Q > & | getFermBC () const =0 |
Return the fermion BC object for this linear operator. More... | |
virtual void | operator() (T &d, const T &psi, enum PlusMinus isign) const |
Apply operator on both checkerboards (entire lattice) More... | |
virtual void | apply (T &chi, const T &psi, enum PlusMinus isign, int cb) const =0 |
Apply checkerboarded linear operator. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const |
Take deriv of D. More... | |
virtual void | deriv (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign, int cb) const |
Take deriv of D. More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const |
Return the force for multiple poles. More... | |
virtual void | derivMultipole (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, int cb) const |
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... | |
virtual const Subset & | subset () const =0 |
Return the subset on which the operator acts. More... | |
virtual unsigned long | nFlops () const |
Dslash-like Linear Operator.
These are concessions/optimizations for red-black checkboarding
Definition at line 220 of file linearop.h.
|
inlinevirtual |
Virtual destructor to help in cleanup.
Definition at line 224 of file linearop.h.
|
pure virtual |
Apply checkerboarded linear operator.
To avoid confusion (especially of the compilers!), call the checkerboarded apply instead of operator()
Implemented in Chroma::QDPWilsonDslashT< T, P, Q >, Chroma::QDPWilsonDslashOptT< T, P, Q >, Chroma::LLVMWilsonDslashT< T, P, Q >, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, Chroma::QDPStaggeredDslash, Chroma::SSEWilsonDslash, Chroma::PABWilsonDslash, and Chroma::BAGELCloverTerm.
|
inlinevirtual |
Take deriv of D.
chi | left std::vector (Read) |
psi | right std::vector (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Reimplemented in Chroma::WilsonDslashBase< T, P, Q >, Chroma::CloverTermBase< T, U >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, and Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 252 of file linearop.h.
|
inlinevirtual |
Take deriv of D.
chi | left std::vector on cb (Read) |
psi | right std::vector on 1-cb (Read) |
isign | D'^dag or D' ( MINUS | PLUS ) resp. (Read) |
cb | Checkerboard of chi std::vector (Read) |
Reimplemented in Chroma::WilsonDslashBase< T, P, Q >, Chroma::CloverTermBase< T, U >, Chroma::WilsonDslashBase< LatticeFermionF, multi1d< LatticeColorMatrixF >, multi1d< LatticeColorMatrixF > >, Chroma::WilsonDslashBase< LatticeFermionD, multi1d< LatticeColorMatrixD >, multi1d< LatticeColorMatrixD > >, and Chroma::WilsonDslashBase< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 268 of file linearop.h.
|
inlinevirtual |
Return the force for multiple poles.
Reimplemented from Chroma::DiffLinearOperator< T, P, Q >.
Reimplemented in Chroma::CloverTermBase< T, U >.
Definition at line 275 of file linearop.h.
References chi, deriv(), i, Chroma::isign, Nd, psi, and Chroma::zero.
|
inlinevirtual |
Reimplemented in Chroma::CloverTermBase< T, U >.
Definition at line 290 of file linearop.h.
References Chroma::cb, chi, deriv(), i, Chroma::isign, Nd, psi, and Chroma::zero.
|
pure virtual |
Return the fermion BC object for this linear operator.
Implements Chroma::DiffLinearOperator< T, P, Q >.
Implemented in Chroma::SSEWilsonDslash, Chroma::PABWilsonDslash, Chroma::CPPWilsonDslashF, Chroma::CPPWilsonDslashD, Chroma::QDPWilsonDslashT< T, P, Q >, Chroma::QDPWilsonDslashOptT< T, P, Q >, Chroma::LLVMWilsonDslashT< T, P, Q >, Chroma::SSEDCloverTerm, Chroma::QDPCloverTermT< T, U >, Chroma::PTXCloverTermT< T, U >, Chroma::NVVMCloverTermT< T, U >, Chroma::LLVMCloverTermT< T, U >, Chroma::BAGELCloverTerm, and Chroma::QDPStaggeredDslash.
|
inlinevirtual |
Apply operator on both checkerboards (entire lattice)
Implements Chroma::LinearOperator< T >.
Definition at line 230 of file linearop.h.
References Chroma::d, Chroma::isign, and psi.