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