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 cvm::real dt() = 0;
00031 
00033   virtual void add_energy (cvm::real energy) = 0;
00034 
00036   virtual void request_system_force (bool yesno) = 0;
00037 
00039   virtual void log (std::string const &message) = 0;
00040 
00042   virtual void fatal_error (std::string const &message) = 0;
00043 
00045   virtual void exit (std::string const &message) = 0;
00046 
00047 
00050   virtual std::string input_prefix() = 0;
00051 
00053   virtual std::string restart_output_prefix() = 0;
00054 
00057   virtual std::string output_prefix() = 0;
00058 
00060   virtual size_t restart_frequency() = 0;
00061 
00062   // **************** PERIODIC BOUNDARY CONDITIONS ****************
00063 
00066   virtual cvm::rvector position_distance (cvm::atom_pos const &pos1,
00067                                           cvm::atom_pos const &pos2) = 0;
00068 
00075   virtual cvm::real position_dist2 (cvm::atom_pos const &pos1,
00076                                     cvm::atom_pos const &pos2) = 0;
00077 
00081   virtual void select_closest_image (cvm::atom_pos &pos,
00082                                      cvm::atom_pos const &ref_pos) = 0;
00083 
00088   void select_closest_images (std::vector<cvm::atom_pos> &pos,
00089                               cvm::atom_pos const &ref_pos);
00090 
00091 
00097   virtual void load_atoms (char const *filename,
00098                            std::vector<cvm::atom> &atoms,
00099                            std::string const pdb_field,
00100                            double const pdb_field_value = 0.0);
00101 
00105   virtual void load_coords (char const *filename,
00106                             std::vector<cvm::atom_pos> &pos,
00107                             const std::vector<int> &indices,
00108                             std::string const pdb_field,
00109                             double const pdb_field_value = 0.0);
00110 
00113   virtual void backup_file (char const *filename);
00114 
00116   virtual cvm::real rand_gaussian (void);
00117 
00118   virtual inline ~colvarproxy() {}
00119 };
00120 
00121 
00122 inline void colvarproxy::select_closest_images (std::vector<cvm::atom_pos> &pos,
00123                                                 cvm::atom_pos const &ref_pos)
00124 {
00125   for (std::vector<cvm::atom_pos>::iterator pi = pos.begin();
00126        pi != pos.end(); pi++) {
00127     select_closest_image (*pi, ref_pos);
00128   }
00129 }
00130 
00131 
00132 inline void colvarproxy::load_coords (char const *filename,
00133                                       std::vector<cvm::atom_pos> &pos,
00134                                       const std::vector<int> &indices,
00135                                       std::string const pdb_field,
00136                                       double const pdb_field_value)
00137 {
00138   cvm::fatal_error ("Error: colvarproxy::load_coords() has not been (re)redefined, "
00139                     "__FILE__ at line __LINE__.\n");
00140 }
00141 
00142 
00143 inline void colvarproxy::load_atoms (char const *filename,
00144                                      std::vector<cvm::atom> &atoms,
00145                                      std::string const pdb_field,
00146                                      double const pdb_field_value)
00147 {
00148   cvm::fatal_error ("Error: colvarproxy::load_atoms() has not been (re)redefined, "
00149                     "__FILE__ at line __LINE__.\n");
00150 }
00151 
00152 
00153 inline void colvarproxy::backup_file (char const *filename)
00154 {
00155 //   cvm::fatal_error ("Error: colvarproxy::backup_file() has not been (re)redefined, "
00156 //                     "__FILE__ at line __LINE__.\n"); 
00157 }
00158 
00159 inline cvm::real colvarproxy::rand_gaussian (void)
00160 {
00161   cvm::fatal_error ("Error: colvarproxy::rand_gaussian() has not been (re)redefined, "
00162                     "__FILE__ at line __LINE__.\n");
00163   return 999999.;
00164 }
00165 
00166 
00167 #endif
00168 
00169 
00170 // Emacs
00171 // Local Variables:
00172 // mode: C++
00173 // End:

Generated on Sun Feb 12 04:07:53 2012 for NAMD by  doxygen 1.3.9.1