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

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

#include <eoprec_dwf_linop_array_w.h>

Inheritance diagram for Chroma::EvenOddPrecDWLinOpArray:
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

 EvenOddPrecDWLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &m_q, int N5_, const AnisoParam_t &aniso_)
 Full constructor. More...
 
 ~EvenOddPrecDWLinOpArray ()
 Destructor is automatic. 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. More...
 
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...
 
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...
 
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...
 
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...
 
unsigned long evenEvenNFlops (void) const
 Return flops performed by the evenEvenLinOp. More...
 
unsigned long oddOddNFlops (void) const
 Return flops performed by the oddOddLinOp. More...
 
unsigned long evenOddNFlops (void) const
 Return flops performed by the evenOddLinOp. More...
 
unsigned long oddEvenNFlops (void) const
 Return flops performed by the oddEvenLinOp. More...
 
unsigned long evenEvenInvNFlops (void) const
 Return flops performed by the evenEvenInvLinOp. More...
 
unsigned long nFlops () const
 Return flops performed by the operator() 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...
 
- 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
 
- 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

 EvenOddPrecDWLinOpArray ()
 Partial constructor. More...
 
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 off diagonal block. More...
 
void applyDerivOffDiag (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, int cb) const
 Apply the even-odd (odd-even) coupling piece of the NEF operator. More...
 
unsigned long diagNFlops (void) const
 Return flops performed by the diagonal part. More...
 
unsigned long offDiagNFlops (void) const
 Return flops performed by the diagonal part. More...
 
unsigned long diagInvNFlops (void) const
 Return flops performed by the diagonal part. More...
 

Private Attributes

Real WilsonMass
 
Real m_q
 
Real a5
 
int N5
 
Real InvTwoKappa
 
Real TwoKappa
 
Real Kappa
 
Real invDfactor
 
WilsonDslashArray D
 

Detailed Description

4D Even Odd preconditioned domain-wall Dirac operator

This routine is specific to Wilson fermions!

Definition at line 22 of file eoprec_dwf_linop_array_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 28 of file eoprec_dwf_linop_array_w.h.

◆ Q

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

Definition at line 29 of file eoprec_dwf_linop_array_w.h.

◆ T

typedef LatticeFermion Chroma::EvenOddPrecDWLinOpArray::T

Definition at line 27 of file eoprec_dwf_linop_array_w.h.

Constructor & Destructor Documentation

◆ ~EvenOddPrecDWLinOpArray()

Chroma::EvenOddPrecDWLinOpArray::~EvenOddPrecDWLinOpArray ( )
inline

Destructor is automatic.

Definition at line 37 of file eoprec_dwf_linop_array_w.h.

◆ EvenOddPrecDWLinOpArray()

Chroma::EvenOddPrecDWLinOpArray::EvenOddPrecDWLinOpArray ( )
inlineprotected

Partial constructor.

Definition at line 176 of file eoprec_dwf_linop_array_w.h.

Member Function Documentation

◆ applyDerivOffDiag()

void Chroma::EvenOddPrecDWLinOpArray::applyDerivOffDiag ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
int  cb 
) const
protected

Apply the even-odd (odd-even) coupling piece of the NEF operator.

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

Parameters
ds_uconjugate momenta (Read)
psileft pseudofermion field (Read)
psiright pseudofermion field (Read)
isignFlag ( PLUS | MINUS ) (Read)
cbcheckerboard ( 0 | 1 ) (Read)

Definition at line 346 of file eoprec_dwf_linop_array_w.cc.

References Chroma::cb, chi, END_CODE, Chroma::isign, mu, Nd, psi, and START_CODE.

Referenced by derivEvenOddLinOp(), and derivOddEvenLinOp().

◆ applyOffDiag()

void Chroma::EvenOddPrecDWLinOpArray::applyOffDiag ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
const int  cb 
) const
protected

Apply the off diagonal block.

Parameters
chiresult (Modify)
psisource (Read)
isignFlag ( PLUS | MINUS ) (Read)
cbcheckerboard ( 0 | 1 ) (Read)

Definition at line 310 of file eoprec_dwf_linop_array_w.cc.

References Chroma::cb, chi, Chroma::isign, N5, psi, and s.

Referenced by evenOddLinOp(), and oddEvenLinOp().

◆ derivEvenEvenLinOp()

void Chroma::EvenOddPrecDWLinOpArray::derivEvenEvenLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

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

Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 106 of file eoprec_dwf_linop_array_w.h.

References Nd, and Chroma::zero.

◆ derivEvenOddLinOp()

void Chroma::EvenOddPrecDWLinOpArray::derivEvenOddLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

◆ derivOddEvenLinOp()

void Chroma::EvenOddPrecDWLinOpArray::derivOddEvenLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

◆ derivOddOddLinOp()

void Chroma::EvenOddPrecDWLinOpArray::derivOddOddLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const
inlinevirtual

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

Reimplemented from Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >.

Definition at line 115 of file eoprec_dwf_linop_array_w.h.

References Nd, and Chroma::zero.

◆ diagInvNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::diagInvNFlops ( void  ) const
inlineprotected

Return flops performed by the diagonal part.

Definition at line 243 of file eoprec_dwf_linop_array_w.h.

References N5.

Referenced by evenEvenInvNFlops().

◆ diagNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::diagNFlops ( void  ) const
inlineprotected

Return flops performed by the diagonal part.

Definition at line 231 of file eoprec_dwf_linop_array_w.h.

References N5.

Referenced by evenEvenNFlops(), and oddOddNFlops().

◆ Dminus()

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

Apply the Dminus operator on a lattice fermion.

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

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

Definition at line 335 of file eoprec_dwf_linop_array_w.cc.

◆ evenEvenInvLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 56 of file eoprec_dwf_linop_array_w.h.

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

◆ evenEvenInvNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::evenEvenInvNFlops ( void  ) const
inlinevirtual

Return flops performed by the evenEvenInvLinOp.

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 161 of file eoprec_dwf_linop_array_w.h.

References diagInvNFlops().

Referenced by nFlops().

◆ evenEvenLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 47 of file eoprec_dwf_linop_array_w.h.

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

◆ evenEvenNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::evenEvenNFlops ( void  ) const
inlinevirtual

Return flops performed by the evenEvenLinOp.

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 141 of file eoprec_dwf_linop_array_w.h.

References diagNFlops().

◆ evenOddLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 64 of file eoprec_dwf_linop_array_w.h.

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

◆ evenOddNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::evenOddNFlops ( void  ) const
inlinevirtual

Return flops performed by the evenOddLinOp.

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 151 of file eoprec_dwf_linop_array_w.h.

References offDiagNFlops().

Referenced by nFlops().

◆ getFermBC()

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

◆ nFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::nFlops ( void  ) const
inlinevirtual

Return flops performed by the operator()

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 166 of file eoprec_dwf_linop_array_w.h.

References evenEvenInvNFlops(), evenOddNFlops(), N5, oddEvenNFlops(), and oddOddNFlops().

◆ oddEvenLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 72 of file eoprec_dwf_linop_array_w.h.

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

◆ oddEvenNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::oddEvenNFlops ( void  ) const
inlinevirtual

Return flops performed by the oddEvenLinOp.

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 156 of file eoprec_dwf_linop_array_w.h.

References offDiagNFlops().

Referenced by nFlops().

◆ oddOddInvLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 90 of file eoprec_dwf_linop_array_w.h.

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

◆ oddOddLinOp()

void Chroma::EvenOddPrecDWLinOpArray::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 81 of file eoprec_dwf_linop_array_w.h.

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

◆ oddOddNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::oddOddNFlops ( void  ) const
inlinevirtual

Return flops performed by the oddOddLinOp.

Reimplemented from Chroma::EvenOddPrecLinearOperatorArray< T, P, Q >.

Definition at line 146 of file eoprec_dwf_linop_array_w.h.

References diagNFlops().

Referenced by nFlops().

◆ offDiagNFlops()

unsigned long Chroma::EvenOddPrecDWLinOpArray::offDiagNFlops ( void  ) const
inlineprotected

Return flops performed by the diagonal part.

Definition at line 237 of file eoprec_dwf_linop_array_w.h.

References N5.

Referenced by evenOddNFlops(), and oddEvenNFlops().

◆ size()

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

Member Data Documentation

◆ a5

Real Chroma::EvenOddPrecDWLinOpArray::a5
private

Definition at line 251 of file eoprec_dwf_linop_array_w.h.

◆ D

WilsonDslashArray Chroma::EvenOddPrecDWLinOpArray::D
private

Definition at line 259 of file eoprec_dwf_linop_array_w.h.

Referenced by getFermBC().

◆ invDfactor

Real Chroma::EvenOddPrecDWLinOpArray::invDfactor
private

Definition at line 257 of file eoprec_dwf_linop_array_w.h.

◆ InvTwoKappa

Real Chroma::EvenOddPrecDWLinOpArray::InvTwoKappa
private

Definition at line 254 of file eoprec_dwf_linop_array_w.h.

◆ Kappa

Real Chroma::EvenOddPrecDWLinOpArray::Kappa
private

Definition at line 256 of file eoprec_dwf_linop_array_w.h.

◆ m_q

Real Chroma::EvenOddPrecDWLinOpArray::m_q
private

Definition at line 250 of file eoprec_dwf_linop_array_w.h.

◆ N5

int Chroma::EvenOddPrecDWLinOpArray::N5
private

Definition at line 252 of file eoprec_dwf_linop_array_w.h.

Referenced by diagInvNFlops(), diagNFlops(), nFlops(), offDiagNFlops(), and size().

◆ TwoKappa

Real Chroma::EvenOddPrecDWLinOpArray::TwoKappa
private

Definition at line 255 of file eoprec_dwf_linop_array_w.h.

◆ WilsonMass

Real Chroma::EvenOddPrecDWLinOpArray::WilsonMass
private

Definition at line 249 of file eoprec_dwf_linop_array_w.h.


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