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

4D Even Odd preconditioned Overlap-DWF (Borici) linear operator More...

#include <eoprec_ovdwf_linop_array_w.h>

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

 EvenOddPrecOvDWLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &m_q, int N5_)
 Full constructor. More...
 
void create (Handle< FermState< T, P, Q > > fs, const Real &WilsonMass_, const Real &m_q_, int N5_)
 Creation routine. More...
 
 ~EvenOddPrecOvDWLinOpArray ()
 Destructor is automatic. More...
 
int size () const
 Length of DW flavor index/space. More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. 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 Borici 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 Borici 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 Borici operator. More...
 
 EvenOddPrecOvDWLinOpArray ()
 Partial constructor. More...
 
void operator= (const EvenOddPrecOvDWLinOpArray &)
 Hide =. More...
 

Private Attributes

Real WilsonMass
 
Real m_q
 
Real a5
 
int N5
 
Real c5TwoKappa
 
Real c5InvTwoKappa
 
Real b5TwoKappa
 
Real b5InvTwoKappa
 
Real TwoKappa
 
Real Kappa
 
Real invDfactor
 
WilsonDslash D
 

Detailed Description

4D Even Odd preconditioned Overlap-DWF (Borici) linear operator

This routine is specific to Wilson fermions!

Definition at line 22 of file eoprec_ovdwf_linop_array_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 28 of file eoprec_ovdwf_linop_array_w.h.

◆ Q

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

Definition at line 29 of file eoprec_ovdwf_linop_array_w.h.

◆ T

typedef LatticeFermion Chroma::EvenOddPrecOvDWLinOpArray::T

Definition at line 27 of file eoprec_ovdwf_linop_array_w.h.

Constructor & Destructor Documentation

◆ EvenOddPrecOvDWLinOpArray() [1/2]

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

Full constructor.

Definition at line 32 of file eoprec_ovdwf_linop_array_w.h.

References create(), and m_q.

◆ ~EvenOddPrecOvDWLinOpArray()

Chroma::EvenOddPrecOvDWLinOpArray::~EvenOddPrecOvDWLinOpArray ( )
inline

Destructor is automatic.

Definition at line 41 of file eoprec_ovdwf_linop_array_w.h.

◆ EvenOddPrecOvDWLinOpArray() [2/2]

Chroma::EvenOddPrecOvDWLinOpArray::EvenOddPrecOvDWLinOpArray ( )
inlineprotected

Partial constructor.

Definition at line 148 of file eoprec_ovdwf_linop_array_w.h.

Member Function Documentation

◆ Dminus()

void Chroma::EvenOddPrecOvDWLinOpArray::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 296 of file eoprec_ovdwf_linop_array_w.cc.

References chi, Chroma::isign, and psi.

◆ evenEvenInvLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 60 of file eoprec_ovdwf_linop_array_w.h.

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

◆ evenEvenLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 51 of file eoprec_ovdwf_linop_array_w.h.

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

◆ evenOddLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 68 of file eoprec_ovdwf_linop_array_w.h.

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

◆ getFermBC()

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

◆ oddEvenLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 76 of file eoprec_ovdwf_linop_array_w.h.

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

◆ oddOddInvLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 94 of file eoprec_ovdwf_linop_array_w.h.

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

◆ oddOddLinOp()

void Chroma::EvenOddPrecOvDWLinOpArray::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 85 of file eoprec_ovdwf_linop_array_w.h.

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

◆ operator=()

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

Hide =.

Definition at line 150 of file eoprec_ovdwf_linop_array_w.h.

◆ size()

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

Member Data Documentation

◆ a5

Real Chroma::EvenOddPrecOvDWLinOpArray::a5
private

Definition at line 155 of file eoprec_ovdwf_linop_array_w.h.

◆ b5InvTwoKappa

Real Chroma::EvenOddPrecOvDWLinOpArray::b5InvTwoKappa
private

Definition at line 161 of file eoprec_ovdwf_linop_array_w.h.

◆ b5TwoKappa

Real Chroma::EvenOddPrecOvDWLinOpArray::b5TwoKappa
private

Definition at line 160 of file eoprec_ovdwf_linop_array_w.h.

◆ c5InvTwoKappa

Real Chroma::EvenOddPrecOvDWLinOpArray::c5InvTwoKappa
private

Definition at line 159 of file eoprec_ovdwf_linop_array_w.h.

◆ c5TwoKappa

Real Chroma::EvenOddPrecOvDWLinOpArray::c5TwoKappa
private

Definition at line 158 of file eoprec_ovdwf_linop_array_w.h.

◆ D

WilsonDslash Chroma::EvenOddPrecOvDWLinOpArray::D
private

Definition at line 167 of file eoprec_ovdwf_linop_array_w.h.

Referenced by getFermBC().

◆ invDfactor

Real Chroma::EvenOddPrecOvDWLinOpArray::invDfactor
private

Definition at line 165 of file eoprec_ovdwf_linop_array_w.h.

◆ Kappa

Real Chroma::EvenOddPrecOvDWLinOpArray::Kappa
private

Definition at line 164 of file eoprec_ovdwf_linop_array_w.h.

◆ m_q

Real Chroma::EvenOddPrecOvDWLinOpArray::m_q
private

Definition at line 154 of file eoprec_ovdwf_linop_array_w.h.

Referenced by EvenOddPrecOvDWLinOpArray().

◆ N5

int Chroma::EvenOddPrecOvDWLinOpArray::N5
private

Definition at line 156 of file eoprec_ovdwf_linop_array_w.h.

Referenced by size().

◆ TwoKappa

Real Chroma::EvenOddPrecOvDWLinOpArray::TwoKappa
private

Definition at line 163 of file eoprec_ovdwf_linop_array_w.h.

◆ WilsonMass

Real Chroma::EvenOddPrecOvDWLinOpArray::WilsonMass
private

Definition at line 153 of file eoprec_ovdwf_linop_array_w.h.


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