19 #ifdef USE_PARAMETERS_FACTORY 
   39 #ifdef USE_PARAMETERS_FACTORY 
   48 { append_entry(*
this); }
 
  126   const string str_vlevel = params.
get_string(
"verbose_level");
 
  150                                         const std::valarray<int> bc)
 
  156   for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  162   assert(bc.size() == 
m_Ndim);
 
  167   assert(bc.size() == 
m_Ndim);
 
  168   for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  191   params_solver->
set_string(
"solver_type", 
"CG");
 
  192   params_solver->
set_int(
"maximum_number_of_iteration", 1000);
 
  193   params_solver->
set_double(
"convergence_criterion_squared", 1.0e-30);
 
  195   params_solver->
set_string(
"verbose_level", 
"Crucial");
 
  206   for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  207     for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  208       int spin_color = icolor + m_Nc * ispin;
 
  210       for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  211         w.set_ri(icolor, ispin, isite, 0, 1, 0);
 
  220         solver->
solve(w2, w, Nconv, diff);
 
  226         solver->
solve(w2, w, Nconv, diff);
 
  234   delete params_solver;
 
  239   for (
int ics = 0; ics < m_Nc * 
m_Nd; ++ics) {
 
  240     for (
int site = 0; site < 
m_Nvol2; ++site) {
 
  241       for (
int id = 0; 
id < 
m_Nd; ++id) {
 
  242         for (
int ic = 0; ic < 
m_Nc; ++ic) {
 
  270                                       const Field& f, 
const int ieo)
 
  273   Field_F v2(m_Nvol2, nex), f2(m_Nvol2, nex);
 
  281   } 
else if (ieo == 1) {
 
  289   for (
int iex = 0; iex < nex; ++iex) {
 
  290     for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  291       for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  292         for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  296           for (
int jspin = 0; jspin < 
m_Nd; ++jspin) {
 
  297             for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  298               int spin_color = jcolor + m_Nc * jspin;
 
  300               re += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
 
  301                     f2.cmp_r(jcolor, jspin, isite, iex);
 
  302               re += csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
 
  303                     f2.cmp_i(jcolor, jspin, isite, iex);
 
  305               im += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
 
  306                     f2.cmp_i(jcolor, jspin, isite, iex);
 
  307               im -= csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
 
  308                     f2.cmp_r(jcolor, jspin, isite, iex);
 
  312           v2.set_ri(icolor, ispin, isite, iex, re, im);
 
  324   std::vector<double> matrix(m_Nc * m_Nc * m_Nd * m_Nd * 2);
 
  326   for (
int ispin = 0; ispin < m_Nd / 2; ++ispin) {
 
  327     for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  328       int ics = icolor + ispin * 
m_Nc;
 
  329       for (
int jspin = 0; jspin < 
m_Nd; ++jspin) {
 
  330         int js2 = (jspin + m_Nd / 2) % m_Nd;
 
  331         for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  332           int cs1 = jcolor + m_Nc * (jspin + m_Nd * ics);
 
  333           int cs2 = jcolor + m_Nc * (jspin + m_Nd * (ics + m_Nc * m_Nd / 2));
 
  334           int cc  = jcolor + icolor * 
m_Nc;
 
  335           int ss1 = jspin + ispin * 
m_Nd;
 
  336           int ss2 = js2 + ispin * 
m_Nd;
 
  338           matrix[2 * cs1]     = 
m_T.
cmp_r(cc, site, ss1);
 
  339           matrix[2 * cs1 + 1] = 
m_T.
cmp_i(cc, site, ss1);
 
  341           matrix[2 * cs2]     = 
m_T.
cmp_r(cc, site, ss2);
 
  342           matrix[2 * cs2 + 1] = 
m_T.
cmp_i(cc, site, ss2);
 
  375   double coeff = -m_kappa * 
m_cSW;
 
  438                                      const int mu, 
const int nu)
 
  477   int NinG = 
m_T2[0].nin();
 
  478   for (
int ieo = 0; ieo < 2; ++ieo) {
 
  479     for (
int ex = 0; ex < Nfst; ++ex) {
 
  480       for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  481         for (
int in = 0; in < NinG; ++in) {
 
  548                                            const int mu, 
const int nu)
 
  560   for (
int site = 0; site < 
m_Nvol; ++site) {
 
  561     w.set_mat(site, 0, Umu.mat(site) * Cup.mat_dag(site));
 
  564   for (
int site = 0; site < 
m_Nvol; ++site) {
 
  565     v2.set_mat(site, 0, Umu.mat(site) * Cdn.mat_dag(site));
 
  570   for (
int site = 0; site < 
m_Nvol; ++site) {
 
  571     v.set_mat(site, 0, Cup.mat_dag(site) * Umu.mat(site));
 
  574   for (
int site = 0; site < 
m_Nvol; ++site) {
 
  575     v2.set_mat(site, 0, Cdn.mat_dag(site) * Umu.mat(site));
 
  584   for (
int site = 0; site < 
m_Nvol; ++site) {
 
  585     Fst.
set_mat(site, 0, w.mat(site).ah());
 
  597   Field_F  sigma_inv(m_Nvol, nex_finv);
 
  598   Field_G  tr_sigma_inv(m_Nvol, 1);
 
  601     Field_F sigma_eo_inv(m_Nvol2, nex_finv);
 
  608   for (
int isite = 0; isite < 
m_Nvol; ++isite) {
 
  609     for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  610       for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  611         v = sigma_inv.vec(ispin, isite, icolor + m_Nc * ispin);
 
  612         for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  613           int cc = icolor + m_Nc * jcolor;
 
  614           tr_sigma_inv.set_r(cc, isite, 0, v.
r(jcolor));
 
  615           tr_sigma_inv.set_i(cc, isite, 0, v.
i(jcolor));
 
  633     static_cast<double>(8 * m_Nc * m_Nc * m_Nd * 
m_Nd);
 
  635   double flop = flop_site * 
static_cast<double>(Lvol / 2);
 
void init(std::string repr)
 
double cmp_i(const int cc, const int s, const int site, const int e=0) const 
 
void detailed(const char *format,...)
 
void Register_string(const string &, const string &)
 
double r(const int c) const 
 
void set(const int jin, const int site, const int jex, double v)
 
Parameters_Fopr_CloverTerm_eo()
 
void general(const char *format,...)
 
GammaMatrix get_GM(GMspecies spec)
 
void set_int(const string &key, const int value)
 
Container of Field-type object. 
 
double cmp_i(const int cc, const int site, const int mn=0) const 
 
Field_G m_T
m_T = 1 - kappa c_SW sigma F / 2 
 
double cmp(const int jin, const int site, const int jex) const 
 
int site(const int x2, const int y, const int z, const int t, const int ieo) const 
 
std::valarray< GammaMatrix > m_SG
 
void copy(Field &y, const Field &x)
copy(y, x): y = x 
 
void set_parameters(const Parameters ¶ms)
 
static Parameters * New(const std::string &realm)
 
Standard Conjugate Gradient solver algorithm. 
 
int fetch_int_vector(const string &key, std::valarray< int > &val) const 
 
void multadd_Field_Gn(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2, const double a)
 
Wilson-type fermion field. 
 
virtual void set_parameters(const Parameters ¶ms)=0
 
void set(const int c, const double re, const double im)
 
void set_string(const string &key, const string &value)
 
static double epsilon_criterion2()
 
void reset(int Nvol, int Nex)
 
static const std::string class_name
 
const Field_F mult_csw_inv(const Field_F &, const int ieo)
 
void mult_iGM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication (i is multiplied) 
 
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
 
double i(const int c) const 
 
void set_ri(const int cc, const int s, const int site, const int e, const double re, const double im)
 
Bridge::VerboseLevel m_vl
 
const Field D(const Field &f, const int ieo)
 
Set of Gamma Matrices: basis class. 
 
Field_G upper(const Field_G *, const int, const int)
 
void set_fieldstrength(Field_G &, const int, const int)
 
void crucial(const char *format,...)
 
Base class for linear solver class family. 
 
static bool Register(const std::string &realm, const creator_callback &cb)
 
void set_double(const string &key, const double value)
 
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
 
void reverseField(Field &lex, const Field &eo)
 
void forward(Field &, const Field &, const int mu)
 
const Field_G trSigmaInv(const int mu, const int nu)
 
Field_G lower(const Field_G *, const int, const int)
 
std::valarray< int > m_boundary
 
void Register_double(const string &, const double)
 
double cmp_r(const int cc, const int site, const int mn=0) const 
 
void Register_int_vector(const string &, const std::valarray< int > &)
 
void setpart_ex(int ex, const Field &w, int exw)
 
int fetch_double(const string &key, double &val) const 
 
string get_string(const string &key) const 
 
void set_mat(const int site, const int mn, const Mat_SU_N &U)
 
std::valarray< GammaMatrix > m_GM
Gamma Matrix and Sigma_{mu,nu} = -i [Gamma_mu, Gamma_nu] /2. 
 
double flop_count()
retuns number of floating point number operations. 
 
std::vector< double > csmatrix(const int &)
 
valarray< Field_G > m_T2
m_T2 is used in Org-version. 
 
int sg_index(int mu, int nu)
 
virtual void solve(Field &solution, const Field &source, int &Nconv, double &diff)=0
 
static VerboseLevel set_verbose_level(const std::string &str)
 
void set_config(Field *Ueo)
setting pointer to the gauge configuration. 
 
double cmp_r(const int cc, const int s, const int site, const int e=0) const