Chroma::EvenOddPrecOvExtLinOpArray Class Reference
[Fermion linear operators]

EvenOddPreconditioned Extended-Overlap (N&N) linear operator. More...

#include <eoprec_ovext_linop_array_w.h>

Inheritance diagram for Chroma::EvenOddPrecOvExtLinOpArray:

Chroma::EvenOddPrecConstDetLinearOperatorArray< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::EvenOddPrecLinearOperatorArray< T, P, Q > Chroma::DiffLinearOperatorArray< T, P, Q > Chroma::LinearOperatorArray< T > List of all members.

Public Types

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

Public Member Functions

 EvenOddPrecOvExtLinOpArray (Handle< FermState< T, P, Q > > fs, const int Npoles_, const Real &coeffP_, const multi1d< Real > &resP_, const multi1d< Real > &rootQ_, const multi1d< Real > &beta_, const Real &OverMass_, const Real &Mass_, const Real &b5_, const Real &c5_)
 Full constructor.
void create (Handle< FermState< T, P, Q > > fs, const int Npoles_, const Real &coeffP_, const multi1d< Real > &resP_, const multi1d< Real > &rootQ_, const multi1d< Real > &beta_, const Real &OverMass_, const Real &m_q_, const Real &b5_, const Real &c5_)
 Creation routine.
int size () const
 Length of DW flavor index/space.
 ~EvenOddPrecOvExtLinOpArray ()
 Destructor is automatic.
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator.
void evenEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
void oddOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source vector.
void evenOddLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the even-odd block onto a source vector.
void oddEvenLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the the odd-even block onto a source vector.
void evenEvenInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the inverse of the odd-odd block onto a source vector.
void oddOddInvLinOp (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the inverse of the odd-odd block onto a source vector.
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 vector.
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 vector.
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 vector.
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 vector.
unsigned long evenEvenNFlops (void) const
 Return flops performed by the evenEvenLinOp.
unsigned long oddOddNFlops (void) const
 Return flops performed by the oddOddLinOp.
unsigned long evenOddNFlops (void) const
 Return flops performed by the evenOddLinOp.
unsigned long oddEvenNFlops (void) const
 Return flops performed by the oddEvenLinOp.
unsigned long evenEvenInvNFlops (void) const
 Return flops performed by the evenEvenInvLinOp.
unsigned long nFlops () const
 Return flops performed by the operator().

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.
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.
void applyOffDiag (multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign, const int cb) const
 Apply the off diagonal block.
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.
unsigned long diagNFlops (void) const
 Return flops performed by the diagonal part.
unsigned long offDiagNFlops (void) const
 Return flops performed by the off diagonal part.
unsigned long diagInvNFlops (void) const
 Return flops performed by the diag inv part.
 EvenOddPrecOvExtLinOpArray ()
 Partial constructor.
void operator= (const EvenOddPrecOvExtLinOpArray &)
 Hide =.

Private Attributes

int Npoles
int N5
Real A
multi1d< Real > B
multi1d< Real > D
multi1d< Real > C
Real E
WilsonDslashArray Dslash
Real Aprime
Real Eprime
multi1d< Real > Bprime
multi1d< Real > Dprime
multi1d< Real > Cprime
multi1d< Real > Atilde
multi1d< Real > Btilde
multi1d< Real > Ctilde
multi1d< Real > D_bd_inv
Real S

Detailed Description

EvenOddPreconditioned Extended-Overlap (N&N) linear operator.

This operator applies the extended version of the hermitian overlap operator Chi = ((1+m_q)/(1-m_q)*gamma_5 + B) . Psi where B is the continued fraction of the pole approx. to eps(H(m))

This operator implements hep-lat/0005004

Definition at line 30 of file eoprec_ovext_linop_array_w.h.


Member Typedef Documentation

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

Definition at line 36 of file eoprec_ovext_linop_array_w.h.

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

Definition at line 37 of file eoprec_ovext_linop_array_w.h.

typedef LatticeFermion Chroma::EvenOddPrecOvExtLinOpArray::T

Definition at line 35 of file eoprec_ovext_linop_array_w.h.


Constructor & Destructor Documentation

Chroma::EvenOddPrecOvExtLinOpArray::EvenOddPrecOvExtLinOpArray ( Handle< FermState< T, P, Q > >  fs,
const int  Npoles_,
const Real &  coeffP_,
const multi1d< Real > &  resP_,
const multi1d< Real > &  rootQ_,
const multi1d< Real > &  beta_,
const Real &  OverMass_,
const Real &  Mass_,
const Real &  b5_,
const Real &  c5_ 
) [inline]

Full constructor.

Definition at line 40 of file eoprec_ovext_linop_array_w.h.

References create().

Chroma::EvenOddPrecOvExtLinOpArray::~EvenOddPrecOvExtLinOpArray (  )  [inline]

Destructor is automatic.

Definition at line 69 of file eoprec_ovext_linop_array_w.h.

Chroma::EvenOddPrecOvExtLinOpArray::EvenOddPrecOvExtLinOpArray (  )  [inline, protected]

Partial constructor.

Definition at line 270 of file eoprec_ovext_linop_array_w.h.


Member Function Documentation

void Chroma::EvenOddPrecOvExtLinOpArray::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.

Parameters:
ds_u conjugate momenta (Read)
psi left pseudofermion field (Read)
psi right pseudofermion field (Read)
isign Flag ( PLUS | MINUS ) (Read)
cb checkerboard ( 0 | 1 ) (Read)

Definition at line 431 of file eoprec_ovext_linop_array_w.cc.

Referenced by derivEvenOddLinOp(), and derivOddEvenLinOp().

void Chroma::EvenOddPrecOvExtLinOpArray::applyDiag ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
const int  cb 
) const [protected]

Apply the even-even (odd-odd) coupling piece of the domain-wall fermion operator.

Parameters:
chi result (Modify)
psi source (Read)
isign Flag ( PLUS | MINUS ) (Read)
cb checkerboard ( 0 | 1 ) (Read)

Definition at line 109 of file eoprec_ovext_linop_array_w.cc.

Referenced by evenEvenLinOp(), and oddOddLinOp().

void Chroma::EvenOddPrecOvExtLinOpArray::applyDiagInv ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign,
const int  cb 
) const [protected]

Apply the inverse even-even (odd-odd) coupling piece of the domain-wall fermion operator.

Parameters:
chi result (Modify)
psi source (Read)
isign Flag ( PLUS | MINUS ) (Read)
cb checkerboard ( 0 | 1 ) (Read)

Definition at line 266 of file eoprec_ovext_linop_array_w.cc.

Referenced by evenEvenInvLinOp(), and oddOddInvLinOp().

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

Apply the off diagonal block.

Parameters:
chi result (Modify)
psi source (Read)
isign Flag ( PLUS | MINUS ) (Read)
cb checkerboard ( 0 | 1 ) (Read)

Definition at line 176 of file eoprec_ovext_linop_array_w.cc.

Referenced by evenOddLinOp(), and oddEvenLinOp().

void Chroma::EvenOddPrecOvExtLinOpArray::derivEvenEvenLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

Apply the even-even block onto a source vector.

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

Definition at line 127 of file eoprec_ovext_linop_array_w.h.

void Chroma::EvenOddPrecOvExtLinOpArray::derivEvenOddLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

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

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

Definition at line 147 of file eoprec_ovext_linop_array_w.h.

References applyDerivOffDiag().

void Chroma::EvenOddPrecOvExtLinOpArray::derivOddEvenLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

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

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

Definition at line 155 of file eoprec_ovext_linop_array_w.h.

References applyDerivOffDiag().

void Chroma::EvenOddPrecOvExtLinOpArray::derivOddOddLinOp ( multi1d< LatticeColorMatrix > &  ds_u,
const multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline, virtual]

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

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

Definition at line 138 of file eoprec_ovext_linop_array_w.h.

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::diagInvNFlops ( void   )  const [inline, protected]

Return flops performed by the diag inv part.

Definition at line 263 of file eoprec_ovext_linop_array_w.h.

References N5.

Referenced by evenEvenInvNFlops().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::diagNFlops ( void   )  const [inline, protected]

Return flops performed by the diagonal part.

Definition at line 251 of file eoprec_ovext_linop_array_w.h.

References N5.

Referenced by evenEvenNFlops(), and oddOddNFlops().

void Chroma::EvenOddPrecOvExtLinOpArray::evenEvenInvLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline]

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

Definition at line 109 of file eoprec_ovext_linop_array_w.h.

References applyDiagInv().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::evenEvenInvNFlops ( void   )  const [inline, virtual]

Return flops performed by the evenEvenInvLinOp.

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

Definition at line 184 of file eoprec_ovext_linop_array_w.h.

References diagInvNFlops().

Referenced by nFlops().

void Chroma::EvenOddPrecOvExtLinOpArray::evenEvenLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline]

Definition at line 75 of file eoprec_ovext_linop_array_w.h.

References applyDiag().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::evenEvenNFlops ( void   )  const [inline, virtual]

Return flops performed by the evenEvenLinOp.

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

Definition at line 164 of file eoprec_ovext_linop_array_w.h.

References diagNFlops().

void Chroma::EvenOddPrecOvExtLinOpArray::evenOddLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline]

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

Definition at line 92 of file eoprec_ovext_linop_array_w.h.

References applyOffDiag().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::evenOddNFlops ( void   )  const [inline, virtual]

Return flops performed by the evenOddLinOp.

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

Definition at line 174 of file eoprec_ovext_linop_array_w.h.

References offDiagNFlops().

Referenced by nFlops().

const FermBC<T,P,Q>& Chroma::EvenOddPrecOvExtLinOpArray::getFermBC (  )  const [inline, virtual]

Return the fermion BC object for this linear operator.

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

Definition at line 72 of file eoprec_ovext_linop_array_w.h.

References Dslash, and Chroma::QDPWilsonDslashArrayOpt::getFermBC().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::nFlops ( void   )  const [inline, virtual]

Return flops performed by the operator().

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

Definition at line 189 of file eoprec_ovext_linop_array_w.h.

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

void Chroma::EvenOddPrecOvExtLinOpArray::oddEvenLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline]

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

Definition at line 100 of file eoprec_ovext_linop_array_w.h.

References applyOffDiag().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::oddEvenNFlops ( void   )  const [inline, virtual]

Return flops performed by the oddEvenLinOp.

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

Definition at line 179 of file eoprec_ovext_linop_array_w.h.

References offDiagNFlops().

Referenced by nFlops().

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

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

Definition at line 118 of file eoprec_ovext_linop_array_w.h.

References applyDiagInv().

void Chroma::EvenOddPrecOvExtLinOpArray::oddOddLinOp ( multi1d< LatticeFermion > &  chi,
const multi1d< LatticeFermion > &  psi,
enum PlusMinus  isign 
) const [inline]

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

Definition at line 84 of file eoprec_ovext_linop_array_w.h.

References applyDiag().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::oddOddNFlops ( void   )  const [inline, virtual]

Return flops performed by the oddOddLinOp.

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

Definition at line 169 of file eoprec_ovext_linop_array_w.h.

References diagNFlops().

Referenced by nFlops().

unsigned long Chroma::EvenOddPrecOvExtLinOpArray::offDiagNFlops ( void   )  const [inline, protected]

Return flops performed by the off diagonal part.

Definition at line 257 of file eoprec_ovext_linop_array_w.h.

References N5.

Referenced by evenOddNFlops(), and oddEvenNFlops().

void Chroma::EvenOddPrecOvExtLinOpArray::operator= ( const EvenOddPrecOvExtLinOpArray  )  [inline, protected]

Hide =.

Definition at line 272 of file eoprec_ovext_linop_array_w.h.

int Chroma::EvenOddPrecOvExtLinOpArray::size ( void   )  const [inline, virtual]

Length of DW flavor index/space.

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

Definition at line 66 of file eoprec_ovext_linop_array_w.h.

References N5.


Member Data Documentation

Real Chroma::EvenOddPrecOvExtLinOpArray::A [private]

Definition at line 280 of file eoprec_ovext_linop_array_w.h.

Real Chroma::EvenOddPrecOvExtLinOpArray::Aprime [private]

Definition at line 288 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Atilde [private]

Definition at line 295 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::B [private]

Definition at line 281 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Bprime [private]

Definition at line 290 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Btilde [private]

Definition at line 296 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::C [private]

Definition at line 283 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Cprime [private]

Definition at line 292 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Ctilde [private]

Definition at line 297 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::D [private]

Definition at line 282 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::D_bd_inv [private]

Definition at line 298 of file eoprec_ovext_linop_array_w.h.

multi1d<Real> Chroma::EvenOddPrecOvExtLinOpArray::Dprime [private]

Definition at line 291 of file eoprec_ovext_linop_array_w.h.

WilsonDslashArray Chroma::EvenOddPrecOvExtLinOpArray::Dslash [private]

Definition at line 285 of file eoprec_ovext_linop_array_w.h.

Referenced by getFermBC().

Real Chroma::EvenOddPrecOvExtLinOpArray::E [private]

Definition at line 284 of file eoprec_ovext_linop_array_w.h.

Real Chroma::EvenOddPrecOvExtLinOpArray::Eprime [private]

Definition at line 289 of file eoprec_ovext_linop_array_w.h.

int Chroma::EvenOddPrecOvExtLinOpArray::N5 [private]

Definition at line 276 of file eoprec_ovext_linop_array_w.h.

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

int Chroma::EvenOddPrecOvExtLinOpArray::Npoles [private]

Definition at line 275 of file eoprec_ovext_linop_array_w.h.

Real Chroma::EvenOddPrecOvExtLinOpArray::S [private]

Definition at line 299 of file eoprec_ovext_linop_array_w.h.


The documentation for this class was generated from the following files:
Generated on Sun Nov 22 04:40:09 2009 for CHROMA by  doxygen 1.4.7