Bridge++
Ver. 2.0.2
|
Staggered fermion operator. More...
#include <afopr_Staggered.h>
Public Types | |
typedef AFIELD::real_t | real_t |
Public Member Functions | |
AFopr_Staggered (const Parameters ¶ms) | |
constructor. More... | |
~AFopr_Staggered () | |
destructor. More... | |
void | set_parameters (const Parameters ¶ms) |
setting parameters by a Parameter object. More... | |
void | set_parameters (const real_t mq, const std::vector< int > bc) |
setting parameters by values. More... | |
void | get_parameters (Parameters ¶ms) const |
getting parameters via a Parameters object. More... | |
void | set_config (Field *U) |
setting gauge configuration (common interface). More... | |
bool | needs_convert () |
returns true if additional field conversion is needed. More... | |
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 &, 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 | mult_gm5 (AFIELD &) |
void | fprop_normalize (AFIELD &v) |
void | fopr_normalize (AFIELD &v) |
int | field_nvol () |
returns the volume of the fermion field. More... | |
int | field_nin () |
returns the on-site degree of freedom of the fermion field. More... | |
int | field_nex () |
returns the external degree of freedom of the fermion field. More... | |
double | flop_count () |
returns floating operation counts. More... | |
double | flop_count (const std::string mode) |
returns floating operation counts. More... | |
const std::string | class_name |
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 | normalize_fprop (AFIELD &) |
normalize propagator if necessary (default: do nothing) More... | |
virtual void | normalize_fopr (AFIELD &) |
normalize propagator if necessary (default: do nothing) More... | |
virtual void | convert (AFIELD &, const Field &) |
converts a Field object into other format if necessary. More... | |
virtual void | reverse (Field &, const AFIELD &) |
converts an alternative field to a Field object. More... | |
Static Public Attributes | |
static const std::string | class_name = "AFopr_Staggered<AFIELD>" |
Private Types | |
using | allocator_t = typename AFIELD::template aligned_allocator< char > |
using | Channel = Channel_impl< allocator_t > |
Private Member Functions | |
void | init (const Parameters ¶ms) |
void | tidyup () |
void | set_staggered_phase () |
void | setup_channels () |
void | set_config_omp (Field *u) |
setting gauge configuration (setting omp parallel). More... | |
void | set_config_impl (Field *u) |
setting gauge configuration (implementation). More... | |
void | D (AFIELD &, const AFIELD &) |
void | Ddag (AFIELD &, const AFIELD &) |
void | DdagD (AFIELD &, const AFIELD &) |
void | H (AFIELD &, const AFIELD &) |
void | mult_D_qxs (AFIELD &, const AFIELD &, int jd) |
void | mult_D_alt (AFIELD &, const AFIELD &, int jd) |
void | clear (real_t *) |
void | axpby (real_t, real_t *, real_t, real_t *) |
void | mult_up (int mu, AFIELD &, const AFIELD &) |
upward nearest neighbor hopping term. More... | |
void | mult_dn (int mu, AFIELD &, const AFIELD &) |
downward nearest neighbor hopping term. More... | |
Private Attributes | |
int | m_Nc |
int | m_Nvc |
int | m_Ndf |
int | m_Ndim |
int | m_Nx |
int | m_Ny |
int | m_Nz |
int | m_Nt |
int | m_Nst |
int | m_Nxv |
int | m_Nyv |
int | m_Nstv |
for SIMD arrays More... | |
real_t | m_mq |
quark mass. More... | |
std::vector< int > | m_boundary |
boundary conditions. More... | |
Bridge::VerboseLevel | m_vl |
verbose level More... | |
AFIELD | m_stg_phase |
staggered phase More... | |
AFIELD | m_parity |
site parity for multiplying gamma_5 More... | |
AFIELD | m_U |
gauge field multiplied by staggered phase More... | |
ShiftAField_lex< AFIELD > * | m_shift |
std::string | m_mode |
AFIELD | m_w1 |
AFIELD | m_w2 |
working vectors More... | |
AFIELD | m_v2 |
working vector More... | |
int | do_comm [4] |
switchs of communication (4=Ndim): (0: n, 1: y). More... | |
int | do_comm_any |
switchs of communication (if any): (0: n, 1: y). More... | |
std::vector< int > | m_Nbdsize |
std::vector< Channel > | chsend_up |
std::vector< Channel > | chrecv_up |
std::vector< Channel > | chsend_dn |
std::vector< Channel > | chrecv_dn |
ChannelSet | chset_send |
ChannelSet | chset_recv |
int | m_Nsize [4] |
lattice size in units of SIMD vector More... | |
Additional Inherited Members | |
Static Protected Attributes inherited from AFopr< AFIELD > | |
static const std::string | class_name |
Staggered fermion operator.
Implementation of the standard staggered fermion operator for the A64FX architecture. [26 Sep 2021 H.Matsufuru]
Definition at line 41 of file afopr_Staggered.h.
|
private |
Definition at line 72 of file afopr_Staggered.h.
|
private |
Definition at line 73 of file afopr_Staggered.h.
typedef AFIELD::real_t AFopr_Staggered< AFIELD >::real_t |
Definition at line 44 of file afopr_Staggered.h.
|
inline |
constructor.
Definition at line 81 of file afopr_Staggered.h.
|
inline |
destructor.
Definition at line 85 of file afopr_Staggered.h.
|
private |
Definition at line 554 of file afopr_Staggered-tmpl.h.
const std::string AFopr_Staggered< AField< double, QXS > >::class_name |
Definition at line 40 of file afopr_Staggered_double.cpp.
const std::string AFopr_Staggered< AField< float, QXS > >::class_name |
Definition at line 40 of file afopr_Staggered_float.cpp.
|
private |
Definition at line 546 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 398 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 407 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 387 of file afopr_Staggered-tmpl.h.
|
inlinevirtual |
returns the external degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 118 of file afopr_Staggered.h.
|
inlinevirtual |
returns the on-site degree of freedom of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 117 of file afopr_Staggered.h.
|
inlinevirtual |
returns the volume of the fermion field.
Implements AFopr< AFIELD >.
Definition at line 116 of file afopr_Staggered.h.
|
virtual |
returns floating operation counts.
Reimplemented from AFopr< AFIELD >.
Definition at line 601 of file afopr_Staggered-tmpl.h.
|
virtual |
returns floating operation counts.
Reimplemented from AFopr< AFIELD >.
Definition at line 609 of file afopr_Staggered-tmpl.h.
|
inline |
Definition at line 114 of file afopr_Staggered.h.
|
inline |
Definition at line 112 of file afopr_Staggered.h.
|
inlinevirtual |
returns the current mult mode.
Reimplemented from AFopr< AFIELD >.
Definition at line 103 of file afopr_Staggered.h.
|
virtual |
getting parameters via a Parameters object.
Reimplemented from AFopr< AFIELD >.
Definition at line 213 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 378 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 17 of file afopr_Staggered-tmpl.h.
|
virtual |
multiplies fermion operator to a given field.
Reimplemented from AFopr< AFIELD >.
Definition at line 340 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 487 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 416 of file afopr_Staggered-tmpl.h.
|
virtual |
hermitian conjugate of mult.
Reimplemented from AFopr< AFIELD >.
Definition at line 359 of file afopr_Staggered-tmpl.h.
|
privatevirtual |
downward nearest neighbor hopping term.
Reimplemented from AFopr< AFIELD >.
Definition at line 582 of file afopr_Staggered-tmpl.h.
void AFopr_Staggered< AFIELD >::mult_gm5 | ( | AFIELD & | v | ) |
Definition at line 533 of file afopr_Staggered-tmpl.h.
|
virtual |
multiplies gamma_5 matrix.
Reimplemented from AFopr< AFIELD >.
Definition at line 515 of file afopr_Staggered-tmpl.h.
|
privatevirtual |
upward nearest neighbor hopping term.
Reimplemented from AFopr< AFIELD >.
Definition at line 563 of file afopr_Staggered-tmpl.h.
|
inlinevirtual |
returns true if additional field conversion is needed.
Reimplemented from AFopr< AFIELD >.
Definition at line 99 of file afopr_Staggered.h.
|
virtual |
setting gauge configuration (common interface).
Implements AFopr< AFIELD >.
Definition at line 274 of file afopr_Staggered-tmpl.h.
|
private |
setting gauge configuration (implementation).
Definition at line 306 of file afopr_Staggered-tmpl.h.
|
private |
setting gauge configuration (setting omp parallel).
Definition at line 293 of file afopr_Staggered-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 327 of file afopr_Staggered-tmpl.h.
|
virtual |
setting parameters by a Parameter object.
Reimplemented from AFopr< AFIELD >.
Definition at line 163 of file afopr_Staggered-tmpl.h.
void AFopr_Staggered< AFIELD >::set_parameters | ( | const real_t | mq, |
const std::vector< int > | bc | ||
) |
setting parameters by values.
Definition at line 184 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 224 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 129 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 119 of file afopr_Staggered-tmpl.h.
|
private |
Definition at line 74 of file afopr_Staggered.h.
|
private |
Definition at line 74 of file afopr_Staggered.h.
|
private |
Definition at line 74 of file afopr_Staggered.h.
|
private |
Definition at line 74 of file afopr_Staggered.h.
|
private |
Definition at line 75 of file afopr_Staggered.h.
|
private |
Definition at line 75 of file afopr_Staggered.h.
|
static |
Definition at line 45 of file afopr_Staggered.h.
|
private |
switchs of communication (4=Ndim): (0: n, 1: y).
Definition at line 68 of file afopr_Staggered.h.
|
private |
switchs of communication (if any): (0: n, 1: y).
Definition at line 69 of file afopr_Staggered.h.
|
private |
boundary conditions.
Definition at line 53 of file afopr_Staggered.h.
|
private |
Definition at line 63 of file afopr_Staggered.h.
|
private |
quark mass.
Definition at line 52 of file afopr_Staggered.h.
|
private |
Definition at line 71 of file afopr_Staggered.h.
|
private |
Definition at line 48 of file afopr_Staggered.h.
|
private |
Definition at line 48 of file afopr_Staggered.h.
|
private |
Definition at line 48 of file afopr_Staggered.h.
|
private |
lattice size in units of SIMD vector
Definition at line 77 of file afopr_Staggered.h.
|
private |
Definition at line 49 of file afopr_Staggered.h.
|
private |
for SIMD arrays
Definition at line 50 of file afopr_Staggered.h.
|
private |
Definition at line 49 of file afopr_Staggered.h.
|
private |
Definition at line 48 of file afopr_Staggered.h.
|
private |
Definition at line 49 of file afopr_Staggered.h.
|
private |
Definition at line 50 of file afopr_Staggered.h.
|
private |
Definition at line 49 of file afopr_Staggered.h.
|
private |
Definition at line 50 of file afopr_Staggered.h.
|
private |
Definition at line 49 of file afopr_Staggered.h.
|
private |
site parity for multiplying gamma_5
Definition at line 57 of file afopr_Staggered.h.
|
private |
Definition at line 61 of file afopr_Staggered.h.
|
private |
staggered phase
Definition at line 56 of file afopr_Staggered.h.
|
private |
gauge field multiplied by staggered phase
Definition at line 59 of file afopr_Staggered.h.
|
private |
working vector
Definition at line 66 of file afopr_Staggered.h.
|
private |
verbose level
Definition at line 54 of file afopr_Staggered.h.
|
private |
Definition at line 65 of file afopr_Staggered.h.
|
private |
working vectors
Definition at line 65 of file afopr_Staggered.h.