Bridge++
Ver. 2.0.2
|
Overlap fermion operator. More...
#include <afopr_Overlap.h>
Public Types | |
typedef AFopr< AFIELD > | AFOPR |
typedef AFIELD::real_t | real_t |
Public Member Functions | |
AFopr_Overlap (const Parameters ¶ms) | |
AFopr_Overlap (AFOPR *fopr, const Parameters ¶ms) | |
DEPRECATED | AFopr_Overlap (AFOPR *fopr) |
~AFopr_Overlap () | |
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 Np, const real_t x_min, const real_t x_max, const int Niter, const real_t Stop_cond, const std::vector< int > bc) |
void | get_parameters (Parameters ¶ms) const |
gets parameters by a Parameter object: to be implemented in a subclass. More... | |
void | set_config (Field *U) |
sets the gauge configuration. More... | |
void | set_lowmodes (const int Nsbt, std::vector< real_t > *, std::vector< AFIELD > *) |
void | mult (AFIELD &, const AFIELD &) |
multiplies fermion operator to a given field. More... | |
void | mult_dag (AFIELD &, const AFIELD &) |
hermitian conjugate of mult. More... | |
void | mult_gm5 (AFIELD &, const AFIELD &) |
multiplies gamma_5 matrix. More... | |
void | set_mode (const 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 | H (AFIELD &v, const AFIELD &w) |
void | D (AFIELD &v, const AFIELD &w) |
void | Ddag (AFIELD &v, const AFIELD &w) |
void | DdagD (AFIELD &v, const AFIELD &w) |
virtual bool | needs_convert () |
returns true if additional field conversion is needed. More... | |
virtual void | convert (AFIELD &v, const Field &w) |
converts a Field object into other format if necessary. More... | |
virtual void | reverse (Field &v, const AFIELD &w) |
reverses to a Field object from other format if necessary. More... | |
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 () |
returns the number of floating point operations. More... | |
double | flop_count (const std::string mode) |
returns the flops per site for specified mode. More... | |
const std::string | class_name |
Public Member Functions inherited from AFopr< AFIELD > | |
AFopr () | |
virtual | ~AFopr () |
virtual void | mult (AFIELD &, const AFIELD &, const std::string mode) |
executes mult with specified mode (unchanging internal mode). More... | |
virtual void | mult_dag (AFIELD &, const AFIELD &, const std::string mode) |
executes mult_dag with specified mode (unchanging internal mode). More... | |
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 = "Fopr_Overlap" |
Private Member Functions | |
void | init (const Parameters ¶ms) |
void | init (AFOPR *fopr, const Parameters ¶ms) |
void | init () |
void | tidyup () |
Private Attributes | |
real_t | m_mq |
quark mass More... | |
real_t | m_M0 |
domain-wall height More... | |
int | m_Np |
number of poles in rational approx. More... | |
real_t | m_x_min |
valid range of approximate sign function More... | |
real_t | m_x_max |
valid range of approximate sign function More... | |
int | m_Niter |
max iteration of shiftsolver More... | |
double | m_Stop_cond |
stopping condition of shift solver More... | |
std::vector< int > | m_boundary |
boundary condition More... | |
std::string | m_kernel_type |
kernel type (if given) More... | |
std::string | m_repr |
gamma-matrix repr. (if given) More... | |
Bridge::VerboseLevel | m_vl |
std::string | m_mode |
mult mode More... | |
int | m_Nin |
int | m_Nvol |
int | m_Nex |
AFOPR * | m_fopr_w |
kernel fermion operator. More... | |
bool | m_kernel_created |
whether kernel is created in this object More... | |
AFopr_Sign< AFIELD > * | m_sign |
sign function approximation. More... | |
int | m_Nsbt |
std::vector< real_t > * | m_ev |
std::vector< AFIELD > * | m_vk |
AFIELD | m_w0 |
AFIELD | m_w1 |
AFIELD | m_w2 |
bool | m_is_initial_step |
to avoid redundant setup More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from AFopr< AFIELD > | |
static const std::string | class_name |
Overlap fermion operator.
This class defines the overlap fermion operator with a given kernel fermion operator that currently is assumed as the Wilson fermion operator. All the necessary parameters for the kernel fermion operator must be set outside of the class, while the parameters for the sign function operator are set in this class. When eigenvalues and eigenvectors of the base fermion operator are given, these modes are used in the sign function to improve the approximation formula. [20 Dec 2011 H.Matsufuru] YAML is implemented. [14 Nov 2012 Y.Namekawa] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa] Changed to a template class in ver.2.0. [12 Feb 2022 H.Matsufuru]
Definition at line 45 of file afopr_Overlap.h.
typedef AFopr<AFIELD> AFopr_Overlap< AFIELD >::AFOPR |
Definition at line 48 of file afopr_Overlap.h.
typedef AFIELD::real_t AFopr_Overlap< AFIELD >::real_t |
Definition at line 49 of file afopr_Overlap.h.
|
inline |
Definition at line 91 of file afopr_Overlap.h.
|
inline |
Definition at line 93 of file afopr_Overlap.h.
|
inline |
Definition at line 97 of file afopr_Overlap.h.
|
inline |
Definition at line 100 of file afopr_Overlap.h.
const std::string AFopr_Overlap< Field >::class_name |
Definition at line 24 of file fopr_Overlap.cpp.
|
inlinevirtual |
converts a Field object into other format if necessary.
Reimplemented from AFopr< AFIELD >.
Definition at line 134 of file afopr_Overlap.h.
void AFopr_Overlap< AFIELD >::D | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 436 of file afopr_Overlap-tmpl.h.
void AFopr_Overlap< AFIELD >::Ddag | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 426 of file afopr_Overlap-tmpl.h.
void AFopr_Overlap< AFIELD >::DdagD | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 405 of file afopr_Overlap-tmpl.h.
|
inlinevirtual |
returns the external degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 143 of file afopr_Overlap.h.
|
inlinevirtual |
returns the on-site degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 141 of file afopr_Overlap.h.
|
inlinevirtual |
returns the volume of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 142 of file afopr_Overlap.h.
|
virtual |
returns the number of floating point operations.
Reimplemented from AFopr< AFIELD >.
Definition at line 459 of file afopr_Overlap-tmpl.h.
|
virtual |
returns the flops per site for specified mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 467 of file afopr_Overlap-tmpl.h.
|
inlinevirtual |
returns the current mult mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 122 of file afopr_Overlap.h.
|
virtual |
gets parameters by a Parameter object: to be implemented in a subclass.
Reimplemented from AFopr< AFIELD >.
Definition at line 293 of file afopr_Overlap-tmpl.h.
void AFopr_Overlap< AFIELD >::H | ( | AFIELD & | v, |
const AFIELD & | w | ||
) |
Definition at line 417 of file afopr_Overlap-tmpl.h.
|
private |
Definition at line 126 of file afopr_Overlap-tmpl.h.
|
private |
Definition at line 84 of file afopr_Overlap-tmpl.h.
|
private |
Definition at line 29 of file afopr_Overlap-tmpl.h.
|
virtual |
multiplies fermion operator to a given field.
Reimplemented from AFopr< AFIELD >.
Definition at line 357 of file afopr_Overlap-tmpl.h.
|
virtual |
hermitian conjugate of mult.
Reimplemented from AFopr< AFIELD >.
Definition at line 377 of file afopr_Overlap-tmpl.h.
|
virtual |
multiplies gamma_5 matrix.
Reimplemented from AFopr< AFIELD >.
Definition at line 397 of file afopr_Overlap-tmpl.h.
|
inlinevirtual |
returns true if additional field conversion is needed.
Reimplemented from AFopr< AFIELD >.
Definition at line 130 of file afopr_Overlap.h.
|
inlinevirtual |
reverses to a Field object from other format if necessary.
Reimplemented from AFopr< AFIELD >.
Definition at line 138 of file afopr_Overlap.h.
|
virtual |
sets the gauge configuration.
Implements AFopr< AFIELD >.
Definition at line 312 of file afopr_Overlap-tmpl.h.
void AFopr_Overlap< AFIELD >::set_lowmodes | ( | const int | Nsbt, |
std::vector< real_t > * | ev, | ||
std::vector< AFIELD > * | vk | ||
) |
Definition at line 320 of file afopr_Overlap-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 342 of file afopr_Overlap-tmpl.h.
|
virtual |
sets parameters by a Parameter object: to be implemented in a subclass.
Reimplemented from AFopr< AFIELD >.
Definition at line 174 of file afopr_Overlap-tmpl.h.
void AFopr_Overlap< AFIELD >::set_parameters | ( | const real_t | mq, |
const real_t | M0, | ||
const int | Np, | ||
const real_t | x_min, | ||
const real_t | x_max, | ||
const int | Niter, | ||
const real_t | Stop_cond, | ||
const std::vector< int > | bc | ||
) |
Definition at line 230 of file afopr_Overlap-tmpl.h.
|
private |
Definition at line 165 of file afopr_Overlap-tmpl.h.
|
static |
Definition at line 50 of file afopr_Overlap.h.
|
private |
boundary condition
Definition at line 62 of file afopr_Overlap.h.
|
private |
Definition at line 81 of file afopr_Overlap.h.
|
private |
kernel fermion operator.
Definition at line 74 of file afopr_Overlap.h.
|
private |
to avoid redundant setup
Definition at line 87 of file afopr_Overlap.h.
|
private |
whether kernel is created in this object
Definition at line 75 of file afopr_Overlap.h.
|
private |
kernel type (if given)
Definition at line 64 of file afopr_Overlap.h.
|
private |
domain-wall height
Definition at line 56 of file afopr_Overlap.h.
|
private |
mult mode
Definition at line 69 of file afopr_Overlap.h.
|
private |
quark mass
Definition at line 55 of file afopr_Overlap.h.
|
private |
Definition at line 72 of file afopr_Overlap.h.
|
private |
Definition at line 72 of file afopr_Overlap.h.
|
private |
max iteration of shiftsolver
Definition at line 60 of file afopr_Overlap.h.
|
private |
number of poles in rational approx.
Definition at line 57 of file afopr_Overlap.h.
|
private |
Definition at line 80 of file afopr_Overlap.h.
|
private |
Definition at line 72 of file afopr_Overlap.h.
|
private |
gamma-matrix repr. (if given)
Definition at line 65 of file afopr_Overlap.h.
|
private |
sign function approximation.
Definition at line 77 of file afopr_Overlap.h.
|
private |
stopping condition of shift solver
Definition at line 61 of file afopr_Overlap.h.
|
private |
Definition at line 82 of file afopr_Overlap.h.
|
private |
Definition at line 67 of file afopr_Overlap.h.
|
private |
Definition at line 85 of file afopr_Overlap.h.
|
private |
Definition at line 85 of file afopr_Overlap.h.
|
private |
Definition at line 85 of file afopr_Overlap.h.
|
private |
valid range of approximate sign function
Definition at line 59 of file afopr_Overlap.h.
|
private |
valid range of approximate sign function
Definition at line 58 of file afopr_Overlap.h.