57 }
else if (m_mode ==
"Ddag") {
60 }
else if (m_mode ==
"DdagD") {
63 }
else if (m_mode ==
"DDdag") {
66 }
else if (m_mode ==
"H") {
88 const std::vector<int> bc)
96 for (
int mu = 0; mu <
m_Ndim; ++mu) {
102 assert(bc.size() ==
m_Ndim);
111 for (
int mu = 0; mu <
m_Ndim; ++mu) {
112 m_boundary[mu] = bc[mu];
124 for (
int mu = 0; mu <
m_Ndim; ++mu) {
144 for (
int mu = 0; mu <
m_Ndim; ++mu) {
157 assert(v.
nex() == f.
nex());
158 assert(v.
nin() == f.
nin());
170 assert(ipm == 1 || ipm == -1);
179 }
else if (ipm == -1) {
225 if (mu < (m_Ndim - 1)) {
226 for (
int ex = 0; ex < f.
nex(); ++ex) {
228 m_shift.backward(m_trf, f, m_boundary[mu], mu);
233 }
else if (mu == (m_Ndim - 1)) {
234 for (
int ex = 0; ex < f.
nex(); ++ex) {
235 vt.setpart_ex(0, f, ex);
236 m_shift.backward(m_trf, f, m_boundary[mu], mu);
254 if (mu < (m_Ndim - 1)) {
255 for (
int ex = 0; ex < f.
nex(); ++ex) {
257 m_shift.forward(m_trf2, m_trf, m_boundary[mu], mu);
261 }
else if (mu == (m_Ndim - 1)) {
262 for (
int ex = 0; ex < f.
nex(); ++ex) {
264 m_shift.forward(m_trf2, m_trf, m_boundary[mu], mu);
287 int flop_per_site = Nc * Nd * 2 * 8 * (4 * Nc - 1);
289 flop_per_site += Nc * Nd * 2 * (4 * 3 + 4 * 2);
290 flop_per_site += Nc * Nd * 2 * 8;
291 flop_per_site += Nc * Nd * 2 * 2;
293 double flop =
static_cast<double>(flop_per_site) *
294 static_cast<double>(Lvol);
296 if ((m_mode ==
"DdagD") || (m_mode ==
"DDdag")) {
void scal(Field &x, const double a)
scal(x, a): x = a * x
void DDdag(Field &w, const Field &f)
void mult_Field_Gd(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
void set(const int jin, const int site, const int jex, double v)
void mult_up(int mu, Field &, const Field &)
void general(const char *format,...)
void(Fopr_Wilson_General::Fopr_Wilson_General_impl::* m_mult)(Field &, const Field &)
std::vector< GammaMatrix > m_GM
gamma matrices.
static Bridge::VerboseLevel Vlevel()
Container of Field-type object.
void set_mode(std::string mode)
void Ddag(Field &w, const Field &f)
void H(Field &w, const Field &f)
void addpart_ex(int ex, const Field &w, int exw)
void set_parameters(const double kappa_s, const double kappa_t, const double nu_s, const double r_s, const std::vector< int > bc)
Wilson-type fermion field.
void mult_GMproj2(Field_F &y, const int pm, const GammaMatrix &gm, const Field_F &x)
projection with gamma matrix: (1 gamma)
const Field_G * m_U
gauge configuration.
void mult_undef(Field &, const Field &f)
const Field_F mult_gm5p(int mu, const Field_F &w)
void mult_dn(int mu, Field &w, const Field &v)
void init(std::string repr)
std::string get_mode() const
Bridge::VerboseLevel m_vl
void DdagD(Field &w, const Field &f)
void mult_up(int mu, Field &w, const Field &v)
adding the hopping to nearest neighbor site in mu-th direction.
std::vector< int > m_boundary
boundary condition.
void mult_Field_Gn(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2)
void mult_gm5(Field &w, const Field &v)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
void crucial(const char *format,...)
static const std::string class_name
void mult_GM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication
void D(Field &v, const Field &f)
void(Fopr_Wilson_General::Fopr_Wilson_General_impl::* m_mult_dag)(Field &, const Field &)
void D_ex(Field &v, const int ex1, const Field &f, const int ex2)
void proj_chiral(Field &w, const int ex1, const Field &v, const int ex2, const int ipm)
static const std::string class_name
void mult_dn(int mu, Field &, const Field &)
Bridge::VerboseLevel m_vl
void setpart_ex(int ex, const Field &w, int exw)
void mult_gm5(Field &v, const Field &f)