35 vout.
crucial(
"Shift_Field_lex: parameter error, wrong parameter\n");
56 vout.
crucial(
"Shift_Field_lex: parameter error, wrong parameter\n");
64 const int bc,
const int mu)
75 vout.
crucial(
"Shift_Field_lex: parameter error, wrong parameter\n");
83 const int bc,
const int mu)
94 vout.
crucial(
"Shift_Field_lex: parameter error, wrong parameter\n");
113 int Nvol = w->
nvol();
118 for (
int t = 0; t <
Nt; t++) {
119 for (
int z = 0; z <
Nz; z++) {
120 for (
int y = 0; y <
Ny; y++) {
121 int s2 = y + Ny * (z + Nz * t);
123 for (
int x = 0; x <
Nx - 1; x++) {
125 int px =
idx.
site(x + 1, y, z, t);
126 for (
int ex = 0; ex < Nex; ex++) {
127 for (
int in = 0; in < Nin; in++) {
128 v->
set(in, ix, ex, w->
cmp(in, px, ex));
133 int ix =
idx.
site(Nx - 1, y, z, t);
135 for (
int in = 0; in < Nin; in++) {
136 for (
int ex = 0; ex < Nex; ex++) {
137 wt->
set(in, s2, ex, bc2 * w->
cmp(in, px, ex));
144 int size = Nin * (Nvol /
Nx) * Nex;
147 for (
int t = 0; t <
Nt; t++) {
148 for (
int z = 0; z <
Nz; z++) {
149 for (
int y = 0; y <
Ny; y++) {
150 int s2 = y + Ny * (z + Nz * t);
152 int ix =
idx.
site(Nx - 1, y, z, t);
154 for (
int in = 0; in < Nin; in++) {
155 for (
int ex = 0; ex < Nex; ex++) {
156 v->
set(in, ix, ex, vt->
cmp(in, s2, ex));
181 int Nvol = w->
nvol();
186 for (
int t = 0; t <
Nt; t++) {
187 for (
int z = 0; z <
Nz; z++) {
188 for (
int x = 0; x <
Nx; x++) {
189 int s2 = x + Nx * (z + Nz * t);
192 for (
int y = 0; y < Ny - 1; y++) {
194 int px =
idx.
site(x, y + 1, z, t);
195 for (
int ex = 0; ex < Nex; ex++) {
196 for (
int in = 0; in < Nin; in++) {
197 v->
set(in, ix, ex, w->
cmp(in, px, ex));
203 int ix =
idx.
site(x, Ny - 1, z, t);
205 for (
int in = 0; in < Nin; in++) {
206 for (
int ex = 0; ex < Nex; ex++) {
207 wt->
set(in, s2, ex, bc2 * w->
cmp(in, px, ex));
214 int size = Nin * (Nvol /
Ny) * Nex;
217 for (
int t = 0; t <
Nt; t++) {
218 for (
int z = 0; z <
Nz; z++) {
219 for (
int x = 0; x <
Nx; x++) {
220 int s2 = x + Nx * (z + Nz * t);
223 int ix =
idx.
site(x, Ny - 1, z, t);
225 for (
int in = 0; in < Nin; in++) {
226 for (
int ex = 0; ex < Nex; ex++) {
227 v->
set(in, ix, ex, vt->
cmp(in, s2, ex));
252 int Nvol = w->
nvol();
257 for (
int t = 0; t <
Nt; t++) {
258 for (
int y = 0; y <
Ny; y++) {
259 for (
int x = 0; x <
Nx; x++) {
260 int s2 = x + Nx * (y + Ny * t);
263 for (
int z = 0; z < Nz - 1; z++) {
265 int px =
idx.
site(x, y, z + 1, t);
266 for (
int ex = 0; ex < Nex; ex++) {
267 for (
int in = 0; in < Nin; in++) {
268 v->
set(in, ix, ex, w->
cmp(in, px, ex));
274 int ix =
idx.
site(x, y, Nz - 1, t);
276 for (
int in = 0; in < Nin; in++) {
277 for (
int ex = 0; ex < Nex; ex++) {
278 wt->
set(in, s2, ex, bc2 * w->
cmp(in, px, ex));
285 int size = Nin * (Nvol /
Nz) * Nex;
288 for (
int t = 0; t <
Nt; t++) {
289 for (
int y = 0; y <
Ny; y++) {
290 for (
int x = 0; x <
Nx; x++) {
291 int s2 = x + Nx * (y + Ny * t);
294 int ix =
idx.
site(x, y, Nz - 1, t);
296 for (
int in = 0; in < Nin; in++) {
297 for (
int ex = 0; ex < Nex; ex++) {
298 v->
set(in, ix, ex, vt->
cmp(in, s2, ex));
323 int Nvol = w->
nvol();
328 for (
int z = 0; z <
Nz; z++) {
329 for (
int y = 0; y <
Ny; y++) {
330 for (
int x = 0; x <
Nx; x++) {
331 int s2 = x + Nx * (y + Ny * z);
334 for (
int t = 0; t < Nt - 1; t++) {
336 int px =
idx.
site(x, y, z, t + 1);
337 for (
int ex = 0; ex < Nex; ex++) {
338 for (
int in = 0; in < Nin; in++) {
339 v->
set(in, ix, ex, w->
cmp(in, px, ex));
345 int ix =
idx.
site(x, y, z, Nt - 1);
347 for (
int ex = 0; ex < Nex; ex++) {
348 for (
int in = 0; in < Nin; in++) {
349 wt->
set(in, s2, ex, bc2 * w->
cmp(in, px, ex));
356 int size = Nin * (Nvol /
Nt) * Nex;
359 for (
int z = 0; z <
Nz; z++) {
360 for (
int y = 0; y <
Ny; y++) {
361 for (
int x = 0; x <
Nx; x++) {
362 int s2 = x + Nx * (y + Ny * z);
365 int ix =
idx.
site(x, y, z, Nt - 1);
367 for (
int ex = 0; ex < Nex; ex++) {
368 for (
int in = 0; in < Nin; in++) {
369 v->
set(in, ix, ex, vt->
cmp(in, s2, ex));
394 int Nvol = w->
nvol();
399 for (
int t = 0; t <
Nt; t++) {
400 for (
int z = 0; z <
Nz; z++) {
401 for (
int y = 0; y <
Ny; y++) {
402 int s2 = y + Ny * (z + Nz * t);
405 for (
int x = 1; x <
Nx; x++) {
407 int px =
idx.
site(x - 1, y, z, t);
408 for (
int ex = 0; ex < Nex; ex++) {
409 for (
int in = 0; in < Nin; in++) {
410 v->
set(in, ix, ex, w->
cmp(in, px, ex));
416 int px =
idx.
site(Nx - 1, y, z, t);
417 for (
int in = 0; in < Nin; in++) {
418 for (
int ex = 0; ex < Nex; ex++) {
419 wt->
set(in, s2, ex, w->
cmp(in, px, ex));
426 int size = Nin * (Nvol /
Nx) * Nex;
429 for (
int t = 0; t <
Nt; t++) {
430 for (
int z = 0; z <
Nz; z++) {
431 for (
int y = 0; y <
Ny; y++) {
432 int s2 = y + Ny * (z + Nz * t);
436 for (
int in = 0; in < Nin; in++) {
437 for (
int ex = 0; ex < Nex; ex++) {
438 v->
set(in, ix, ex, bc2 * vt->
cmp(in, s2, ex));
463 int Nvol = w->
nvol();
468 for (
int t = 0; t <
Nt; t++) {
469 for (
int z = 0; z <
Nz; z++) {
470 for (
int x = 0; x <
Nx; x++) {
471 int s2 = x + Nx * (z + Nz * t);
474 for (
int y = 1; y <
Ny; y++) {
476 int px =
idx.
site(x, y - 1, z, t);
477 for (
int ex = 0; ex < Nex; ex++) {
478 for (
int in = 0; in < Nin; in++) {
479 v->
set(in, ix, ex, w->
cmp(in, px, ex));
485 int px =
idx.
site(x, Ny - 1, z, t);
486 for (
int in = 0; in < Nin; in++) {
487 for (
int ex = 0; ex < Nex; ex++) {
488 wt->
set(in, s2, ex, w->
cmp(in, px, ex));
495 int size = Nin * (Nvol /
Ny) * Nex;
498 for (
int t = 0; t <
Nt; t++) {
499 for (
int z = 0; z <
Nz; z++) {
500 for (
int x = 0; x <
Nx; x++) {
501 int s2 = x + Nx * (z + Nz * t);
505 int px =
idx.
site(x, Ny - 1, z, t);
506 for (
int in = 0; in < Nin; in++) {
507 for (
int ex = 0; ex < Nex; ex++) {
508 v->
set(in, ix, ex, bc2 * vt->
cmp(in, s2, ex));
533 int Nvol = w->
nvol();
538 for (
int t = 0; t <
Nt; t++) {
539 for (
int y = 0; y <
Ny; y++) {
540 for (
int x = 0; x <
Nx; x++) {
541 int s2 = x + Nx * (y + Ny * t);
544 for (
int z = 1; z <
Nz; z++) {
546 int px =
idx.
site(x, y, z - 1, t);
547 for (
int ex = 0; ex < Nex; ex++) {
548 for (
int in = 0; in < Nin; in++) {
549 v->
set(in, ix, ex, w->
cmp(in, px, ex));
555 int px =
idx.
site(x, y, Nz - 1, t);
556 for (
int in = 0; in < Nin; in++) {
557 for (
int ex = 0; ex < Nex; ex++) {
558 wt->
set(in, s2, ex, w->
cmp(in, px, ex));
565 int size = Nin * (Nvol /
Nz) * Nex;
568 for (
int t = 0; t <
Nt; t++) {
569 for (
int y = 0; y <
Ny; y++) {
570 for (
int x = 0; x <
Nx; x++) {
571 int s2 = x + Nx * (y + Ny * t);
575 int px =
idx.
site(x, y, Nz - 1, t);
576 for (
int in = 0; in < Nin; in++) {
577 for (
int ex = 0; ex < Nex; ex++) {
578 v->
set(in, ix, ex, bc2 * vt->
cmp(in, s2, ex));
603 int Nvol = w->
nvol();
608 for (
int z = 0; z <
Nz; z++) {
609 for (
int y = 0; y <
Ny; y++) {
610 for (
int x = 0; x <
Nx; x++) {
611 int s2 = x + Nx * (y + Ny * z);
614 for (
int t = 1; t <
Nt; t++) {
616 int px =
idx.
site(x, y, z, t - 1);
617 for (
int ex = 0; ex < Nex; ex++) {
618 for (
int in = 0; in < Nin; in++) {
619 v->
set(in, ix, ex, w->
cmp(in, px, ex));
625 int px =
idx.
site(x, y, z, Nt - 1);
626 for (
int ex = 0; ex < Nex; ex++) {
627 for (
int in = 0; in < Nin; in++) {
628 wt->
set(in, s2, ex, w->
cmp(in, px, ex));
635 int size = Nin * (Nvol /
Nt) * Nex;
638 for (
int z = 0; z <
Nz; z++) {
639 for (
int y = 0; y <
Ny; y++) {
640 for (
int x = 0; x <
Nx; x++) {
641 int s2 = x + Nx * (y + Ny * z);
645 int px =
idx.
site(x, y, z, Nt - 1);
646 for (
int ex = 0; ex < Nex; ex++) {
647 for (
int in = 0; in < Nin; in++) {
648 v->
set(in, ix, ex, bc2 * vt->
cmp(in, s2, ex));
void up_t(Field *, const Field *, const int bc)
const double * ptr(const int jin, const int site, const int jex) const
void set(const int jin, const int site, const int jex, double v)
int site(const int &x, const int &y, const int &z, const int &t) const
Container of Field-type object.
double cmp(const int jin, const int site, const int jex) const
void dn_t(Field *, const Field *, const int bc)
static int ipe(const int dir)
logical coordinate of current proc.
void dn_y(Field *, const Field *, const int bc)
void up_y(Field *, const Field *, const int bc)
static int exchange(int count, double *recv_buf, double *send_buf, int idir, int ipm, int tag)
receive array of double from upstream specified by idir and ipm, and send array to downstream...
void backward(Field &, const Field &, const int mu)
void dn_z(Field *, const Field *, const int bc)
void crucial(const char *format,...)
void up_x(Field *, const Field *, const int bc)
void dn_x(Field *, const Field *, const int bc)
void up_z(Field *, const Field *, const int bc)
void forward(Field &, const Field &, const int mu)