Go to the documentation of this file.
86 for (
int i = 0; i <
m_Np; ++i) {
87 m_psi[i].reset(NinF, NvolF, NexF);
137 int Np, n_exp, d_exp;
143 err += params.
fetch_int(
"number_of_poles", Np);
144 err += params.
fetch_int(
"exponent_numerator", n_exp);
145 err += params.
fetch_int(
"exponent_denominator", d_exp);
148 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
149 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
180 const int n_exp,
const int d_exp,
181 const double x_min,
const double x_max,
182 const int Niter,
const double Stop_cond)
196 const int n_exp,
const int d_exp,
197 const double x_min,
const double x_max,
198 const int Niter,
const double Stop_cond)
250 for (
int i = 0; i <
m_Np; i++) {
307 for (
int i = 0; i <
m_Np; ++i) {
int m_Niter
maximum iteration of shiftsolver
Shiftsolver_CG * m_solver
void set_string(const string &key, const string &value)
void set_config(Field *U)
sets verbose level.
virtual void force_udiv(AFIELD &, const AFIELD &)
void tidyup()
Finial clean-up.
void set(const int jin, const int site, const int jex, double v)
double m_Stop_cond
stopping condition of shift solver
int m_d_exp
denominator of the exponent
void set_double(const string &key, const double value)
virtual int field_nex()=0
returns the external degree of freedom of the fermion field.
void force_udiv(Field &, const Field &)
void get_parameters(double &norm, std::vector< double > &res, std::vector< double > &pole)
void force_udiv1(Field &, const Field &, const Field &)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
int m_n_exp
numerator of the exponent
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
double m_a0
rational approx. coefficients
void copy(Field &y, const Field &x)
copy(y, x): y = x
void set_parameters(const Parameters ¶ms)
static const std::string class_name
std::vector< double > m_bl
rational approx. coefficients
virtual void set_config(Field *)=0
sets the gauge configuration.
double m_x_max
upper bound of approximate sign function
void solve(std::vector< FIELD > &solution, const std::vector< double > &shift, const FIELD &source, int &Nconv, double &diff)
int m_Np
number of poles in rational approx.
virtual int field_nvol()=0
returns the volume of the fermion field.
void set_parameters_impl(const Parameters ¶ms)
int square_non_zero(const double v)
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
AShiftsolver_CG< Field, Fopr > Shiftsolver_CG
Multishift Conjugate Gradient solver.
void force_core1(Field &, const Field &, const Field &)
virtual void set_config(Field *)=0
sets verbose level.
double m_x_min
lower bound of approximate sign function
static Bridge::VerboseLevel Vlevel()
std::vector< Field > m_psi
std::vector< double > m_cl
rational approx. coefficients
Field_G * m_U
Gauge configuration.
static VerboseLevel set_verbose_level(const std::string &str)
int non_zero(const double v)
Force * m_force
kernel fermion force
void set_int(const string &key, const int value)
void scal(Field &x, const double a)
scal(x, a): x = a * x
void force_udiv_impl(Field_G &, const Field &)
int fetch_string(const string &key, string &value) const
int fetch_double(const string &key, double &value) const
void init()
Obsolete initial setup with parameters.
Bridge::VerboseLevel m_vl
verbose level
void crucial(const char *format,...)
Container of Field-type object.
virtual int field_nin()=0
returns the on-site degree of freedom of the fermion field.
static int get_thread_id()
returns thread id.
Fopr * m_fopr
kernel fermion operator
Determionation of coefficients of rational approximation.
int fetch_int(const string &key, int &value) const
void general(const char *format,...)
void get_parameters(Parameters ¶ms) const
static void assert_single_thread(const std::string &class_name)
assert currently running on single thread.
static std::string get_verbose_level(const VerboseLevel vl)