Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

colvarproxy_vmd.h

Go to the documentation of this file.
00001 // -*- c++ -*-
00002 
00003 // This file is part of the Collective Variables module (Colvars).
00004 // The original version of Colvars and its updates are located at:
00005 // https://github.com/Colvars/colvars
00006 // Please update all Colvars source files before making any changes.
00007 // If you wish to distribute your changes, please submit them to the
00008 // Colvars repository at GitHub.
00009 
00010 #ifndef COLVARPROXY_VMD_H
00011 #define COLVARPROXY_VMD_H
00012 
00013 #include "colvarproxy_vmd_version.h"
00014 
00015 #include <tcl.h>
00016 
00017 #include "DrawMolecule.h"
00018 #include "Timestep.h"
00019 #include "Inform.h"
00020 
00021 #include "colvarmodule.h"
00022 #include "colvarproxy.h"
00023 #include "colvartypes.h"
00024 #include "colvaratoms.h"
00025 
00026 
00027 int tcl_colvars(ClientData clientData, Tcl_Interp *interp,
00028                 int objc, Tcl_Obj *const objv[]);
00029 
00032 class colvarproxy_vmd : public colvarproxy {
00033 
00034 public:
00035 
00040   colvarproxy_vmd(Tcl_Interp *interp, VMDApp *vmd, int molid);
00041 
00043   int update_atomic_properties();
00044 
00045   virtual ~colvarproxy_vmd();
00046 
00047   virtual int request_deletion();
00048 
00049   virtual int setup();
00050 
00051   virtual int update_input();
00052 
00053   virtual cvm::real rand_gaussian();
00054 
00055   virtual int get_molid(int &molid);
00056 
00057   virtual int get_frame(long int &f);
00058 
00059   virtual int set_frame(long int f);
00060 
00061   virtual void init_tcl_pointers();
00062 
00063   virtual void add_energy(cvm::real energy);
00064 
00065   virtual void request_total_force(bool yesno);
00066 
00067   virtual void log(std::string const &message);
00068 
00069   virtual void error(std::string const &message);
00070 
00071   virtual int set_unit_system(std::string const &units_in, bool check_only);
00072 
00073   virtual int run_force_callback();
00074 
00075   virtual int run_colvar_callback(std::string const &name,
00076                                   std::vector<const colvarvalue *> const &cvcs,
00077                                   colvarvalue &value);
00078 
00079   virtual int run_colvar_gradient_callback(std::string const &name,
00080                                            std::vector<const colvarvalue *> const &cvc_values,
00081                                            std::vector<cvm::matrix2d<cvm::real> > &gradient);
00082 
00083   virtual int load_atoms(char const *filename,
00084                          cvm::atom_group &atoms,
00085                          std::string const &pdb_field,
00086                          double const pdb_field_value = 0.0);
00087 
00088   virtual int load_coords(char const *filename,
00089                           std::vector<cvm::atom_pos> &pos,
00090                           const std::vector<int> &indices,
00091                           std::string const &pdb_field,
00092                           double const pdb_field_value = 0.0);
00093 
00094   virtual int init_atom(int atom_number);
00095 
00096   virtual int check_atom_id(int atom_number);
00097 
00098   virtual int init_atom(cvm::residue_id const &residue,
00099                         std::string const     &atom_name,
00100                         std::string const     &segment_id);
00101 
00102   virtual int check_atom_id(cvm::residue_id const &residue,
00103                             std::string const     &atom_name,
00104                             std::string const     &segment_id);
00105 
00106   virtual int init_volmap_by_id(int volmap_id);
00107 
00108   virtual int check_volmap_by_id(int volmap_id);
00109 
00110   virtual void clear_volmap(int index);
00111 
00112   virtual int compute_volmap(int flags,
00113                              int volmap_id,
00114                              cvm::atom_iter atom_begin,
00115                              cvm::atom_iter atom_end,
00116                              cvm::real *value,
00117                              cvm::real *atom_field);
00118 
00119   template<int flags>
00120   void compute_voldata(VolumetricData const *voldata,
00121                        cvm::atom_iter atom_begin,
00122                        cvm::atom_iter atom_end,
00123                        cvm::real *value,
00124                        cvm::real *atom_field);
00125 
00127   int get_alch_lambda(cvm::real* lambda) {
00128     *lambda = 0.0;
00129     return COLVARS_OK;
00130   }
00131 
00133   int send_alch_lambda(void) { return COLVARS_OK; }
00134 
00136   int get_dE_dlambda(cvm::real* dE_dlambda) {
00137     *dE_dlambda = 0.0;
00138     return COLVARS_OK;
00139   }
00140 
00141 protected:
00142 
00144   VMDApp *vmd;
00145 
00147   int vmdmolid;
00148 
00150   DrawMolecule *vmdmol;
00151 
00153   long int vmdmol_frame;
00154 
00156   Inform msgColvars;
00157 };
00158 
00159 
00160 #endif

Generated on Tue Apr 23 04:22:51 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002