Go to the documentation of this file.
15 #ifndef AFOPR_OVERLAP_INCLUDED
16 #define AFOPR_OVERLAP_INCLUDED
44 template<
typename AFIELD>
94 {
init(fopr, params); }
106 const int Niter,
const real_t Stop_cond,
107 const std::vector<int> bc);
113 void set_lowmodes(
const int Nsbt, std::vector<real_t> *,
114 std::vector<AFIELD> *);
120 void set_mode(
const std::string mode);
170 static Fopr *create_object_fopr_params(
AFOPR *fopr,
175 static bool register_factory()
178 init &= AFOPR::Factory_fopr::Register(
"Overlap", create_object);
179 init &= AFOPR::Factory_params::Register(
"Overlap",
180 create_object_params);
181 init &= AFOPR::Factory_fopr_params::Register(
"Overlap",
182 create_object_fopr_params);
real_t m_x_max
valid range of approximate sign function
bool m_is_initial_step
to avoid redundant setup
std::vector< AFIELD > * m_vk
void mult_dag(AFIELD &, const AFIELD &)
hermitian conjugate of mult.
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
Sign function of a given fermion operator.
void mult(AFIELD &, const AFIELD &)
multiplies fermion operator to a given field.
virtual void reverse(Field &, const AFIELD &)
converts an alternative field to a Field object.
AFopr_Overlap(const Parameters ¶ms)
int field_nex()
returns the external degree of freedom of the fermion field.
virtual void reverse(Field &v, const AFIELD &w)
reverses to a Field object from other format if necessary.
virtual void convert(AFIELD &, const Field &)
converts a Field object into other format if necessary.
std::string m_mode
mult mode
int m_Niter
max iteration of shiftsolver
void set_lowmodes(const int Nsbt, std::vector< real_t > *, std::vector< AFIELD > *)
std::string m_repr
gamma-matrix repr. (if given)
real_t m_M0
domain-wall height
int m_Np
number of poles in rational approx.
virtual bool needs_convert()
returns true if additional field conversion is needed.
static const std::string class_name
real_t m_x_min
valid range of approximate sign function
AFOPR * m_fopr_w
kernel fermion operator.
void D(AFIELD &v, const AFIELD &w)
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
void mult_gm5(AFIELD &, const AFIELD &)
multiplies gamma_5 matrix.
int field_nin()
returns the on-site degree of freedom of the fermion field.
std::vector< real_t > * m_ev
virtual void convert(AFIELD &v, const Field &w)
converts a Field object into other format if necessary.
void H(AFIELD &v, const AFIELD &w)
std::string m_kernel_type
kernel type (if given)
Bridge::VerboseLevel m_vl
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
double flop_count()
returns the number of floating point operations.
double m_Stop_cond
stopping condition of shift solver
void DdagD(AFIELD &v, const AFIELD &w)
bool m_kernel_created
whether kernel is created in this object
DEPRECATED AFopr_Overlap(AFOPR *fopr)
AFopr_Overlap(AFOPR *fopr, const Parameters ¶ms)
void Ddag(AFIELD &v, const AFIELD &w)
std::vector< int > m_boundary
boundary condition
Overlap fermion operator.
AFopr_Sign< AFIELD > * m_sign
sign function approximation.
int field_nvol()
returns the volume of the fermion field.
Container of Field-type object.
void set_config(Field *U)
sets the gauge configuration.
virtual bool needs_convert()
returns true if additional field conversion is needed.
std::string get_mode() const
returns the current mult mode.