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

Comparing branches/new-templateless/OOPSE/libmdtools/NPTf.cpp (file contents):
Revision 849 by mmeineke, Fri Oct 31 21:06:47 2003 UTC vs.
Revision 851 by mmeineke, Wed Nov 5 19:18:17 2003 UTC

# Line 1 | Line 1
1 + #include <stdlib.h>
2   #include <math.h>
3 + #include <string.h>
4 +
5   #include "Atom.hpp"
6   #include "SRI.hpp"
7   #include "AbstractClasses.hpp"
# Line 24 | Line 27 | NPTf::NPTf ( SimInfo *theInfo, ForceFields* the_ff):
27   //    Hoover, W. G., 1986, Phys. Rev. A, 34, 2499.
28  
29   NPTf::NPTf ( SimInfo *theInfo, ForceFields* the_ff):
30 <  Integrator( theInfo, the_ff )
30 >  NPT( theInfo, the_ff )
31   {
32    GenericData* data;
33 <  DoubleArrayData * etaValue;
31 <  vector<double> etaArray;
33 >  double *etaArray;
34    int i,j;
35  
36    for(i = 0; i < 3; i++){
# Line 39 | Line 41 | NPTf::NPTf ( SimInfo *theInfo, ForceFields* the_ff):
41      }
42    }
43  
44 <    // retrieve eta array from simInfo if it exists
45 <    data = info->getProperty(ETAVALUE_ID);
46 <    if(data){
47 <      etaValue = dynamic_cast<DoubleArrayData*>(data);
48 <
49 <      if(etaValue){
50 <        etaArray = etaValue->getData();
51 <
52 <        for(i = 0; i < 3; i++){
53 <          for (j = 0; j < 3; j++){
54 <            eta[i][j] = etaArray[3*i+j];
55 <            oldEta[i][j] = eta[i][j];
56 <          }
57 <        }
58 <
57 <      }
44 >  // retrieve eta array from simInfo if it exists
45 >  data = info->getProperty(ETAVALUE_ID);
46 >  if(data != NULL){
47 >    
48 >    int test = data->getDarray(etaArray);
49 >    
50 >    if( test == 9 ){
51 >      
52 >      for(i = 0; i < 3; i++){
53 >        for (j = 0; j < 3; j++){
54 >          eta[i][j] = etaArray[3*i+j];
55 >          oldEta[i][j] = eta[i][j];
56 >        }
57 >      }    
58 >      delete[] etaArray;
59      }
60 <
60 >    else
61 >      std::cerr << "NPTf error: etaArray is not length 9 (actual = " << test
62 >                << ").\n"
63 >                << "            Simulation wil proceed with eta = 0;\n";
64 >  }
65   }
66  
67   NPTf::~NPTf() {
# Line 72 | Line 77 | void NPTf::resetIntegrator() {
77      for (j = 0; j < 3; j++)
78        eta[i][j] = 0.0;
79  
80 <  Integrator::resetIntegrator();
80 >  NPT::resetIntegrator();
81   }
82  
83   void NPTf::evolveEtaA() {
# Line 136 | Line 141 | void NPTf::getVelScaleB(double sc[3], int index ){
141    double myVel[3];
142    double vScale[3][3];
143  
144 + //   std::cerr << "velScaleB chi = " << chi << "\n";
145 +
146    for (i = 0; i < 3; i++ ) {
147      for (j = 0; j < 3; j++ ) {
148        vScale[i][j] = eta[i][j];
# Line 149 | Line 156 | void NPTf::getVelScaleB(double sc[3], int index ){
156    for (j = 0; j < 3; j++)
157      myVel[j] = oldVel[3*index + j];
158  
159 + //   std::cerr << "velScaleB = \n"
160 + //          << "[ " << vScale[0][0] << " , " << vScale[0][1] << " , " << vScale[0][2] << "]\n"
161 + //          << "[ " << vScale[1][0] << " , " << vScale[1][1] << " , " << vScale[1][2] << "]\n"
162 + //          << "[ " << vScale[2][0] << " , " << vScale[2][1] << " , " << vScale[2][2] << "]\n\n";
163 +
164 +
165 + //  std::cerr << "myVel " << index << " in => "
166 + //          << myVel[0] << ", " << myVel[1] << ", " << myVel[2] << "\n";
167 +
168    info->matVecMul3( vScale, myVel, sc );
169 +
170 + //  std::cerr << "sc " << index << " out => "
171 + //          << sc[0] << ", " << sc[1] << ", " << sc[2] << "\n";
172   }
173  
174   void NPTf::getPosScale(double pos[3], double COM[3],
# Line 294 | Line 313 | double NPTf::getConservedQuantity(void){
313  
314   }
315  
316 < string NPTf::getAdditionalParameters(void){
298 <  string parameters;
299 <  const int BUFFERSIZE = 2000; // size of the read buffer
300 <  char buffer[BUFFERSIZE];
316 > char* NPTf::getAdditionalParameters(void){
317  
318 <  sprintf(buffer,"\t%lf\t%lf;", chi, integralOfChidt);
319 <  parameters += buffer;
318 >  sprintf(addParamBuffer,
319 >          "\t%G\t%G;"
320 >          "\t%G\t%G\t%G;"
321 >          "\t%G\t%G\t%G;"
322 >          "\t%G\t%G\t%G;",
323 >          chi, integralOfChidt,
324 >          eta[0][0], eta[0][1], eta[0][2],
325 >          eta[1][0], eta[1][1], eta[1][2],
326 >          eta[2][0], eta[2][1], eta[2][2]
327 >          );
328  
329 <  for(int i = 0; i < 3; i++){
306 <    sprintf(buffer,"\t%lf\t%lf\t%lf;", eta[3*i], eta[3*i+1], eta[3*i+2]);
307 <    parameters += buffer;
308 <  }
309 <
310 <  return parameters;
311 <
329 >  return addParamBuffer;
330   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines