Bridge++  Ver.2.1.3
mult_Domainwall_eo_t_dirac_openacc-inc.h
Go to the documentation of this file.
1 
8 {
9  //mult_tp
10  int idir = 3;
11  int nn = (it + 1) % Nt;
12 
13  int ixyz = site % Nxyz;
14 
15  int isn = ixyz + nn * Nxyz;
16  int isg = ixyz + it * Nxyz + Nst_pad * (ieo + 2 * idir);
17  if(jgm5 == 0){
18  vt1_0 = 2.0 * v1[IDX2_SP_5D_R(0, 2, is, Ns, isn)];
19  vt1_1 = 2.0 * v1[IDX2_SP_5D_I(0, 2, is, Ns, isn)];
20  vt1_2 = 2.0 * v1[IDX2_SP_5D_R(1, 2, is, Ns, isn)];
21  vt1_3 = 2.0 * v1[IDX2_SP_5D_I(1, 2, is, Ns, isn)];
22  vt1_4 = 2.0 * v1[IDX2_SP_5D_R(2, 2, is, Ns, isn)];
23  vt1_5 = 2.0 * v1[IDX2_SP_5D_I(2, 2, is, Ns, isn)];
24 
25  vt2_0 = 2.0 * v1[IDX2_SP_5D_R(0, 3, is, Ns, isn)];
26  vt2_1 = 2.0 * v1[IDX2_SP_5D_I(0, 3, is, Ns, isn)];
27  vt2_2 = 2.0 * v1[IDX2_SP_5D_R(1, 3, is, Ns, isn)];
28  vt2_3 = 2.0 * v1[IDX2_SP_5D_I(1, 3, is, Ns, isn)];
29  vt2_4 = 2.0 * v1[IDX2_SP_5D_R(2, 3, is, Ns, isn)];
30  vt2_5 = 2.0 * v1[IDX2_SP_5D_I(2, 3, is, Ns, isn)];
31  }else{
32  vt1_0 = 2.0 * v1[IDX2_SP_5D_R(0, 0, is, Ns, isn)];
33  vt1_1 = 2.0 * v1[IDX2_SP_5D_I(0, 0, is, Ns, isn)];
34  vt1_2 = 2.0 * v1[IDX2_SP_5D_R(1, 0, is, Ns, isn)];
35  vt1_3 = 2.0 * v1[IDX2_SP_5D_I(1, 0, is, Ns, isn)];
36  vt1_4 = 2.0 * v1[IDX2_SP_5D_R(2, 0, is, Ns, isn)];
37  vt1_5 = 2.0 * v1[IDX2_SP_5D_I(2, 0, is, Ns, isn)];
38 
39  vt2_0 = 2.0 * v1[IDX2_SP_5D_R(0, 1, is, Ns, isn)];
40  vt2_1 = 2.0 * v1[IDX2_SP_5D_I(0, 1, is, Ns, isn)];
41  vt2_2 = 2.0 * v1[IDX2_SP_5D_R(1, 1, is, Ns, isn)];
42  vt2_3 = 2.0 * v1[IDX2_SP_5D_I(1, 1, is, Ns, isn)];
43  vt2_4 = 2.0 * v1[IDX2_SP_5D_R(2, 1, is, Ns, isn)];
44  vt2_5 = 2.0 * v1[IDX2_SP_5D_I(2, 1, is, Ns, isn)];
45  }
46  u_0 = u_up[IDX2_G_R(0, 0, isg)];
47  u_1 = u_up[IDX2_G_I(0, 0, isg)];
48  u_2 = u_up[IDX2_G_R(1, 0, isg)];
49  u_3 = u_up[IDX2_G_I(1, 0, isg)];
50  u_4 = u_up[IDX2_G_R(2, 0, isg)];
51  u_5 = u_up[IDX2_G_I(2, 0, isg)];
52 
61 
62  int bc2 = 1.0;
63  if(it == Nt-1) bc2 = bc[3];
64  v2_03 += bc2 * wt1r;
65  v2_13 += bc2 * wt1i;
66  v2_04 += bc2 * wt2r;
67  v2_14 += bc2 * wt2i;
68 
69  u_6 = u_up[IDX2_G_R(0, 1, isg)];
70  u_7 = u_up[IDX2_G_I(0, 1, isg)];
71  u_8 = u_up[IDX2_G_R(1, 1, isg)];
72  u_9 = u_up[IDX2_G_I(1, 1, isg)];
73  u10 = u_up[IDX2_G_R(2, 1, isg)];
74  u11 = u_up[IDX2_G_I(2, 1, isg)];
75 
76  wt1r = MULT_GXr(u_6, u_7, u_8, u_9, u10, u11,
78  wt1i = MULT_GXi(u_6, u_7, u_8, u_9, u10, u11,
80  wt2r = MULT_GXr(u_6, u_7, u_8, u_9, u10, u11,
82  wt2i = MULT_GXi(u_6, u_7, u_8, u_9, u10, u11,
84 
85  v2_23 += bc2 * wt1r;
86  v2_33 += bc2 * wt1i;
87  v2_24 += bc2 * wt2r;
88  v2_34 += bc2 * wt2i;
89 
90 #ifdef SU3_3RD_ROW_RECONST
91  u12 = EXT_IMG_R(u_2, u_3, u_4, u_5, u_8, u_9, u10, u11);
92  u13 = EXT_IMG_I(u_2, u_3, u_4, u_5, u_8, u_9, u10, u11);
93  u14 = EXT_IMG_R(u_4, u_5, u_0, u_1, u10, u11, u_6, u_7);
94  u15 = EXT_IMG_I(u_4, u_5, u_0, u_1, u10, u11, u_6, u_7);
95  u16 = EXT_IMG_R(u_0, u_1, u_2, u_3, u_6, u_7, u_8, u_9);
96  u17 = EXT_IMG_I(u_0, u_1, u_2, u_3, u_6, u_7, u_8, u_9);
97 #else
98  u12 = u_up[IDX2_G_R(0, 2, isg)];
99  u13 = u_up[IDX2_G_I(0, 2, isg)];
100  u14 = u_up[IDX2_G_R(1, 2, isg)];
101  u15 = u_up[IDX2_G_I(1, 2, isg)];
102  u16 = u_up[IDX2_G_R(2, 2, isg)];
103  u17 = u_up[IDX2_G_I(2, 2, isg)];
104 #endif
105 
106  wt1r = MULT_GXr(u12, u13, u14, u15, u16, u17,
108  wt1i = MULT_GXi(u12, u13, u14, u15, u16, u17,
110  wt2r = MULT_GXr(u12, u13, u14, u15, u16, u17,
112  wt2i = MULT_GXi(u12, u13, u14, u15, u16, u17,
114 
115  v2_43 += bc2 * wt1r;
116  v2_53 += bc2 * wt1i;
117  v2_44 += bc2 * wt2r;
118  v2_54 += bc2 * wt2i;
119 
120 
121  //mult_tm
122  nn = (it + Nt - 1) % Nt;
123 
124  isn = ixyz + nn * Nxyz;
125  isg = ixyz + nn * Nxyz + Nst_pad * (1-ieo + 2*idir);
126  if(jgm5 == 0){
127  vt1_0 = 2.0 * v1[IDX2_SP_5D_R(0, 0, is, Ns, isn)];
128  vt1_1 = 2.0 * v1[IDX2_SP_5D_I(0, 0, is, Ns, isn)];
129  vt1_2 = 2.0 * v1[IDX2_SP_5D_R(1, 0, is, Ns, isn)];
130  vt1_3 = 2.0 * v1[IDX2_SP_5D_I(1, 0, is, Ns, isn)];
131  vt1_4 = 2.0 * v1[IDX2_SP_5D_R(2, 0, is, Ns, isn)];
132  vt1_5 = 2.0 * v1[IDX2_SP_5D_I(2, 0, is, Ns, isn)];
133 
134  vt2_0 = 2.0 * v1[IDX2_SP_5D_R(0, 1, is, Ns, isn)];
135  vt2_1 = 2.0 * v1[IDX2_SP_5D_I(0, 1, is, Ns, isn)];
136  vt2_2 = 2.0 * v1[IDX2_SP_5D_R(1, 1, is, Ns, isn)];
137  vt2_3 = 2.0 * v1[IDX2_SP_5D_I(1, 1, is, Ns, isn)];
138  vt2_4 = 2.0 * v1[IDX2_SP_5D_R(2, 1, is, Ns, isn)];
139  vt2_5 = 2.0 * v1[IDX2_SP_5D_I(2, 1, is, Ns, isn)];
140  }else{
141  vt1_0 = 2.0 * v1[IDX2_SP_5D_R(0, 2, is, Ns, isn)];
142  vt1_1 = 2.0 * v1[IDX2_SP_5D_I(0, 2, is, Ns, isn)];
143  vt1_2 = 2.0 * v1[IDX2_SP_5D_R(1, 2, is, Ns, isn)];
144  vt1_3 = 2.0 * v1[IDX2_SP_5D_I(1, 2, is, Ns, isn)];
145  vt1_4 = 2.0 * v1[IDX2_SP_5D_R(2, 2, is, Ns, isn)];
146  vt1_5 = 2.0 * v1[IDX2_SP_5D_I(2, 2, is, Ns, isn)];
147 
148  vt2_0 = 2.0 * v1[IDX2_SP_5D_R(0, 3, is, Ns, isn)];
149  vt2_1 = 2.0 * v1[IDX2_SP_5D_I(0, 3, is, Ns, isn)];
150  vt2_2 = 2.0 * v1[IDX2_SP_5D_R(1, 3, is, Ns, isn)];
151  vt2_3 = 2.0 * v1[IDX2_SP_5D_I(1, 3, is, Ns, isn)];
152  vt2_4 = 2.0 * v1[IDX2_SP_5D_R(2, 3, is, Ns, isn)];
153  vt2_5 = 2.0 * v1[IDX2_SP_5D_I(2, 3, is, Ns, isn)];
154  }
155  u_0 = u_dn[IDX2_G_R(0, 0, isg)];
156  u_1 = u_dn[IDX2_G_I(0, 0, isg)];
157  u_2 = u_dn[IDX2_G_R(0, 1, isg)];
158  u_3 = u_dn[IDX2_G_I(0, 1, isg)];
159  u_4 = u_dn[IDX2_G_R(0, 2, isg)];
160  u_5 = u_dn[IDX2_G_I(0, 2, isg)];
161 
162  wt1r = MULT_GDXr(u_0, u_1, u_2, u_3, u_4, u_5,
164  wt1i = MULT_GDXi(u_0, u_1, u_2, u_3, u_4, u_5,
166  wt2r = MULT_GDXr(u_0, u_1, u_2, u_3, u_4, u_5,
168  wt2i = MULT_GDXi(u_0, u_1, u_2, u_3, u_4, u_5,
170 
171  bc2 = 1.0;
172  if(it == 0) bc2 = bc[3];
173  v2_01 += bc2 * wt1r;
174  v2_11 += bc2 * wt1i;
175  v2_02 += bc2 * wt2r;
176  v2_12 += bc2 * wt2i;
177 
178  u_6 = u_dn[IDX2_G_R(1, 0, isg)];
179  u_7 = u_dn[IDX2_G_I(1, 0, isg)];
180  u_8 = u_dn[IDX2_G_R(1, 1, isg)];
181  u_9 = u_dn[IDX2_G_I(1, 1, isg)];
182  u10 = u_dn[IDX2_G_R(1, 2, isg)];
183  u11 = u_dn[IDX2_G_I(1, 2, isg)];
184 
185  wt1r = MULT_GDXr(u_6, u_7, u_8, u_9, u10, u11,
187  wt1i = MULT_GDXi(u_6, u_7, u_8, u_9, u10, u11,
189  wt2r = MULT_GDXr(u_6, u_7, u_8, u_9, u10, u11,
191  wt2i = MULT_GDXi(u_6, u_7, u_8, u_9, u10, u11,
193 
194  v2_21 += bc2 * wt1r;
195  v2_31 += bc2 * wt1i;
196  v2_22 += bc2 * wt2r;
197  v2_32 += bc2 * wt2i;
198 
199 #ifdef SU3_3RD_ROW_RECONST
200  u12 = EXT_IMG_R(u_2, u_3, u_4, u_5, u_8, u_9, u10, u11);
201  u13 = EXT_IMG_I(u_2, u_3, u_4, u_5, u_8, u_9, u10, u11);
202  u14 = EXT_IMG_R(u_4, u_5, u_0, u_1, u10, u11, u_6, u_7);
203  u15 = EXT_IMG_I(u_4, u_5, u_0, u_1, u10, u11, u_6, u_7);
204  u16 = EXT_IMG_R(u_0, u_1, u_2, u_3, u_6, u_7, u_8, u_9);
205  u17 = EXT_IMG_I(u_0, u_1, u_2, u_3, u_6, u_7, u_8, u_9);
206 #else
207  u12 = u_dn[IDX2_G_R(2,0,isg)];
208  u13 = u_dn[IDX2_G_I(2,0,isg)];
209  u14 = u_dn[IDX2_G_R(2,1,isg)];
210  u15 = u_dn[IDX2_G_I(2,1,isg)];
211  u16 = u_dn[IDX2_G_R(2,2,isg)];
212  u17 = u_dn[IDX2_G_I(2,2,isg)];
213 #endif
214 
215  wt1r = MULT_GDXr(u12, u13, u14, u15, u16, u17,
217  wt1i = MULT_GDXi(u12, u13, u14, u15, u16, u17,
219  wt2r = MULT_GDXr(u12, u13, u14, u15, u16, u17,
221  wt2i = MULT_GDXi(u12, u13, u14, u15, u16, u17,
223 
224  v2_41 += bc2 * wt1r;
225  v2_51 += bc2 * wt1i;
226  v2_42 += bc2 * wt2r;
227  v2_52 += bc2 * wt2i;
228 
229 }
230 //============================================================END=====
u14
u14
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:100
v2_32
v2_32
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:197
u13
u13
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:99
v2_33
v2_33
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:86
v2_34
v2_34
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:88
v2_54
v2_54
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:118
u11
u11
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:74
vt2_1
vt2_1
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:40
v2_51
v2_51
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:225
EXT_IMG_R
#define EXT_IMG_R(v1r, v1i, v2r, v2i, w1r, w1i, w2r, w2i)
Definition: afield_Gauge_openacc-inc.h:19
isn
int isn
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:15
u_0
u_0
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:46
v2_41
v2_41
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:224
v2_52
v2_52
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:227
vt2_5
vt2_5
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:44
u_9
u_9
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:72
v2_12
v2_12
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:176
vt1_2
vt1_2
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:34
u_5
u_5
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:51
wt1i
wt1i
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:55
vt2_2
vt2_2
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:41
wt2r
wt2r
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:57
IDX2_SP_5D_I
#define IDX2_SP_5D_I(ic, id, is, Ns, ist)
Definition: define_index.h:62
u_3
u_3
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:49
nn
int nn
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:11
IDX2_G_I
#define IDX2_G_I(ic1, ic2, ist)
Definition: define_index.h:52
u_8
u_8
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:71
MULT_GXi
#define MULT_GXi(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: afield_Gauge_openacc-inc.h:17
v2_23
v2_23
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:85
v2_21
v2_21
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:194
vt1_0
vt1_0
Definition: mult_Wilson_eo_t_chiral_openacc-inc.h:18
MULT_GDXi
#define MULT_GDXi(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: mult_Wilson_inline_openacc-inc.h:19
idir
idir
Definition: mult_Domainwall_eo_xyz_openacc-inc.h:264
u10
u10
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:73
v2_04
v2_04
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:66
bc2
int bc2
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:62
wt1r
wt1r
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:53
v2_44
v2_44
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:117
wt2i
wt2i
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:59
isg
int isg
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:16
u_2
u_2
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:48
u16
u16
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:102
u_1
u_1
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:47
u_4
u_4
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:50
u17
u17
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:103
it
int it
Definition: mult_Wilson_xyz_openacc-inc.h:461
v2_22
v2_22
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:196
vt1_5
vt1_5
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:37
v2_14
v2_14
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:67
u12
u12
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:98
v2_53
v2_53
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:116
v2_01
v2_01
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:173
vt2_3
vt2_3
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:42
v2_31
v2_31
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:195
v2_43
v2_43
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:115
vt1_3
vt1_3
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:35
MULT_GXr
#define MULT_GXr(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: afield_Gauge_openacc-inc.h:16
ixyz
int ixyz
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:13
IDX2_G_R
#define IDX2_G_R(ic1, ic2, ist)
Definition: define_index.h:51
u15
u15
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:101
vt2_4
vt2_4
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:43
v2_11
v2_11
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:174
u_6
u_6
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:69
vt2_0
vt2_0
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:39
MULT_GDXr
#define MULT_GDXr(u0, u1, u2, u3, u4, u5, v0, v1, v2, v3, v4, v5)
Definition: mult_Wilson_inline_openacc-inc.h:18
EXT_IMG_I
#define EXT_IMG_I(v1r, v1i, v2r, v2i, w1r, w1i, w2r, w2i)
Definition: afield_Gauge_openacc-inc.h:20
v2_13
v2_13
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:65
IDX2_SP_5D_R
#define IDX2_SP_5D_R(ic, id, is, Ns, ist)
Definition: define_index.h:61
u_7
u_7
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:70
v2_42
v2_42
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:226
vt1_4
vt1_4
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:36
v2_02
v2_02
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:175
vt1_1
vt1_1
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:33
v2_03
v2_03
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:64
v2_24
v2_24
Definition: mult_Domainwall_eo_t_dirac_openacc-inc.h:87