16 #ifdef USE_PARAMETERS_FACTORY
39 #ifdef USE_PARAMETERS_FACTORY
52 const string str_vlevel = params.
get_string(
"verbose_level");
63 err += params.
fetch_int(
"number_of_poles", Np);
64 err += params.
fetch_int(
"exponent_numerator", n_exp);
65 err += params.
fetch_int(
"exponent_denominator", d_exp);
68 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
69 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
72 vout.
crucial(
m_vl,
"Force_Rational: fetch error, input parameter not found.\n");
83 double x_min,
double x_max,
84 int Niter,
double Stop_cond)
139 for (
int i = 0; i <
m_Np; i++) {
152 int NinG = 2 * Nc * Nc;
154 Field_G force(Nvol, Ndim), force1(Nvol, Ndim);
159 for (
int mu = 0; mu < Ndim; ++mu) {
160 force.mult_Field_Gnn(mu, *
m_U, mu, force1, mu);
161 force.at_Field_G(mu);
187 int NinG = 2 * Nc * Nc;
189 int NinF = eta.
nin();
190 int NvolF = eta.
nvol();
191 int NexF = eta.
nex();
196 valarray<Field> psi(Nshift);
197 for (
int i = 0; i < Nshift; ++i) {
198 psi[i].reset(NinF, NvolF, NexF);
210 solver->
solve(psi,
m_cl, eta, Nconv, diff);
215 Field force(NinG, Nvol, Ndim);
216 Field force1(NinG, Nvol, Ndim);
219 for (
int i = 0; i < Nshift; ++i) {
221 force +=
m_bl[i] * force1;