ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/NPTf.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/NPTf.cpp (file contents):
Revision 857 by mmeineke, Fri Nov 7 17:09:48 2003 UTC vs.
Revision 1253 by gezelter, Tue Jun 8 16:49:46 2004 UTC

# Line 1 | Line 1
1   #include <math.h>
2  
3 + #include "MatVec3.h"
4   #include "Atom.hpp"
5   #include "SRI.hpp"
6   #include "AbstractClasses.hpp"
# Line 91 | Line 92 | template<typename T> void NPTf<T>::evolveEtaA() {
92          eta[i][j] += dt2 * instaVol * press[i][j] / (NkBT*tb2);
93      }
94    }
95 <
95 >  
96    for(i = 0; i < 3; i++)
97      for (j = 0; j < 3; j++)
98        oldEta[i][j] = eta[i][j];
# Line 133 | Line 134 | template<typename T> void NPTf<T>::getVelScaleA(double
134  
135   template<typename T> void NPTf<T>::getVelScaleA(double sc[3], double vel[3]) {
136  
137 <  info->matVecMul3( vScale, vel, sc );
137 >  matVecMul3( vScale, vel, sc );
138   }
139  
140   template<typename T> void NPTf<T>::getVelScaleB(double sc[3], int index ){
141    int j;
142    double myVel[3];
142  double vScale[3][3];
143  
144    for (j = 0; j < 3; j++)
145      myVel[j] = oldVel[3*index + j];
146 <
147 <  info->matVecMul3( vScale, myVel, sc );
146 >  
147 >  matVecMul3( vScale, myVel, sc );
148   }
149  
150   template<typename T> void NPTf<T>::getPosScale(double pos[3], double COM[3],
# Line 155 | Line 155 | template<typename T> void NPTf<T>::getPosScale(double
155    for(j=0; j<3; j++)
156      rj[j] = ( oldPos[index*3+j] + pos[j]) / 2.0 - COM[j];
157  
158 <  info->matVecMul3( eta, rj, sc );
158 >  matVecMul3( eta, rj, sc );
159   }
160  
161   template<typename T> void NPTf<T>::scaleSimBox( void ){
# Line 193 | Line 193 | template<typename T> void NPTf<T>::scaleSimBox( void )
193        if (i == j) scaleMat[i][j] = 1.0;
194        // Taylor expansion for the exponential truncated at second order:
195        scaleMat[i][j] += dt*eta[i][j]  + 0.5*dt*dt*eta2ij;
196 +      
197  
198        if (i != j)
199          if (fabs(scaleMat[i][j]) > offDiagMax)
# Line 209 | Line 210 | template<typename T> void NPTf<T>::scaleSimBox( void )
210               " Check your tauBarostat, as it is probably too small!\n\n"
211               " scaleMat = [%lf\t%lf\t%lf]\n"
212               "            [%lf\t%lf\t%lf]\n"
213 +             "            [%lf\t%lf\t%lf]\n"
214 +             "      eta = [%lf\t%lf\t%lf]\n"
215 +             "            [%lf\t%lf\t%lf]\n"
216               "            [%lf\t%lf\t%lf]\n",
217               scaleMat[0][0],scaleMat[0][1],scaleMat[0][2],
218               scaleMat[1][0],scaleMat[1][1],scaleMat[1][2],
219 <             scaleMat[2][0],scaleMat[2][1],scaleMat[2][2]);
219 >             scaleMat[2][0],scaleMat[2][1],scaleMat[2][2],
220 >             eta[0][0],eta[0][1],eta[0][2],
221 >             eta[1][0],eta[1][1],eta[1][2],
222 >             eta[2][0],eta[2][1],eta[2][2]);
223      painCave.isFatal = 1;
224      simError();
225    } else if (offDiagMax > 0.01) {
# Line 221 | Line 228 | template<typename T> void NPTf<T>::scaleSimBox( void )
228               " Check your tauBarostat, as it is probably too small!\n\n"
229               " scaleMat = [%lf\t%lf\t%lf]\n"
230               "            [%lf\t%lf\t%lf]\n"
231 +             "            [%lf\t%lf\t%lf]\n"
232 +             "      eta = [%lf\t%lf\t%lf]\n"
233 +             "            [%lf\t%lf\t%lf]\n"
234               "            [%lf\t%lf\t%lf]\n",
235               scaleMat[0][0],scaleMat[0][1],scaleMat[0][2],
236               scaleMat[1][0],scaleMat[1][1],scaleMat[1][2],
237 <             scaleMat[2][0],scaleMat[2][1],scaleMat[2][2]);
237 >             scaleMat[2][0],scaleMat[2][1],scaleMat[2][2],
238 >             eta[0][0],eta[0][1],eta[0][2],
239 >             eta[1][0],eta[1][1],eta[1][2],
240 >             eta[2][0],eta[2][1],eta[2][2]);
241      painCave.isFatal = 1;
242      simError();
243    } else {
244      info->getBoxM(hm);
245 <    info->matMul3(hm, scaleMat, hmnew);
245 >    matMul3(hm, scaleMat, hmnew);
246      info->setBoxM(hmnew);
247    }
248   }
# Line 265 | Line 278 | template<typename T> double NPTf<T>::getConservedQuant
278  
279    thermostat_potential = fkBT* integralOfChidt / eConvert;
280  
281 <  info->transposeMat3(eta, a);
282 <  info->matMul3(a, eta, b);
283 <  trEta = info->matTrace3(b);
281 >  transposeMat3(eta, a);
282 >  matMul3(a, eta, b);
283 >  trEta = matTrace3(b);
284  
285    barostat_kinetic = NkBT * tb2 * trEta /
286      (2.0 * eConvert);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines