Bridge++  Ver. 1.3.x
shiftField_eo.cpp
Go to the documentation of this file.
1 
14 #include "shiftField_eo.h"
15 
16 const std::string ShiftField_eo::class_name = "ShiftField_eo";
17 
18 //====================================================================
20  const int mu, const int ieo)
21 {
22  int bc = 1;
23 
24  if (mu == 0) { // x-direction
25  up_xh(v, w, bc, ieo);
26  } else if (mu == 1) { // y-direction
27  up_yh(v, w, bc, ieo);
28  } else if (mu == 2) { // z-direction
29  up_zh(v, w, bc, ieo);
30  } else if (mu == 3) { // t-direction
31  up_th(v, w, bc, ieo);
32  } else {
33  vout.crucial(m_vl, "%s: wrong mu = %d\n", class_name.c_str(), mu);
34  exit(EXIT_FAILURE);
35  }
36 }
37 
38 
39 //====================================================================
41  const int mu, const int ieo)
42 {
43  int bc = 1;
44 
45  if (mu == 0) { // x-direction
46  dn_xh(v, w, bc, ieo);
47  } else if (mu == 1) { // y-direction
48  dn_yh(v, w, bc, ieo);
49  } else if (mu == 2) { // z-direction
50  dn_zh(v, w, bc, ieo);
51  } else if (mu == 3) { // t-direction
52  dn_th(v, w, bc, ieo);
53  } else {
54  vout.crucial(m_vl, "%s: wrong mu = %d\n", class_name.c_str(), mu);
55  exit(EXIT_FAILURE);
56  }
57 }
58 
59 
60 //====================================================================
62  const int bc, const int mu, const int ieo)
63 {
64  if (mu == 0) { // x-direction
65  up_xh(v, w, bc, ieo);
66  } else if (mu == 1) { // y-direction
67  up_yh(v, w, bc, ieo);
68  } else if (mu == 2) { // z-direction
69  up_zh(v, w, bc, ieo);
70  } else if (mu == 3) { // t-direction
71  up_th(v, w, bc, ieo);
72  } else {
73  vout.crucial(m_vl, "%s: wrong mu = %d\n", class_name.c_str(), mu);
74  exit(EXIT_FAILURE);
75  }
76 }
77 
78 
79 //====================================================================
81  const int bc, const int mu, const int ieo)
82 {
83  if (mu == 0) { // x-direction
84  dn_xh(v, w, bc, ieo);
85  } else if (mu == 1) { // y-direction
86  dn_yh(v, w, bc, ieo);
87  } else if (mu == 2) { // z-direction
88  dn_zh(v, w, bc, ieo);
89  } else if (mu == 3) { // t-direction
90  dn_th(v, w, bc, ieo);
91  } else {
92  vout.crucial(m_vl, "%s: wrong mu = %d\n", class_name.c_str(), mu);
93  exit(EXIT_FAILURE);
94  }
95 }
96 
97 
98 //====================================================================
99 void ShiftField_eo::backward(Field& v, const Field& w, const int mu)
100 {
101  Index_eo index_eo;
102 
103  int Nin = w.nin();
104  int Nvol2 = w.nvol() / 2;
105  int Nex = w.nex();
106 
107  Field field_e(Nin, Nvol2, Nex);
108  Field field_o(Nin, Nvol2, Nex);
109 
110  Field field_se(Nin, Nvol2, Nex);
111  Field field_so(Nin, Nvol2, Nex);
112 
113  index_eo.splitField(field_e, field_o, w);
114 
115  backward_h(field_se, field_o, mu, 0);
116  backward_h(field_so, field_e, mu, 1);
117 
118  index_eo.mergeField(v, field_se, field_so);
119 }
120 
121 
122 //====================================================================
123 void ShiftField_eo::forward(Field& v, const Field& w, const int mu)
124 {
125  Index_eo index_eo;
126 
127  int Nin = w.nin();
128  int Nvol2 = w.nvol() / 2;
129  int Nex = w.nex();
130 
131  Field field_e(Nin, Nvol2, Nex);
132  Field field_o(Nin, Nvol2, Nex);
133 
134  Field field_se(Nin, Nvol2, Nex);
135  Field field_so(Nin, Nvol2, Nex);
136 
137  index_eo.splitField(field_e, field_o, w);
138 
139  forward_h(field_se, field_o, mu, 0);
140  forward_h(field_so, field_e, mu, 1);
141 
142  index_eo.mergeField(v, field_se, field_so);
143 }
144 
145 
146 //====================================================================
148  const int bc, const int mu)
149 {
150  Index_eo index_eo;
151 
152  int Nin = w.nin();
153  int Nvol2 = w.nvol() / 2;
154  int Nex = w.nex();
155 
156  Field field_e(Nin, Nvol2, Nex);
157  Field field_o(Nin, Nvol2, Nex);
158 
159  Field field_se(Nin, Nvol2, Nex);
160  Field field_so(Nin, Nvol2, Nex);
161 
162  index_eo.splitField(field_e, field_o, w);
163 
164  backward_h(field_se, field_o, bc, mu, 0);
165  backward_h(field_so, field_e, bc, mu, 1);
166 
167  index_eo.mergeField(v, field_se, field_so);
168 }
169 
170 
171 //====================================================================
173  const int bc, const int mu)
174 {
175  Index_eo index_eo;
176 
177  int Nin = w.nin();
178  int Nvol2 = w.nvol() / 2;
179  int Nex = w.nex();
180 
181  Field field_e(Nin, Nvol2, Nex);
182  Field field_o(Nin, Nvol2, Nex);
183 
184  Field field_se(Nin, Nvol2, Nex);
185  Field field_so(Nin, Nvol2, Nex);
186 
187  index_eo.splitField(field_e, field_o, w);
188 
189  forward_h(field_se, field_o, bc, mu, 0);
190  forward_h(field_so, field_e, bc, mu, 1);
191 
192  index_eo.mergeField(v, field_se, field_so);
193 }
194 
195 
196 //====================================================================
197 void ShiftField_eo::up_xh(Field& v, const Field& w, const int bc,
198  const int ieo)
199 {
200  double bc2;
201 
202  if (Communicator::ipe(0) == 0) {
203  bc2 = bc;
204  } else {
205  bc2 = 1.0;
206  }
207 
208  int Nin = w.nin();
209  int Nex = w.nex();
210  int Nvol = w.nvol();
211  int Nvol2 = (1 + Nvol / Nx2) / 2;
212 
213  Field wt(Nin, Nvol2, Nex);
214  Field vt(Nin, Nvol2, Nex);
215 
216  int s2 = 0;
217  for (int t = 0; t < Nt; t++) {
218  for (int z = 0; z < Nz; z++) {
219  for (int y = 0; y < Ny; y++) {
220  if (idx.leo(y, z, t) == ieo) {
221  // bulk
222  for (int x = 0; x < Nx2; x++) {
223  int ix = idx.siteh(x, y, z, t);
224  for (int ex = 0; ex < Nex; ex++) {
225  for (int in = 0; in < Nin; in++) {
226  v.set(in, ix, ex, w.cmp(in, ix, ex));
227  }
228  }
229  }
230  } else {
231  // bulk
232  for (int x = 0; x < Nx2 - 1; x++) {
233  int ix = idx.siteh(x, y, z, t);
234  int px = idx.siteh_xup(x, y, z, t, ieo);
235  for (int ex = 0; ex < Nex; ex++) {
236  for (int in = 0; in < Nin; in++) {
237  v.set(in, ix, ex, w.cmp(in, px, ex));
238  }
239  }
240  }
241  // boundary (x=Nx2-1)
242  int px = idx.siteh(0, y, z, t);
243  for (int in = 0; in < Nin; in++) {
244  for (int ex = 0; ex < Nex; ex++) {
245  wt.set(in, s2, ex, bc2 * w.cmp(in, px, ex));
246  }
247  }
248  s2++;
249  }
250  }
251  }
252  }
253 
254  if (s2 > Nvol2) {
255  vout.crucial(m_vl, "%s: invalid size in shiftField_eo.", class_name.c_str());
256  exit(EXIT_FAILURE);
257  }
258 
259  int size = Nin * Nvol2 * Nex;
260  exchange(size, &vt, &wt, 0, 1, 0);
261 
262  s2 = 0;
263  for (int t = 0; t < Nt; t++) {
264  for (int z = 0; z < Nz; z++) {
265  for (int y = 0; y < Ny; y++) {
266  // boundary (x=Nx-1)
267  if (idx.leo(y, z, t) != ieo) {
268  int ix = idx.siteh(Nx2 - 1, y, z, t);
269  for (int in = 0; in < Nin; in++) {
270  for (int ex = 0; ex < Nex; ex++) {
271  v.set(in, ix, ex, vt.cmp(in, s2, ex));
272  }
273  }
274  s2++;
275  }
276  }
277  }
278  }
279 }
280 
281 
282 //====================================================================
283 void ShiftField_eo::dn_xh(Field& v, const Field& w, const int bc,
284  const int ieo)
285 {
286  double bc2;
287 
288  if (Communicator::ipe(0) == 0) {
289  bc2 = bc;
290  } else {
291  bc2 = 1.0;
292  }
293 
294  int Nin = w.nin();
295  int Nex = w.nex();
296  int Nvol = w.nvol();
297  int Nvol2 = (1 + Nvol / Nx2) / 2;
298 
299  Field wt(Nin, Nvol2, Nex);
300  Field vt(Nin, Nvol2, Nex);
301 
302  int s2 = 0;
303  for (int t = 0; t < Nt; t++) {
304  for (int z = 0; z < Nz; z++) {
305  for (int y = 0; y < Ny; y++) {
306  if (idx.leo(y, z, t) == (1 - ieo)) {
307  // bulk
308  for (int x = 0; x < Nx2; x++) {
309  int ix = idx.siteh(x, y, z, t);
310  for (int ex = 0; ex < Nex; ex++) {
311  for (int in = 0; in < Nin; in++) {
312  v.set(in, ix, ex, w.cmp(in, ix, ex));
313  }
314  }
315  }
316  } else {
317  // bulk
318  for (int x = 1; x < Nx2; x++) {
319  int ix = idx.siteh(x, y, z, t);
320  int mx = idx.siteh_xdn(x, y, z, t, ieo);
321  for (int ex = 0; ex < Nex; ex++) {
322  for (int in = 0; in < Nin; in++) {
323  v.set(in, ix, ex, w.cmp(in, mx, ex));
324  }
325  }
326  }
327  // boundary (x=0)
328  int mx = idx.siteh(Nx2 - 1, y, z, t);
329  for (int in = 0; in < Nin; in++) {
330  for (int ex = 0; ex < Nex; ex++) {
331  wt.set(in, s2, ex, w.cmp(in, mx, ex));
332  }
333  }
334  s2++;
335  }
336  }
337  }
338  }
339 
340  int size = Nin * Nvol2 * Nex;
341  exchange(size, &vt, &wt, 0, -1, 4);
342 
343  s2 = 0;
344  for (int t = 0; t < Nt; t++) {
345  for (int z = 0; z < Nz; z++) {
346  for (int y = 0; y < Ny; y++) {
347  // boundary (x=0)
348  if (idx.leo(y, z, t) != (1 - ieo)) {
349  int ix = idx.siteh(0, y, z, t);
350  for (int in = 0; in < Nin; in++) {
351  for (int ex = 0; ex < Nex; ex++) {
352  v.set(in, ix, ex, bc2 * vt.cmp(in, s2, ex));
353  }
354  }
355  s2++;
356  }
357  }
358  }
359  }
360 }
361 
362 
363 //====================================================================
364 void ShiftField_eo::up_yh(Field& v, const Field& w, const int bc,
365  const int ieo)
366 {
367  double bc2;
368 
369  if (Communicator::ipe(1) == 0) {
370  bc2 = bc;
371  } else {
372  bc2 = 1.0;
373  }
374 
375  int Nin = w.nin();
376  int Nex = w.nex();
377  int Nvol = w.nvol();
378 
379  Field wt(Nin, Nvol / Ny, Nex);
380  Field vt(Nin, Nvol / Ny, Nex);
381 
382  for (int t = 0; t < Nt; t++) {
383  for (int z = 0; z < Nz; z++) {
384  for (int x = 0; x < Nx2; x++) {
385  // bulk
386  for (int y = 0; y < Ny - 1; y++) {
387  int ix = idx.siteh(x, y, z, t);
388  int px = idx.siteh(x, y + 1, z, t);
389  for (int ex = 0; ex < Nex; ex++) {
390  for (int in = 0; in < Nin; in++) {
391  v.set(in, ix, ex, w.cmp(in, px, ex));
392  }
393  }
394  }
395 
396  // boundary (y=Ny-1)
397  int s2 = x + Nx2 * (z + Nz * t);
398  int px = idx.siteh(x, 0, z, t);
399  for (int in = 0; in < Nin; in++) {
400  for (int ex = 0; ex < Nex; ex++) {
401  wt.set(in, s2, ex, bc2 * w.cmp(in, px, ex));
402  }
403  }
404  }
405  }
406  }
407 
408  int size = Nin * (Nvol / Ny) * Nex;
409  exchange(size, &vt, &wt, 1, 1, 1);
410 
411  for (int t = 0; t < Nt; t++) {
412  for (int z = 0; z < Nz; z++) {
413  for (int x = 0; x < Nx2; x++) {
414  // boundary (y=Ny-1)
415  int s2 = x + Nx2 * (z + Nz * t);
416  int ix = idx.siteh(x, Ny - 1, z, t);
417  for (int in = 0; in < Nin; in++) {
418  for (int ex = 0; ex < Nex; ex++) {
419  v.set(in, ix, ex, vt.cmp(in, s2, ex));
420  }
421  }
422  }
423  }
424  }
425 }
426 
427 
428 //====================================================================
429 void ShiftField_eo::dn_yh(Field& v, const Field& w, const int bc,
430  const int ieo)
431 {
432  double bc2;
433 
434  if (Communicator::ipe(1) == 0) {
435  bc2 = bc;
436  } else {
437  bc2 = 1.0;
438  }
439 
440  int Nin = w.nin();
441  int Nex = w.nex();
442  int Nvol = w.nvol();
443 
444  Field wt(Nin, Nvol / Ny, Nex);
445  Field vt(Nin, Nvol / Ny, Nex);
446 
447  for (int t = 0; t < Nt; t++) {
448  for (int z = 0; z < Nz; z++) {
449  for (int x = 0; x < Nx2; x++) {
450  // bulk
451  for (int y = 1; y < Ny; y++) {
452  int ix = idx.siteh(x, y, z, t);
453  int px = idx.siteh(x, y - 1, z, t);
454  for (int ex = 0; ex < Nex; ex++) {
455  for (int in = 0; in < Nin; in++) {
456  v.set(in, ix, ex, w.cmp(in, px, ex));
457  }
458  }
459  }
460  // boundary (y=0)
461  int s2 = x + Nx2 * (z + Nz * t);
462  int px = idx.siteh(x, Ny - 1, z, t);
463  for (int in = 0; in < Nin; in++) {
464  for (int ex = 0; ex < Nex; ex++) {
465  wt.set(in, s2, ex, w.cmp(in, px, ex));
466  }
467  }
468  }
469  }
470  }
471 
472  int size = Nin * (Nvol / Ny) * Nex;
473  exchange(size, &vt, &wt, 1, -1, 5);
474 
475  for (int t = 0; t < Nt; t++) {
476  for (int z = 0; z < Nz; z++) {
477  for (int x = 0; x < Nx2; x++) {
478  int s2 = x + Nx2 * (z + Nz * t);
479 
480  // boundary (y=0)
481  int ix = idx.siteh(x, 0, z, t);
482  for (int in = 0; in < Nin; in++) {
483  for (int ex = 0; ex < Nex; ex++) {
484  v.set(in, ix, ex, bc2 * vt.cmp(in, s2, ex));
485  }
486  }
487  }
488  }
489  }
490 }
491 
492 
493 //====================================================================
494 void ShiftField_eo::up_zh(Field& v, const Field& w, const int bc,
495  const int ieo)
496 {
497  double bc2;
498 
499  if (Communicator::ipe(2) == 0) {
500  bc2 = bc;
501  } else {
502  bc2 = 1.0;
503  }
504 
505  int Nin = w.nin();
506  int Nex = w.nex();
507  int Nvol = w.nvol();
508 
509  Field wt(Nin, Nvol / Nz, Nex);
510  Field vt(Nin, Nvol / Nz, Nex);
511 
512  for (int t = 0; t < Nt; t++) {
513  for (int y = 0; y < Ny; y++) {
514  for (int x = 0; x < Nx2; x++) {
515  // bulk
516  for (int z = 0; z < Nz - 1; z++) {
517  int ix = idx.siteh(x, y, z, t);
518  int px = idx.siteh(x, y, z + 1, t);
519  for (int ex = 0; ex < Nex; ex++) {
520  for (int in = 0; in < Nin; in++) {
521  v.set(in, ix, ex, w.cmp(in, px, ex));
522  }
523  }
524  }
525 
526  // boundary (z=Nz-1)
527  int s2 = x + Nx2 * (y + Ny * t);
528  int px = idx.siteh(x, y, 0, t);
529  for (int in = 0; in < Nin; in++) {
530  for (int ex = 0; ex < Nex; ex++) {
531  wt.set(in, s2, ex, bc2 * w.cmp(in, px, ex));
532  }
533  }
534  }
535  }
536  }
537 
538  int size = Nin * (Nvol / Nz) * Nex;
539  exchange(size, &vt, &wt, 2, 1, 2);
540 
541  for (int t = 0; t < Nt; t++) {
542  for (int y = 0; y < Ny; y++) {
543  for (int x = 0; x < Nx2; x++) {
544  int s2 = x + Nx2 * (y + Ny * t);
545 
546  // boundary (z=Nz-1)
547  int ix = idx.siteh(x, y, Nz - 1, t);
548  for (int in = 0; in < Nin; in++) {
549  for (int ex = 0; ex < Nex; ex++) {
550  v.set(in, ix, ex, vt.cmp(in, s2, ex));
551  }
552  }
553  }
554  }
555  }
556 }
557 
558 
559 //====================================================================
560 void ShiftField_eo::dn_zh(Field& v, const Field& w, const int bc,
561  const int ieo)
562 {
563  double bc2;
564 
565  if (Communicator::ipe(2) == 0) {
566  bc2 = bc;
567  } else {
568  bc2 = 1.0;
569  }
570 
571  int Nin = w.nin();
572  int Nex = w.nex();
573  int Nvol = w.nvol();
574 
575  Field wt(Nin, Nvol / Nz, Nex);
576  Field vt(Nin, Nvol / Nz, Nex);
577 
578  for (int t = 0; t < Nt; t++) {
579  for (int y = 0; y < Ny; y++) {
580  for (int x = 0; x < Nx2; x++) {
581  int s2 = x + Nx2 * (y + Ny * t);
582 
583  // bulk
584  for (int z = 1; z < Nz; z++) {
585  int ix = idx.siteh(x, y, z, t);
586  int px = idx.siteh(x, y, z - 1, t);
587  for (int ex = 0; ex < Nex; ex++) {
588  for (int in = 0; in < Nin; in++) {
589  v.set(in, ix, ex, w.cmp(in, px, ex));
590  }
591  }
592  }
593  // boundary (z=0)
594  int px = idx.siteh(x, y, Nz - 1, t);
595  for (int in = 0; in < Nin; in++) {
596  for (int ex = 0; ex < Nex; ex++) {
597  wt.set(in, s2, ex, w.cmp(in, px, ex));
598  }
599  }
600  }
601  }
602  }
603 
604  int size = Nin * (Nvol / Nz) * Nex;
605  exchange(size, &vt, &wt, 2, -1, 6);
606 
607  for (int t = 0; t < Nt; t++) {
608  for (int y = 0; y < Ny; y++) {
609  for (int x = 0; x < Nx2; x++) {
610  int s2 = x + Nx2 * (y + Ny * t);
611 
612  // boundary (z=0)
613  int ix = idx.siteh(x, y, 0, t);
614  for (int in = 0; in < Nin; in++) {
615  for (int ex = 0; ex < Nex; ex++) {
616  v.set(in, ix, ex, bc2 * vt.cmp(in, s2, ex));
617  }
618  }
619  }
620  }
621  }
622 }
623 
624 
625 //====================================================================
626 void ShiftField_eo::up_th(Field& v, const Field& w, const int bc,
627  const int ieo)
628 {
629  double bc2;
630 
631  if (Communicator::ipe(3) == 0) {
632  bc2 = bc;
633  } else {
634  bc2 = 1.0;
635  }
636 
637  int Nin = w.nin();
638  int Nex = w.nex();
639  int Nvol = w.nvol();
640 
641  Field wt(Nin, Nvol / Nt, Nex);
642  Field vt(Nin, Nvol / Nt, Nex);
643 
644  for (int z = 0; z < Nz; z++) {
645  for (int y = 0; y < Ny; y++) {
646  for (int x = 0; x < Nx2; x++) {
647  int s2 = x + Nx2 * (y + Ny * z);
648 
649  // bulk
650  for (int t = 0; t < Nt - 1; t++) {
651  int ix = idx.siteh(x, y, z, t);
652  int px = idx.siteh(x, y, z, t + 1);
653  for (int ex = 0; ex < Nex; ex++) {
654  for (int in = 0; in < Nin; in++) {
655  v.set(in, ix, ex, w.cmp(in, px, ex));
656  }
657  }
658  }
659 
660  // boundary (t=Nt-1)
661  int px = idx.siteh(x, y, z, 0);
662  for (int ex = 0; ex < Nex; ex++) {
663  for (int in = 0; in < Nin; in++) {
664  wt.set(in, s2, ex, bc2 * w.cmp(in, px, ex));
665  }
666  }
667  }
668  }
669  }
670 
671  int size = Nin * (Nvol / Nt) * Nex;
672  exchange(size, &vt, &wt, 3, 1, 3);
673 
674  for (int z = 0; z < Nz; z++) {
675  for (int y = 0; y < Ny; y++) {
676  for (int x = 0; x < Nx2; x++) {
677  int s2 = x + Nx2 * (y + Ny * z);
678 
679  // boundary (t=Nt-1)
680  int ix = idx.siteh(x, y, z, Nt - 1);
681  for (int ex = 0; ex < Nex; ex++) {
682  for (int in = 0; in < Nin; in++) {
683  v.set(in, ix, ex, vt.cmp(in, s2, ex));
684  }
685  }
686  }
687  }
688  }
689 }
690 
691 
692 //====================================================================
693 void ShiftField_eo::dn_th(Field& v, const Field& w, const int bc,
694  const int ieo)
695 {
696  double bc2;
697 
698  if (Communicator::ipe(3) == 0) {
699  bc2 = bc;
700  } else {
701  bc2 = 1.0;
702  }
703 
704  int Nin = w.nin();
705  int Nex = w.nex();
706  int Nvol = w.nvol();
707 
708  Field wt(Nin, Nvol / Nt, Nex);
709  Field vt(Nin, Nvol / Nt, Nex);
710 
711  for (int z = 0; z < Nz; z++) {
712  for (int y = 0; y < Ny; y++) {
713  for (int x = 0; x < Nx2; x++) {
714  int s2 = x + Nx2 * (y + Ny * z);
715 
716  // bulk
717  for (int t = 1; t < Nt; t++) {
718  int ix = idx.siteh(x, y, z, t);
719  int px = idx.siteh(x, y, z, t - 1);
720  for (int ex = 0; ex < Nex; ex++) {
721  for (int in = 0; in < Nin; in++) {
722  v.set(in, ix, ex, w.cmp(in, px, ex));
723  }
724  }
725  }
726  // boundary (t=0)
727  int ix = idx.siteh(x, y, z, 0);
728  int px = idx.siteh(x, y, z, Nt - 1);
729  for (int ex = 0; ex < Nex; ex++) {
730  for (int in = 0; in < Nin; in++) {
731  wt.set(in, s2, ex, w.cmp(in, px, ex));
732  }
733  }
734  }
735  }
736  }
737 
738  int size = Nin * (Nvol / Nt) * Nex;
739  exchange(size, &vt, &wt, 3, -1, 7);
740 
741  for (int z = 0; z < Nz; z++) {
742  for (int y = 0; y < Ny; y++) {
743  for (int x = 0; x < Nx2; x++) {
744  int s2 = x + Nx2 * (y + Ny * z);
745 
746  // boundary (t=0)
747  int ix = idx.siteh(x, y, z, 0);
748  int px = idx.siteh(x, y, z, Nt - 1);
749  for (int ex = 0; ex < Nex; ex++) {
750  for (int in = 0; in < Nin; in++) {
751  v.set(in, ix, ex, bc2 * vt.cmp(in, s2, ex));
752  }
753  }
754  }
755  }
756  }
757 }
758 
759 
760 //====================================================================
761 //============================================================END=====
void backward(Field &, const Field &, const int mu)
BridgeIO vout
Definition: bridgeIO.cpp:278
void set(const int jin, const int site, const int jex, double v)
Definition: field.h:155
int siteh(const int x2, const int y, const int z, const int t) const
Definition: index_eo.h:146
Index_eo idx
Definition: shiftField_eo.h:51
Bridge::VerboseLevel m_vl
Definition: shiftField_eo.h:52
static const std::string class_name
Definition: shiftField_eo.h:47
Container of Field-type object.
Definition: field.h:39
void up_th(Field &, const Field &, const int, const int)
int nvol() const
Definition: field.h:116
double cmp(const int jin, const int site, const int jex) const
Definition: field.h:123
void dn_yh(Field &, const Field &, const int, const int)
static int ipe(const int dir)
logical coordinate of current proc.
Even-odd site index.
Definition: index_eo.h:38
int leo(const int y, const int z, const int t) const
Definition: index_eo.h:98
int nin() const
Definition: field.h:115
void mergeField(Field &eo, const Field &e, const Field &o)
Definition: index_eo.cpp:168
int siteh_xup(const int x2, const int y, const int z, const int t, const int ieo) const
Definition: index_eo.h:160
int siteh_xdn(const int x2, const int y, const int z, const int t, const int ieo) const
Definition: index_eo.h:176
void up_zh(Field &, const Field &, const int, const int)
int nex() const
Definition: field.h:117
void dn_th(Field &, const Field &, const int, const int)
void up_xh(Field &, const Field &, const int, const int)
void crucial(const char *format,...)
Definition: bridgeIO.cpp:48
void dn_zh(Field &, const Field &, const int, const int)
void up_yh(Field &, const Field &, const int, const int)
void dn_xh(Field &, const Field &, const int, const int)
void splitField(Field &e, Field &o, const Field &eo)
Definition: index_eo.cpp:140
void forward(Field &, const Field &, const int mu)
void backward_h(Field &, const Field &, const int mu, const int ieo)
int exchange(int count, Field *recv_buf, Field *send_buf, int idir, int ipm, int tag)
Definition: field.h:393
void forward_h(Field &, const Field &, const int mu, const int ieo)