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