452 |
|
int* indexOfZConsMols; //index of local Z-Constraint Molecules |
453 |
|
double* fz; |
454 |
|
double* curZPos; |
455 |
– |
|
456 |
– |
|
455 |
|
|
456 |
+ |
double zconsFixTime; |
457 |
+ |
double zconsGap; |
458 |
+ |
bool hasZConsGap; |
459 |
+ |
vector<double> endFixTime; |
460 |
+ |
|
461 |
|
int whichDirection; //constraint direction |
462 |
|
|
463 |
|
private: |
470 |
|
double calcMovingMolsCOMVel(); |
471 |
|
double calcSysCOMVel(); |
472 |
|
double calcTotalForce(); |
473 |
+ |
void updateZPos(); |
474 |
|
|
475 |
|
ForceSubtractionPolicy* forcePolicy; //force subtraction policy |
476 |
|
friend class ForceSubtractionPolicy; |
477 |
|
|
478 |
|
}; |
479 |
|
|
480 |
< |
class OOPSEMinimizerBase : public RealIntegrator { |
480 |
> |
/* |
481 |
> |
//Steered Molecular Dynamics |
482 |
> |
template<typename T> class SMD : public T{ |
483 |
|
public: |
484 |
< |
|
485 |
< |
OOPSEMinimizerBase ( SimInfo *theInfo, ForceFields* the_ff ); |
480 |
< |
virtual ~OOPSEMinimizerBase(); |
481 |
< |
|
482 |
< |
double calcGradient(vector<double>& x, vector<double>& grad); |
483 |
< |
void setCoor(vector<double>& x); |
484 |
< |
vector<double> getCoor(); |
485 |
< |
void output(vector<double>& x, int iteration); |
486 |
< |
int getDim() {return dim;} |
487 |
< |
protected: |
488 |
< |
|
489 |
< |
int dim; |
490 |
< |
void calcDim(); |
491 |
< |
}; |
492 |
< |
|
493 |
< |
//template<typename TMinimizer> class OOPSEMinimizer : public OOPSEMinimizerBase, TMinimizer{ |
494 |
< |
// public: |
495 |
< |
// void writeOutput(); |
496 |
< |
//}; |
484 |
> |
SMD( SimInfo *theInfo, ForceFields* the_ff); |
485 |
> |
~SMD(); |
486 |
|
|
487 |
+ |
virtual void integrate(); |
488 |
+ |
virtual void calcForce( int calcPot, int calcStress ); |
489 |
+ |
}; |
490 |
+ |
*/ |
491 |
|
#endif |