CHROMA
baryon_spin3by2_s.cc
Go to the documentation of this file.
1 /*
2  Code for j=3/2 Staggered Baryons.
3 
4 Lattice Baryons With Staggered Fermions.
5 Maarten F.L. Golterman, Jan Smit (Amsterdam U.)
6 Published in Nucl.Phys.B255:328,1985
7 
8 The Quenched spectrum with staggered fermions.
9 Rajan Gupta (Los Alamos) , Gerald Guralnik (Brown U.) , Gregory W. Kilcup (Ohio State U.) , Stephen R. Sharpe
10 Published in Phys.Rev.D43:2003-2026,1991
11 
12 The class 7 operators has been compared against the MILC
13 code. The class 4 operator is still experimental!
14 
15 */
16 
17 #include "chromabase.h"
18 
19 namespace Chroma {
20 
21  // some prototypes
22 
23  void baryon_s(
24  LatticeStaggeredPropagator & quark_propagator_in_a,
25  LatticeStaggeredPropagator & quark_propagator_in_b,
26  LatticeStaggeredPropagator & quark_propagator_in_c,
27  multi1d<Complex> & barprop,
28  multi1d<int> & t_source,
29  int j_decay, int bc_spec) ;
30 
31 
32  //
33  // This is the quasi-local operator that is used by
34  // MILC from the above Gupta paper
35  //
36  // This is known as a class 7 operator by Smit and Golterman.
37  //
38  //
39 
41  LatticeStaggeredPropagator & quark_propagator_in_a,
42  LatticeStaggeredPropagator & quark_propagator_in_b,
43  LatticeStaggeredPropagator & quark_propagator_in_c,
44  multi1d<Complex> & barprop,
45  multi1d<int> & t_source,
46  int j_decay, int bc_spec)
47  {
48  StopWatch swatch;
49  swatch.start();
50 
51  // shift the quark propagators
52  LatticeStaggeredPropagator quark_propagator_in_a_shift ;
53  LatticeStaggeredPropagator quark_propagator_in_b_shift ;
54  LatticeStaggeredPropagator quark_propagator_in_c_shift ;
55 
56  // shift in x direction
57  quark_propagator_in_a_shift = shift(quark_propagator_in_a,FORWARD,0) +
58  shift(quark_propagator_in_a,BACKWARD,0) ;
59 
60  quark_propagator_in_b_shift = shift(quark_propagator_in_b,FORWARD,1) +
61  shift(quark_propagator_in_b,BACKWARD,1) ;
62 
63  quark_propagator_in_c_shift = shift(quark_propagator_in_c,FORWARD,2) +
64  shift(quark_propagator_in_c,BACKWARD,2) ;
65 
66  // call the Wick contarction routine
67  baryon_s(quark_propagator_in_a_shift,
68  quark_propagator_in_b_shift,
69  quark_propagator_in_c_shift,
70  barprop, t_source, j_decay, bc_spec) ;
71 
72  // 8 = 2**3 for average in the derivative
73  // 6 is the factor in the definition of the operator
74 
75  // barprop /= 6.0 * 8.0 ;
76 
77  // chose normalisation to agree with MILC code
78  barprop /= 6.0 ;
79 
80  swatch.stop();
81  double time_in_sec = swatch.getTimeInSeconds();
82 
83  QDPIO::cout << "baryon_class7_s took " << time_in_sec
84  << " secs" << std::endl;
85 
86  }
87 
88 
89 
90  //
91  // This is the quasi-local NLT operator
92  // from the Gupta paper. One of the quark fields are
93  // shifted forward by one time slice.
94  //
95  // This is known as a class 7 operator by Smit and Golterman.
96  //
97  //
98 
100  LatticeStaggeredPropagator & quark_propagator_in_a,
101  LatticeStaggeredPropagator & quark_propagator_in_b,
102  LatticeStaggeredPropagator & quark_propagator_in_c,
103  multi1d<LatticeColorMatrix> & u ,
104  multi1d<Complex> & barprop,
105  multi1d<int> & t_source,
106  int j_decay, int bc_spec)
107  {
108  StopWatch swatch;
109  swatch.start();
110 
111  LatticeStaggeredPropagator quark_propagator_in_a_TIME_shift ;
112  // use a covariant shift in time because we only fix to Coulomb
113  // gauge. This may make the correlators more noisy
114 
115  quark_propagator_in_a_TIME_shift = u[j_decay] * shift(quark_propagator_in_a_TIME_shift,FORWARD,j_decay) ;
116 
117 
118  // shift the quark propagators
119  LatticeStaggeredPropagator quark_propagator_in_a_shift ;
120  LatticeStaggeredPropagator quark_propagator_in_b_shift ;
121  LatticeStaggeredPropagator quark_propagator_in_c_shift ;
122 
123  // shift in x direction
124  quark_propagator_in_a_shift =
125  shift(quark_propagator_in_a_TIME_shift,FORWARD,0) +
126  shift(quark_propagator_in_a_TIME_shift,BACKWARD,0) ;
127 
128  quark_propagator_in_b_shift = shift(quark_propagator_in_b,FORWARD,1) +
129  shift(quark_propagator_in_b,BACKWARD,1) ;
130 
131  quark_propagator_in_c_shift = shift(quark_propagator_in_c,FORWARD,2) +
132  shift(quark_propagator_in_c,BACKWARD,2) ;
133 
134  // call the Wick contarction routine
135  baryon_s(quark_propagator_in_a_shift,
136  quark_propagator_in_b_shift,
137  quark_propagator_in_c_shift,
138  barprop, t_source, j_decay, bc_spec) ;
139 
140  // 8 = 2**3 for average in the derivative
141  // 6 is the factor in the definition of the operator
142 
143  // barprop /= 6.0 * 8.0 ;
144 
145  // chose normalisation to agree with MILC code
146  barprop /= 6.0 ;
147 
148  swatch.stop();
149  double time_in_sec = swatch.getTimeInSeconds();
150 
151  QDPIO::cout << "baryon_class7_s took " << time_in_sec
152  << " secs" << std::endl;
153 
154  }
155 
156 
157  /**
158  This is the class 4 staggered baryon operator
159  that couples to the j=3/2 state.
160 
161  **/
162 
163 
165  LatticeStaggeredPropagator & quark_propagator_in_a,
166  LatticeStaggeredPropagator & quark_propagator_in_b,
167  LatticeStaggeredPropagator & quark_propagator_in_c,
168  multi1d<Complex> & barprop,
169  multi1d<int> & t_source,
170  int j_decay, int bc_spec)
171  {
172  StopWatch swatch;
173  swatch.start();
174 
175  int t_length = barprop.size() ;
176  multi1d<Complex> barprop_tmp(t_length) ;
177 
178  // shift the quark propagators
179  LatticeStaggeredPropagator quark_propagator_in_a_shift ;
180  LatticeStaggeredPropagator quark_propagator_in_b_shift ;
181  LatticeStaggeredPropagator quark_propagator_in_c_shift ;
182 
183  LatticeStaggeredPropagator tmp ;
184 
185  // ----- shift in x direction -----
186  quark_propagator_in_a_shift = shift(quark_propagator_in_a,FORWARD,0) ;
187 
188  tmp = shift(quark_propagator_in_b,FORWARD,0) ;
189  quark_propagator_in_b_shift = shift(tmp,FORWARD,1) +
190  shift(tmp,BACKWARD,1) ;
191 
192  tmp = shift(quark_propagator_in_c,FORWARD,0) ;
193  quark_propagator_in_c_shift = shift(tmp,FORWARD,2) +
194  shift(tmp,BACKWARD,2) ;
195 
196  // call the Wick contarction routine
197  baryon_s(quark_propagator_in_a_shift,
198  quark_propagator_in_b_shift,
199  quark_propagator_in_c_shift,
200  barprop_tmp, t_source, j_decay, bc_spec) ;
201 
202  barprop_tmp /= (-6.0 * 4.0) ;
203  barprop = barprop_tmp ;
204 
205 
206  // ----- shift in y direction -----
207  quark_propagator_in_a_shift = shift(quark_propagator_in_a,FORWARD,1) ;
208 
209  tmp = shift(quark_propagator_in_b,FORWARD,1) ;
210  quark_propagator_in_b_shift = shift(tmp,FORWARD,0) +
211  shift(tmp,BACKWARD,0) ;
212 
213  tmp = shift(quark_propagator_in_c,FORWARD,1) ;
214  quark_propagator_in_c_shift = shift(tmp,FORWARD,2) +
215  shift(tmp,BACKWARD,2) ;
216 
217  // call the Wick contarction routine
218  baryon_s(quark_propagator_in_a_shift,
219  quark_propagator_in_b_shift,
220  quark_propagator_in_c_shift,
221  barprop_tmp, t_source, j_decay, bc_spec) ;
222 
223  barprop_tmp /= (6.0 * 4.0) ;
224  barprop += barprop_tmp ;
225 
226 
227  // ----- shift in z direction -----
228  quark_propagator_in_a_shift = shift(quark_propagator_in_a,FORWARD,2) ;
229 
230  tmp = shift(quark_propagator_in_b,FORWARD,2) ;
231  quark_propagator_in_b_shift = shift(tmp,FORWARD,0) +
232  shift(tmp,BACKWARD,0) ;
233 
234  tmp = shift(quark_propagator_in_c,FORWARD,2) ;
235  quark_propagator_in_c_shift = shift(tmp,FORWARD,1) +
236  shift(tmp,BACKWARD,1) ;
237 
238  // call the Wick contarction routine
239  baryon_s(quark_propagator_in_a_shift,
240  quark_propagator_in_b_shift,
241  quark_propagator_in_c_shift,
242  barprop_tmp, t_source, j_decay, bc_spec) ;
243 
244  barprop_tmp /= (-6.0 * 4.0) ;
245  barprop += barprop_tmp ;
246 
247  swatch.stop();
248  double time_in_sec = swatch.getTimeInSeconds();
249 
250 
251 
252  QDPIO::cout << "baryon_class4_s took " << time_in_sec
253  << " secs" << std::endl;
254 
255 
256 
257  }
258 
259 
260 
261 } // end namespace Chroma
262 
Primary include file for CHROMA library code.
int bc_spec
int j_decay
Definition: meslate.cc:22
Asqtad Staggered-Dirac operator.
Definition: klein_gord.cc:10
void baryon_class7_s(LatticeStaggeredPropagator &quark_propagator_in_a, LatticeStaggeredPropagator &quark_propagator_in_b, LatticeStaggeredPropagator &quark_propagator_in_c, multi1d< Complex > &barprop, multi1d< int > &t_source, int j_decay, int bc_spec)
static multi1d< LatticeColorMatrix > u
LatticeFermion tmp
Definition: mespbg5p_w.cc:36
void baryon_s(LatticeStaggeredPropagator &quark_propagator_in, multi1d< Complex > &barprop, multi1d< int > &t_source, int j_decay, int bc_spec)
Definition: baryon_s.cc:51
void baryon_class4_s(LatticeStaggeredPropagator &quark_propagator_in_a, LatticeStaggeredPropagator &quark_propagator_in_b, LatticeStaggeredPropagator &quark_propagator_in_c, multi1d< Complex > &barprop, multi1d< int > &t_source, int j_decay, int bc_spec)
void baryon_class7_NLT_s(LatticeStaggeredPropagator &quark_propagator_in_a, LatticeStaggeredPropagator &quark_propagator_in_b, LatticeStaggeredPropagator &quark_propagator_in_c, multi1d< LatticeColorMatrix > &u, multi1d< Complex > &barprop, multi1d< int > &t_source, int j_decay, int bc_spec)
#define FORWARD
Definition: primitives.h:82
#define BACKWARD
Definition: primitives.h:83