CHROMA
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members

Unpreconditioned Graphene operator. More...

#include <unprec_graphene_linop_w.h>

Inheritance diagram for Chroma::UnprecGrapheneLinOp:
Chroma::UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::LinearOperator< LatticeFermion >

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
 

Detailed Description

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.

Member Typedef Documentation

◆ P

typedef multi1d<LatticeColorMatrix> Chroma::UnprecGrapheneLinOp::P

Definition at line 51 of file unprec_graphene_linop_w.h.

◆ Q

typedef multi1d<LatticeColorMatrix> Chroma::UnprecGrapheneLinOp::Q

Definition at line 52 of file unprec_graphene_linop_w.h.

◆ T

typedef LatticeFermion Chroma::UnprecGrapheneLinOp::T

Definition at line 50 of file unprec_graphene_linop_w.h.

Constructor & Destructor Documentation

◆ UnprecGrapheneLinOp() [1/3]

Chroma::UnprecGrapheneLinOp::UnprecGrapheneLinOp ( )
inline

Partial constructor.

Definition at line 55 of file unprec_graphene_linop_w.h.

◆ UnprecGrapheneLinOp() [2/3]

Chroma::UnprecGrapheneLinOp::UnprecGrapheneLinOp ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_ 
)
inline

Full constructor.

Definition at line 58 of file unprec_graphene_linop_w.h.

References create().

◆ UnprecGrapheneLinOp() [3/3]

Chroma::UnprecGrapheneLinOp::UnprecGrapheneLinOp ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_,
const AnisoParam_t aniso 
)
inline

Full constructor with Anisotropy.

Definition at line 62 of file unprec_graphene_linop_w.h.

References create().

◆ ~UnprecGrapheneLinOp()

Chroma::UnprecGrapheneLinOp::~UnprecGrapheneLinOp ( )
inline

Destructor is automatic.

Definition at line 68 of file unprec_graphene_linop_w.h.

Member Function Documentation

◆ create() [1/2]

void Chroma::UnprecGrapheneLinOp::create ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_ 
)

Creation routine.

Parameters
u_gauge field (Read)
Mass_fermion kappa (Read)

Definition at line 22 of file unprec_graphene_linop_w.cc.

Referenced by UnprecGrapheneLinOp().

◆ create() [2/2]

void Chroma::UnprecGrapheneLinOp::create ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_,
const AnisoParam_t aniso_ 
)

Creation routine with Anisotropy.

Parameters
u_gauge field (Read)
Mass_fermion kappa (Read)
anisoanisotropy 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.

◆ deriv()

void Chroma::UnprecGrapheneLinOp::deriv ( multi1d< LatticeColorMatrix > &  ds_u,
const LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const
virtual

Derivative of unpreconditioned Graphene dM/dU.

Parameters
chileft std::vector on cb (Read)
psiright std::vector on 1-cb (Read)
isignD'^dag or D' ( MINUS | PLUS ) resp. (Read)
cbCheckerboard of chi std::vector (Read)
Returns
Computes $\chi^\dag * \dot(D} * \psi$

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.

◆ gammaMults()

void Chroma::UnprecGrapheneLinOp::gammaMults ( multi1d< LatticeFermion > &  tmp1,
const LatticeFermion &  psi 
) const
private

Form gamma_mu * psi.

Definition at line 107 of file unprec_graphene_linop_w.cc.

References Nd, and psi.

◆ getFermBC()

const FermBC<T,P,Q>& Chroma::UnprecGrapheneLinOp::getFermBC ( ) const
inlinevirtual

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.

◆ iGamMu()

void Chroma::UnprecGrapheneLinOp::iGamMu ( LatticeFermion &  iGam,
const multi1d< LatticeFermion > &  gams,
int  mu 
) const
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.

◆ nFlops()

unsigned long Chroma::UnprecGrapheneLinOp::nFlops ( void  ) const
virtual

Return flops performed by the operator()

Reimplemented from Chroma::LinearOperator< LatticeFermion >.

Definition at line 290 of file unprec_graphene_linop_w.cc.

Member Data Documentation

◆ alpha

multi2d<int> Chroma::UnprecGrapheneLinOp::alpha
private

Definition at line 106 of file unprec_graphene_linop_w.h.

◆ anisoParam

AnisoParam_t Chroma::UnprecGrapheneLinOp::anisoParam
private

Definition at line 102 of file unprec_graphene_linop_w.h.

◆ fbc

Handle< FermBC<T,P,Q> > Chroma::UnprecGrapheneLinOp::fbc
private

Definition at line 104 of file unprec_graphene_linop_w.h.

Referenced by getFermBC().

◆ Mass

Real Chroma::UnprecGrapheneLinOp::Mass
private

Definition at line 101 of file unprec_graphene_linop_w.h.

◆ u

multi1d<LatticeColorMatrix> Chroma::UnprecGrapheneLinOp::u
private

Definition at line 105 of file unprec_graphene_linop_w.h.


The documentation for this class was generated from the following files: