Bridge++  Version 1.5.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ForceSmear_HYP_SF Class Reference

Recursive calculation of HYP smeared fermion force with SF BC. More...

#include <forceSmear_HYP_SF.h>

Inheritance diagram for ForceSmear_HYP_SF:
ForceSmear

Public Member Functions

 ForceSmear_HYP_SF (Projection *proj)
 
 ForceSmear_HYP_SF (unique_ptr< Projection > &proj)
 
void set_parameters (const Parameters &params)
 
void set_parameters (const double alpha1, const double alpha2, const double alpha3, double *phi, double *phipr)
 
void force_udiv (Field_G &Sigma, const Field_G &Sigma_p, const Field_G &U)
 
- Public Member Functions inherited from ForceSmear
 ForceSmear ()
 
virtual ~ForceSmear ()
 
void set_parameter_verboselevel (const Bridge::VerboseLevel vl)
 

Static Public Attributes

static const std::string class_name = "ForceSmear_HYP_SF"
 

Private Member Functions

void init ()
 
void force_step3 (Field_G &, const Field_G &)
 
void force_step2 (Field_G &)
 
void force_step1 (Field_G &)
 
void force_each (Field_G &, const Field_G &, const Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
 
void smear_step1 ()
 
void smear_step2 ()
 
void staple (Field_G &, const Field_G &, const Field_G &, const int mu, const int nu)
 
int idx1 (const int mu, const int nu, const int rho)
 
int idx1b (const int mu, int nu, int rho)
 
int idx2 (const int mu, int nu)
 
int size1 ()
 
int size1b ()
 
int size2 ()
 

Private Attributes

int m_Ndim
 
int m_Nvol
 
double m_alpha1
 
double m_alpha2
 
double m_alpha3
 
Projectionm_proj
 
std::vector< Field_Gm_U
 
std::vector< Field_Gm_v1
 
std::vector< Field_Gm_v2
 
std::vector< Field_Gm_Sigma3
 
std::vector< Field_Gm_Sigma2
 
std::vector< Field_Gm_iTheta3
 
std::vector< Field_Gm_iTheta2
 
std::vector< Field_Gm_iTheta1
 
ShiftField_lex m_shift
 
double m_phi [3]
 SF boundary condition at t=0. More...
 
double m_phipr [3]
 SF boundary condition at t=Nt. More...
 
Field_G_SF set_wk
 

Additional Inherited Members

- Protected Attributes inherited from ForceSmear
Bridge::VerboseLevel m_vl
 

Detailed Description

Recursive calculation of HYP smeared fermion force with SF BC.

26 May 2012 Y.Taniguchi YAML is implemented. [14 Nov 2012 Y.Namekawa] unique_ptr is introduced to avoid memory leaks [21 Mar 2015 Y.Namekawa]

Definition at line 36 of file forceSmear_HYP_SF.h.

Constructor & Destructor Documentation

ForceSmear_HYP_SF::ForceSmear_HYP_SF ( Projection proj)
inline

Definition at line 59 of file forceSmear_HYP_SF.h.

ForceSmear_HYP_SF::ForceSmear_HYP_SF ( unique_ptr< Projection > &  proj)
inline

Definition at line 65 of file forceSmear_HYP_SF.h.

Member Function Documentation

void ForceSmear_HYP_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 331 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::force_step1 ( Field_G Sigma)
private
  • See the implementation note "note_cloverHMC.pdf" (2 Apr 2012) by H.Matsufuru.
  • m_U[mu] $=U_{\mu}(x)$ is (k-1)-th smeared 0-th level link.
  • Xi is used as $\Xi_\mu^{(1)}(x)=\Sigma_{\mu;\nu\rho}^{(2)}(x)\exp(iQ_{\mu;\nu\rho}^{(1)}(x))+C_{\mu;\nu\rho}^{(1)\dagger}i\Lambda_{\mu;\nu\rho}^{(1)}(x)$ and is to be added to Sigma for the (k-1)-th smeared force.
  • m_iTheta1[idx1b(mu,nu,rho)] is $i\Lambda_{\mu;\nu\rho}^{(1)}(x)U_\mu(x)$.
  • The force field Sigma is set to zero for the boundary spatial link.

Definition at line 273 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::force_step2 ( Field_G Sigma)
private
  • See the implementation note "note_cloverHMC.pdf" (2 Apr 2012) by H.Matsufuru.
  • m_U[mu] $=U_{\mu}(x)$ is (k-1)-th smeared 0-th level link.
  • m_v1[idx1(mu,nu,rho)] $=V_{\mu;\nu\rho}^{(1)}(x)$ is (k-1)-th smeared 1st level link.
  • Xi is used as $\Xi_\mu^{(2)}(x)=\Sigma_{\mu;\nu}^{(3)}(x)\exp(iQ_{\mu;\nu}^{(2)}(x))+C_{\mu;\nu}^{(2)\dagger} i\Lambda_{\mu;\nu}^{(2)}(x)$ and is to be added to Sigma for the (k-1)-th smeared force.
  • m_iTheta2[idx2(mu,nu)] is $i\Lambda_{\mu;\nu}^{(2)}(x)U_\mu(x)$.
  • The pre-force field m_Sigma2[idx1b(mu,nu,rho)] $=\Sigma_{\mu;\nu\rho}^{(2)}(x)$ is set to zero for the boundary spatial link.

Definition at line 218 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::force_step3 ( Field_G Sigma,
const Field_G Sigmap 
)
private
  • See the implementation note "note_cloverHMC.pdf" (2 Apr 2012) by H.Matsufuru.
  • Sigmap $=\Sigma_\mu'(x)$ in eq.(3.17) in terms of (k)-th smearing.
  • m_U[mu] $=U_{\mu}(x)$ is (k-1)-th smeared 0-th level link.
  • m_v2[idx2(mu,nu)] $=V_{\mu;\nu}^{(2)}(x)$ is (k-1)-th smeared 2nd level link.
  • Xi is used as $\Xi_\mu^{(3)}(x)=\Sigma_\mu'(x)\exp(iQ_\mu^{(3)}(x))+C_\mu^{(3)\dagger} i\Lambda_\mu^{(3)}(x)$ and is to be added to Sigma for the (k-1)-th smeared force.
  • m_iTheta3[mu] is $i\Lambda_\mu^{(3)}(x)U_\mu(x)$.
  • The pre-force field m_Sigma3[idx2(mu,nu)] $=\Sigma_{\mu;\nu}^{(3)}(x)$ is set to zero for the boundary spatial link.

Definition at line 167 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::force_udiv ( Field_G Sigma,
const Field_G Sigma_p,
const Field_G U 
)
virtual

Reimplemented from ForceSmear.

Definition at line 122 of file forceSmear_HYP_SF.cpp.

int ForceSmear_HYP_SF::idx1 ( const int  mu,
const int  nu,
const int  rho 
)
inlineprivate

Definition at line 98 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::idx1b ( const int  mu,
int  nu,
int  rho 
)
inlineprivate

Definition at line 106 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::idx2 ( const int  mu,
int  nu 
)
inlineprivate

Definition at line 114 of file forceSmear_HYP_SF.h.

void ForceSmear_HYP_SF::init ( )
private

Definition at line 89 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::set_parameters ( const Parameters params)
virtual

Implements ForceSmear.

Definition at line 25 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::set_parameters ( const double  alpha1,
const double  alpha2,
const double  alpha3,
double *  phi,
double *  phipr 
)

Definition at line 53 of file forceSmear_HYP_SF.cpp.

int ForceSmear_HYP_SF::size1 ( )
inlineprivate

Definition at line 120 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::size1b ( )
inlineprivate

Definition at line 125 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::size2 ( )
inlineprivate

Definition at line 130 of file forceSmear_HYP_SF.h.

void ForceSmear_HYP_SF::smear_step1 ( )
private

Definition at line 387 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_SF::smear_step2 ( )
private

Definition at line 410 of file forceSmear_HYP_SF.cpp.

void ForceSmear_HYP_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 436 of file forceSmear_HYP_SF.cpp.

Member Data Documentation

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

Definition at line 39 of file forceSmear_HYP_SF.h.

double ForceSmear_HYP_SF::m_alpha1
private

Definition at line 43 of file forceSmear_HYP_SF.h.

double ForceSmear_HYP_SF::m_alpha2
private

Definition at line 43 of file forceSmear_HYP_SF.h.

double ForceSmear_HYP_SF::m_alpha3
private

Definition at line 43 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_iTheta1
private

Definition at line 48 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_iTheta2
private

Definition at line 48 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_iTheta3
private

Definition at line 48 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::m_Ndim
private

Definition at line 42 of file forceSmear_HYP_SF.h.

int ForceSmear_HYP_SF::m_Nvol
private

Definition at line 42 of file forceSmear_HYP_SF.h.

double ForceSmear_HYP_SF::m_phi[3]
private

SF boundary condition at t=0.

Definition at line 52 of file forceSmear_HYP_SF.h.

double ForceSmear_HYP_SF::m_phipr[3]
private

SF boundary condition at t=Nt.

Definition at line 54 of file forceSmear_HYP_SF.h.

Projection* ForceSmear_HYP_SF::m_proj
private

Definition at line 44 of file forceSmear_HYP_SF.h.

ShiftField_lex ForceSmear_HYP_SF::m_shift
private

Definition at line 49 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_Sigma2
private

Definition at line 47 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_Sigma3
private

Definition at line 47 of file forceSmear_HYP_SF.h.

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

Definition at line 45 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_v1
private

Definition at line 46 of file forceSmear_HYP_SF.h.

std::vector<Field_G> ForceSmear_HYP_SF::m_v2
private

Definition at line 46 of file forceSmear_HYP_SF.h.

Field_G_SF ForceSmear_HYP_SF::set_wk
private

Definition at line 56 of file forceSmear_HYP_SF.h.


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