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

Comparing trunk/OOPSE/libmdtools/NVT.cpp (file contents):
Revision 768 by mmeineke, Wed Sep 17 14:22:15 2003 UTC vs.
Revision 778 by mmeineke, Fri Sep 19 20:00:27 2003 UTC

# Line 34 | Line 34 | template<typename T> void NVT<T>::moveA() {
34    int i, j;
35    DirectionalAtom* dAtom;
36    double Tb[3], ji[3];
37 <  double A[3][3], I[3][3];
38 <  double angle, mass;
37 >  double mass;
38    double vel[3], pos[3], frc[3];
39  
40    double instTemp;
# Line 78 | Line 77 | template<typename T> void NVT<T>::moveA() {
77        for (j=0; j < 3; j++)
78          ji[j] += dt2 * (Tb[j] * eConvert - ji[j]*chi);
79        
80 <      // use the angular velocities to propagate the rotation matrix a
82 <      // full time step
83 <
84 <      dAtom->getA(A);
85 <      dAtom->getI(I);
86 <    
87 <      // rotate about the x-axis      
88 <      angle = dt2 * ji[0] / I[0][0];
89 <      this->rotate( 1, 2, angle, ji, A );
90 <
91 <      // rotate about the y-axis
92 <      angle = dt2 * ji[1] / I[1][1];
93 <      this->rotate( 2, 0, angle, ji, A );
80 >      this->rotationPropagation( dAtom, ji );
81        
95      // rotate about the z-axis
96      angle = dt * ji[2] / I[2][2];
97      this->rotate( 0, 1, angle, ji, A);
98      
99      // rotate about the y-axis
100      angle = dt2 * ji[1] / I[1][1];
101      this->rotate( 2, 0, angle, ji, A );
102      
103       // rotate about the x-axis
104      angle = dt2 * ji[0] / I[0][0];
105      this->rotate( 1, 2, angle, ji, A );
106      
82        dAtom->setJ( ji );
108      dAtom->setA( A  );    
83      }    
84    }
85    
# Line 255 | Line 229 | template<typename T> double NVT<T>::getConservedQuanti
229   template<typename T> double NVT<T>::getConservedQuantity(void){
230  
231    double conservedQuantity;
232 <  double E_NVT;
232 >  double fkBT;
233 >  double Energy;
234 >  double thermostat_kinetic;
235 >  double thermostat_potential;
236  
237 <  //HNVE
238 <  conservedQuantity = tStats->getTotalE();
239 <  //HNVE
263 <  
264 <  E_NVT =  (info->getNDF() * kB * targetTemp *
265 <                (integralOfChidt + tauThermostat * tauThermostat * chi * chi / 2.0 )) / eConvert;
237 >  fkBT = (double)(info->getNDF()    ) * kB * targetTemp;
238 >
239 >  Energy = tStats->getTotalE();
240  
241 <  conservedQuantity += E_NVT;
241 >  thermostat_kinetic = fkBT* tauThermostat * tauThermostat * chi * chi /
242 >    (2.0 * eConvert);
243  
244 <  //cerr << info->getTime() << "\t" << chi << "\t" << integralOfChidt << "\t" << E_NVT << endl;
244 >  thermostat_potential = fkBT * integralOfChidt / eConvert;
245  
246 +  conservedQuantity = Energy + thermostat_kinetic + thermostat_potential;
247 +  
248 +  cerr << info->getTime() << "\t" << Energy << "\t" << thermostat_kinetic <<
249 +      "\t" << thermostat_potential << "\t" << conservedQuantity << endl;
250 +
251    return conservedQuantity;
252   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines