61 Complex *Phi,
double *dk4m,
double *dk4p,
float *dk4m_f,
float *dk4p_f,
double *dSdpi,
double *pp,
63 float beta,
float akappa,
int stepl,
float dt,
double *ancg,
int *itot,
float proby)
67 const double d =-dt*0.5;
71 printf(
"Evaluating force on rank %i\n",
rank);
73 Force(dSdpi, 1,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
74 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
78 bool end_traj=
false;
int step =1;
83 printf(
"Step: %d\n", step);
93 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
94 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
114 Complex *Phi,
double *dk4m,
double *dk4p,
float *dk4m_f,
float *dk4p_f,
double *dSdpi,
double *pp,
116 float beta,
float akappa,
int stepl,
float dt,
double *ancg,
int *itot,
float proby)
118 const double lambda=0.5-(pow(2.0*sqrt(326.0)+36.0,1.0/3.0)/12.0)+1.0/(6*pow(2.0*sqrt(326.0) + 36.0,1.0/3.0));
123 const double dU = dt*0.5;
126 const double dp= -lambda*dt;
127 const double dp2= 2.0*dp;
128 const double dpm= -(1.0-2.0*lambda)*dt;
132 printf(
"Evaluating force on rank %i\n",
rank);
134 Force(dSdpi, 1,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
135 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
141 bool end_traj=
false;
int step =1;
146 printf(
"Step: %d\n", step);
152 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
153 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
161 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
162 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
184 Complex *Phi,
double *dk4m,
double *dk4p,
float *dk4m_f,
float *dk4p_f,
double *dSdpi,
double *pp,
186 float beta,
float akappa,
int stepl,
float dt,
double *ancg,
int *itot,
float proby)
190 const double r1 = 0.08398315262876693;
191 const double r2 = 0.2539785108410595;
192 const double r3 = 0.6822365335719091;
193 const double r4 = -0.03230286765269967;
196 const double dpO= -r1*dt;
197 const double dpO2= 2*dpO;
199 const double dpM= -r3*dt;
201 const double dpI= -(0.5-r1-r3)*dt;
205 const double duO = dt*r2;
207 const double duM = dt*r4;
209 const double duI = dt*(1-2*(r2+r4));
214 printf(
"Evaluating force on rank %i\n",
rank);
216 Force(dSdpi, 1,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
217 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
222 bool end_traj=
false;
int step =1;
227 printf(
"Step: %d\n", step);
233 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
234 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
242 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
243 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
251 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
252 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
260 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
261 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
269 Force(dSdpi, 0,
rescgg,X0,X1,Phi,u11t,u12t,u11t_f,u12t_f,iu,
id,gamval,gamval_f,gamin,dk4m,dk4p,\
270 dk4m_f,dk4p_f,jqq,akappa,beta,ancg);
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...
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)
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...
int Force(double *dSdpi, int iflag, double res1, Complex *X0, Complex *X1, Complex *Phi, Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f, unsigned int *iu, unsigned int *id, Complex *gamval, Complex_f *gamval_f, int *gamin, double *dk4m, double *dk4p, float *dk4m_f, float *dk4p_f, Complex_f jqq, float akappa, float beta, double *ancg)
Calculates the force at each intermediate time.