CHROMA
|
Exact 1 flavor fermact monomial using rational polynomials. More...
#include <one_flavor_ratio_rat_conv_monomial_w.h>
Public Member Functions | |
~OneFlavorRatioRatConvExactWilsonTypeFermMonomial () | |
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 (void) const |
Get at fermion action. More... | |
virtual const WilsonTypeFermAct< Phi, P, Q > & | getNumerFermAct (void) const =0 |
Get at fermion action. More... | |
virtual const WilsonTypeFermAct< Phi, P, Q > & | getDenomFermAct (void) const =0 |
Get at fermion action. More... | |
virtual const GroupXML_t & | getNumerActionInvParams (void) const =0 |
Get inverter params. More... | |
virtual const GroupXML_t & | getNumerForceInvParams (void) const =0 |
Get inverter params. More... | |
virtual const RemezCoeff_t & | getNumerFPFE () const =0 |
Return the partial fraction expansion for the force calc. More... | |
virtual const RemezCoeff_t & | getNumerSPFE () const =0 |
Return the partial fraction expansion for the action calc. More... | |
virtual const RemezCoeff_t & | getNumerSIPFE () 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 (void) const =0 |
Accessor for pseudofermion (read only) More... | |
virtual multi1d< Phi > & | getPhi (void)=0 |
mutator for pseudofermion More... | |
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_conv_monomial_w.h.
|
inline |
virtual destructor:
Definition at line 32 of file one_flavor_ratio_rat_conv_monomial_w.h.
|
inlinevirtual |
Compute dsdq for the system...
Actions of the form chi^dag*f_2(A_2)*f_1(A_1)*f_2(A_2)*chi
Implements Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi >.
Definition at line 39 of file one_flavor_ratio_rat_conv_monomial_w.h.
References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), F, Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getDenomFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerForceInvParams(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFPFE(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getPhi(), Chroma::i, Chroma::SingletonHolder< T, CreationPolicy, LifetimePolicy, ThreadingModel >::Instance(), Chroma::DiffFermAct4D< T, P, Q >::linOp(), Chroma::MINUS, Chroma::WilsonTypeFermAct< T, P, Q >::mInvMdagM(), Chroma::monitorForces(), mu, n, Chroma::n_count, Nd, Chroma::PLUS, Chroma::RemezCoeff_t::pole, Chroma::pop(), Chroma::push(), Chroma::RemezCoeff_t::res, Chroma::s(), Chroma::START_CODE(), Chroma::state, Chroma::write(), and Chroma::zero.
|
protectedpure virtual |
Get at fermion action.
Implemented in Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion >, Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< P, Q, Phi >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecConstDetWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecConstDetWilsonTypeFermMonomial< P, Q, Phi >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecWilsonTypeFermMonomial< P, Q, Phi >, Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields(), and Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset().
|
inlineprotectedvirtual |
Get at fermion action.
Implements Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi >.
Definition at line 325 of file one_flavor_ratio_rat_conv_monomial_w.h.
References Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct().
|
protectedpure virtual |
Return number of roots in used.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields(), and Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset().
|
protectedpure virtual |
Get inverter params.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields(), and Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset().
|
protectedpure virtual |
Get at fermion action.
Implemented in Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion >, Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< P, Q, Phi >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecConstDetWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecConstDetWilsonTypeFermMonomial< P, Q, Phi >, Chroma::OneFlavorRatioRatConvExactEvenOddPrecWilsonTypeFermMonomial< P, Q, Phi >, Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields(), and Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset().
|
protectedpure virtual |
Get inverter params.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq().
|
protectedpure virtual |
Return the partial fraction expansion for the force calc.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq().
|
protectedpure virtual |
Return the partial fraction expansion for the heat-bath.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields().
|
protectedpure virtual |
Return the partial fraction expansion for the action calc.
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset().
|
protectedpure virtual |
Accessor for pseudofermion (read only)
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial, Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
Referenced by Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::dsdq(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::refreshInternalFields(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::S_subset(), and Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::setInternalFields().
|
protectedpure virtual |
mutator for pseudofermion
Implemented in Chroma::UnprecOneFlavorWilsonTypeFermRatioRatConvMonomial, and Chroma::EvenOddPrecConstDetOneFlavorWilsonTypeFermRatioRatConvMonomial.
|
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 165 of file one_flavor_ratio_rat_conv_monomial_w.h.
References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::eta, Chroma::gaussian(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getDenomFermAct(), Chroma::FermionAction< T, P, Q >::getFermBC(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerSIPFE(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< 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.
|
pure virtual |
Compute the total action.
Implements Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi >.
Implemented in Chroma::OneFlavorRatioRatConvExactEvenOddPrecWilsonTypeFermMonomial< P, Q, Phi >, Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< P, Q, Phi >, and Chroma::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix >, LatticeFermion >.
|
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_conv_monomial_w.h.
References Chroma::FermionAction< T, P, Q >::createState(), Chroma::END_CODE(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getDenomFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNPF(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerActionInvParams(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerFermAct(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getNumerSPFE(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< 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::OneFlavorRatioRatConvExactUnprecWilsonTypeFermMonomial< P, Q, Phi >::S(), and Chroma::OneFlavorRatioRatConvExactEvenOddPrecWilsonTypeFermMonomial< P, Q, Phi >::S_odd_odd().
|
inlinevirtual |
Copy pseudofermions if any.
Implements Chroma::ExactWilsonTypeFermMonomial< P, Q, Phi >.
Definition at line 231 of file one_flavor_ratio_rat_conv_monomial_w.h.
References Chroma::END_CODE(), Chroma::OneFlavorRatioRatConvExactWilsonTypeFermMonomial< P, Q, Phi >::getPhi(), m, and Chroma::START_CODE().