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

Exact 1 flavor fermact monomial using rational polynomials. More...

#include <one_flavor_ratio_rat_rat_monomial_w.h>

Inheritance diagram for Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >:
Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi > Chroma::ExactFermMonomial4D< P, Q, Phi > Chroma::ExactFermMonomial< P, Q, Phi > Chroma::ExactMonomial< P, Q > Chroma::Monomial< P, Q > Chroma::OneFlavorRatioRatRatExactUnprecWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion > Chroma::OneFlavorRatioRatRatExactEvenOddPrecWilsonTypeFermMonomial< P, Q, Phi > Chroma::OneFlavorRatioRatRatExactUnprecWilsonTypeFermMonomial< P, Q, Phi > Chroma::UnprecOneFlavorWilsonTypeFermRatioRatRatMonomial Chroma::OneFlavorRatioRatRatExactEvenOddPrecConstDetWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion > Chroma::OneFlavorRatioRatRatExactEvenOddPrecConstDetWilsonTypeFermMonomial< P, Q, Phi > Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatRatMonomial

Public Member Functions

 ~OneFlavorRatioRatRatExactWilsonTypeFermMonomial ()
 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 pseudofermions if any. More...
 
virtual Double S_subset (const AbsFieldState< P, Q > &s) const
 Compute the action on the appropriate subset. More...
 
- Public Member Functions inherited from Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi >
 ~ExactWilsonTypeFermMonomial ()
 virtual destructor: More...
 
virtual void resetPredictors (void)
 Reset predictors. More...
 
- Public Member Functions inherited from Chroma::ExactFermMonomial4D< P, Q, Phi >
 ~ExactFermMonomial4D ()
 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 WilsonTypeFermAct< Phi, P, Q > & getFermAct () const
 Get at fermion action. More...
 
virtual const WilsonTypeFermAct< Phi, P, Q > & getNumerFermAct () const =0
 Get at fermion action. More...
 
virtual const WilsonTypeFermAct< Phi, P, Q > & getDenomFermAct () const =0
 Get at fermion action. More...
 
virtual const GroupXML_tgetNumerActionInvParams () const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetNumerForceInvParams () const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetDenomActionInvParams () const =0
 Get inverter params. More...
 
virtual const GroupXML_tgetDenomForceInvParams () 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 int getNPF () const =0
 Return number of roots in used. More...
 
virtual const multi1d< Phi > & getPhi () const =0
 Accessor for pseudofermion (read only) More...
 
virtual multi1d< Phi > & getPhi ()=0
 mutator for pseudofermion More...
 

Detailed Description

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

Exact 1 flavor fermact monomial using rational polynomials.

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

Definition at line 28 of file one_flavor_ratio_rat_rat_monomial_w.h.

Constructor & Destructor Documentation

◆ ~OneFlavorRatioRatRatExactWilsonTypeFermMonomial()

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

virtual destructor:

Definition at line 32 of file one_flavor_ratio_rat_rat_monomial_w.h.

Member Function Documentation

◆ dsdq()

template<typename P , typename Q , typename Phi >
virtual void Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< 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::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getDenomActionInvParams ( ) const
protectedpure virtual

◆ getDenomFermAct()

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

◆ getDenomForceInvParams()

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

◆ getDenomFPFE()

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

◆ getDenomSIPFE()

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

◆ getDenomSPFE()

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

◆ getFermAct()

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

◆ getNPF()

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

◆ getNumerActionInvParams()

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

◆ getNumerFermAct()

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

◆ getNumerForceInvParams()

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

◆ getNumerFPFE()

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

◆ getNumerSIPFE()

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

◆ getNumerSPFE()

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

◆ getPhi() [1/2]

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

◆ getPhi() [2/2]

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

◆ refreshInternalFields()

template<typename P , typename Q , typename Phi >
virtual void Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< 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 = HBRatDeg

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::ExactWilsonTypeFermMonomial< P, Q, Phi >.

Definition at line 168 of file one_flavor_ratio_rat_rat_monomial_w.h.

References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::eta, Chroma::gaussian(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getDenomSIPFE(), Chroma::FermionAction< T, P, Q >::getFermBC(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerSIPFE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getPhi(), Chroma::i, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::DiffFermAct4D< T, P, Q >::linOp(), Chroma::WilsonTypeFermAct< T, P, Q >::mInvMdagM(), n, Chroma::n_count, Chroma::SystemSolverResults_t::n_count, Chroma::RemezCoeff_t::norm, Chroma::RemezCoeff_t::pole, Chroma::pop(), Chroma::push(), Chroma::RemezCoeff_t::res, Chroma::s(), Chroma::START_CODE(), Chroma::state, Chroma::write(), and Chroma::zero.

◆ S()

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

◆ S_subset()

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

Compute the action on the appropriate subset.

This 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 264 of file one_flavor_ratio_rat_rat_monomial_w.h.

References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerSPFE(), Chroma::OneFlavorRatioRatRatExactWilsonTypeFermMonomial< P, Q, Phi >::getPhi(), Chroma::i, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::DiffFermAct4D< T, P, Q >::linOp(), Chroma::WilsonTypeFermAct< T, P, Q >::mInvMdagM(), n, Chroma::n_count, Chroma::SystemSolverResults_t::n_count, Chroma::RemezCoeff_t::norm, Chroma::RemezCoeff_t::pole, Chroma::pop(), Chroma::psi, Chroma::push(), Chroma::RemezCoeff_t::res, Chroma::s(), Chroma::START_CODE(), Chroma::state, Chroma::write(), and Chroma::zero.

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

◆ setInternalFields()

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

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