Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

colvarbias.h

Go to the documentation of this file.
00001 #ifndef COLVARBIAS_H
00002 #define COLVARBIAS_H
00003 
00004 #include "colvar.h"
00005 #include "colvarparse.h"
00006 
00007 
00009 class colvarbias : public colvarparse {
00010 public:
00011 
00013   int            id;
00014 
00016   std::string    name;
00017   
00019   void add_colvar (std::string const &cv_name);
00020 
00022   virtual void update() = 0;
00023 
00025   virtual inline void analyse() {}
00026 
00028   void communicate_forces();
00029 
00034   colvarbias (std::string const &conf, char const *key);
00035 
00037   virtual inline ~colvarbias() {}
00038 
00040   virtual std::istream & read_restart (std::istream &is) = 0;
00041 
00043   virtual std::ostream & write_restart (std::ostream &os) = 0;
00044 
00045 protected:
00046 
00050   std::vector<colvar *>    colvars;
00051 
00053   std::vector<colvarvalue> colvar_forces;
00054 
00057   cvm::real                colvar_energy;
00058 
00059 };
00060 
00061 
00064 class colvarbias_harmonic : public colvarbias {
00065 
00066 public:
00067 
00069   virtual void update();
00070 
00072   virtual std::istream & read_restart (std::istream &is);
00073 
00075   virtual std::ostream & write_restart (std::ostream &os);
00076 
00078   colvarbias_harmonic (std::string const &conf, char const *key);
00079 
00081   virtual inline ~colvarbias_harmonic() {}
00082 
00083 
00084 protected:
00085 
00087   std::vector<colvarvalue> colvar_centers;
00088 
00090   cvm::real force_k;
00091 
00093   cvm::real force_k_target;
00094 
00096   size_t force_k_target_nsteps;
00097 
00099   std::vector<colvarvalue> colvar_targets;
00100 
00103   size_t targets_nsteps;
00104 
00107   std::vector<cvm::real> target_steps;
00108 };
00109 
00110 
00111 #endif
00112 
00113 
00114 
00115 // Emacs
00116 // Local Variables:
00117 // mode: C++
00118 // End:

Generated on Mon Nov 23 04:59:18 2009 for NAMD by  doxygen 1.3.9.1