Bridge++  Ver.2.1.3
ForceSmear_APE_SF Class Reference

Recursive calculation for APE smeared fermion force. More...

#include <forceSmear_APE_SF.h>

Inheritance diagram for ForceSmear_APE_SF:
AForceSmear< AFIELD >

Public Member Functions

 ForceSmear_APE_SF (Projection *proj, const Parameters &params)
 
 ~ForceSmear_APE_SF ()
 
void set_parameters (const Parameters &params)
 
void set_parameters (const double rho1, const std::vector< double > &phi, const std::vector< double > &phipr)
 
void set_parameters (const std::vector< double > &rho, const std::vector< double > &phi, const std::vector< double > &phipr)
 
void get_parameters (Parameters &params) const
 
void force_udiv (Field_G &Sigma, const Field_G &Sigma_p, const Field_G &U)
 
- Public Member Functions inherited from AForceSmear< AFIELD >
 AForceSmear ()
 
virtual ~AForceSmear ()
 

Static Public Attributes

static const std::string class_name = "ForceSmear_APE_SF"
 

Private Member Functions

void init (const Parameters &params)
 
void tidyup ()
 
int index (int mu, int nu)
 
void force_each (Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
 
void staple (Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
 

Private Attributes

int m_Ndim
 
int m_Nvol
 
std::vector< double > m_rho
 
std::vector< double > m_phi
 SF boundary condition at t=0. More...
 
std::vector< double > m_phipr
 SF boundary condition at t=Nt. More...
 
Bridge::VerboseLevel m_vl
 
Projection * m_proj
 
ShiftField_lex * m_shift
 
std::vector< Field_G > m_U
 
std::vector< Field_G > m_iTheta
 
Mat_SU_N m_wk
 SF boundary condition at t=0. More...
 
Mat_SU_N m_wkpr
 SF boundary condition at t=Nt. More...
 
Field_G * m_v1
 
Field_G * m_v2
 
Field_G * m_vt1
 
Field_G * m_vt2
 
Field_G * m_vt3
 
Field_G * m_ct1
 
Field_G * m_ct2
 
Field_G * m_xi
 

Detailed Description

Recursive calculation for APE smeared fermion force.

Recursive calculation for APE smeared fermion force. [08 Apr 2012 H.Matsufuru] YAML is implemented. [14 Nov 2012 Y.Namekawa] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa] Multi-threading applied. [10 Jun 2026 H.Matsufuru]

Definition at line 32 of file forceSmear_APE_SF.h.

Constructor & Destructor Documentation

◆ ForceSmear_APE_SF()

ForceSmear_APE_SF::ForceSmear_APE_SF ( Projection *  proj,
const Parameters &  params 
)
inline

Definition at line 66 of file forceSmear_APE_SF.h.

◆ ~ForceSmear_APE_SF()

ForceSmear_APE_SF::~ForceSmear_APE_SF ( )
inline

Definition at line 71 of file forceSmear_APE_SF.h.

Member Function Documentation

◆ force_each()

void ForceSmear_APE_SF::force_each ( Field_G &  Sigma_mu,
const Field_G &  V_mu,
const Field_G &  V_nu,
const Field_G &  iTheta_mu,
const Field_G &  iTheta_nu,
const int  mu,
const int  nu 
)
private
  • Each block evaluates:
  • The 1st block: $-U_\nu(x+\mu)U_\mu^\dagger(x+\nu)U_\nu^\dagger(x)\Lambda_\nu(x)$
  • The 2nd block: $-U_\nu^\dagger(x+\mu-\nu)U_\mu^\dagger(x-\nu)\Lambda_\mu(x-\nu)U_\nu(x-\nu)$
  • The 3rd block: $U_\nu^\dagger(x+\mu-\nu)U_\mu^\dagger(x-\nu)\Lambda_\nu(x-\nu)U_\nu(x-\nu)$
  • The 4th block: $\Lambda_\nu(x+\mu)U_\nu(x+\mu)U_\mu^\dagger(x+\nu)U_\nu^\dagger(x)$
  • The 5th block: $-U_\nu^\dagger(x+\mu-\nu)\Lambda_\mu(x+\mu-\nu)U_\mu^\dagger(x-\nu)U_\nu(x-\nu)$
  • The 6th block: $-U_\nu(x+\mu)U_\mu^\dagger(x+\nu)\Lambda_\mu(x+\nu)U_\nu^\dagger(x)$

Definition at line 344 of file forceSmear_APE_SF.cpp.

◆ force_udiv()

void ForceSmear_APE_SF::force_udiv ( Field_G &  Sigma,
const Field_G &  Sigmap,
const Field_G &  U 
)
virtual
  • See the implementation note "note_cloverHMC.pdf" (21 Mar 2012) by H.Matsufuru.
  • Sigmap $=\Sigma_\mu'(x)$ in eq.(93) in terms of (k)-th smearing.
  • U $=U_\mu(x)$ in (k-1)-th smearing.
  • Xi is used as $\Sigma_\mu'(x)\exp(iQ_\mu(x))+C_\mu^\dagger i\Lambda_\mu(x)$.
  • m_iTheta[mu] is $i\Lambda_\mu(x)U_\mu(x)$.
  • The pre-force field Sigma $=\Sigma_\mu(x)$ is set to zero for the boundary spatial link.
  • [Y.Taniguchi 2012.04.16]

Reimplemented from AForceSmear< AFIELD >.

Definition at line 266 of file forceSmear_APE_SF.cpp.

◆ get_parameters()

void ForceSmear_APE_SF::get_parameters ( Parameters &  params) const
virtual

Implements AForceSmear< AFIELD >.

Definition at line 241 of file forceSmear_APE_SF.cpp.

◆ index()

int ForceSmear_APE_SF::index ( int  mu,
int  nu 
)
inlineprivate

Definition at line 93 of file forceSmear_APE_SF.h.

◆ init()

void ForceSmear_APE_SF::init ( const Parameters &  params)
private

Definition at line 22 of file forceSmear_APE_SF.cpp.

◆ set_parameters() [1/3]

void ForceSmear_APE_SF::set_parameters ( const double  rho1,
const std::vector< double > &  phi,
const std::vector< double > &  phipr 
)

Definition at line 113 of file forceSmear_APE_SF.cpp.

◆ set_parameters() [2/3]

void ForceSmear_APE_SF::set_parameters ( const Parameters &  params)
virtual

Implements AForceSmear< AFIELD >.

Definition at line 86 of file forceSmear_APE_SF.cpp.

◆ set_parameters() [3/3]

void ForceSmear_APE_SF::set_parameters ( const std::vector< double > &  rho,
const std::vector< double > &  phi,
const std::vector< double > &  phipr 
)

Definition at line 176 of file forceSmear_APE_SF.cpp.

◆ staple()

void ForceSmear_APE_SF::staple ( Field_G &  c,
const Field_G &  u_mu,
const Field_G &  u_nu,
const int  mu,
const int  nu 
)
private

Definition at line 413 of file forceSmear_APE_SF.cpp.

◆ tidyup()

void ForceSmear_APE_SF::tidyup ( )
private

Definition at line 70 of file forceSmear_APE_SF.cpp.

Member Data Documentation

◆ class_name

const std::string ForceSmear_APE_SF::class_name = "ForceSmear_APE_SF"
static

Definition at line 35 of file forceSmear_APE_SF.h.

◆ m_ct1

Field_G* ForceSmear_APE_SF::m_ct1
private

Definition at line 60 of file forceSmear_APE_SF.h.

◆ m_ct2

Field_G* ForceSmear_APE_SF::m_ct2
private

Definition at line 61 of file forceSmear_APE_SF.h.

◆ m_iTheta

std::vector<Field_G> ForceSmear_APE_SF::m_iTheta
private

Definition at line 49 of file forceSmear_APE_SF.h.

◆ m_Ndim

int ForceSmear_APE_SF::m_Ndim
private

Definition at line 38 of file forceSmear_APE_SF.h.

◆ m_Nvol

int ForceSmear_APE_SF::m_Nvol
private

Definition at line 38 of file forceSmear_APE_SF.h.

◆ m_phi

std::vector<double> ForceSmear_APE_SF::m_phi
private

SF boundary condition at t=0.

Definition at line 40 of file forceSmear_APE_SF.h.

◆ m_phipr

std::vector<double> ForceSmear_APE_SF::m_phipr
private

SF boundary condition at t=Nt.

Definition at line 41 of file forceSmear_APE_SF.h.

◆ m_proj

Projection* ForceSmear_APE_SF::m_proj
private

Definition at line 44 of file forceSmear_APE_SF.h.

◆ m_rho

std::vector<double> ForceSmear_APE_SF::m_rho
private

Definition at line 39 of file forceSmear_APE_SF.h.

◆ m_shift

ShiftField_lex* ForceSmear_APE_SF::m_shift
private

Definition at line 46 of file forceSmear_APE_SF.h.

◆ m_U

std::vector<Field_G> ForceSmear_APE_SF::m_U
private

Definition at line 48 of file forceSmear_APE_SF.h.

◆ m_v1

Field_G* ForceSmear_APE_SF::m_v1
private

Definition at line 54 of file forceSmear_APE_SF.h.

◆ m_v2

Field_G* ForceSmear_APE_SF::m_v2
private

Definition at line 55 of file forceSmear_APE_SF.h.

◆ m_vl

Bridge::VerboseLevel ForceSmear_APE_SF::m_vl
private

Definition at line 42 of file forceSmear_APE_SF.h.

◆ m_vt1

Field_G* ForceSmear_APE_SF::m_vt1
private

Definition at line 56 of file forceSmear_APE_SF.h.

◆ m_vt2

Field_G* ForceSmear_APE_SF::m_vt2
private

Definition at line 57 of file forceSmear_APE_SF.h.

◆ m_vt3

Field_G* ForceSmear_APE_SF::m_vt3
private

Definition at line 58 of file forceSmear_APE_SF.h.

◆ m_wk

Mat_SU_N ForceSmear_APE_SF::m_wk
private

SF boundary condition at t=0.

Definition at line 51 of file forceSmear_APE_SF.h.

◆ m_wkpr

Mat_SU_N ForceSmear_APE_SF::m_wkpr
private

SF boundary condition at t=Nt.

Definition at line 52 of file forceSmear_APE_SF.h.

◆ m_xi

Field_G* ForceSmear_APE_SF::m_xi
private

Definition at line 62 of file forceSmear_APE_SF.h.


The documentation for this class was generated from the following files: