60 vol4=
_grid->oSites();
61 Stencil.BuildSurfaceList(LLs,vol4);
111 for (
int mu = 0; mu <
Nd; mu++) {
130 out.Checkerboard() = in.Checkerboard();
137 out.Checkerboard() = in.Checkerboard();
144 if (in.Checkerboard() ==
Odd) {
152 if (in.Checkerboard() ==
Odd) {
161 out.Checkerboard() = in.Checkerboard();
162 typename FermionField::scalar_type scal(
mass);
168 out.Checkerboard() = in.Checkerboard();
174 out.Checkerboard() = in.Checkerboard();
175 out = (1.0 / (
mass)) * in;
181 out.Checkerboard() = in.Checkerboard();
192 const FermionField &A,
const FermionField &
B,
int dag)
196 Compressor compressor;
198 FermionField Btilde(
B.Grid());
199 FermionField Atilde(
B.Grid());
202 st.HaloExchange(
B, compressor);
204 for (
int mu = 0; mu <
Nd; mu++) {
213 Kernels::DhopDirKernel(st, U_v, U_v, st.CommBuf(), sss, sss, B_v, Btilde_v, mu,1);
228 mat.Checkerboard() =
U.Checkerboard();
240 assert(V.Checkerboard() ==
Even);
241 assert(
U.Checkerboard() ==
Odd);
242 mat.Checkerboard() =
Odd;
254 assert(V.Checkerboard() ==
Odd);
255 assert(
U.Checkerboard() ==
Even);
256 mat.Checkerboard() =
Even;
267 out.Checkerboard() = in.Checkerboard();
278 assert(in.Checkerboard() ==
Even);
279 out.Checkerboard() =
Odd;
290 assert(in.Checkerboard() ==
Odd);
291 out.Checkerboard() =
Even;
311 Compressor compressor;
312 Stencil.HaloExchange(in, compressor);
325 DoubledGaugeField &
U,
326 const FermionField &in,
327 FermionField &out,
int dag)
336 DoubledGaugeField &
U,
337 const FermionField &in,
338 FermionField &out,
int dag)
340 Compressor compressor;
341 int len =
U.Grid()->oSites();
344 st.HaloGather(in,compressor);
346 std::vector<std::vector<CommsRequest_t> > requests;
347 st.CommunicateBegin(requests);
349 st.CommsMergeSHM(compressor);
360 st.CommunicateComplete(requests);
363 st.CommsMerge(compressor);
374 DoubledGaugeField &
U,
375 const FermionField &in,
376 FermionField &out,
int dag)
380 Compressor compressor;
381 st.HaloExchange(in, compressor);
395 PropagatorField &q_in_2,
396 PropagatorField &q_out,
397 PropagatorField &src,
406 PropagatorField &q_out,
407 PropagatorField &src,
412 ComplexField &lattice_cmplx)
void axpy(Lattice< vobj > &ret, sobj a, const Lattice< vobj > &x, const Lattice< vobj > &y)
void PokeIndex(Lattice< vobj > &lhs, const Lattice< decltype(peekIndex< Index >(vobj(), 0))> &rhs, int i)
auto PeekIndex(const Lattice< vobj > &lhs, int i) -> Lattice< decltype(peekIndex< Index >(vobj(), i))>
void pickCheckerboard(int cb, Lattice< vobj > &half, const Lattice< vobj > &full)
#define autoView(l_v, l, mode)
#define NAMESPACE_BEGIN(A)
static constexpr int DaggerYes
static constexpr int DaggerNo
#define thread_for(i, num,...)
static INTERNAL_PRECISION U
static const std::vector< int > directions
static const std::vector< int > displacements
StaggeredKernels< Impl > Kernels
DoubledGaugeField UmuEven
void DhopInternal(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
void MooeeDag(const FermionField &in, FermionField &out)
void MdirAll(const FermionField &in, std::vector< FermionField > &out)
void Dhop(const FermionField &in, FermionField &out, int dag)
void CopyGaugeCheckerboards(void)
void DhopInternalOverlappedComms(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
void DhopDeriv(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
void M(const FermionField &in, FermionField &out)
void DhopDerivOE(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
GridBase * GaugeGrid(void)
void SeqConservedCurrent(PropagatorField &q_in, PropagatorField &q_out, PropagatorField &srct, Current curr_type, unsigned int mu, unsigned int tmin, unsigned int tmax, ComplexField &lattice_cmplx)
void DhopOE(const FermionField &in, FermionField &out, int dag)
void DhopEO(const FermionField &in, FermionField &out, int dag)
void DhopDir(const FermionField &in, FermionField &out, int dir, int disp)
NaiveStaggeredFermion(GaugeField &_U, GridCartesian &Fgrid, GridRedBlackCartesian &Hgrid, RealD _mass, RealD _c1, RealD _u0, const ImplParams &p=ImplParams())
void Mdag(const FermionField &in, FermionField &out)
void DhopDerivEO(GaugeField &mat, const FermionField &U, const FermionField &V, int dag)
void ImportGauge(const GaugeField &_U)
void MooeeInv(const FermionField &in, FermionField &out)
void MeooeDag(const FermionField &in, FermionField &out)
void MooeeInvDag(const FermionField &in, FermionField &out)
void DhopInternalSerialComms(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag)
void DerivInternal(StencilImpl &st, DoubledGaugeField &U, GaugeField &mat, const FermionField &A, const FermionField &B, int dag)
void Mooee(const FermionField &in, FermionField &out)
void ContractConservedCurrent(PropagatorField &q_in_1, PropagatorField &q_in_2, PropagatorField &q_out, PropagatorField &src, Current curr_type, unsigned int mu)
void Meooe(const FermionField &in, FermionField &out)
void Mdir(const FermionField &in, FermionField &out, int dir, int disp)
void DhopNaive(StencilImpl &st, DoubledGaugeField &U, const FermionField &in, FermionField &out, int dag, int interior, int exterior)