16 #ifdef USE_PARAMETERS_FACTORY
35 #ifdef USE_PARAMETERS_FACTORY
48 const string str_vlevel = params.
get_string(
"verbose_level");
62 vout.
crucial(
m_vl,
"Fopr_Clover_eo: fetch error, input parameter not found.\n");
73 const std::valarray<int> bc)
79 for (
int mu = 0; mu <
m_Ndim; ++mu) {
85 assert(bc.size() ==
m_Ndim);
91 assert(bc.size() ==
m_Ndim);
92 for (
int mu = 0; mu <
m_Ndim; ++mu) {
200 params_solver->
set_string(
"solver_type",
"CG");
201 params_solver->
set_int(
"maximum_number_of_iteration", 1000);
202 params_solver->
set_double(
"convergence_criterion_squared", 1.0e-30);
204 params_solver->
set_string(
"verbose_level",
"Crucial");
215 for (
int ispin = 0; ispin <
m_Nd; ++ispin) {
216 for (
int icolor = 0; icolor <
m_Nc; ++icolor) {
217 int spin_color = icolor + m_Nc * ispin;
219 for (
int isite = 0; isite <
m_Nvol2; ++isite) {
220 w.
set_ri(icolor, ispin, isite, 0, 1, 0);
228 solver->
solve(w2, w, Nconv, diff);
234 solver->
solve(w2, w, Nconv, diff);
242 delete params_solver;
256 }
else if (ieo == 1) {
263 for (
int iex = 0; iex < nex; ++iex) {
264 for (
int isite = 0; isite <
m_Nvol2; ++isite) {
265 for (
int ispin = 0; ispin <
m_Nd; ++ispin) {
266 for (
int icolor = 0; icolor <
m_Nc; ++icolor) {
270 for (
int jspin = 0; jspin <
m_Nd; ++jspin) {
271 for (
int jcolor = 0; jcolor <
m_Nc; ++jcolor) {
272 int spin_color = jcolor + m_Nc * jspin;
274 re += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
275 f.
cmp_r(jcolor, jspin, isite, iex);
276 re -= csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
277 f.
cmp_i(jcolor, jspin, isite, iex);
279 im += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
280 f.
cmp_i(jcolor, jspin, isite, iex);
281 im += csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
282 f.
cmp_r(jcolor, jspin, isite, iex);
286 w.
set_ri(icolor, ispin, isite, iex, re, im);
311 for (
int isite = 0; isite <
m_Nvol; ++isite) {
312 for (
int ispin = 0; ispin <
m_Nd; ++ispin) {
313 for (
int icolor = 0; icolor <
m_Nc; ++icolor) {
314 v = sigma_inv.
vec(ispin, isite, icolor + m_Nc * ispin);
315 for (
int jcolor = 0; jcolor <
m_Nc; ++jcolor) {
316 int cc = icolor + m_Nc * jcolor;
317 tr_sigma_inv.
set_r(cc, isite, 0, v.
r(jcolor));
318 tr_sigma_inv.
set_i(cc, isite, 0, v.
i(jcolor));