CHROMA
|
Internal Overlap-pole operator. More...
#include <lovddag_double_pass_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
lovddag_double_pass (const UnprecWilsonTypeFermAct< T, P, Q > &S_aux, Handle< FermState< T, P, Q > > state, const Real &_m_q, int _numroot, const Real &_constP, const multi1d< Real > &_resP, const multi1d< Real > &_rootQ, int _NEig, const multi1d< Real > &_EigValFunc, const multi1d< LatticeFermion > &_EigVec, int _MaxCG, const Real &_RsdCG, const int _ReorthFreq, const Chirality _ichiral) | |
Creation routine. More... | |
~lovddag_double_pass () | |
Destructor is automatic. More... | |
const Subset & | subset () const |
Only defined on the entire lattice. More... | |
void | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
void | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, Real epsilon) const |
Apply the operator onto a source std::vector. More... | |
const FermBC< T, P, Q > & | getFermBC () const |
Return the fermion BC object for this linear operator. More... | |
Public Member Functions inherited from Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~DiffLinearOperator () |
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 | deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, const Real &epsilon) const |
Apply the derivative of the operator onto a source std::vector to some precision. More... | |
virtual void | derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const |
Return the force for multiple poles. More... | |
Public Member Functions inherited from Chroma::LinearOperator< LatticeFermion > | |
virtual | ~LinearOperator () |
Virtual destructor to help with cleanup;. More... | |
virtual unsigned long | nFlops () const |
Private Attributes | |
Handle< DiffLinearOperator< T, P, Q > > | M |
Handle< DiffLinearOperator< T, P, Q > > | MdagM |
Handle< FermBC< T, P, Q > > | fbc |
const Real | m_q |
int | numroot |
const Real | constP |
const multi1d< Real > | rootQ |
const multi1d< Real > | resP |
const multi1d< LatticeFermion > | EigVec |
const multi1d< Real > | EigValFunc |
int | NEig |
int | MaxCG |
const Real | RsdCG |
const int | ReorthFreq |
Chirality | ichiral |
Internal Overlap-pole operator.
This routine is specific to Wilson fermions!
Chi = (1/2)*((1+m_q) + (1-m_q) * gamma_5 * B) . Psi where B is the pole approx. to eps(H(m))
Internally, it computes Chi = ((1+m_q)/(1-m_q) + gamma_5 * B) . Psi and then rescales at the end to the correct normalization
NOTE: B is hermitian, so
(1 + gamma_5 * B)^dag = (1 + B * gamma_5) = gamma_5 * (1 + gamma_5 * B) * gamma_5
Definition at line 34 of file lovddag_double_pass_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::lovddag_double_pass::P |
Definition at line 40 of file lovddag_double_pass_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::lovddag_double_pass::Q |
Definition at line 41 of file lovddag_double_pass_w.h.
typedef LatticeFermion Chroma::lovddag_double_pass::T |
Definition at line 39 of file lovddag_double_pass_w.h.
|
inline |
Destructor is automatic.
Definition at line 79 of file lovddag_double_pass_w.h.
Return the fermion BC object for this linear operator.
Implements Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 93 of file lovddag_double_pass_w.h.
References fbc.
|
inlinevirtual |
Only defined on the entire lattice.
Implements Chroma::LinearOperator< LatticeFermion >.
Definition at line 82 of file lovddag_double_pass_w.h.
|
private |
Definition at line 103 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 107 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 106 of file lovddag_double_pass_w.h.
Referenced by operator()().
Definition at line 98 of file lovddag_double_pass_w.h.
Referenced by getFermBC().
|
private |
Definition at line 112 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 96 of file lovddag_double_pass_w.h.
|
private |
Definition at line 101 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 109 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 97 of file lovddag_double_pass_w.h.
|
private |
Definition at line 108 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 102 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 111 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 105 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 104 of file lovddag_double_pass_w.h.
Referenced by operator()().
|
private |
Definition at line 110 of file lovddag_double_pass_w.h.
Referenced by operator()().