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

Even-odd preconditioned Twisted-mass linop where each flavor is one of two array elements. More...

#include <eoprec_twm_linop_array_w.h>

Inheritance diagram for Chroma::EvenOddPrecTwmLinOpArray:
Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::EvenOddPrecLinearOperator< T, P, Q > Chroma::DiffLinearOperator< T, P, Q > Chroma::LinearOperator< T >

Public Types

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

Public Member Functions

 EvenOddPrecTwmLinOpArray ()
 Partial constructor. More...
 
 EvenOddPrecTwmLinOpArray (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &mu_sigma_, const Real &mu_delta_)
 Full constructor. More...
 
 ~EvenOddPrecTwmLinOpArray ()
 Destructor is automatic. More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
void create (Handle< FermState< T, P, Q > > fs, const Real &Mass_, const Real &mu_delta_, const Real &mu_sigma_)
 Creation routine. More...
 
void evenEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the even-even block onto a source std::vector. More...
 
void evenEvenInvLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the inverse of the even-even block onto a source std::vector. More...
 
void evenOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the even-odd block onto a source std::vector. More...
 
void oddEvenLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the odd-even block onto a source std::vector. More...
 
void oddOddLinOp (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the odd-odd block onto a source std::vector. More...
 
void operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Override inherited one with a few more funkies. More...
 
void derivEvenEvenLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the even-even block onto a source std::vector. More...
 
void derivEvenOddLinOp (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const 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 LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the the odd-even block onto a source std::vector. More...
 
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 std::vector. More...
 
unsigned long nFlops () const
 Return flops performed by the operator() More...
 
- Public Member Functions inherited from Chroma::EvenOddPrecConstDetLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~EvenOddPrecConstDetLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the derivative of the operator onto a source std::vector. More...
 
virtual void derivEvenEvenLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 
virtual void derivEvenOddLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 
virtual void derivOddEvenLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 
virtual void derivOddOddLinOpMP (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 
virtual void derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Apply the derivative of the operator onto a source std::vector. More...
 
- Public Member Functions inherited from Chroma::EvenOddPrecLinearOperator< T, P, Q >
virtual ~EvenOddPrecLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
const Subset & subset () const
 Only defined on the odd lattice. More...
 
virtual void unprecLinOp (T &chi, const T &psi, enum PlusMinus isign) const
 Apply the UNPRECONDITIONED operator onto a source std::vector. More...
 
virtual void derivUnprecLinOp (P &ds_u, const T &chi, const T &psi, enum PlusMinus isign) const
 
virtual unsigned long evenEvenNFlops () const
 Return flops performed by the evenEvenLinOp. 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...
 
- Public Member Functions inherited from Chroma::DiffLinearOperator< T, P, Q >
virtual ~DiffLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void deriv (P &ds_u, const T &chi, const 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::LinearOperator< T >
virtual ~LinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual void operator() (T &chi, const T &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to some precision. More...
 

Private Attributes

Real fact
 
Real invfact1
 
Real invfact2
 
Real Mass
 
Real mu_sigma
 
Real mu_delta
 
WilsonDslash D
 

Detailed Description

Even-odd preconditioned Twisted-mass linop where each flavor is one of two array elements.

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 25 of file eoprec_twm_linop_array_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 31 of file eoprec_twm_linop_array_w.h.

◆ Q

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

Definition at line 32 of file eoprec_twm_linop_array_w.h.

◆ T

typedef LatticeFermion Chroma::EvenOddPrecTwmLinOpArray::T

Definition at line 30 of file eoprec_twm_linop_array_w.h.

Constructor & Destructor Documentation

◆ EvenOddPrecTwmLinOpArray() [1/2]

Chroma::EvenOddPrecTwmLinOpArray::EvenOddPrecTwmLinOpArray ( )
inline

Partial constructor.

Definition at line 35 of file eoprec_twm_linop_array_w.h.

◆ EvenOddPrecTwmLinOpArray() [2/2]

Chroma::EvenOddPrecTwmLinOpArray::EvenOddPrecTwmLinOpArray ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_,
const Real &  mu_sigma_,
const Real &  mu_delta_ 
)
inline

Full constructor.

Definition at line 38 of file eoprec_twm_linop_array_w.h.

References create().

◆ ~EvenOddPrecTwmLinOpArray()

Chroma::EvenOddPrecTwmLinOpArray::~EvenOddPrecTwmLinOpArray ( )
inline

Destructor is automatic.

Definition at line 43 of file eoprec_twm_linop_array_w.h.

Member Function Documentation

◆ create()

void Chroma::EvenOddPrecTwmLinOpArray::create ( Handle< FermState< T, P, Q > >  fs,
const Real &  Mass_,
const Real &  mu_delta_,
const Real &  mu_sigma_ 
)

Creation routine.

Referenced by EvenOddPrecTwmLinOpArray().

◆ derivEvenEvenLinOp()

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

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

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

Definition at line 78 of file eoprec_twm_linop_array_w.h.

References Nd, and Chroma::zero.

◆ derivEvenOddLinOp()

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

◆ derivOddEvenLinOp()

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

◆ derivOddOddLinOp()

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

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

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

Definition at line 98 of file eoprec_twm_linop_array_w.h.

References Nd, and Chroma::zero.

◆ evenEvenInvLinOp()

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

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

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

◆ evenEvenLinOp()

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

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

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

◆ evenOddLinOp()

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

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

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

◆ getFermBC()

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

◆ nFlops()

unsigned long Chroma::EvenOddPrecTwmLinOpArray::nFlops ( ) const
virtual

Return flops performed by the operator()

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

◆ oddEvenLinOp()

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

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

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

◆ oddOddLinOp()

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

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

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

◆ operator()()

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

Override inherited one with a few more funkies.

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

Member Data Documentation

◆ D

WilsonDslash Chroma::EvenOddPrecTwmLinOpArray::D
private

Definition at line 117 of file eoprec_twm_linop_array_w.h.

Referenced by getFermBC().

◆ fact

Real Chroma::EvenOddPrecTwmLinOpArray::fact
private

Definition at line 110 of file eoprec_twm_linop_array_w.h.

◆ invfact1

Real Chroma::EvenOddPrecTwmLinOpArray::invfact1
private

Definition at line 111 of file eoprec_twm_linop_array_w.h.

◆ invfact2

Real Chroma::EvenOddPrecTwmLinOpArray::invfact2
private

Definition at line 112 of file eoprec_twm_linop_array_w.h.

◆ Mass

Real Chroma::EvenOddPrecTwmLinOpArray::Mass
private

Definition at line 114 of file eoprec_twm_linop_array_w.h.

◆ mu_delta

Real Chroma::EvenOddPrecTwmLinOpArray::mu_delta
private

Definition at line 116 of file eoprec_twm_linop_array_w.h.

◆ mu_sigma

Real Chroma::EvenOddPrecTwmLinOpArray::mu_sigma
private

Definition at line 115 of file eoprec_twm_linop_array_w.h.


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