16 #ifdef USE_PARAMETERS_FACTORY
37 #ifdef USE_PARAMETERS_FACTORY
50 const string str_vlevel = params.
get_string(
"verbose_level");
55 string str_gmset_type;
62 err_optional += params.
fetch_string(
"gamma_matrix_type", str_gmset_type);
65 err += params.
fetch_int(
"extent_of_5th_dimension", Ns);
69 vout.
crucial(
m_vl,
"Fopr_Domainwall: fetch error, input parameter not found.\n");
80 const int Ns,
const valarray<int> bc)
89 for (
int mu = 0; mu < Ndim; ++mu) {
100 vout.
crucial(
m_vl,
"Fopr_Domainwall: parameter range check failed.\n");
104 assert(bc.size() == Ndim);
112 for (
int mu = 0; mu < Ndim; ++mu) {
117 double kappa = 1.0 / (8.0 - 2.0 *
m_M0);
136 }
else if (ipm == -1) {
169 int NinF = 2 * Nc * Nd;
171 assert(w.
nin() == NinF);
172 assert(w.
nvol() == Nvol);
176 Field w4(NinF, Nvol, 1), v4(NinF, Nvol, 1);
178 for (
int is = 0; is <
m_Ns; ++is) {
179 w4.setpart_ex(0, w, is);
194 int NinF = 2 * Nc * Nd;
196 assert(w.
nin() == NinF);
197 assert(w.
nvol() == Nvol);
201 Field w4(NinF, Nvol, 1), w4_up(NinF, Nvol, 1), w4_dn(NinF, Nvol, 1);
202 Field v4(NinF, Nvol, 1);
204 for (
int is = 0; is <
m_Ns; ++is) {
205 w4.setpart_ex(0, w, is);
210 int is_up = (is + 1) % m_Ns;
212 if (is == m_Ns - 1) Fup = m_mq / 2.0;
213 w4_up.setpart_ex(0, w, is_up);
217 int is_dn = (is - 1 +
m_Ns) % m_Ns;
219 if (is == 0) Fdn = m_mq / 2.0;
224 v.setpart_ex(is, v4, 0);
225 v.addpart_ex(is, w4, 0);