10 #ifndef QXS_AFIELD_GAUGE_INC_INCLUDED
11 #define QXS_AFIELD_GAUGE_INC_INCLUDED
19 #include "lib_alt_QXS/inline/afield_th-inc.h"
23 template<
typename REALTYPE>
25 const std::vector<int>& boundary)
36 int Nvol = Nx * Ny * Nz * Nt;
41 vout.
crucial(
"set_boundary: wrong size of input field\n");
51 if ((boundary[mu] != 1) && (ipex == npex - 1)) {
53 int Nyzt = Ny * Nz * Nt;
56 set_threadtask(ith, nth, is, ns, Nyzt);
58 for (
int iyzt = is; iyzt < ns; ++iyzt) {
59 int site = Nx - 1 + Nx * iyzt;
60 for (
int in = 0; in < Nin; ++in) {
61 int idx = index.idx_G(in, site, mu);
73 if ((boundary[mu] != 1) && (ipey == npey - 1)) {
75 int Nxzt = Nx * Nz * Nt;
78 set_threadtask(ith, nth, is, ns, Nxzt);
80 for (
int ixzt = is; ixzt < ns; ++ixzt) {
83 int site = ix + Nx * (Ny - 1 + Ny * izt);
84 for (
int in = 0; in < Nin; ++in) {
85 int idx = index.idx_G(in, site, mu);
97 if ((boundary[mu] != 1) && (ipez == npez - 1)) {
102 int ith, nth, is, ns;
103 set_threadtask(ith, nth, is, ns, Nxyt);
105 for (
int ixyt = is; ixyt < ns; ++ixyt) {
106 int ixy = ixyt % Nxy;
108 int site = ixy + Nxy * (Nz - 1 + Nz * it);
109 for (
int in = 0; in < Nin; ++in) {
110 int idx = index.idx_G(in, site, mu);
122 if ((boundary[mu] != 1) && (ipet == npet - 1)) {
124 int Nxyz = Nx * Ny * Nz;
126 int ith, nth, is, ns;
127 set_threadtask(ith, nth, is, ns, Nxyz);
129 for (
int ixyz = is; ixyz < ns; ++ixyz) {
130 int site = ixyz + Nxyz * (Nt - 1);
131 for (
int in = 0; in < Nin; ++in) {
132 int idx = index.idx_G(in, site, mu);