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

colvarproxy.h

Go to the documentation of this file.
00001 #ifndef COLVARPROXY_H
00002 #define COLVARPROXY_H
00003 
00004 
00005 
00006 #include "colvarmodule.h"
00007 
00008 
00011 
00012 class colvarproxy {
00013 
00014 public:
00015 
00017   colvarmodule *colvars;
00018 
00021   virtual cvm::real unit_angstrom() = 0;
00022 
00024   virtual cvm::real boltzmann() = 0;
00025 
00027   virtual cvm::real temperature() = 0;
00028 
00030   virtual void log (std::string const &message) = 0;
00031 
00033   virtual void fatal_error (std::string const &message) = 0;
00034 
00036   virtual void exit (std::string const &message) = 0;
00037 
00038 
00041   virtual std::string input_prefix() = 0;
00042 
00044   virtual std::string restart_output_prefix() = 0;
00045 
00048   virtual std::string output_prefix() = 0;
00049 
00051   virtual size_t restart_frequency() = 0;
00052 
00053 
00054 
00055   // **************** PERIODIC BOUNDARY CONDITIONS ****************
00056 
00059   virtual cvm::rvector position_distance (cvm::atom_pos const &pos1,
00060                                           cvm::atom_pos const &pos2) = 0;
00061 
00068   virtual cvm::real position_dist2 (cvm::atom_pos const &pos1,
00069                                     cvm::atom_pos const &pos2) = 0;
00070 
00074   virtual void select_closest_image (cvm::atom_pos &pos,
00075                                      cvm::atom_pos const &ref_pos) = 0;
00076 
00081   void select_closest_images (std::vector<cvm::atom_pos> &pos,
00082                               cvm::atom_pos const &ref_pos);
00083 
00084 
00090   virtual void load_atoms (char const *filename,
00091                            std::vector<cvm::atom> &atoms,
00092                            std::string const pdb_field = "O",
00093                            double const pdb_field_value = 0.0);
00094 
00098   virtual void load_coords (char const *filename,
00099                             std::vector<cvm::atom_pos> &pos,
00100                             std::string const pdb_field = "O",
00101                             double const pdb_field_value = 0.0);
00102 
00105   virtual void backup_file (char const *filename);
00106 
00107   virtual inline ~colvarproxy() {}
00108 };
00109 
00110 
00111 inline void colvarproxy::select_closest_images (std::vector<cvm::atom_pos> &pos,
00112                                                 cvm::atom_pos const &ref_pos)
00113 {
00114   for (std::vector<cvm::atom_pos>::iterator pi = pos.begin();
00115        pi != pos.end(); pi++) {
00116     select_closest_image (*pi, ref_pos);
00117   }
00118 }
00119 
00120 
00121 inline void colvarproxy::load_coords (char const *filename,
00122                                       std::vector<cvm::atom_pos> &pos,
00123                                       std::string const pdb_field,
00124                                       double const pdb_field_value)
00125 {
00126   cvm::fatal_error ("Error: colvarproxy::load_coords() has not been (re)redefined, "
00127                     "__FILE__ at line __LINE__.\n");
00128 }
00129 
00130 
00131 inline void colvarproxy::load_atoms (char const *filename,
00132                                      std::vector<cvm::atom> &atoms,
00133                                      std::string const pdb_field,
00134                                      double const pdb_field_value)
00135 {
00136   cvm::fatal_error ("Error: colvarproxy::load_atoms() has not been (re)redefined, "
00137                     "__FILE__ at line __LINE__.\n");
00138 }
00139 
00140 
00141 inline void colvarproxy::backup_file (char const *filename)
00142 {
00143 //   cvm::fatal_error ("Error: colvarproxy::backup_file() has not been (re)redefined, "
00144 //                     "__FILE__ at line __LINE__.\n"); 
00145 }
00146 
00147 
00148 #endif
00149 
00150 
00151 // Emacs
00152 // Local Variables:
00153 // mode: C++
00154 // End:

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