16 #ifdef USE_PARAMETERS_FACTORY
34 #ifdef USE_PARAMETERS_FACTORY
47 const string str_vlevel = params.
get_string(
"verbose_level");
61 vout.
crucial(
m_vl,
"Force_F_CloverTerm: fetch error, input parameter not found.\n");
79 for (
int mu = 0; mu < Ndim; ++mu) {
85 assert(bc.size() == Ndim);
92 for (
int mu = 0; mu < Ndim; ++mu) {
124 vout.
crucial(
m_vl,
"force_core() is not available in Force_F_CloverTerm.\n");
138 int NinG = 2 * Nc * Nc;
140 Field_G force(Nvol, Ndim), force1(Nvol, Ndim);
145 for (
int mu = 0; mu < Ndim; ++mu) {
146 force.mult_Field_Gnn(mu, *
m_U, mu, force1, mu);
147 force.at_Field_G(mu);
158 vout.
crucial(
m_vl,
"force_udiv() is not available in Force_F_CloverTerm.\n");
172 int NinG = 2 * Nc * Nc;
174 Field force(NinG, Nvol, Ndim);
190 int NinG = 2 * Nc * Nc;
194 Field force(NinG, Nvol, Ndim);
195 Field_G force1(Nvol, 1), force2(Nvol, 1);
196 Field_G Umu(Nvol, 1), Unu(Nvol, 1), Utmp(Nvol, 1), Utmp2(Nvol, 1);
197 Field_F vt1(Nvol, 1), vt2(Nvol, 1), vt3(Nvol, 1), vt4(Nvol, 1);
203 Field_F eta2(Nvol, 1), eta3(Nvol, 1);
207 for (
int mu = 0; mu < Ndim; ++mu) {
208 for (
int nu = 0; nu < Ndim; ++nu) {
209 if (nu == mu)
continue;
213 Umu.setpart_ex(0, *
m_U, mu);
214 Unu.setpart_ex(0, *
m_U, nu);
223 vt3.mult_Field_Gd(0, Umu, 0, eta3, ex);
227 vt3.mult_Field_Gn(0, Utmp, 0, vt1, ex);
241 vt3.mult_Field_Gn(0, Unu, 0, vt1, ex);
252 vt1.mult_Field_Gn(0, Utmp2, 0, eta3, ex);
253 vt2.mult_Field_Gd(0, Unu, 0, zeta, ex);
260 vt1.mult_Field_Gd(0, Unu, 0, eta3, ex);
261 vt2.mult_Field_Gn(0, Umu, 0, zeta_mu, ex);
269 force2 *= -m_kappa *
m_cSW / 8.0;
288 for (
int mu = 0; mu <
m_Ndim; ++mu) {
289 for (
int nu = 0; nu <
m_Ndim; ++nu) {
290 if (nu == mu)
continue;
292 Cmu_ud = staple.
upper(*
m_U, mu, nu);
293 Cmu_ud -= staple.
lower(*
m_U, mu, nu);