4 #include "qdp_config.h"
11 #include "sse_dslash_3d.h"
12 #include "sse_dslash_qdp_packer_3d.h"
22 QDPIO::cout <<
"Calling init_sse_su3dslash()... " << std::endl;
26 init_sse_su3dslash_3d(Layout::lattSize().slice(),
27 Layout::QDPXX_getSiteCoords,
28 Layout::QDPXX_getLinearSiteIndex,
29 Layout::QDPXX_nodeNumber);
34 SSEWilsonDslash3D::SSEWilsonDslash3D()
40 SSEWilsonDslash3D::SSEWilsonDslash3D(Handle< FermState<T,P,Q> >
state)
47 SSEWilsonDslash3D::SSEWilsonDslash3D(Handle< FermState<T,P,Q> >
state,
48 const AnisoParam_t& aniso_)
51 create(
state, aniso_);
55 void SSEWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state)
63 void SSEWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state,
64 const AnisoParam_t& anisoParam)
74 void SSEWilsonDslash3D::create(Handle< FermState<T,P,Q> >
state,
75 const multi1d<Real>& coeffs_)
83 fbc =
state->getFermBC();
86 if (fbc.operator->() == 0)
88 QDPIO::cerr <<
"SSEWilsonDslash3D: error: fbc is null" << std::endl;
93 multi1d<LatticeColorMatrix>
u =
state->getLinks();
96 for(
int mu=0;
mu <
u.size(); ++
mu)
102 packed_gauge.resize( 4 * Layout::sitesOnNode() );
103 SSEDslash3D::qdp_pack_gauge_3d(
u, packed_gauge);
109 SSEWilsonDslash3D::~SSEWilsonDslash3D()
114 QDPIO::cout <<
"Calling free_sse_su3dslash()... " << std::endl;
117 free_sse_su3dslash_3d();
134 SSEWilsonDslash3D::apply (LatticeFermion&
chi,
const LatticeFermion&
psi,
155 int source_cb = 1 -
cb;
157 int cbsites = QDP::Layout::sitesOnNode()/2;
159 sse_su3dslash_wilson_3d((SSEREAL *)&(packed_gauge[0]),
160 (SSEREAL *)&(
psi.elem(0).elem(0).elem(0).real()),
161 (SSEREAL *)&(
chi.elem(0).elem(0).elem(0).real()),
162 (
int)
isign, source_cb);
165 getFermBC().modifyF(
chi, QDP::rb3[
cb]);
Primary include file for CHROMA library code.
Wilson Dslash linear operator.
void init(MesonSpecData_t &data, XMLWriter &xml, const std::string &path, const std::string &id_tag, const Params ¶ms)
Do some initialization.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
multi1d< LatticeFermion > chi(Ncb)
const WilsonTypeFermAct< multi1d< LatticeFermion > > Handle< const ConnectState > state
multi1d< Real > makeFermCoeffs(const AnisoParam_t &aniso)
Make fermion coefficients.