Go to the documentation of this file.
37 err += params.
fetch_int(
"number_of_poles", Np);
40 err += params.
fetch_int(
"maximum_number_of_iteration", Niter_ms);
41 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond_ms);
50 set_parameters(mq, M0, Np, x_min, x_max, Niter_ms, Stop_cond_ms, bc);
72 const int Np,
const double x_min,
const double x_max,
73 const int Niter_ms,
const double Stop_cond_ms,
74 const std::vector<int> bc)
87 for (
int mu = 0; mu < Ndim; ++mu) {
105 assert(bc.size() == Ndim);
185 const int NinF = 2 * Nc * Nd;
193 for (
int i = 0; i <
m_Np; ++i) {
197 for (
int i = 0; i <
m_Np; ++i) {
203 const int Nshift =
m_Np;
205 std::vector<Field> psi_l(Nshift);
206 for (
int i = 0; i < Nshift; ++i) {
207 psi_l[i].reset(NinF, Nvol, 1);
210 std::vector<Field> psi5_l(Nshift);
211 for (
int i = 0; i < Nshift; ++i) {
212 psi5_l[i].reset(NinF, Nvol, 1);
239 for (
int ip = 0; ip <
m_Np; ++ip) {
255 axpy(force, coeff_l, force1);
258 axpy(force, coeff_l, force1);
265 axpy(force, coeff_l, force1);
267 axpy(force, coeff_l, force1);
279 axpy(force, coeff2, force1);
287 axpy(force, coeff2, force1);
static const std::string class_name
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void set_string(const string &key, const string &value)
void set(const int jin, const int site, const int jex, double v)
virtual void force_core1(Field &, const Field &, const Field &)
void get_sign_parameters(std::vector< double > &cl, std::vector< double > &bl)
void set_double(const string &key, const double value)
void force_core1(Field &, const Field &, const Field &)
std::vector< double > m_bl
std::vector< int > m_boundary
void force_core(Field &, const Field &)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
std::vector< double > m_cl
std::vector< double > m_sigma
void addpart_ex(int ex, const Field &w, int exw)
int fetch_int_vector(const string &key, vector< int > &value) const
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void get_parameters(Parameters ¶ms) const
int square_non_zero(const double v)
void force_udiv(Field &, const Field &)
void mult(Field &v, const Field &w)
multiplies fermion operator to a given field.
void force_udiv1(Field &, const Field &, const Field &)
void force_core1_impl(Field_G &, const Field_F &, const Field_F &)
int solver(const std::string &)
void set_int_vector(const string &key, const vector< int > &value)
void mult_gm5(Field &v, const Field &w)
multiplies gamma_5 matrix.
void set_parameters(const Parameters ¶ms)
static VerboseLevel set_verbose_level(const std::string &str)
int non_zero(const double v)
Force_F_Wilson_Nf2 * m_force_w
void set_int(const string &key, const int value)
void scal(Field &x, const double a)
scal(x, a): x = a * x
void set_config(Field *U)
sets the gauge configuration.
int fetch_string(const string &key, string &value) const
Force for the standard Wilson fermion operator.
Wilson-type fermion field.
int fetch_double(const string &key, double &value) const
Bridge::VerboseLevel m_vl
void crucial(const char *format,...)
Container of Field-type object.
Multishift Conjugate Gradient solver.
int fetch_int(const string &key, int &value) const
void general(const char *format,...)
void set_config(Field *U)
static std::string get_verbose_level(const VerboseLevel vl)
Org::Fopr_Wilson Fopr_Wilson
Wilson fermion operator.
Determination of Zolotarev coefficients.