6 #ifndef __seoprec_logdet_diag_monomial_h__
7 #define __seoprec_logdet_diag_monomial_h__
24 template<
typename P,
typename Q,
typename Phi>
35 push(xml_out,
"SymEvenOddPrecLogDetDiagMonomial");
48 lin->derivLogDetEvenEvenLinOp(
F,
PLUS);
49 lin->derivLogDetOddOddLinOp(F_tmp,
PLUS);
72 push(xml_out,
"SymEvenOddPrecLogDetDiagMonomial");
93 multi1d<LatticeColorMatrix> >&
s) {
98 multi1d<LatticeColorMatrix> >&
m) {
109 namespace SymEvenOddPrecLogDetDiagMonomial4DEnv
142 multi1d<LatticeColorMatrix>,
147 typedef LatticeFermion
T;
148 typedef multi1d<LatticeColorMatrix>
P;
149 typedef multi1d<LatticeColorMatrix>
Q;
Monomials - gauge action or fermion binlinear contributions for HMC.
Abstract monomial class, for exact algorithms.
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.
An abstract monomial class, for inexact algorithms.
A Monomial For Just the Diag part of SymEvenOddPrecLogDetWilsonTypeFermActs – concretely a 4D one.
multi1d< LatticeColorMatrix > P
multi1d< LatticeColorMatrix > Q
~SymEvenOddPrecLogDetDiagMonomial4D()
Destructor is automagic.
Handle< SymEvenOddPrecLogDetWilsonTypeFermAct< T, P, Q > > fermact
const SymEvenOddPrecLogDetWilsonTypeFermAct< T, P, Q > & getFermAct(void) const
SymEvenOddPrecLogDetDiagMonomial4D(const SymEvenOddPrecLogDetDiagMonomialParams &p)
Construct from param struct.
SymEvenOddPrecLogDetDiagMonomial4D(const SymEvenOddPrecLogDetDiagMonomial4D &m)
Copy Constructor.
const int getNumFlavors() const
A Monomial For Just the diagonal parts of SymEvenOddPrecLogDetWilsonTypeFermActs.
Double S(const AbsFieldState< P, Q > &s)
Gauge action value.
virtual const SymEvenOddPrecLogDetWilsonTypeFermAct< Phi, P, Q > & getFermAct() const =0
void refreshInternalFields(const AbsFieldState< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &s)
Refresh pseudofermion fields if any.
virtual const int getNumFlavors() const =0
void dsdq(P &F, const AbsFieldState< P, Q > &s)
Compute dsdq for the system... Not specified how to actually do this.
virtual ~SymEvenOddPrecLogDetDiagMonomial()
void setInternalFields(const Monomial< multi1d< LatticeColorMatrix >, multi1d< LatticeColorMatrix > > &m)
Copy pseudofermions if any.
Symmetric even-odd preconditioned Wilson-like fermion action, specialised to clover like (gauge depen...
virtual SymEvenOddPrecLogDetLinearOperator< T, P, Q > * linOp(Handle< FermState< T, P, Q > > state) const =0
Override to produce an even-odd prec. linear operator for this action.
Helper function for calculating forces.
void read(XMLReader &xml, const std::string &path, AsqtadFermActParams ¶m)
Read parameters.
void write(XMLWriter &xml, const std::string &path, const AsqtadFermActParams ¶m)
Writer parameters.
void monitorForces(XMLWriter &xml_out, const std::string &path, const multi1d< LatticeColorMatrix > &F)
Calculate and write out forces.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
push(xml_out,"Condensates")
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
static QDP_ColorVector * in
multi1d< LatticeFermion > s(Ncb)
FloatingPoint< double > Double
Symmetric even-odd const determinant Wilson-like fermact.
Hold group xml and type id.
SymEvenOddPrecLogDetDiagMonomialParams()
multi1d< LatticeColorMatrix > P
Singleton instances of xml output.
static INTERNAL_PRECISION F