16 #ifdef USE_PARAMETERS_FACTORY
36 #ifdef USE_PARAMETERS_FACTORY
49 const string str_vlevel = params.
get_string(
"verbose_level");
56 valarray<double> phi, phipr;
66 vout.
crucial(
m_vl,
"Force_F_Clover_SF: fetch error, input parameter not found.\n");
77 double *phi,
double *phipr)
85 for (
int mu = 0; mu < Ndim; ++mu) {
98 assert(bc.size() == Ndim);
105 for (
int i = 0; i < 3; ++i) {
111 for (
int mu = 0; mu < Ndim; ++mu) {
130 int NinG = 2 * Nc * Nc;
132 Field_G force(Nvol, Ndim), force1(Nvol, Ndim);
137 for (
int mu = 0; mu < Ndim; ++mu) {
138 force.mult_Field_Gnn(mu, *
m_U, mu, force1, mu);
139 force.at_Field_G(mu);
154 int NinG = 2 * Nc * Nc;
156 Field_G force(Nvol, Ndim), force1(Nvol, Ndim);
161 for (
int mu = 0; mu < Ndim; ++mu) {
162 force.mult_Field_Gnn(mu, *
m_U, mu, force1, mu);
163 force.at_Field_G(mu);
177 int NinG = 2 * Nc * Nc;
179 Field force(NinG, Nvol, Ndim);
201 int NinG = 2 * Nc * Nc;
203 Field force(NinG, Nvol, Ndim);
219 int NinG = 2 * Nc * Nc;
223 Field force(NinG, Nvol, Ndim);
224 Field_G force1(Nvol, 1), force2(Nvol, 1);
225 Field_G Umu(Nvol, 1), Unu(Nvol, 1), Utmp(Nvol, 1), Utmp2(Nvol, 1);
226 Field_F vt1(Nvol, 1), vt2(Nvol, 1), vt3(Nvol, 1), vt4(Nvol, 1);
238 Field_F eta2(Nvol, 1), eta3(Nvol, 1);
242 for (
int mu = 0; mu < Ndim; ++mu) {
243 for (
int nu = 0; nu < Ndim; ++nu) {
244 if (nu == mu)
continue;
248 Umu.setpart_ex(0, *
m_U, mu);
249 Unu.setpart_ex(0, *
m_U, nu);
260 vt3.mult_Field_Gd(0, Umu, 0, eta3, ex);
265 vt3.mult_Field_Gn(0, Utmp, 0, vt1, ex);
279 vt3.mult_Field_Gn(0, Unu, 0, vt1, ex);
291 vt1.mult_Field_Gn(0, Utmp2, 0, eta3, ex);
292 vt2.mult_Field_Gd(0, Unu, 0, zeta1, ex);
299 vt1.mult_Field_Gd(0, Unu, 0, eta3, ex);
300 vt2.mult_Field_Gn(0, Umu, 0, zeta_mu, ex);
308 force2 *= -m_kappa *
m_cSW / 8.0;
330 for (
int mu = 0; mu <
m_Ndim; ++mu) {
331 for (
int nu = 0; nu <
m_Ndim; ++nu) {
332 if (nu == mu)
continue;
334 Cmu_ud = staple.
upper(*
m_U, mu, nu);
335 Cmu_ud -= staple.
lower(*
m_U, mu, nu);