29double temperature, GAMMA;
33TValSum = (
double*)malloc((
nAtom + 1) *
sizeof(
double));
37 double gSum, varS, massS;
38 temperature = 1./GAMMA;
43 S1 = 0.; S2 = 0.; gSum = 0.; massS = 0.1;
46 double halfdt = 0.5*
deltaT;
47 for (n = 1; n <=
nAtom; n++){
48 T =
vx[n] + halfdt *
ax[n];
52 T =
vy[n] + halfdt *
ay[n];
68 double uVal, AA, AASum;
76 for(n=1;n<=
nAtom; n++)
84for(i = 1 ; i <=
nAtom; i ++){
85 for(j = i+1 ; j <=
nAtom ; j ++){
86 dr[1] =
rx[i] -
rx[j];
90 dr[2] =
ry[i] -
ry[j];
94 rr =
Sqr(dr[1]) +
Sqr(dr[2]);
98 uVal = ri*exp(-
kappa*r);
111 double gSumconfig, varSconfig, massSconfig;
113 gSumconfig = 0.; massSconfig = 2.0;
115 gSumconfig = (AASum/temperature - deno)/massSconfig;
116 varSconfig +=
deltaT*gSumconfig;
119 for (n = 1; n <=
nAtom; n++){
126 }
else if(thermo ==
'N'){
127 gSum = (0.5*S2 - (
nAtom + 1)*temperature)/massS;
129 for (n = 1; n <=
nAtom; n++){
136 }
else if(thermo ==
'G'){
137 for (n = 1; n <=
nAtom; n++){
138 vx[n] = C *
vx[n] + D *
ax[n];
140 vy[n] = C *
vy[n] + D *
ay[n];
143 }
else if (thermo ==
'L'){
145 double var = sqrt(2*nu/(GAMMA*
deltaT));
146 double scale = 1. + nu*
deltaT/2.;
147 double scale_v = 2./scale - 1.;
148 double scale_f =
deltaT/scale;
149 for(n = 1 ; n <=
nAtom ; n ++){
150 vx[n] = scale_v*
vx[n] + scale_f*(
ax[n] + var*gsl_ran_gaussian(rnd,1));
152 vy[n] = scale_v*
vy[n] + scale_f*(
ay[n] + var*gsl_ran_gaussian(rnd,1));
158 for(n = 1 ; n <=
nAtom ; n ++){