CHROMA
Public Member Functions | Protected Member Functions | List of all members
Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi > Class Template Referenceabstract

Exact 1 flavor fermact monomial in extra dimensions. More...

#include <one_flavor_ratio_rat_rat_monomial5d_w.h>

Inheritance diagram for Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >:
Chroma::ExactWilsonTypeFermMonomial5D< P, Q, Phi > Chroma::ExactFermMonomial5D< P, Q, Phi > Chroma::ExactFermMonomial< P, Q, Phi > Chroma::ExactMonomial< P, Q > Chroma::Monomial< P, Q > Chroma::OneFlavorRatioRatRatExactUnprecWilsonTypeFermMonomial5D< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion > Chroma::OneFlavorRatioRatRatExactEvenOddPrecWilsonTypeFermMonomial5D< P, Q, Phi > Chroma::OneFlavorRatioRatRatExactUnprecWilsonTypeFermMonomial5D< P, Q, Phi > Chroma::UnprecOneFlavorWilsonTypeFermRatioRatRatMonomial5D Chroma::OneFlavorRatioRatRatExactEvenOddPrecConstDetWilsonTypeFermMonomial5D< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion > Chroma::OneFlavorRatioRatRatExactEvenOddPrecConstDetWilsonTypeFermMonomial5D< P, Q, Phi > Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatRatMonomial5D

Public Member Functions

 ~OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D ()
 virtual destructor: More...
 
virtual Double S (const AbsFieldState< P, Q > &s)=0
 Compute the total action. More...
 
virtual void dsdq (P &F, const AbsFieldState< P, Q > &s)
 Compute dsdq for the system... More...
 
virtual void refreshInternalFields (const AbsFieldState< P, Q > &s)
 Refresh pseudofermions. More...
 
virtual void setInternalFields (const Monomial< P, Q > &m)
 Copy internal fields. More...
 
virtual Double S_subset (const AbsFieldState< P, Q > &s) const
 Compute action on the appropriate subset. More...
 
- Public Member Functions inherited from Chroma::ExactWilsonTypeFermMonomial5D< P, Q, Phi >
 ~ExactWilsonTypeFermMonomial5D ()
 virtual destructor: More...
 
virtual void resetPredictors (void)
 Reset predictors. More...
 
- Public Member Functions inherited from Chroma::ExactFermMonomial5D< P, Q, Phi >
 ~ExactFermMonomial5D ()
 virtual destructor: More...
 
- Public Member Functions inherited from Chroma::ExactFermMonomial< P, Q, Phi >
 ~ExactFermMonomial ()
 virtual destructor: More...
 
- Public Member Functions inherited from Chroma::ExactMonomial< P, Q >
virtual ~ExactMonomial ()
 virtual destructor: More...
 
- Public Member Functions inherited from Chroma::Monomial< P, Q >
virtual ~Monomial ()
 virtual destructor: More...
 

Protected Member Functions

virtual const WilsonTypeFermAct5D< Phi, P, Q > & getFermAct () const
 Get at fermion action. More...
 
virtual const WilsonTypeFermAct5D< Phi, P, Q > & getNumerFermAct () const =0
 Get at fermion action. More...
 
virtual const WilsonTypeFermAct5D< Phi, P, Q > & getDenomFermAct () const =0
 Get at fermion action. More...
 
virtual const GroupXML_tgetNumerActionInvParams (void) const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetNumerForceInvParams (void) const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetDenomActionInvParams (void) const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetDenomForceInvParams (void) const =0
 Get inverter params. More...
 
virtual const RemezCoeff_tgetNumerFPFE () const =0
 Return the partial fraction expansion for the force calc. More...
 
virtual const RemezCoeff_tgetNumerSPFE () const =0
 Return the partial fraction expansion for the action calc. More...
 
virtual const RemezCoeff_tgetNumerSIPFE () const =0
 Return the partial fraction expansion for the heat-bath. More...
 
virtual const RemezCoeff_tgetDenomFPFE () const =0
 Return the partial fraction expansion for the force calc. More...
 
virtual const RemezCoeff_tgetDenomSPFE () const =0
 Return the partial fraction expansion for the action calc. More...
 
virtual const RemezCoeff_tgetDenomSIPFE () const =0
 Return the partial fraction expansion for the heat-bath. More...
 
virtual const multi1d< multi1d< Phi > > & getPhi (void) const =0
 Accessor for pseudofermion (read only) More...
 
virtual multi1d< multi1d< Phi > > & getPhi (void)=0
 mutator for pseudofermion More...
 
virtual int getNPF () const =0
 Return number of pseudofermions. More...
 

Detailed Description

template<typename P, typename Q, typename Phi>
class Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >

Exact 1 flavor fermact monomial in extra dimensions.

Exact 1 flavor fermact monomial. Preconditioning is not specified yet. Can supply a default dsdq and pseudoferm refresh algorithm

Definition at line 29 of file one_flavor_ratio_rat_rat_monomial5d_w.h.

Constructor & Destructor Documentation

◆ ~OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D()

template<typename P , typename Q , typename Phi >
Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::~OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D ( )
inline

virtual destructor:

Definition at line 33 of file one_flavor_ratio_rat_rat_monomial5d_w.h.

Member Function Documentation

◆ dsdq()

template<typename P , typename Q , typename Phi >
virtual void Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::dsdq ( P F,
const AbsFieldState< P, Q > &  s 
)
inlinevirtual

◆ getDenomActionInvParams()

template<typename P , typename Q , typename Phi >
virtual const GroupXML_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomActionInvParams ( void  ) const
protectedpure virtual

◆ getDenomFermAct()

template<typename P , typename Q , typename Phi >
virtual const WilsonTypeFermAct5D<Phi,P,Q>& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomFermAct ( ) const
protectedpure virtual

◆ getDenomForceInvParams()

template<typename P , typename Q , typename Phi >
virtual const GroupXML_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomForceInvParams ( void  ) const
protectedpure virtual

◆ getDenomFPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomFPFE ( ) const
protectedpure virtual

◆ getDenomSIPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomSIPFE ( ) const
protectedpure virtual

◆ getDenomSPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getDenomSPFE ( ) const
protectedpure virtual

◆ getFermAct()

template<typename P , typename Q , typename Phi >
virtual const WilsonTypeFermAct5D<Phi,P,Q>& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getFermAct ( void  ) const
inlineprotectedvirtual

◆ getNPF()

template<typename P , typename Q , typename Phi >
virtual int Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNPF ( ) const
protectedpure virtual

◆ getNumerActionInvParams()

template<typename P , typename Q , typename Phi >
virtual const GroupXML_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerActionInvParams ( void  ) const
protectedpure virtual

◆ getNumerFermAct()

template<typename P , typename Q , typename Phi >
virtual const WilsonTypeFermAct5D<Phi,P,Q>& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerFermAct ( ) const
protectedpure virtual

◆ getNumerForceInvParams()

template<typename P , typename Q , typename Phi >
virtual const GroupXML_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerForceInvParams ( void  ) const
protectedpure virtual

◆ getNumerFPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerFPFE ( ) const
protectedpure virtual

◆ getNumerSIPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerSIPFE ( ) const
protectedpure virtual

◆ getNumerSPFE()

template<typename P , typename Q , typename Phi >
virtual const RemezCoeff_t& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerSPFE ( ) const
protectedpure virtual

◆ getPhi() [1/2]

template<typename P , typename Q , typename Phi >
virtual const multi1d< multi1d<Phi> >& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getPhi ( void  ) const
protectedpure virtual

◆ getPhi() [2/2]

template<typename P , typename Q , typename Phi >
virtual multi1d< multi1d<Phi> >& Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getPhi ( void  )
protectedpure virtual

◆ refreshInternalFields()

template<typename P , typename Q , typename Phi >
virtual void Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::refreshInternalFields ( const AbsFieldState< P, Q > &  s)
inlinevirtual

Refresh pseudofermions.

This routine calculates the pseudofermion field (chi) for the case of rational evolution

      chi =  n(Q)*[d(Q)]^(-1) * eta

Where: Q = M^dag*M d(Q) = (Q+q_1)*(Q+q_2)*...*(Q+q_m) n(Q) = (Q+p_1)*(Q+p_2)*... *(Q+p_m) m = SIRatDeg

The rational function n(x)/d(x) is the optimal rational approximation to the inverse square root of N(x)/D(x) which in turn is the optimal rational approximation to x^(-alpha). Here, alpha = 1/2

To solve {n(Q)*[d(Q)]^(-1) * eta} the partial fraction expansion is used in combination with a multishift solver.

Implements Chroma::ExactWilsonTypeFermMonomial5D< P, Q, Phi >.

Definition at line 158 of file one_flavor_ratio_rat_rat_monomial5d_w.h.

References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::eta, Chroma::gaussian(), Chroma::FermionAction< T, P, Q >::getFermBC(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerSIPFE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getPhi(), Chroma::i, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), j, Chroma::DiffFermAct5D< T, P, Q >::linOp(), Chroma::WilsonTypeFermAct5D< T, P, Q >::mInvMdagM(), n, N5, Chroma::SystemSolverResults_t::n_count, Chroma::RemezCoeff_t::norm, Chroma::RemezCoeff_t::pole, Chroma::pop(), Chroma::push(), Chroma::QDP_error_exit(), Chroma::RemezCoeff_t::res, Chroma::s(), Chroma::FermAct5D< T, P, Q >::size(), Chroma::START_CODE(), Chroma::write(), and Chroma::zero.

◆ S()

template<typename P , typename Q , typename Phi >
virtual Double Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::S ( const AbsFieldState< P, Q > &  s)
pure virtual

◆ S_subset()

template<typename P , typename Q , typename Phi >
virtual Double Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::S_subset ( const AbsFieldState< P, Q > &  s) const
inlinevirtual

Compute action on the appropriate subset.

This may only be a Piece Of The Action

This function measures the pseudofermion contribution to the Hamiltonian for the case of rational evolution (with polynomials n(x) and d(x), of degree SRatDeg

S_f = chi_dag * (n(A)*d(A)^(-1))^2* chi

where A is M^dag*M

The rational function n(x)/d(x) is the optimal rational approximation to the square root of N(x)/D(x) which in turn is the optimal rational approximation to x^(-alpha). Here, alpha = 1/2

Definition at line 280 of file one_flavor_ratio_rat_rat_monomial5d_w.h.

References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getNumerSPFE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::getPhi(), Chroma::i, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), j, Chroma::DiffFermAct5D< T, P, Q >::linOp(), Chroma::WilsonTypeFermAct5D< T, P, Q >::mInvMdagM(), n, N5, Chroma::SystemSolverResults_t::n_count, Chroma::RemezCoeff_t::norm, Chroma::RemezCoeff_t::pole, Chroma::pop(), Chroma::push(), Chroma::QDP_error_exit(), Chroma::RemezCoeff_t::res, Chroma::s(), Chroma::FermAct5D< T, P, Q >::size(), Chroma::START_CODE(), Chroma::tmp, Chroma::write(), and Chroma::zero.

Referenced by Chroma::OneFlavorRatioRatRatExactUnprecWilsonTypeFermMonomial5D< P, Q, Phi >::S(), and Chroma::OneFlavorRatioRatRatExactEvenOddPrecWilsonTypeFermMonomial5D< P, Q, Phi >::S_odd_odd().

◆ setInternalFields()

template<typename P , typename Q , typename Phi >
virtual void Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial5D< P, Q, Phi >::setInternalFields ( const Monomial< P, Q > &  m)
inlinevirtual

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