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

Internal Overlap-pole operator. More...

#include <lovlap_double_pass_w.h>

Inheritance diagram for Chroma::lovlap_double_pass:
Chroma::UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > Chroma::LinearOperator< LatticeFermion >

Public Types

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

Public Member Functions

 lovlap_double_pass (const UnprecWilsonTypeFermAct< T, P, Q > &S_aux, Handle< FermState< T, P, Q > > state, const Real &_m_q, int _numroot, const Real &_constP, const multi1d< Real > &_resP, const multi1d< Real > &_rootQ, int _NEig, const multi1d< Real > &_EigValFunc, const multi1d< LatticeFermion > &_EigVec, int _MaxCG, const Real &_RsdCG, const int _ReorthFreq)
 Creation routine. More...
 
 ~lovlap_double_pass ()
 Destructor is automatic. More...
 
const Subset & subset () const
 Only defined on the entire lattice. More...
 
void operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign) const
 Apply the operator onto a source std::vector. More...
 
void operator() (LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, Real epsilon) const
 Apply the operator onto a source std::vector to given epsilon. More...
 
const FermBC< T, P, Q > & getFermBC () const
 Return the fermion BC object for this linear operator. More...
 
- Public Member Functions inherited from Chroma::UnprecLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~UnprecLinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
const Subset & subset () const
 Only defined on the entire lattice. More...
 
- Public Member Functions inherited from Chroma::DiffLinearOperator< LatticeFermion, multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > >
virtual ~DiffLinearOperator ()
 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 deriv (multi1d< LatticeColorMatrix > &ds_u, const LatticeFermion &chi, const LatticeFermion &psi, enum PlusMinus isign, const Real &epsilon) const
 Apply the derivative of the operator onto a source std::vector to some precision. More...
 
virtual void derivMultipole (multi1d< LatticeColorMatrix > &ds_u, const multi1d< LatticeFermion > &chi, const multi1d< LatticeFermion > &psi, enum PlusMinus isign) const
 Return the force for multiple poles. More...
 
- Public Member Functions inherited from Chroma::LinearOperator< LatticeFermion >
virtual ~LinearOperator ()
 Virtual destructor to help with cleanup;. More...
 
virtual unsigned long nFlops () const
 

Private Attributes

Handle< LinearOperator< T > > M
 
Handle< LinearOperator< T > > MdagM
 
Handle< FermBC< T, P, Q > > fbc
 
const Real m_q
 
int numroot
 
const Real constP
 
const multi1d< Real > resP
 
const multi1d< Real > rootQ
 
const multi1d< LatticeFermion > EigVec
 
const multi1d< Real > EigValFunc
 
int NEig
 
int MaxCG
 
const Real RsdCG
 
const int ReorthFreq
 

Detailed Description

Internal Overlap-pole operator.

This routine is specific to Wilson fermions!

Chi = (1/2)*((1+m_q) + (1-m_q) * gamma_5 * B) . Psi where B is the pole approx. to eps(H(m))

Internally, it computes Chi = ((1+m_q)/(1-m_q) + gamma_5 * B) . Psi and then rescales at the end to the correct normalization

NOTE: B is hermitian, so
(1 + gamma_5 * B)^dag = (1 + B * gamma_5) = gamma_5 * (1 + gamma_5 * B) * gamma_5

Definition at line 33 of file lovlap_double_pass_w.h.

Member Typedef Documentation

◆ P

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

Definition at line 39 of file lovlap_double_pass_w.h.

◆ Q

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

Definition at line 40 of file lovlap_double_pass_w.h.

◆ T

typedef LatticeFermion Chroma::lovlap_double_pass::T

Definition at line 38 of file lovlap_double_pass_w.h.

Constructor & Destructor Documentation

◆ ~lovlap_double_pass()

Chroma::lovlap_double_pass::~lovlap_double_pass ( )
inline

Destructor is automatic.

Definition at line 77 of file lovlap_double_pass_w.h.

Member Function Documentation

◆ getFermBC()

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

Return the fermion BC object for this linear operator.

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

Definition at line 91 of file lovlap_double_pass_w.h.

References fbc.

◆ subset()

const Subset& Chroma::lovlap_double_pass::subset ( void  ) const
inlinevirtual

Only defined on the entire lattice.

Implements Chroma::LinearOperator< LatticeFermion >.

Definition at line 80 of file lovlap_double_pass_w.h.

Member Data Documentation

◆ constP

const Real Chroma::lovlap_double_pass::constP
private

Definition at line 101 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ EigValFunc

const multi1d<Real> Chroma::lovlap_double_pass::EigValFunc
private

Definition at line 105 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ EigVec

const multi1d<LatticeFermion> Chroma::lovlap_double_pass::EigVec
private

Definition at line 104 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ fbc

Handle< FermBC<T,P,Q> > Chroma::lovlap_double_pass::fbc
private

Definition at line 96 of file lovlap_double_pass_w.h.

Referenced by getFermBC().

◆ M

Handle< LinearOperator<T> > Chroma::lovlap_double_pass::M
private

Definition at line 94 of file lovlap_double_pass_w.h.

◆ m_q

const Real Chroma::lovlap_double_pass::m_q
private

Definition at line 99 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ MaxCG

int Chroma::lovlap_double_pass::MaxCG
private

Definition at line 107 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ MdagM

Handle< LinearOperator<T> > Chroma::lovlap_double_pass::MdagM
private

Definition at line 95 of file lovlap_double_pass_w.h.

◆ NEig

int Chroma::lovlap_double_pass::NEig
private

Definition at line 106 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ numroot

int Chroma::lovlap_double_pass::numroot
private

Definition at line 100 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ ReorthFreq

const int Chroma::lovlap_double_pass::ReorthFreq
private

Definition at line 109 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ resP

const multi1d<Real> Chroma::lovlap_double_pass::resP
private

Definition at line 102 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ rootQ

const multi1d<Real> Chroma::lovlap_double_pass::rootQ
private

Definition at line 103 of file lovlap_double_pass_w.h.

Referenced by operator()().

◆ RsdCG

const Real Chroma::lovlap_double_pass::RsdCG
private

Definition at line 108 of file lovlap_double_pass_w.h.

Referenced by operator()().


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