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 1108 by tim, Wed Apr 14 15:37:41 2004 UTC vs.
Revision 1198 by tim, Thu May 27 00:48:12 2004 UTC

# Line 13 | Line 13
13   #include "Thermo.hpp"
14   #include "ReadWrite.hpp"
15   #include "ZConsWriter.hpp"
16 + #include "Restraints.hpp"
17  
18   using namespace std;
19   const double kB = 8.31451e-7;// boltzmann constant amu*Ang^2*fs^-2/K
# Line 87 | Line 88 | typedef Integrator<BaseIntegrator> RealIntegrator;
88  
89   typedef Integrator<BaseIntegrator> RealIntegrator;
90  
91 + // ansi instantiation
92 + template class Integrator<BaseIntegrator>;
93 +
94   template<typename T> class NVE : public T {
95  
96   public:
# Line 457 | Line 461 | template<typename T> class ZConstraint : public T { (p
461    vector<double> curZPos;
462  
463    bool usingSMD;
464 +  vector<double> prevCantPos;
465    vector<double> cantPos;
466    vector<double> cantVel;
467  
# Line 482 | Line 487 | template<typename T> class ZConstraint : public T { (p
487    
488    ForceSubtractionPolicy* forcePolicy; //force subtraction policy
489    friend class ForceSubtractionPolicy;
485
486 };
487
488 /*
489 template<typename T> class SingleZConstrain : public T{
490
491
492 };
493 */
494
495 template<typename T> class NonEquMD : public T {
496  public:
497    
498
499
500 };
501
502
503 //
504 template<typename T> class SingleZConstraint : public T{
505  public:
506    SingleZConstraint(SimInfo *theInfo, ForceFields* the_ff);
507    ~SingleZConstraint();
508    
509    bool stopIntegrator();
510    
511  protected:
512    
513 };
490  
515 //Steered Molecular Dynamics, curret implement only support one steered molecule
516 template<typename T> class SMD : public T{
517  public:
518    SMD( SimInfo *theInfo, ForceFields* the_ff);
519    ~SMD();
520  
521    virtual void integrate();
522    virtual void calcForce( int calcPot, int calcStress );  
523    bool stopIntegrator();
524  private:
525    
491   };
492  
528 //By using state pattern, Coordinate Drive is responsible for switching back and forth between
529 //Driven Molecular Dynamics and ZConstraint Method.
530 template<typename T> class CoordinateDriver : public T {
531  public:
532    typedef T ParentIntegrator;
533
534    CoordinateDriver(SimInfo*, ForceFields*, BaseIntegrator*, BaseIntegrator*);
535    ~CoordinateDriver();
536    
537    virtual void integrate();
538
539  private:    
540    BaseIntegrator* zconsIntegrator;
541    BaseIntegrator* drivenIntegrator;
542    
543 };
544
493   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines