CHROMA
|
Unpreconditioned Graphene operator. More...
#include <unprec_graphene_linop_w.h>
Public Types | |
typedef LatticeFermion | T |
typedef multi1d< LatticeColorMatrix > | P |
typedef multi1d< LatticeColorMatrix > | Q |
Public Member Functions | |
UnprecGrapheneLinOp () | |
Partial constructor. More... | |
UnprecGrapheneLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_) | |
Full constructor. More... | |
UnprecGrapheneLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const AnisoParam_t &aniso) | |
Full constructor with Anisotropy. More... | |
~UnprecGrapheneLinOp () | |
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 | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Apply the operator onto a source std::vector. More... | |
void | deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const |
Derivative of unpreconditioned Graphene dM/dU. More... | |
unsigned long | nFlops () const |
Return flops performed by the operator() More... | |
Public Member Functions inherited from Chroma::UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > | |
virtual | ~UnprecLinearOperator () |
Virtual destructor to help with cleanup;. More... | |
const Subset & | subset () const |
Only defined on the entire lattice. 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 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 void | operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, Real epsilon) const |
Apply the operator onto a source std::vector to some precision. More... | |
Private Member Functions | |
void | gammaMults (multi1d< LatticeFermion > &tmp1, const LatticeFermion &psi) const |
Form gamma_mu * psi. More... | |
void | iGamMu (LatticeFermion &iGam, const multi1d< LatticeFermion > &gams, int mu) const |
Form i*Gamma_mu * psi. More... | |
Private Attributes | |
Real | Mass |
AnisoParam_t | anisoParam |
Handle< FermBC< T, P, Q > > | fbc |
multi1d< LatticeColorMatrix > | u |
multi2d< int > | alpha |
Unpreconditioned Graphene operator.
This routine is specific to Wilson fermions!
~ ~+
This subroutine applies the unpreconditioned matrix M or M the std::vector Psi,
{ ~ { M(U) . Psi if ISign = PLUS Chi = { { ~ + { M(U) . Psi if ISign = MINUS
Algorithm:
The kernel for these Graphene fermions is
M = m + i\sum_\mu\gamma_mu + (1/2)*[(i*\Gamma_mu+\gamma_mu)*H_\mu + (i*\Gamma_mu-\gamma_mu)*H_-\mu]
Definition at line 45 of file unprec_graphene_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecGrapheneLinOp::P |
Definition at line 51 of file unprec_graphene_linop_w.h.
typedef multi1d<LatticeColorMatrix> Chroma::UnprecGrapheneLinOp::Q |
Definition at line 52 of file unprec_graphene_linop_w.h.
typedef LatticeFermion Chroma::UnprecGrapheneLinOp::T |
Definition at line 50 of file unprec_graphene_linop_w.h.
|
inline |
Partial constructor.
Definition at line 55 of file unprec_graphene_linop_w.h.
|
inline |
Full constructor with Anisotropy.
Definition at line 62 of file unprec_graphene_linop_w.h.
References create().
|
inline |
Destructor is automatic.
Definition at line 68 of file unprec_graphene_linop_w.h.
Creation routine.
u_ | gauge field (Read) |
Mass_ | fermion kappa (Read) |
Definition at line 22 of file unprec_graphene_linop_w.cc.
Referenced by UnprecGrapheneLinOp().
void Chroma::UnprecGrapheneLinOp::create | ( | Handle< FermState< T, P, Q > > | fs, |
const Real & | Mass_, | ||
const AnisoParam_t & | aniso_ | ||
) |
Creation routine with Anisotropy.
u_ | gauge field (Read) |
Mass_ | fermion kappa (Read) |
aniso | anisotropy struct (Read) |
Definition at line 36 of file unprec_graphene_linop_w.cc.
References Chroma::StagPhases::alpha(), END_CODE, Mass, mu, Nd, nu, START_CODE, and Chroma::u.
|
virtual |
Derivative of unpreconditioned Graphene dM/dU.
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 from Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 212 of file unprec_graphene_linop_w.cc.
References chi, END_CODE, FORWARD, Chroma::isign, Chroma::MINUS, mu, Nd, Chroma::PLUS, psi, Chroma::QDP_error_exit(), START_CODE, tmp2, and tmp3.
|
private |
Form gamma_mu * psi.
Definition at line 107 of file unprec_graphene_linop_w.cc.
Return the fermion BC object for this linear operator.
Implements Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.
Definition at line 71 of file unprec_graphene_linop_w.h.
References fbc.
|
private |
Form i*Gamma_mu * psi.
Definition at line 121 of file unprec_graphene_linop_w.cc.
References Chroma::StagPhases::alpha(), mu, Nd, nu, and tmp2.
|
virtual |
Return flops performed by the operator()
Reimplemented from Chroma::LinearOperator< LatticeFermion >.
Definition at line 290 of file unprec_graphene_linop_w.cc.
|
private |
Definition at line 106 of file unprec_graphene_linop_w.h.
|
private |
Definition at line 102 of file unprec_graphene_linop_w.h.
Definition at line 104 of file unprec_graphene_linop_w.h.
Referenced by getFermBC().
|
private |
Definition at line 101 of file unprec_graphene_linop_w.h.
|
private |
Definition at line 105 of file unprec_graphene_linop_w.h.