su2hmc
|
Integrators for the HMC. More...
Go to the source code of this file.
Functions | |
int | Gauge_Update (const double d, double *pp, Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f) |
Gauge update for the integration step of the HMC. | |
int | Momentum_Update (const double d, const double *dSdpi, double *pp) |
Wrapper for the momentum update during the integration step of the HMC. | |
int | Leapfrog (Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f, Complex *X0, Complex *X1, Complex *Phi, double *dk4m, double *dk4p, float *dk4m_f, float *dk4p_f, double *dSdpi, double *pp, int *iu, int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq, float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby) |
Leapfrog integrator. Each trajectory step takes the form of p->p+dt/2,u->u+dt,p->p+dt/2 In practice this is implemented for the entire trajectory as p->p+dt/2,u->u+dt,p->p+dt,u->u+dt,p->p+dt,...p->p+dt/2,u->u+dt,p->p+dt/2. | |
int | OMF2 (Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f, Complex *X0, Complex *X1, Complex *Phi, double *dk4m, double *dk4p, float *dk4m_f, float *dk4p_f, double *dSdpi, double *pp, int *iu, int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq, float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby) |
OMF integrator. Each trajectory step takes the form of p->p+dt/2,u->u+dt,p->p+dt/2 In practice this is implemented for the entire trajectory as p->p+dt/2,u->u+dt,p->p+dt,u->u+dt,p->p+dt,...p->p+dt/2,u->u+dt,p->p+dt/2. | |
int | OMF4 (Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f, Complex *X0, Complex *X1, Complex *Phi, double *dk4m, double *dk4p, float *dk4m_f, float *dk4p_f, double *dSdpi, double *pp, int *iu, int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq, float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby) |
Integrators for the HMC.
Definition in file integrate.h.
int Gauge_Update | ( | const double | d, |
double * | pp, | ||
Complex * | u11t, | ||
Complex * | u12t, | ||
Complex_f * | u11t_f, | ||
Complex_f * | u12t_f ) |
Gauge update for the integration step of the HMC.
dt | Gauge step size |
pp | Momentum field |
u11t,u12t | Double precision gauge fields |
u11t_f,u12t_f | Single precision gauge fields |
Definition at line 3 of file integrate.c.
References Complex, Gauge_Update(), kvol, nadj, ndim, Reunitarise(), and Trial_Exchange().
int Leapfrog | ( | Complex * | u11t, |
Complex * | u12t, | ||
Complex_f * | u11t_f, | ||
Complex_f * | u12t_f, | ||
Complex * | X0, | ||
Complex * | X1, | ||
Complex * | Phi, | ||
double * | dk4m, | ||
double * | dk4p, | ||
float * | dk4m_f, | ||
float * | dk4p_f, | ||
double * | dSdpi, | ||
double * | pp, | ||
int * | iu, | ||
int * | id, | ||
Complex * | gamval, | ||
Complex_f * | gamval_f, | ||
int * | gamin, | ||
Complex | jqq, | ||
float | beta, | ||
float | akappa, | ||
int | stepl, | ||
float | dt, | ||
double * | ancg, | ||
int * | itot, | ||
float | proby ) |
Leapfrog integrator. Each trajectory step takes the form of p->p+dt/2,u->u+dt,p->p+dt/2 In practice this is implemented for the entire trajectory as p->p+dt/2,u->u+dt,p->p+dt,u->u+dt,p->p+dt,...p->p+dt/2,u->u+dt,p->p+dt/2.
u11t,u12t | Double precision colour fields |
u11t_f,u12t_f | Single precision colour fields |
X0 | Up/down partitioned pseudofermion field |
X1 | Holder for the partitioned fermion field, then the conjugate gradient output |
Phi | Pseudofermion field |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
dk4m_f | \(\left(1+\gamma_0\right)e^{-\mu}\) float |
dk4p_f | \(\left(1-\gamma_0\right)e^\mu\) float |
dSdpi | The force |
pp | Momentum field |
iu,id | Lattice indices |
gamin | Gamma indices |
gamval | Double precision gamma matrices rescaled by kappa |
gamval_f | Single precision gamma matrices rescaled by kappa |
jqq | Diquark source |
akappa | Hopping parameter |
beta | Inverse gauge coupling |
stepl | Steps per trajectory |
dt | Step size |
ancg | Counter for average conjugate gradient iterations |
itot | Total average conjugate gradient iterations |
proby | Termination probability for random trajectory length |
Definition at line 60 of file integrate.c.
References Force(), Gauge_Update(), Leapfrog(), Momentum_Update(), rank, and rescgg.
|
inline |
Wrapper for the momentum update during the integration step of the HMC.
dt | Gauge step size |
pp | Momentum field |
dSdpi | Force field |
Definition at line 49 of file integrate.c.
References kmom, and Momentum_Update().
int OMF2 | ( | Complex * | u11t, |
Complex * | u12t, | ||
Complex_f * | u11t_f, | ||
Complex_f * | u12t_f, | ||
Complex * | X0, | ||
Complex * | X1, | ||
Complex * | Phi, | ||
double * | dk4m, | ||
double * | dk4p, | ||
float * | dk4m_f, | ||
float * | dk4p_f, | ||
double * | dSdpi, | ||
double * | pp, | ||
int * | iu, | ||
int * | id, | ||
Complex * | gamval, | ||
Complex_f * | gamval_f, | ||
int * | gamin, | ||
Complex | jqq, | ||
float | beta, | ||
float | akappa, | ||
int | stepl, | ||
float | dt, | ||
double * | ancg, | ||
int * | itot, | ||
float | proby ) |
OMF integrator. Each trajectory step takes the form of p->p+dt/2,u->u+dt,p->p+dt/2 In practice this is implemented for the entire trajectory as p->p+dt/2,u->u+dt,p->p+dt,u->u+dt,p->p+dt,...p->p+dt/2,u->u+dt,p->p+dt/2.
u11t,u12t | Double precision colour fields |
u11t_f,u12t_f | Single precision colour fields |
X0 | Up/down partitioned pseudofermion field |
X1 | Holder for the partitioned fermion field, then the conjugate gradient output |
Phi | Pseudofermion field |
dk4m | \(\left(1+\gamma_0\right)e^{-\mu}\) |
dk4p | \(\left(1-\gamma_0\right)e^\mu\) |
dk4m_f | \(\left(1+\gamma_0\right)e^{-\mu}\) float |
dk4p_f | \(\left(1-\gamma_0\right)e^\mu\) float |
dSdpi | The force |
pp | Momentum field |
iu,id | Lattice indices |
gamin | Gamma indices |
gamval | Double precision gamma matrices rescaled by kappa |
gamval_f | Single precision gamma matrices rescaled by kappa |
jqq | Diquark source |
akappa | Hopping parameter |
beta | Inverse gauge coupling |
stepl | Steps per trajectory |
dt | Step size |
ancg | Counter for average conjugate gradient iterations |
itot | Total average conjugate gradient iterations |
proby | Termination probability for random trajectory length |
Definition at line 113 of file integrate.c.
References Force(), Gauge_Update(), Momentum_Update(), OMF2(), rank, and rescgg.
int OMF4 | ( | Complex * | u11t, |
Complex * | u12t, | ||
Complex_f * | u11t_f, | ||
Complex_f * | u12t_f, | ||
Complex * | X0, | ||
Complex * | X1, | ||
Complex * | Phi, | ||
double * | dk4m, | ||
double * | dk4p, | ||
float * | dk4m_f, | ||
float * | dk4p_f, | ||
double * | dSdpi, | ||
double * | pp, | ||
int * | iu, | ||
int * | id, | ||
Complex * | gamval, | ||
Complex_f * | gamval_f, | ||
int * | gamin, | ||
Complex | jqq, | ||
float | beta, | ||
float | akappa, | ||
int | stepl, | ||
float | dt, | ||
double * | ancg, | ||
int * | itot, | ||
float | proby ) |
Momentum updates
Outer updates depend on r1. We have two of these, doubled for between full steps
Middle updates depend on r3
Inner updates depend on r1 and r3
Gauge updates. These depend on r2 and r4
Outer gauge update depends on r2
Middle gauge update depends on r4
Inner gauge update depends on r2 and r4
Definition at line 183 of file integrate.c.
References Force(), Gauge_Update(), Momentum_Update(), OMF4(), rank, and rescgg.