10 #ifndef _stout_fermstate_h
11 #define _stout_fermstate_h
21 namespace CreateStoutFermStateEnv
33 template<
typename T,
typename P,
typename Q>
158 if(
fbc->nontrivialP() ) {
166 if(
fbc->nontrivialP() ) {
200 template<
typename T,
typename P,
typename Q >
239 namespace CreateSLICFermStateEnv
262 template<
typename T,
typename P,
typename Q >
280 F[
mu] = thin_links[
mu]*F_tmp[
mu];
291 template<
typename T,
typename P,
typename Q>
Create a fermion connection state.
Create a SLIC ferm connection state.
const FermBC< T, P, Q > & getBC() const
Return the ferm BC object for this state.
CreateSLICFermState(Handle< FermBC< T, P, Q > > fbc_, const StoutFermStateParams &p_)
Full constructor.
void operator=(const CreateSLICFermState &)
~CreateSLICFermState()
Destructor.
StoutFermStateParams params
Handle< FermBC< T, P, Q > > getFermBC() const
Return the ferm BC object for this state.
StoutFermState< T, P, Q > * operator()(const Q &q) const
Construct a ConnectState.
Handle< FermBC< T, P, Q > > fbc
Create a stout ferm connection state.
void operator=(const CreateStoutFermState &)
CreateStoutFermState(Handle< FermBC< T, P, Q > > fbc_, const StoutFermStateParams &p_)
Full constructor.
StoutFermState< T, P, Q > * operator()(const Q &q) const
Construct a ConnectState.
StoutFermStateParams params
~CreateStoutFermState()
Destructor.
const FermBC< T, P, Q > & getBC() const
Return the ferm BC object for this state.
Handle< FermBC< T, P, Q > > fbc
Handle< FermBC< T, P, Q > > getFermBC() const
Return the ferm BC object for this state.
Base class for all fermion action boundary conditions.
Support class for fermion actions and linear operators.
Class for counted reference semantics.
SLIC (Stout Link Irrelevant Clover ferm connection state.
SLICFermState(Handle< FermBC< T, P, Q > > fbc_, const StoutFermStateParams &p_, const Q &u_)
multi1d< Q > smeared_links
StoutFermState(Handle< FermBC< T, P, Q > > fbc_, const StoutFermStateParams &p_, const Q &u_)
Constructor only from a parameter structure.
const Q & getThinLinks() const
virtual void deriv(P &F) const
const FermBC< T, P, Q > & getBC() const
Return the ferm BC object for this state.
StoutFermStateParams params
Handle< FermBC< T, P, Q > > fbc
const Q & getLinks() const
Return FAT Linke.
void create(Handle< FermBC< T, P, Q > > fbc_, const StoutFermStateParams &p_, const Q &u_)
Handle< FermBC< T, P, Q > > getFermBC() const
Return the ferm BC object for this state.
void fatForceToThin(const P &F_fat, P &F_thin) const
virtual ~StoutFermState()
Destructor is automagic.
Create a connection state.
void smear_links(const multi1d< LatticeColorMatrix > ¤t, multi1d< LatticeColorMatrix > &next, const multi1d< bool > &smear_in_this_dirP, const multi2d< Real > &rho)
Do the smearing from level i to level i+1.
void deriv_recurse(multi1d< LatticeColorMatrix > &F, const multi1d< bool > &smear_in_this_dirP, const multi2d< Real > &rho, const multi1d< LatticeColorMatrix > &u)
Do the force recursion from level i+1, to level i.
bool registerAll()
Register all the factories.
bool registerAll()
Register all the factories.
Asqtad Staggered-Dirac operator.
LinOpSysSolverMGProtoClover::Q Q
LinOpSysSolverMGProtoClover::T T
Support class for fermion actions and linear operators.
multi1d< bool > smear_in_this_dirP
multi1d< LatticeColorMatrix > P
static INTERNAL_PRECISION F