Difference for src/colvarmodule.h from version 1.20 to 1.21

version 1.20version 1.21
Line 1
Line 1
 /// -*- c++ -*- // -*- c++ -*-
  
 #ifndef COLVARMODULE_H #ifndef COLVARMODULE_H
 #define COLVARMODULE_H #define COLVARMODULE_H
  
 #ifndef COLVARS_VERSION #ifndef COLVARS_VERSION
 #define COLVARS_VERSION "2015-09-16" #define COLVARS_VERSION "2016-10-06"
 #endif #endif
  
 #ifndef COLVARS_DEBUG #ifndef COLVARS_DEBUG
 #define COLVARS_DEBUG false #define COLVARS_DEBUG false
 #endif #endif
  
  /*! \mainpage Main page
   */
  
 /// \file colvarmodule.h /// \file colvarmodule.h
 /// \brief Collective variables main module /// \brief Collective variables main module
 /// ///
Line 20
Line 23
 /// shared between all object instances) to be accessed from other /// shared between all object instances) to be accessed from other
 /// objects. /// objects.
  
 // Internal method return codes 
 #define COLVARS_NOT_IMPLEMENTED -2 
 #define COLVARS_ERROR -1 
 #define COLVARS_OK 0 #define COLVARS_OK 0
  #define COLVARS_ERROR   1
 // On error, values of the colvars module error register #define COLVARS_NOT_IMPLEMENTED (1<<1)
 #define GENERAL_ERROR   1 #define INPUT_ERROR     (1<<2) // out of bounds or inconsistent input
 #define FILE_ERROR      (1<<1) 
 #define MEMORY_ERROR    (1<<2) 
 #define BUG_ERROR       (1<<3) // Inconsistent state indicating bug #define BUG_ERROR       (1<<3) // Inconsistent state indicating bug
 #define INPUT_ERROR     (1<<4) // out of bounds or inconsistent input #define FILE_ERROR      (1<<4)
 #define DELETE_COLVARS  (1<<5) // Instruct the caller to delete cvm #define MEMORY_ERROR    (1<<5)
 #define FATAL_ERROR     (1<<6) // Should be set, or not, together with other bits #define FATAL_ERROR     (1<<6) // Should be set, or not, together with other bits
  #define DELETE_COLVARS  (1<<7) // Instruct the caller to delete cvm
  #define COLVARS_NO_SUCH_FRAME (1<<8) // Cannot load the requested frame
  
 #include <iostream> #include <iostream>
 #include <iomanip> #include <iomanip>
Line 107
Line 106
  
   /// Module-wide error state   /// Module-wide error state
   /// see constants at the top of this file   /// see constants at the top of this file
  protected:
  
   static int errorCode;   static int errorCode;
   static inline void set_error_bits(int code) 
   { public:
     errorCode |= code; 
   }   static void set_error_bits(int code);
  
    static bool get_error_bit(int code);
  
   static inline int get_error()   static inline int get_error()
   {   {
     return errorCode;     return errorCode;
   }   }
   static inline void clear_error() 
   {   static void clear_error();
     errorCode = 0; 
   } 
  
   /// Current step number   /// Current step number
   static long it;   static long it;
Line 151
Line 154
   /// Prefix for all output files for this run   /// Prefix for all output files for this run
   static std::string output_prefix;   static std::string output_prefix;
  
   /// input restart file name (determined from input_prefix) 
   static std::string restart_in_name; 
  
  
   /// Array of collective variables   /// Array of collective variables
   static std::vector<colvar *>     colvars;   static std::vector<colvar *>     colvars;
Line 167
Line 167
   }   }
   */   */
  
    /// Collective variables to be calculated on different threads;
    /// colvars with multple items (e.g. multiple active CVCs) are duplicated
    std::vector<colvar *> colvars_smp;
    /// Indexes of the items to calculate for each colvar
    std::vector<int> colvars_smp_items;
  
   /// Array of collective variable biases   /// Array of collective variable biases
   static std::vector<colvarbias *> biases;   static std::vector<colvarbias *> biases;
   /// \brief Number of ABF biases initialized (in normal conditions   /// \brief Number of ABF biases initialized (in normal conditions
Line 188
Line 194
     return COLVARS_DEBUG;     return COLVARS_DEBUG;
   }   }
  
    /// \brief How many objects are configured yet?
    inline size_t const size() const
    {
      return colvars.size() + biases.size();
    }
  
   /// \brief Constructor \param config_name Configuration file name   /// \brief Constructor \param config_name Configuration file name
   /// \param restart_name (optional) Restart file name   /// \param restart_name (optional) Restart file name
Line 229
Line 240
   /// on error, delete new bias   /// on error, delete new bias
   bool check_new_bias(std::string &conf, char const *key);   bool check_new_bias(std::string &conf, char const *key);
  
  private:
    /// Useful wrapper to interrupt parsing if any error occurs
    int catch_input_errors(int result);
  
  public:
  
   // "Setup" functions (change internal data based on related data   // "Setup" functions (change internal data based on related data
   // from the proxy that may change during program execution)   // from the proxy that may change during program execution)
   // No additional parsing is done within these functions   // No additional parsing is done within these functions
Line 263
Line 280
   /// Write explanatory labels in the trajectory file   /// Write explanatory labels in the trajectory file
   std::ostream & write_traj_label(std::ostream &os);   std::ostream & write_traj_label(std::ostream &os);
  
    /// Write all trajectory files
    int write_traj_files();
    /// Write all restart files
    int write_restart_files();
   /// Write all FINAL output files   /// Write all FINAL output files
   int write_output_files();   int write_output_files();
   /// Backup a file before writing it   /// Backup a file before writing it
Line 294
Line 315
   //// Share among replicas.   //// Share among replicas.
   int bias_share(std::string const &bias_name);   int bias_share(std::string const &bias_name);
  
   /// Calculate collective variables and biases   /// Main worker function
   int calc();   int calc();
  
    /// Calculate collective variables
    int calc_colvars();
  
    /// Calculate biases
    int calc_biases();
  
    /// Integrate bias and restraint forces, send colvar forces to atoms
    int update_colvar_forces();
  
   /// Perform analysis   /// Perform analysis
   int analyze();   int analyze();
  
   /// \brief Read a collective variable trajectory (post-processing   /// \brief Read a collective variable trajectory (post-processing
   /// only, not called at runtime)   /// only, not called at runtime)
   int read_traj(char const *traj_filename,   int read_traj(char const *traj_filename,
Line 355
Line 386
   /// \brief Time step of MD integrator (fs)   /// \brief Time step of MD integrator (fs)
   static real dt();   static real dt();
  
   /// Request calculation of system force from MD engine   /// Request calculation of total force from MD engine
   static void request_system_force();   static void request_total_force();
  
   /// Print a message to the main log   /// Print a message to the main log
   static void log(std::string const &message);   static void log(std::string const &message);
Line 365
Line 396
   static void fatal_error(std::string const &message);   static void fatal_error(std::string const &message);
  
   /// Print a message to the main log and set global error code   /// Print a message to the main log and set global error code
   static void error(std::string const &message, int code = GENERAL_ERROR);   static void error(std::string const &message, int code = COLVARS_ERROR);
  
   /// Print a message to the main log and exit normally   /// Print a message to the main log and exit normally
   static void exit(std::string const &message);   static void exit(std::string const &message);
Line 422
Line 453
   /// \param pdb_field (optiona) if "filename" is a PDB file, use this   /// \param pdb_field (optiona) if "filename" is a PDB file, use this
   /// field to determine which are the atoms to be set   /// field to determine which are the atoms to be set
   static int load_atoms(char const *filename,   static int load_atoms(char const *filename,
                           std::vector<atom> &atoms,                         atom_group &atoms,
                           std::string const &pdb_field,                           std::string const &pdb_field,
                           double const pdb_field_value = 0.0);                           double const pdb_field_value = 0.0);
  
Line 474
Line 505
   /// Output restart file   /// Output restart file
   colvarmodule::ofstream restart_out_os;   colvarmodule::ofstream restart_out_os;
  
   /// \brief Counter for the current depth in the object hierarchy (useg e.g. in output protected:
   static size_t depth; 
  
   /// Use scripted colvars forces?   /// Counter for the current depth in the object hierarchy (useg e.g. in output)
   static bool use_scripted_forces;   static size_t depth_s;
  
    /// Thread-specific depth
    static std::vector<size_t> depth_v;
  
 public: public:
  
   /// \brief Pointer to the proxy object, used to retrieve atomic data   /// Get the current object depth in the hierarchy
   /// from the hosting program; it is static in order to be accessible   static size_t & depth();
   /// from static functions in the colvarmodule class 
   static colvarproxy *proxy; 
  
   /// Increase the depth (number of indentations in the output)   /// Increase the depth (number of indentations in the output)
   static void increase_depth();   static void increase_depth();
Line 493
Line 524
   /// Decrease the depth (number of indentations in the output)   /// Decrease the depth (number of indentations in the output)
   static void decrease_depth();   static void decrease_depth();
  
   static inline bool scripted_forces() { return use_scripted_forces; }   static inline bool scripted_forces()
    {
      return use_scripted_forces;
    }
  
    /// Use scripted colvars forces?
    static bool use_scripted_forces;
  
    /// Wait for all biases before calculating scripted forces?
    static bool scripting_after_biases;
  
    /// Calculate the energy and forces of scripted biases
    int calc_scripted_forces();
  
    /// \brief Pointer to the proxy object, used to retrieve atomic data
    /// from the hosting program; it is static in order to be accessible
    /// from static functions in the colvarmodule class
    static colvarproxy *proxy;
 }; };
  
  
Line 588
Line 636
 } }
  
  
 inline void cvm::request_system_force() inline void cvm::request_total_force()
 { {
   proxy->request_system_force(true);   proxy->request_total_force(true);
 } }
  
 inline void cvm::select_closest_image(atom_pos &pos, inline void cvm::select_closest_image(atom_pos &pos,


Legend:
Removed in v.1.20 
changed lines
 Added in v.1.21



Made by using version 1.53 of cvs2html