su2hmc
Loading...
Searching...
No Matches
integrate.h
Go to the documentation of this file.
1
5#ifndef INTEGRATE_H
6#define INTEGRATE_H
7#include <stdbool.h>
8#include <random.h>
9#include <sizes.h>
10
11#if (defined __cplusplus)
12extern "C"
13{
14#endif
25 int Gauge_Update(const double d, double *pp, Complex *u11t, Complex *u12t,Complex_f *u11t_f,Complex_f *u12t_f);
35 int Momentum_Update(const double d,const double *dSdpi, double *pp);
67 int Leapfrog(Complex *u11t,Complex *u12t,Complex_f *u11t_f,Complex_f *u12t_f,Complex *X0,Complex *X1,
68 Complex *Phi,double *dk4m,double *dk4p,float *dk4m_f,float *dk4p_f,double *dSdpi,double *pp,
69 int *iu,int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq,
70 float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby);
102 int OMF2(Complex *u11t,Complex *u12t,Complex_f *u11t_f,Complex_f *u12t_f,Complex *X0,Complex *X1,
103 Complex *Phi,double *dk4m,double *dk4p,float *dk4m_f,float *dk4p_f,double *dSdpi,double *pp,
104 int *iu,int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq,
105 float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby);
106 int OMF4(Complex *u11t,Complex *u12t,Complex_f *u11t_f,Complex_f *u12t_f,Complex *X0,Complex *X1,
107 Complex *Phi,double *dk4m,double *dk4p,float *dk4m_f,float *dk4p_f,double *dSdpi,double *pp,
108 int *iu,int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, Complex jqq,
109 float beta, float akappa, int stepl, float dt, double *ancg, int *itot, float proby);
110 //CUDA Calling functions
111#ifdef __NVCC__
112 void cuGauge_Update(const double d, double *pp, Complex *u11t, Complex *u12t, dim3 dimGrid, dim3 dimBlock);
113#endif
114
115#if (defined __cplusplus)
116}
117#endif
118//Actual CUDA
119#ifdef __CUDACC__
120//Update Gauge fields
121__global__ void cuGauge_Update(const double d, double *pp, Complex *u11t, Complex *u12t, int mu);
122#endif
123#endif
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 i...
Definition integrate.c:113
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)
Definition integrate.c:183
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.
Definition integrate.c:3
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 t...
Definition integrate.c:60
int Momentum_Update(const double d, const double *dSdpi, double *pp)
Wrapper for the momentum update during the integration step of the HMC.
Definition integrate.c:49
Header for random number configuration.
Defines the constants of the code and other parameters for loop dimensions. Each subroutine includes ...
#define Complex
Double precision complex number.
Definition sizes.h:58
#define Complex_f
Single precision complex number.
Definition sizes.h:56