Bridge++  Ver. 2.0.2
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 (Projection *proj, const Parameters &params)
 
void set_parameters (const Parameters &params)
 
void set_parameters (const double alpha1, const double alpha2, const double alpha3, 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 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

Bridge::VerboseLevel m_vl
 
int m_Ndim
 
int m_Nvol
 
double m_alpha1
 
double m_alpha2
 
double m_alpha3
 HYP smearing parameters. More...
 
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
 
std::vector< double > m_phi
 SF boundary condition at t=0. More...
 
std::vector< double > m_phipr
 SF boundary condition at t=Nt. More...
 
Mat_SU_N m_wk
 SF boundary condition at t=0. More...
 
Mat_SU_N m_wkpr
 SF boundary condition at t=Nt. More...
 

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]

(Coding history will be recovered from trac.) 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() [1/2]

ForceSmear_HYP_SF::ForceSmear_HYP_SF ( Projection proj)
inline

Definition at line 60 of file forceSmear_HYP_SF.h.

◆ ForceSmear_HYP_SF() [2/2]

ForceSmear_HYP_SF::ForceSmear_HYP_SF ( Projection proj,
const Parameters params 
)
inline

Definition at line 67 of file forceSmear_HYP_SF.h.

Member Function Documentation

◆ force_each()

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 377 of file forceSmear_HYP_SF.cpp.

◆ force_step1()

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 319 of file forceSmear_HYP_SF.cpp.

◆ force_step2()

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 264 of file forceSmear_HYP_SF.cpp.

◆ force_step3()

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 213 of file forceSmear_HYP_SF.cpp.

◆ force_udiv()

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 168 of file forceSmear_HYP_SF.cpp.

◆ get_parameters()

void ForceSmear_HYP_SF::get_parameters ( Parameters params) const
virtual

Implements ForceSmear.

Definition at line 55 of file forceSmear_HYP_SF.cpp.

◆ idx1()

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

Definition at line 106 of file forceSmear_HYP_SF.h.

◆ idx1b()

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

Definition at line 114 of file forceSmear_HYP_SF.h.

◆ idx2()

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

Definition at line 122 of file forceSmear_HYP_SF.h.

◆ init()

void ForceSmear_HYP_SF::init ( )
private

Definition at line 135 of file forceSmear_HYP_SF.cpp.

◆ set_parameters() [1/2]

void ForceSmear_HYP_SF::set_parameters ( const double  alpha1,
const double  alpha2,
const double  alpha3,
const std::vector< double > &  phi,
const std::vector< double > &  phipr 
)

Definition at line 68 of file forceSmear_HYP_SF.cpp.

◆ set_parameters() [2/2]

void ForceSmear_HYP_SF::set_parameters ( const Parameters params)
virtual

Implements ForceSmear.

Definition at line 25 of file forceSmear_HYP_SF.cpp.

◆ size1()

int ForceSmear_HYP_SF::size1 ( )
inlineprivate

Definition at line 128 of file forceSmear_HYP_SF.h.

◆ size1b()

int ForceSmear_HYP_SF::size1b ( )
inlineprivate

Definition at line 133 of file forceSmear_HYP_SF.h.

◆ size2()

int ForceSmear_HYP_SF::size2 ( )
inlineprivate

Definition at line 138 of file forceSmear_HYP_SF.h.

◆ smear_step1()

void ForceSmear_HYP_SF::smear_step1 ( )
private

Definition at line 433 of file forceSmear_HYP_SF.cpp.

◆ smear_step2()

void ForceSmear_HYP_SF::smear_step2 ( )
private

Definition at line 456 of file forceSmear_HYP_SF.cpp.

◆ staple()

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 482 of file forceSmear_HYP_SF.cpp.

Member Data Documentation

◆ class_name

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

Definition at line 39 of file forceSmear_HYP_SF.h.

◆ m_alpha1

double ForceSmear_HYP_SF::m_alpha1
private

Definition at line 45 of file forceSmear_HYP_SF.h.

◆ m_alpha2

double ForceSmear_HYP_SF::m_alpha2
private

Definition at line 45 of file forceSmear_HYP_SF.h.

◆ m_alpha3

double ForceSmear_HYP_SF::m_alpha3
private

HYP smearing parameters.

Definition at line 45 of file forceSmear_HYP_SF.h.

◆ m_iTheta1

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

Definition at line 50 of file forceSmear_HYP_SF.h.

◆ m_iTheta2

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

Definition at line 50 of file forceSmear_HYP_SF.h.

◆ m_iTheta3

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

Definition at line 50 of file forceSmear_HYP_SF.h.

◆ m_Ndim

int ForceSmear_HYP_SF::m_Ndim
private

Definition at line 44 of file forceSmear_HYP_SF.h.

◆ m_Nvol

int ForceSmear_HYP_SF::m_Nvol
private

Definition at line 44 of file forceSmear_HYP_SF.h.

◆ m_phi

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

SF boundary condition at t=0.

Definition at line 53 of file forceSmear_HYP_SF.h.

◆ m_phipr

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

SF boundary condition at t=Nt.

Definition at line 54 of file forceSmear_HYP_SF.h.

◆ m_proj

Projection* ForceSmear_HYP_SF::m_proj
private

Definition at line 46 of file forceSmear_HYP_SF.h.

◆ m_shift

ShiftField_lex ForceSmear_HYP_SF::m_shift
private

Definition at line 51 of file forceSmear_HYP_SF.h.

◆ m_Sigma2

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

Definition at line 49 of file forceSmear_HYP_SF.h.

◆ m_Sigma3

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

Definition at line 49 of file forceSmear_HYP_SF.h.

◆ m_U

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

Definition at line 47 of file forceSmear_HYP_SF.h.

◆ m_v1

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

Definition at line 48 of file forceSmear_HYP_SF.h.

◆ m_v2

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

Definition at line 48 of file forceSmear_HYP_SF.h.

◆ m_vl

Bridge::VerboseLevel ForceSmear_HYP_SF::m_vl
private

Definition at line 42 of file forceSmear_HYP_SF.h.

◆ m_wk

Mat_SU_N ForceSmear_HYP_SF::m_wk
private

SF boundary condition at t=0.

Definition at line 56 of file forceSmear_HYP_SF.h.

◆ m_wkpr

Mat_SU_N ForceSmear_HYP_SF::m_wkpr
private

SF boundary condition at t=Nt.

Definition at line 57 of file forceSmear_HYP_SF.h.


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