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

Comparing trunk/OOPSE/libmdtools/Integrator.hpp (file contents):
Revision 658 by tim, Thu Jul 31 15:35:07 2003 UTC vs.
Revision 696 by tim, Thu Aug 14 16:16:39 2003 UTC

# Line 38 | Line 38 | template<typename T = BaseIntegrator> class Integrator
38    virtual void constrainA( void );
39    virtual void constrainB( void );
40    virtual int  readyCheck( void ) { return 1; }
41 +
42 +  virtual void calcForce( int calcPot, int calcStress );  
43 +  virtual void thermalize();
44    
45    void checkConstraints( void );
46    void rotate( int axes1, int axes2, double angle, double j[3],
47                 double A[3][3] );
48 <
46 <
48 >              
49    ForceFields* myFF;
50  
51    SimInfo *info; // all the info we'll ever need
# Line 302 | Line 304 | template<typename T> class ZConstraint : public T { (p
304  
305    ZConstraint( SimInfo *theInfo, ForceFields* the_ff);
306    ~ZConstraint();
307 <
306 <  virtual void integrateStep( int calcPot, int calcStress );
307 <  
308 <  
307 >    
308    void setZConsTime(double time)                  {this->zconsTime = time;}
309    void getZConsTime()                             {return zconsTime;}
310    
# Line 314 | Line 313 | template<typename T> class ZConstraint : public T { (p
313    
314    void setZConsOutput(const char * fileName)      {zconsOutput = fileName;}
315    string getZConsOutput()                         {return zconsOutput;}
316 +  
317 +  virtual void integrate();
318 +  
319  
320   #ifdef IS_MPI
321    virtual void update(); //which is called to indicate the molecules' migration
# Line 321 | Line 323 | template<typename T> class ZConstraint : public T { (p
323  
324   protected:
325  
326 <  double zconsTime;
326 >  enum ZConsState {zcsMoving, zcsFixed};
327 >
328 >
329 >
330 >  virtual void calcForce( int calcPot, int calcStress );
331 >  virtual void thermalize(void);
332    
333 <  void resetZ(void);
333 >  void zeroOutVel();
334 >  void doZconstraintForce();
335 >  void doHarmonic();
336 >  bool checkZConsState();
337 >
338 >  bool haveFixedZMols();
339 >  bool haveMovingZMols();
340 >
341 >  double calcZSys();
342 >
343 >  int isZConstraintMol(Molecule* mol);
344 >
345 >
346 >  double zconsTime;
347 >  double zconsTol;
348 >  double zForceConst;
349    
350    vector<Molecule*> zconsMols;
351    vector<double> massOfZConsMols;
352 +  vector<double> kz;
353 +  vector<ZConsState> states;
354 +  vector<double> zPos;
355    
356 +  
357    vector<Molecule*> unconsMols;
358    vector<double> massOfUnconsMols;
359    double totalMassOfUncons;
360  
361 <  vector<double> allRefZ;    
336 <  vector<double> refZ;
361 >  vector<ZConsParaItem>* parameters;
362    
363    vector<int> indexOfAllZConsMols;     //index of All Z-Constraint Molecuels
364 <  int* indexOfZConsMols;               //index of local Z-Constraint Molecules
365 <    
364 >
365 >  int* indexOfZConsMols;                   //index of local Z-Constraint Molecules  
366    double* fz;
367    
368 < private:
368 >  int totNumOfUnconsAtoms;
369  
370 <  int isZConstraintMol(Molecule* mol);
370 >  int whichDirection;                           //constraint direction
371 >  
372 > private:
373 >  
374    string zconsOutput;
375    ZConsWriter* fzOut;
376 +
377 +  double calcMovingMolsCOMVel();
378 +  double calcSysCOMVel();
379 +  double calcTotalForce();
380 +
381   };
382  
383   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines