Chroma::EvenOddPrecParWilsonLinOp Class Reference
[Fermion linear operators]

Even-odd preconditioned Wilson fermion linear operator with parity breaking term. More...

#include <eoprec_parwilson_linop_w.h>

Inheritance diagram for Chroma::EvenOddPrecParWilsonLinOp:

Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::EvenOddPrecLinearOperator< T, P, Q > Chroma::DiffLinearOperator< T, P, Q > Chroma::LinearOperator< T > List of all members.

Public Types

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

Public Member Functions

 EvenOddPrecParWilsonLinOp ()
 Partial constructor.
 EvenOddPrecParWilsonLinOp (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &H_)
 Full constructor.
 ~EvenOddPrecParWilsonLinOp ()
 Destructor is automatic.
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator.
void create (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &H_)
 Creation routine.
void evenEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the even-even block onto a source vector.
void evenEvenInvLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the inverse of the even-even block onto a source vector.
void evenOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply even-odd linop component.
void oddEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply odd-even linop component.
void oddOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source vector.
void operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Override inherited one with a few more funkies.
void derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the even-even block onto a source vector.
void derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Derivative of even-odd linop component.
void derivOddEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Derivative of odd-even linop component.
void derivOddOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source vector.
unsigned long nFlops () const
 Return flops performed by the operator().

Private Attributes

Real fact
Real invfact1
Real invfact2
Real Mass
Real H
WilsonDslash D

Detailed Description

Even-odd preconditioned Wilson fermion linear operator with parity breaking term.

This routine is specific to Wilson fermions!

The kernel for Wilson fermions with a parity breaking term is

M = (d+M) + i*H*gamma_5 - (1/2) D'

Definition at line 27 of file eoprec_parwilson_linop_w.h.


Member Typedef Documentation

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

Definition at line 33 of file eoprec_parwilson_linop_w.h.

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

Definition at line 34 of file eoprec_parwilson_linop_w.h.

typedef LatticeFermion Chroma::EvenOddPrecParWilsonLinOp::T

Definition at line 32 of file eoprec_parwilson_linop_w.h.


Constructor & Destructor Documentation

Chroma::EvenOddPrecParWilsonLinOp::EvenOddPrecParWilsonLinOp (  )  [inline]

Partial constructor.

Definition at line 37 of file eoprec_parwilson_linop_w.h.

Chroma::EvenOddPrecParWilsonLinOp::EvenOddPrecParWilsonLinOp ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_,
const Real &  H_ 
) [inline]

Full constructor.

Definition at line 40 of file eoprec_parwilson_linop_w.h.

References create().

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

Destructor is automatic.

Definition at line 45 of file eoprec_parwilson_linop_w.h.


Member Function Documentation

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

Creation routine.

Parameters:
u_ gauge field (Read)
Mass_ fermion mass (Read)
H_ parity breaking term (Read)

Definition at line 16 of file eoprec_parwilson_linop_w.cc.

References Chroma::QDPWilsonDslashT< T, P, Q >::create(), D, fact, H, invfact1, invfact2, and Mass.

Referenced by EvenOddPrecParWilsonLinOp().

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

Apply the even-even block onto a source vector.

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

Definition at line 80 of file eoprec_parwilson_linop_w.h.

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

Derivative of even-odd linop component.

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

Definition at line 193 of file eoprec_parwilson_linop_w.cc.

References D, Chroma::WilsonDslashBase< T, P, Q >::deriv(), END_CODE, and START_CODE.

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

Derivative of odd-even linop component.

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

Definition at line 213 of file eoprec_parwilson_linop_w.cc.

References D, Chroma::WilsonDslashBase< T, P, Q >::deriv(), END_CODE, and START_CODE.

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

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

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

Definition at line 100 of file eoprec_parwilson_linop_w.h.

void Chroma::EvenOddPrecParWilsonLinOp::evenEvenInvLinOp ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

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

Definition at line 59 of file eoprec_parwilson_linop_w.cc.

References invfact1, invfact2, Chroma::MINUS, and Chroma::PLUS.

void Chroma::EvenOddPrecParWilsonLinOp::evenEvenLinOp ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

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

Definition at line 33 of file eoprec_parwilson_linop_w.cc.

References fact, H, Chroma::MINUS, and Chroma::PLUS.

void Chroma::EvenOddPrecParWilsonLinOp::evenOddLinOp ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

Apply even-odd linop component.

The operator acts on the entire even sublattice

Parameters:
chi Pseudofermion field (Write)
psi Pseudofermion field (Read)
isign Flag ( PLUS | MINUS ) (Read)

Definition at line 103 of file eoprec_parwilson_linop_w.cc.

References Chroma::QDPWilsonDslashT< T, P, Q >::apply(), D, END_CODE, and START_CODE.

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

Return the fermion BC object for this linear operator.

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

Definition at line 48 of file eoprec_parwilson_linop_w.h.

References D, and Chroma::QDPWilsonDslashT< T, P, Q >::getFermBC().

Referenced by operator()().

unsigned long Chroma::EvenOddPrecParWilsonLinOp::nFlops (  )  const [virtual]

Return flops performed by the operator().

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

Definition at line 50 of file eoprec_parwilson_linop_w.cc.

References D, and Chroma::WilsonDslashBase< T, P, Q >::nFlops().

void Chroma::EvenOddPrecParWilsonLinOp::oddEvenLinOp ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

Apply odd-even linop component.

The operator acts on the entire odd sublattice

Parameters:
chi Pseudofermion field (Write)
psi Pseudofermion field (Read)
isign Flag ( PLUS | MINUS ) (Read)

Definition at line 127 of file eoprec_parwilson_linop_w.cc.

References Chroma::QDPWilsonDslashT< T, P, Q >::apply(), D, END_CODE, and START_CODE.

void Chroma::EvenOddPrecParWilsonLinOp::oddOddLinOp ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

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

Definition at line 79 of file eoprec_parwilson_linop_w.cc.

References fact, H, Chroma::MINUS, and Chroma::PLUS.

void Chroma::EvenOddPrecParWilsonLinOp::operator() ( LatticeFermion &  chi,
const LatticeFermion &  psi,
enum PlusMinus  isign 
) const

Override inherited one with a few more funkies.

Definition at line 144 of file eoprec_parwilson_linop_w.cc.

References Chroma::QDPWilsonDslashT< T, P, Q >::apply(), D, fact, getFermBC(), H, invfact1, invfact2, Chroma::MINUS, and Chroma::PLUS.


Member Data Documentation

WilsonDslash Chroma::EvenOddPrecParWilsonLinOp::D [private]

Definition at line 119 of file eoprec_parwilson_linop_w.h.

Referenced by create(), derivEvenOddLinOp(), derivOddEvenLinOp(), evenOddLinOp(), getFermBC(), nFlops(), oddEvenLinOp(), and operator()().

Real Chroma::EvenOddPrecParWilsonLinOp::fact [private]

Definition at line 112 of file eoprec_parwilson_linop_w.h.

Referenced by create(), evenEvenLinOp(), oddOddLinOp(), and operator()().

Real Chroma::EvenOddPrecParWilsonLinOp::H [private]

Definition at line 117 of file eoprec_parwilson_linop_w.h.

Referenced by create(), evenEvenLinOp(), oddOddLinOp(), and operator()().

Real Chroma::EvenOddPrecParWilsonLinOp::invfact1 [private]

Definition at line 113 of file eoprec_parwilson_linop_w.h.

Referenced by create(), evenEvenInvLinOp(), and operator()().

Real Chroma::EvenOddPrecParWilsonLinOp::invfact2 [private]

Definition at line 114 of file eoprec_parwilson_linop_w.h.

Referenced by create(), evenEvenInvLinOp(), and operator()().

Real Chroma::EvenOddPrecParWilsonLinOp::Mass [private]

Definition at line 116 of file eoprec_parwilson_linop_w.h.

Referenced by create().


The documentation for this class was generated from the following files:
Generated on Sat Mar 13 04:40:19 2010 for CHROMA by  doxygen 1.4.7