6 #ifndef __prec_two_flavor_monomial_w_h__
7 #define __prec_two_flavor_monomial_w_h__
17 namespace EvenOddPrecConstDetTwoFlavorWilsonTypeFermMonomialEnv
30 multi1d<LatticeColorMatrix>,
31 multi1d<LatticeColorMatrix>,
36 typedef LatticeFermion
T;
37 typedef multi1d<LatticeColorMatrix>
P;
38 typedef multi1d<LatticeColorMatrix>
Q;
49 multi1d<LatticeColorMatrix> >&
s) {
56 multi1d<LatticeColorMatrix> >&
s) {
60 push(xml_out,
"S_odd_odd");
75 X[ lin->subset() ] =
zero;
78 QDPIO::cout <<
"TwoFlavWilson4DMonomial: resetting Predictor before energy calc solve" << std::endl;
82 QDPIO::cout <<
"2Flav::invert, n_count = " << res.
n_count << std::endl;
84 LatticeDouble site_action=
zero;
85 site_action[ lin->subset() ] =
Double(-12);
86 site_action[ lin->subset() ] += localInnerProductReal(
getPhi(),X);
89 Double action =
sum(site_action, lin->subset());
92 write(xml_out,
"S_oo", action);
Abstract interface for a Chronological Solution predictor.
Wrapper class for 2-flavor even-odd prec ferm monomials.
AbsChronologicalPredictor4D< T > & getMDSolutionPredictor(void)
Get the initial guess predictor.
const T & getPhi(void) const
Accessor for pseudofermion with Pf index i (read only)
Handle< const EvenOddPrecWilsonTypeFermAct< T, P, Q > > fermact
Double S_odd_odd(const AbsFieldState< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &s)
Compute the odd odd contribution (eg.
const GroupXML_t & getInvParams(void) const
Get parameters for the inverter.
EvenOddPrecConstDetTwoFlavorWilsonTypeFermMonomial()
EvenOddPrecConstDetTwoFlavorWilsonTypeFermMonomial(const EvenOddPrecConstDetTwoFlavorWilsonTypeFermMonomial &m)
Handle< AbsChronologicalPredictor4D< T > > chrono_predictor
multi1d< LatticeColorMatrix > Q
void operator=(const EvenOddPrecConstDetTwoFlavorWilsonTypeFermMonomial &)
multi1d< LatticeColorMatrix > P
T & getPhi(void)
mutator for pseudofermion with Pf index i
Double S_even_even(const AbsFieldState< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &s)
Even even contribution (eg ln det Clover)
const EvenOddPrecWilsonTypeFermAct< T, P, Q > & getFermAct(void) const
Get at fermion action For now the prototype is the same as before – wait until we refactor these befo...
Even-odd preconditioned Wilson-like fermion actions including derivatives.
virtual EvenOddPrecLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const =0
Override to produce an even-odd prec. linear operator for this action.
virtual FermState< T, P, Q > * createState(const Q &q) const
Given links (coordinates Q) create the state needed for the linear operators.
Class for counted reference semantics.
Exact 2 degen flavor even-odd preconditioned fermact monomial.
virtual MdagMSystemSolver< T > * invMdagM(Handle< FermState< T, P, Q > > state, const GroupXML_t &invParam) const
Return a linear operator solver for this action to solve MdagM*psi=chi.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void reset()
Reset the default gauge field state.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
push(xml_out,"Condensates")
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
multi1d< LatticeFermion > s(Ncb)
FloatingPoint< double > Double
Hold group xml and type id.
Holds return info from SystemSolver call.
Two-flavor monomial params.
Two flavor Monomials - gauge action or fermion binlinear contributions for HMC.