12 template<
typename AFIELD>
14 =
"AForce_F_Smeared<AFIELD>";
17 template<
typename AFIELD>
25 template<
typename AFIELD>
30 Index_lex_alt<real_t, AFIELD::IMPL> index_lex;
37 m_director_smear->set_config(U);
39 m_force->set_config(m_director_smear->get_config());
44 template<
typename AFIELD>
47 const string str_vlevel = params.
get_string(
"verbose_level");
54 template<
typename AFIELD>
59 int NinG = 2 * Nc * Nc;
63 int Nsmear = m_director_smear->get_Nsmear();
65 AFIELD force1(NinG, Nvol, Ndim);
69 m_force->force_udiv(force_, eta);
71 Index_lex_alt<real_t, AFIELD::IMPL> index_lex;
73 Field_G *Uptr = m_director_smear->get_config();
75 m_force->set_config(Uptr);
77 m_force->force_udiv(force1, eta);
84 mult_jacobian(force2);
97 template<
typename AFIELD>
102 int NinG = 2 * Nc * Nc;
106 int Nsmear = m_director_smear->get_Nsmear();
108 AFIELD force1(NinG, Nvol, Ndim);
112 m_force->force_udiv1(force_, zeta, eta);
114 Index_lex_alt<real_t, AFIELD::IMPL> index_lex;
116 Field_G *Uptr = m_director_smear->get_config();
118 m_force->set_config(Uptr);
120 m_force->force_udiv1(force1, zeta, eta);
127 mult_jacobian(force2);
140 template<
typename AFIELD>
143 const int Nsmear = m_director_smear->get_Nsmear();
147 for (
int ismear = Nsmear - 1; ismear >= 0; --ismear) {
148 Field *Uptr = m_director_smear->get_config(ismear);
150 m_director_smear->force_udiv(force, f_tmp, *Uptr);
152 if (ismear > 0)
copy(f_tmp, force);