Go to the documentation of this file.
66 assert(NvolF == Nvol);
71 Field xi(NinF, NvolF, NexF);
77 Field v2(NinF, NvolF, NexF);
81 Field v1(NinF, NvolF, NexF);
91 const double H_psf = xi.
norm2();
116 Field v1(NinF, NvolF, NexF);
120 Field v2(NinF, NvolF, NexF);
127 const double H_psf =
dot(v1, v2);
139 const int Nin =
m_U->
nin();
141 const int Nex =
m_U->
nex();
145 assert(
force.nin() == Nin);
146 assert(
force.nvol() == Nvol);
147 assert(
force.nex() == Nex);
160 Field v1(NinF, NvolF, NexF);
164 Field v2(NinF, NvolF, NexF);
169 vout.
general(
m_vl,
" Solver: Nconv = %6d diff = %12.6e\n", Nconv, diff);
173 Field force_tmp(Nin, Nvol, Nex);
182 double Fave, Fmax, Fdev;
183 force.stat(Fave, Fmax, Fdev);
184 vout.
general(
m_vl,
" Fratio_ave = %12.6f Fratio_max = %12.6f Fratio_dev = %12.6f\n",
void force(Field &)
returns force for molcular dynamical update of conjugate momenta.
void set_string(const string &key, const string &value)
virtual void mult(AFIELD &, const AFIELD &)
multiplies fermion operator to a given field.
virtual void force_core1(Field &, const Field &, const Field &)
double langevin(RandomNumbers *)
Langevis step.
virtual int field_nex()=0
returns the external degree of freedom of the fermion field.
Base class of random number generators.
void set_config(Field *U)
setting pointer to the gauge configuration.
virtual void set_config(Field *)=0
virtual void set_config(Field *)=0
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
double dot(const Field &y, const Field &x)
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
virtual void set_config(Field *)=0
sets the gauge configuration.
virtual void mult_dag(AFIELD &, const AFIELD &)
hermitian conjugate of mult.
void get_parameters(Parameters &) const
virtual int field_nvol()=0
returns the volume of the fermion field.
virtual void set_mode(const std::string &mode)
in Force, setting the mode is optional when H is nonhermitian.
Bridge::VerboseLevel m_vl
virtual void force_core(Field &, const Field &)
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=Element_type::COMPLEX)
virtual void invert_DdagD(Field &, const Field &, int &, double &)=0
Force * m_fopr_prec_force
static VerboseLevel set_verbose_level(const std::string &str)
double calcH()
calculate Hamiltonian of this action term.
int fetch_string(const string &key, string &value) const
Container of Field-type object.
virtual void gauss_lex_global(Field &)
gaussian random number defined on global lattice.
virtual int field_nin()=0
returns the on-site degree of freedom of the fermion field.
static const std::string class_name
void general(const char *format,...)
static std::string get_verbose_level(const VerboseLevel vl)