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

4D Even Odd preconditioned NEF domain-wall Dirac operator More...

#include <eoprec_nef_linop_array_w.h>

Inheritance diagram for Chroma::EvenOddPrecNEFDWLinOpArray:
Chroma::EvenOddPrecDWLikeLinOpBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::EvenOddPrecLinearOperatorArray< T, P, Q > Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T >

Public Types

typedef LatticeFermion T
 
typedef multi1d< LatticeColorMatrix > P
 
typedef multi1d< LatticeColorMatrix > Q
 

Public Member Functions

 EvenOddPrecNEFDWLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const multi1d< Real > &b5_, const multi1d< Real > &c5_, const Real &m_q, int N5_)
 
 EvenOddPrecNEFDWLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &b5_, const Real &c5_, const Real &m_q, int N5_)
 
void create (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &b5_, const Real &c5_, const Real &m_q_, int N5_)
 Creation routine. More...
 
 ~EvenOddPrecNEFDWLinOpArray ()
 set b5 and c5 given kappa and a5 More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
int size () const
 Length of DW flavor index/space. More...
 
void evenEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the even-even block onto a source std::vector. More...
 
void evenEvenInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the inverse of the even-even block onto a source std::vector. More...
 
void evenOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the even-odd block onto a source std::vector. More...
 
void oddEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-even block onto a source std::vector. More...
 
void oddOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source std::vector. More...
 
void oddOddInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the inverse of the odd-odd block onto a source std::vector. More...
 
void Dminus (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, int s5) const
 Apply the Dminus operator on a lattice fermion. See my notes ;-) More...
 
- Public Member Functions inherited from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~EvenOddPrecConstDetLinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
const Subset & subset () const
 Only defined on the odd lattice. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the operator onto a source std::vector. More...
 
virtual void derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the even-even block onto a source std::vector. More...
 
virtual void derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the even-odd block onto a source std::vector. More...
 
virtual void derivOddEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-even block onto a source std::vector. More...
 
virtual void derivOddOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source std::vector. More...
 
- Public Member Functions inherited from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >
virtual ~EvenOddPrecLinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply the operator onto a source std::vector. More...
 
virtual void unprecLinOp (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 Apply the UNPRECONDITIONED operator onto a source std::vector. More...
 
virtual void derivUnprecLinOp (P &ds_u, const multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign) const
 
virtual unsigned long evenEvenNFlops () const
 Apply the derivative of the UNPRECONDITIONED operator onto a source std::vector. More...
 
virtual unsigned long evenOddNFlops () const
 Return flops performed by the evenOddLinOp. More...
 
virtual unsigned long oddEvenNFlops () const
 Return flops performed by the oddEvenLinOp. More...
 
virtual unsigned long oddOddNFlops () const
 Return flops performed by the oddOddLinOp. More...
 
virtual unsigned long evenEvenInvNFlops () const
 Return flops performed by the evenEvenInvLinOp. More...
 
virtual unsigned long nFlops () const
 Return flops performed by the operator() More...
 
- Public Member Functions inherited from Chroma::DiffLinearOperatorArray< T, P, Q >
virtual ~DiffLinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (P &ds_u, const multi1d< T > &chi, const multi1d< 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::LinearOperatorArray< T >
virtual ~LinearOperatorArray ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (multi1d< T > &chi, const multi1d< T > &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 

Protected Member Functions

void applyDiag (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
 Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator. More...
 
void applyDiagInv (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
 Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator. More...
 
void applyOffDiag (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
 Apply the even-odd (odd-even) coupling piece of the NEF operator. More...
 
 EvenOddPrecNEFDWLinOpArray ()
 Partial constructor. More...
 
void operator= (const EvenOddPrecNEFDWLinOpArray &)
 Partial constructor. More...
 

Private Attributes

Real WilsonMass
 
Real c5
 
Real b5
 
Real m_q
 
int N5
 
Real c5TwoKappa
 
Real c5InvTwoKappa
 
Real b5TwoKappa
 
Real b5InvTwoKappa
 
Real TwoKappa
 
Real Kappa
 
Real invDfactor
 
WilsonDslashArray D
 

Detailed Description

4D Even Odd preconditioned NEF domain-wall Dirac operator

This routine is specific to Wilson fermions!

Definition at line 22 of file eoprec_nef_linop_array_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 28 of file eoprec_nef_linop_array_w.h.

◆ Q

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

Definition at line 29 of file eoprec_nef_linop_array_w.h.

◆ T

typedef LatticeFermion Chroma::EvenOddPrecNEFDWLinOpArray::T

Definition at line 27 of file eoprec_nef_linop_array_w.h.

Constructor & Destructor Documentation

◆ EvenOddPrecNEFDWLinOpArray() [1/3]

Chroma::EvenOddPrecNEFDWLinOpArray::EvenOddPrecNEFDWLinOpArray ( Handle< FermState< T, P, Q > >  fs,
const Real &  WilsonMass_,
const multi1d< Real > &  b5_,
const multi1d< Real > &  c5_,
const Real &  m_q,
int  N5_ 
)
inline

Definition at line 32 of file eoprec_nef_linop_array_w.h.

References Chroma::QDP_error_exit().

◆ EvenOddPrecNEFDWLinOpArray() [2/3]

Chroma::EvenOddPrecNEFDWLinOpArray::EvenOddPrecNEFDWLinOpArray ( Handle< FermState< T, P, Q > >  fs,
const Real &  WilsonMass_,
const Real &  b5_,
const Real &  c5_,
const Real &  m_q,
int  N5_ 
)
inline

Full constructor Set b5 = 1.0 and c5=0.0 to get Shamir DWF with a5=1. Set b5 = 1.0 and c5=1.0 to get Borichi DWF.

Definition at line 44 of file eoprec_nef_linop_array_w.h.

References create(), and m_q.

◆ ~EvenOddPrecNEFDWLinOpArray()

Chroma::EvenOddPrecNEFDWLinOpArray::~EvenOddPrecNEFDWLinOpArray ( )
inline

set b5 and c5 given kappa and a5

Destructor is automatic

Definition at line 58 of file eoprec_nef_linop_array_w.h.

◆ EvenOddPrecNEFDWLinOpArray() [3/3]

Chroma::EvenOddPrecNEFDWLinOpArray::EvenOddPrecNEFDWLinOpArray ( )
inlineprotected

Partial constructor.

Definition at line 168 of file eoprec_nef_linop_array_w.h.

Member Function Documentation

◆ Dminus()

void Chroma::EvenOddPrecNEFDWLinOpArray::Dminus ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign,
int  s5 
) const
virtual

Apply the Dminus operator on a lattice fermion. See my notes ;-)

Implements Chroma::EvenOddPrecDWLikeLinOpBaseArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 421 of file eoprec_nef_linop_array_w.cc.

References chi, Chroma::isign, and psi.

◆ evenEvenInvLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::evenEvenInvLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the inverse of the even-even block onto a source std::vector.

Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 77 of file eoprec_nef_linop_array_w.h.

References applyDiagInv(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ evenEvenLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::evenEvenLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the even-even block onto a source std::vector.

Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 68 of file eoprec_nef_linop_array_w.h.

References applyDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ evenOddLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::evenOddLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the the even-odd block onto a source std::vector.

Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 85 of file eoprec_nef_linop_array_w.h.

References applyOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ getFermBC()

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

◆ oddEvenLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::oddEvenLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the the odd-even block onto a source std::vector.

Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 93 of file eoprec_nef_linop_array_w.h.

References applyOffDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ oddOddInvLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::oddOddInvLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inline

Apply the inverse of the odd-odd block onto a source std::vector.

Definition at line 111 of file eoprec_nef_linop_array_w.h.

References applyDiagInv(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ oddOddLinOp()

void Chroma::EvenOddPrecNEFDWLinOpArray::oddOddLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

Apply the the odd-odd block onto a source std::vector.

Implements Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 102 of file eoprec_nef_linop_array_w.h.

References applyDiag(), Chroma::chi(), Chroma::isign, and Chroma::psi.

◆ operator=()

void Chroma::EvenOddPrecNEFDWLinOpArray::operator= ( const EvenOddPrecNEFDWLinOpArray )
inlineprotected

Partial constructor.

Definition at line 170 of file eoprec_nef_linop_array_w.h.

◆ size()

int Chroma::EvenOddPrecNEFDWLinOpArray::size ( void  ) const
inlinevirtual

Member Data Documentation

◆ b5

Real Chroma::EvenOddPrecNEFDWLinOpArray::b5
private

Definition at line 175 of file eoprec_nef_linop_array_w.h.

◆ b5InvTwoKappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::b5InvTwoKappa
private

Definition at line 182 of file eoprec_nef_linop_array_w.h.

◆ b5TwoKappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::b5TwoKappa
private

Definition at line 181 of file eoprec_nef_linop_array_w.h.

◆ c5

Real Chroma::EvenOddPrecNEFDWLinOpArray::c5
private

Definition at line 174 of file eoprec_nef_linop_array_w.h.

◆ c5InvTwoKappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::c5InvTwoKappa
private

Definition at line 180 of file eoprec_nef_linop_array_w.h.

◆ c5TwoKappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::c5TwoKappa
private

Definition at line 179 of file eoprec_nef_linop_array_w.h.

◆ D

WilsonDslashArray Chroma::EvenOddPrecNEFDWLinOpArray::D
private

Definition at line 189 of file eoprec_nef_linop_array_w.h.

Referenced by getFermBC().

◆ invDfactor

Real Chroma::EvenOddPrecNEFDWLinOpArray::invDfactor
private

Definition at line 187 of file eoprec_nef_linop_array_w.h.

◆ Kappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::Kappa
private

Definition at line 186 of file eoprec_nef_linop_array_w.h.

◆ m_q

Real Chroma::EvenOddPrecNEFDWLinOpArray::m_q
private

Definition at line 176 of file eoprec_nef_linop_array_w.h.

Referenced by EvenOddPrecNEFDWLinOpArray().

◆ N5

int Chroma::EvenOddPrecNEFDWLinOpArray::N5
private

Definition at line 177 of file eoprec_nef_linop_array_w.h.

Referenced by size().

◆ TwoKappa

Real Chroma::EvenOddPrecNEFDWLinOpArray::TwoKappa
private

Definition at line 185 of file eoprec_nef_linop_array_w.h.

◆ WilsonMass

Real Chroma::EvenOddPrecNEFDWLinOpArray::WilsonMass
private

Definition at line 173 of file eoprec_nef_linop_array_w.h.


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