Bridge++
Ver. 2.0.2
|
Domain-wall fermion operator. More...
#include <afopr_Domainwall.h>
Public Types | |
typedef AFopr< AFIELD > | AFOPR |
typedef AFIELD::real_t | real_t |
Public Member Functions | |
AFopr_Domainwall (AFOPR *fopr) | |
constructor. More... | |
AFopr_Domainwall (const Parameters ¶ms) | |
AFopr_Domainwall (AFOPR *fopr, const Parameters ¶ms) | |
constructor. More... | |
~AFopr_Domainwall () | |
destructor. More... | |
void | set_parameters (const Parameters ¶ms) |
sets parameters by a Parameter object: to be implemented in a subclass. More... | |
void | set_parameters (const real_t mq, const real_t M0, const int Ns, const std::vector< int > bc, const real_t b, const real_t c) |
set parameters in the case of Moebius domain-wall. More... | |
void | set_parameters (const real_t mq, const real_t M0, const int Ns, const std::vector< int > bc, const std::vector< real_t > vec_b, const std::vector< real_t > vec_c) |
set parameters in the case of Moebius domain-wall. More... | |
void | get_parameters (Parameters ¶ms) const |
gets parameters by a Parameter object: to be implemented in a subclass. More... | |
void | set_kernel_parameters (const Parameters ¶ms) |
set parameters of kernel operaotr. More... | |
void | set_precond_parameters () |
set parameters for preconditioning. More... | |
void | set_coefficients (const std::vector< real_t > b, const std::vector< real_t > c) |
set coefficients if they depend in s. More... | |
bool | needs_convert () |
this class needs convert of fermion field. More... | |
void | convert (AFIELD &, const Field &) |
convert Field to AField for this class. More... | |
void | reverse (Field &, const AFIELD &) |
reverse AField to Field. More... | |
void | set_config (Field *U) |
sets the gauge configuration. More... | |
void | set_config (unique_ptr< Field_G > &U) |
void | set_mode (std::string mode) |
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelevant call. More... | |
std::string | get_mode () const |
returns the current mult mode. More... | |
void | mult (AFIELD &v, const AFIELD &w) |
multiplies fermion operator to a given field. More... | |
void | mult_dag (AFIELD &v, const AFIELD &w) |
hermitian conjugate of mult. More... | |
void | mult (AFIELD &v, const AFIELD &w, std::string mode) |
void | mult_dag (AFIELD &v, const AFIELD &w, std::string mode) |
mult_dag with specified mode. More... | |
void | mult_gm5 (AFIELD &, const AFIELD &) |
multiplies gamma_5 matrix. More... | |
void | mult_chproj_4d (AFIELD &, const AFIELD &, const int ipm) |
int | field_nin () |
returns the on-site degree of freedom of the fermion field. More... | |
int | field_nvol () |
returns the volume of the fermion field. More... | |
int | field_nex () |
returns the external degree of freedom of the fermion field. More... | |
double | flop_count () |
this returns the number of floating point number operations. More... | |
double | flop_count (std::string mode) |
flop-count for specified mode. More... | |
void | DdagD (AFIELD &, const AFIELD &) |
void | DDdag (AFIELD &, const AFIELD &) |
void | D (AFIELD &, const AFIELD &) |
void | Ddag (AFIELD &, const AFIELD &) |
void | H (AFIELD &, const AFIELD &) |
void | Hdag (AFIELD &, const AFIELD &) |
void | mult_gm5R (AFIELD &, const AFIELD &) |
void | mult_R (AFIELD &, const AFIELD &) |
void | DdagD_prec (AFIELD &, const AFIELD &) |
void | D_prec (AFIELD &, const AFIELD &) |
void | Ddag_prec (AFIELD &, const AFIELD &) |
void | Prec (AFIELD &, const AFIELD &) |
void | Precdag (AFIELD &, const AFIELD &) |
const std::string | class_name |
const std::string | class_name |
const std::string | class_name |
Public Member Functions inherited from AFopr< AFIELD > | |
AFopr () | |
virtual | ~AFopr () |
virtual void | mult_up (int mu, AFIELD &, const AFIELD &) |
upward nearest neighbor hopping term. More... | |
virtual void | mult_dn (int mu, AFIELD &, const AFIELD &) |
downward nearest neighbor hopping term. More... | |
virtual void | normalize_fprop (AFIELD &) |
normalize propagator if necessary (default: do nothing) More... | |
virtual void | normalize_fopr (AFIELD &) |
normalize propagator if necessary (default: do nothing) More... | |
Static Public Attributes | |
static const std::string | class_name = "AFopr_Domainwall" |
Private Member Functions | |
void | init (const Parameters ¶ms) |
initial setup. More... | |
void | init (AFOPR *fopr, const Parameters ¶ms) |
void | init (AFOPR *fopr) |
void | tidyup () |
final tidyup. More... | |
void | L_inv (AFIELD &, const AFIELD &) |
void | U_inv (AFIELD &, const AFIELD &) |
void | Ldag_inv (AFIELD &, const AFIELD &) |
void | Udag_inv (AFIELD &, const AFIELD &) |
void | mult_gm5_4d (AFIELD &, const AFIELD &) |
Private Attributes | |
real_t | m_mq |
quark mass More... | |
real_t | m_M0 |
domain-wall height More... | |
int | m_Ns |
size of fifth-dimension More... | |
std::vector< int > | m_boundary |
boundary conditions More... | |
std::vector< real_t > | m_b |
coefficient b (array) More... | |
std::vector< real_t > | m_c |
coefficient c (array) More... | |
Bridge::VerboseLevel | m_vl |
verbose level More... | |
std::string | m_repr |
std::string | m_mode |
int | m_NinF |
int | m_Nvol |
int | m_Ndim |
AFOPR * | m_foprw |
std::string | m_kernel_type |
bool | m_kernel_created |
whether kernel is created in this object More... | |
AFIELD | m_w4 |
AFIELD | m_v4 |
AFIELD | m_t4 |
AFIELD | m_y4 |
working 4d vectors. More... | |
AFIELD | m_w1 |
AFIELD | m_v1 |
AFIELD | m_v2 |
working 5d vectors. More... | |
Field | m_w4lex |
AFIELD | m_v4lex |
std::vector< real_t > | m_dp |
std::vector< real_t > | m_dm |
std::vector< real_t > | m_e |
std::vector< real_t > | m_f |
real_t | m_g |
Additional Inherited Members | |
Static Protected Attributes inherited from AFopr< AFIELD > | |
static const std::string | class_name |
Domain-wall fermion operator.
This class implements the domain-wall fermion operator. The first version was implemented only for the standard (Shamir's) form. [24 Dec 2011 H.Matsufuru] Later it was generalized to cover the Mobius form as a template class in the alternative branch. [26 Feb 2019 H.Matsufuru] In ver.2.0, it was merged to trunk by renaming to AFopr_Domainwall. [06 Mar 2022 H.Matsufuru]
Definition at line 38 of file afopr_Domainwall.h.
typedef AFopr<AFIELD> AFopr_Domainwall< AFIELD >::AFOPR |
Definition at line 41 of file afopr_Domainwall.h.
typedef AFIELD::real_t AFopr_Domainwall< AFIELD >::real_t |
Definition at line 42 of file afopr_Domainwall.h.
|
inline |
constructor.
Definition at line 80 of file afopr_Domainwall.h.
|
inline |
Definition at line 82 of file afopr_Domainwall.h.
|
inline |
constructor.
Definition at line 85 of file afopr_Domainwall.h.
|
inline |
destructor.
Definition at line 89 of file afopr_Domainwall.h.
const std::string AFopr_Domainwall< Field >::class_name |
Definition at line 23 of file fopr_Domainwall.cpp.
const std::string AFopr_Domainwall< AField< double, QXS > >::class_name |
Definition at line 38 of file afopr_Domainwall.cpp.
const std::string AFopr_Domainwall< AField< float, QXS > >::class_name |
Definition at line 42 of file afopr_Domainwall.cpp.
|
virtual |
convert Field to AField for this class.
Reimplemented from AFopr< AFIELD >.
Definition at line 454 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::D | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 818 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::D_prec | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 729 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::Ddag | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 859 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::Ddag_prec | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 739 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::DdagD | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 693 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::DdagD_prec | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 717 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::DDdag | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 705 of file afopr_Domainwall-tmpl.h.
|
inlinevirtual |
returns the external degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 152 of file afopr_Domainwall.h.
|
inlinevirtual |
returns the on-site degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 150 of file afopr_Domainwall.h.
|
inlinevirtual |
returns the volume of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 151 of file afopr_Domainwall.h.
|
inlinevirtual |
this returns the number of floating point number operations.
Reimplemented from AFopr< AFIELD >.
Definition at line 155 of file afopr_Domainwall.h.
|
virtual |
flop-count for specified mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 1056 of file afopr_Domainwall-tmpl.h.
|
inlinevirtual |
returns the current mult mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 132 of file afopr_Domainwall.h.
|
virtual |
gets parameters by a Parameter object: to be implemented in a subclass.
Reimplemented from AFopr< AFIELD >.
Definition at line 252 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::H | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 767 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::Hdag | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 776 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 150 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 98 of file afopr_Domainwall-tmpl.h.
|
private |
initial setup.
Definition at line 27 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 897 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 1024 of file afopr_Domainwall-tmpl.h.
|
virtual |
multiplies fermion operator to a given field.
Reimplemented from AFopr< AFIELD >.
Definition at line 513 of file afopr_Domainwall-tmpl.h.
|
virtual |
mult with specified mode. Possible modes are: "D", "Ddag", "DdagD", "DDdag", "Prec", "D_prec", "Ddag_prec", "DdagD_prec".
Reimplemented from AFopr< AFIELD >.
Definition at line 575 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::mult_chproj_4d | ( | AFIELD & | v, |
const AFIELD & | w, | ||
const int | ipm | ||
) |
Definition at line 666 of file afopr_Domainwall-tmpl.h.
|
virtual |
hermitian conjugate of mult.
Reimplemented from AFopr< AFIELD >.
Definition at line 544 of file afopr_Domainwall-tmpl.h.
|
virtual |
mult_dag with specified mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 609 of file afopr_Domainwall-tmpl.h.
|
virtual |
multiplies gamma_5 matrix.
Reimplemented from AFopr< AFIELD >.
Definition at line 642 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 685 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::mult_gm5R | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 785 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::mult_R | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 801 of file afopr_Domainwall-tmpl.h.
|
inlinevirtual |
this class needs convert of fermion field.
Reimplemented from AFopr< AFIELD >.
Definition at line 117 of file afopr_Domainwall.h.
void AFopr_Domainwall< AFIELD >::Prec | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 749 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::Precdag | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 758 of file afopr_Domainwall-tmpl.h.
|
virtual |
Reimplemented from AFopr< AFIELD >.
Definition at line 477 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::set_coefficients | ( | const std::vector< real_t > | b, |
const std::vector< real_t > | c | ||
) |
set coefficients if they depend in s.
Definition at line 385 of file afopr_Domainwall-tmpl.h.
|
inlinevirtual |
sets the gauge configuration.
Implements AFopr< AFIELD >.
Definition at line 125 of file afopr_Domainwall.h.
|
inline |
Definition at line 127 of file afopr_Domainwall.h.
void AFopr_Domainwall< AFIELD >::set_kernel_parameters | ( | const Parameters & | params | ) |
set parameters of kernel operaotr.
Definition at line 410 of file afopr_Domainwall-tmpl.h.
|
virtual |
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelevant call.
Reimplemented from AFopr< AFIELD >.
Definition at line 500 of file afopr_Domainwall-tmpl.h.
|
virtual |
sets parameters by a Parameter object: to be implemented in a subclass.
Reimplemented from AFopr< AFIELD >.
Definition at line 203 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::set_parameters | ( | const real_t | mq, |
const real_t | M0, | ||
const int | Ns, | ||
const std::vector< int > | bc, | ||
const real_t | b, | ||
const real_t | c | ||
) |
set parameters in the case of Moebius domain-wall.
Definition at line 269 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::set_parameters | ( | const real_t | mq, |
const real_t | M0, | ||
const int | Ns, | ||
const std::vector< int > | bc, | ||
const std::vector< real_t > | vec_b, | ||
const std::vector< real_t > | vec_c | ||
) |
set parameters in the case of Moebius domain-wall.
Definition at line 326 of file afopr_Domainwall-tmpl.h.
void AFopr_Domainwall< AFIELD >::set_precond_parameters |
set parameters for preconditioning.
Definition at line 427 of file afopr_Domainwall-tmpl.h.
|
private |
final tidyup.
Definition at line 195 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 938 of file afopr_Domainwall-tmpl.h.
|
private |
Definition at line 975 of file afopr_Domainwall-tmpl.h.
|
static |
Definition at line 43 of file afopr_Domainwall.h.
|
private |
coefficient b (array)
Definition at line 51 of file afopr_Domainwall.h.
|
private |
boundary conditions
Definition at line 50 of file afopr_Domainwall.h.
|
private |
coefficient c (array)
Definition at line 52 of file afopr_Domainwall.h.
|
private |
Definition at line 73 of file afopr_Domainwall.h.
|
private |
Definition at line 72 of file afopr_Domainwall.h.
|
private |
Definition at line 74 of file afopr_Domainwall.h.
|
private |
Definition at line 75 of file afopr_Domainwall.h.
|
private |
Definition at line 60 of file afopr_Domainwall.h.
|
private |
Definition at line 76 of file afopr_Domainwall.h.
|
private |
whether kernel is created in this object
Definition at line 62 of file afopr_Domainwall.h.
|
private |
Definition at line 61 of file afopr_Domainwall.h.
|
private |
domain-wall height
Definition at line 48 of file afopr_Domainwall.h.
|
private |
Definition at line 56 of file afopr_Domainwall.h.
|
private |
quark mass
Definition at line 47 of file afopr_Domainwall.h.
|
private |
Definition at line 58 of file afopr_Domainwall.h.
|
private |
Definition at line 58 of file afopr_Domainwall.h.
|
private |
size of fifth-dimension
Definition at line 49 of file afopr_Domainwall.h.
|
private |
Definition at line 58 of file afopr_Domainwall.h.
|
private |
Definition at line 54 of file afopr_Domainwall.h.
|
private |
Definition at line 64 of file afopr_Domainwall.h.
|
private |
Definition at line 65 of file afopr_Domainwall.h.
|
private |
working 5d vectors.
Definition at line 65 of file afopr_Domainwall.h.
|
private |
Definition at line 64 of file afopr_Domainwall.h.
|
private |
Definition at line 69 of file afopr_Domainwall.h.
|
private |
verbose level
Definition at line 53 of file afopr_Domainwall.h.
|
private |
Definition at line 65 of file afopr_Domainwall.h.
|
private |
Definition at line 64 of file afopr_Domainwall.h.
|
private |
Definition at line 68 of file afopr_Domainwall.h.
|
private |
working 4d vectors.
Definition at line 64 of file afopr_Domainwall.h.