Definition at line 28 of file LeapfrogStep.c.
28 {
29double temperature, GAMMA;
30GAMMA = 100;
31
32double *TValSum;
33TValSum = (
double*)malloc((
nAtom + 1) *
sizeof(
double));
34
35
37 double gSum, varS, massS;
38 temperature = 1./GAMMA;
39
41 double A, S1, S2, T;
42 int n;
43 S1 = 0.; S2 = 0.; gSum = 0.; massS = 0.1;
44
46 double halfdt = 0.5*
deltaT;
47 for (n = 1; n <=
nAtom; n++){
48 T =
vx[n] + halfdt *
ax[n];
51
52 T =
vy[n] + halfdt *
ay[n];
56 }
57
58 A = -S1 / S2;
60
63
64 int i,j;
66 double vv;
67
68 double uVal, AA, AASum;
69 double TVal;
70
71 double deno, VVSum;
72 deno = 0.;
73 VVSum = 0.;
74 AASum = 0.;
75
76 for(n=1;n<=
nAtom; n++)
77 TValSum[n] = 0.;
78
80
81
82
83if(thermo == 'C'){
84for(i = 1 ; i <=
nAtom; i ++){
85 for(j = i+1 ; j <=
nAtom ; j ++){
86 dr[1] =
rx[i] -
rx[j];
89
90 dr[2] =
ry[i] -
ry[j];
93
94 rr =
Sqr(dr[1]) +
Sqr(dr[2]);
95 if(rr < rrCut ){
96 r = sqrt(rr);
97 ri = 1/r;
98 uVal = ri*exp(-
kappa*r);
99
101 TValSum[i] += TVal;
102 TValSum[j] += TVal;
103 } }
105 AASum += AA;
107 VVSum += vv;
108 deno += TValSum[i];
109}
110
111 double gSumconfig, varSconfig, massSconfig;
113 gSumconfig = 0.; massSconfig = 2.0;
114
115 gSumconfig = (AASum/temperature - deno)/massSconfig;
116 varSconfig +=
deltaT*gSumconfig;
117
118
119 for (n = 1; n <=
nAtom; n++){
124 }
125
126 }else if(thermo == 'N'){
127 gSum = (0.5*S2 - (
nAtom + 1)*temperature)/massS;
129 for (n = 1; n <=
nAtom; n++){
134 }
135
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];
142 }
143 }else if (thermo == 'L'){
144 double nu = 0.03066;
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));
154 }
155 }
156 }else{
157 int n;
158 for(n = 1 ; n <=
nAtom ; n ++){
163 }
164 }
165}
References ax, ay, deltaT, kappa, nAtom, NDIM, rCut, region, regionH, rx, ry, SignR, Sqr, stepCount, stepEquil, vvSum, vx, and vy.