--- trunk/OOPSE/libmdtools/Integrator.hpp 2003/10/29 20:41:39 843 +++ trunk/OOPSE/libmdtools/Integrator.hpp 2004/03/17 14:22:59 1093 @@ -178,6 +178,8 @@ template class NPT : public T{ (protected) virtual void getVelScaleB( double sc[3], int index ) = 0; virtual void getPosScale(double pos[3], double COM[3], int index, double sc[3]) = 0; + + virtual void calcVelScale( void ) = 0; virtual bool chiConverged( void ); virtual bool etaConverged( void ) = 0; @@ -256,7 +258,10 @@ template class NPTi : public T{ (protected virtual void getPosScale(double pos[3], double COM[3], int index, double sc[3]); + virtual void calcVelScale( void ); + double eta, oldEta, prevEta; + double vScale; }; template class NPTf : public T{ @@ -284,9 +289,12 @@ template class NPTf : public T{ (protected virtual void getPosScale(double pos[3], double COM[3], int index, double sc[3]); + virtual void calcVelScale( void ); + double eta[3][3]; double oldEta[3][3]; double prevEta[3][3]; + double vScale[3][3]; }; template class NPTxyz : public T{ @@ -314,9 +322,12 @@ template class NPTxyz : public T{ (protect virtual void getPosScale(double pos[3], double COM[3], int index, double sc[3]); + virtual void calcVelScale( void ); + double eta[3][3]; double oldEta[3][3]; double prevEta[3][3]; + double vScale[3][3]; }; @@ -407,7 +418,7 @@ template class ZConstraint : public T { (p void zeroOutVel(); void doZconstraintForce(); - void doHarmonic(); + void doHarmonic(vector& resPos); bool checkZConsState(); bool haveFixedZMols(); @@ -438,12 +449,19 @@ template class ZConstraint : public T { (p vector indexOfAllZConsMols; //index of All Z-Constraint Molecuels - int* indexOfZConsMols; //index of local Z-Constraint Molecules - double* fz; - double* curZPos; + vector indexOfZConsMols; //index of local Z-Constraint Molecules + vector fz; + vector curZPos; - + bool usingSMD; + vector cantPos; + vector cantVel; + double zconsFixTime; + double zconsGap; + bool hasZConsGap; + vector endFixTime; + int whichDirection; //constraint direction private: @@ -456,10 +474,23 @@ template class ZConstraint : public T { (p double calcMovingMolsCOMVel(); double calcSysCOMVel(); double calcTotalForce(); - + void updateZPos(); + void updateCantPos(); + ForceSubtractionPolicy* forcePolicy; //force subtraction policy friend class ForceSubtractionPolicy; }; +/* +//Steered Molecular Dynamics + template class SMD : public T{ + public: + SMD( SimInfo *theInfo, ForceFields* the_ff); + ~SMD(); + + virtual void integrate(); + virtual void calcForce( int calcPot, int calcStress ); +}; +*/ #endif