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