ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/brains/SimInfo.hpp
(Generate patch)

Comparing trunk/src/brains/SimInfo.hpp (file contents):
Revision 1782 by gezelter, Wed Aug 22 02:28:28 2012 UTC vs.
Revision 1953 by gezelter, Thu Dec 5 18:19:26 2013 UTC

# Line 35 | Line 35
35   *                                                                      
36   * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37   * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 < * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
38 > * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).          
39   * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010).
40   * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011).
41   */
# Line 91 | Line 91 | namespace OpenMD{
91      /**
92       * Constructor of SimInfo
93       *
94 <     * @param molStampPairs MoleculeStamp Array. The first element of
95 <     * the pair is molecule stamp, the second element is the total
96 <     * number of molecules with the same molecule stamp in the system
94 >     * @param ff pointer to a concrete ForceField instance
95       *
96 <     * @param ff pointer of a concrete ForceField instance
99 <     *
100 <     * @param simParams
96 >     * @param simParams pointer to the simulation parameters in a Globals object
97       */
98      SimInfo(ForceField* ff, Globals* simParams);
99      virtual ~SimInfo();
# Line 108 | Line 104 | namespace OpenMD{
104       * @return return true if adding successfully, return false if the
105       * molecule is already in SimInfo
106       *
107 <     * @param mol molecule to be added
107 >     * @param mol Molecule to be added
108       */
109      bool addMolecule(Molecule* mol);
110  
# Line 153 | Line 149 | namespace OpenMD{
149        return nGlobalRigidBodies_;
150      }
151  
152 +    /** Returns the number of global bonds */        
153 +    unsigned int getNGlobalBonds(){
154 +      return nGlobalBonds_;
155 +    }
156 +
157 +    /** Returns the number of global bends */        
158 +    unsigned int getNGlobalBends() {
159 +      return nGlobalBends_;
160 +    }
161 +
162 +    /** Returns the number of global torsions */        
163 +    unsigned int getNGlobalTorsions() {
164 +      return nGlobalTorsions_;
165 +    }
166 +
167 +    /** Returns the number of global inversions */        
168 +    unsigned int getNGlobalInversions() {
169 +      return nGlobalInversions_;
170 +    }
171 +
172      int getNGlobalConstraints();
173      /**
174       * Returns the number of local molecules.
# Line 185 | Line 201 | namespace OpenMD{
201        return nTorsions_;
202      }
203  
204 <    /** Returns the number of local torsions */        
204 >    /** Returns the number of local inversions */        
205      unsigned int getNInversions() {
206        return nInversions_;
207      }
# Line 274 | Line 290 | namespace OpenMD{
290      SnapshotManager* getSnapshotManager() {
291        return sman_;
292      }
293 <
293 >    /** Returns the storage layout (computed by SimCreator) */
294 >    int getStorageLayout() {
295 >      return storageLayout_;
296 >    }
297 >    /** Sets the storage layout (computed by SimCreator) */
298 >    void setStorageLayout(int sl) {
299 >      storageLayout_ = sl;
300 >    }
301 >    
302      /** Sets the snapshot manager. */
303      void setSnapshotManager(SnapshotManager* sman);
304          
# Line 385 | Line 409 | namespace OpenMD{
409  
410      /**
411       * Sets GlobalGroupMembership
388     * @see #SimCreator::setGlobalIndex
412       */  
413 <    void setGlobalGroupMembership(const vector<int>& globalGroupMembership) {
414 <      assert(globalGroupMembership.size() == static_cast<size_t>(nGlobalAtoms_));
415 <      globalGroupMembership_ = globalGroupMembership;
413 >    void setGlobalGroupMembership(const vector<int>& ggm) {
414 >      assert(ggm.size() == static_cast<size_t>(nGlobalAtoms_));
415 >      globalGroupMembership_ = ggm;
416      }
417  
418      /**
419       * Sets GlobalMolMembership
397     * @see #SimCreator::setGlobalIndex
420       */        
421 <    void setGlobalMolMembership(const vector<int>& globalMolMembership) {
422 <      assert(globalMolMembership.size() == static_cast<size_t>(nGlobalAtoms_));
423 <      globalMolMembership_ = globalMolMembership;
421 >    void setGlobalMolMembership(const vector<int>& gmm) {
422 >      assert(gmm.size() == (static_cast<size_t>(nGlobalAtoms_ +
423 >                                                nGlobalRigidBodies_)));
424 >      globalMolMembership_ = gmm;
425      }
426  
427  
# Line 465 | Line 488 | namespace OpenMD{
488  
489      /** Returns the set of atom types present in this simulation */
490      set<AtomType*> getSimulatedAtomTypes();
491 +
492 +    /** Returns the global count of atoms of a particular type */
493 +    int getGlobalCountOfType(AtomType* atype);
494          
495      friend ostream& operator <<(ostream& o, SimInfo& info);
496  
# Line 513 | Line 539 | namespace OpenMD{
539      int nGlobalIntegrableObjects_; /**< number of integrable objects in this system */
540      int nGlobalRigidBodies_;       /**< number of rigid bodies in this system (GLOBAL) */
541      int nGlobalFluctuatingCharges_;/**< number of fluctuating charges in this system (GLOBAL) */
542 <    
543 <      
542 >    int nGlobalBonds_;              /**< number of bonds in the system */
543 >    int nGlobalBends_;              /**< number of bends in the system */
544 >    int nGlobalTorsions_;           /**< number of torsions in the system */
545 >    int nGlobalInversions_;         /**< number of inversions in the system */
546 >      
547      /// Degress of freedom
548      int ndf_;          /**< number of degress of freedom (excludes constraints) (LOCAL) */
549      int ndfLocal_;     /**< number of degrees of freedom (LOCAL, excludes constraints) */
# Line 582 | Line 611 | namespace OpenMD{
611      vector<int> identArray_;
612    public:
613      vector<int> getIdentArray() { return identArray_; }
614 +
615 +    /**
616 +     * A vector that contains information about the local region of an
617 +     * atom (used for fluctuating charges, etc.)
618 +     */
619    private:
620 <    
620 >    vector<int> regions_;
621 >  public:
622 >    vector<int> getRegions() { return regions_; }
623 >  private:
624      /**
625       * A vector which contains the fractional contribution of an
626       * atom's mass to the total mass of the cutoffGroup that atom
# Line 610 | Line 647 | namespace OpenMD{
647  
648      PropertyMap properties_;       /**< Generic Properties can be added */
649      SnapshotManager* sman_;        /**< SnapshotManager (handles particle positions, etc.) */
650 +    int storageLayout_;            /**< Bits to tell how much data to store on each object */
651  
652      /**
653       * The reason to have a local index manager is that when molecule
# Line 629 | Line 667 | namespace OpenMD{
667      string dumpFileName_;
668      string statFileName_;
669      string restFileName_;
632        
670  
671      bool topologyDone_;  /** flag to indicate whether the topology has
672                               been scanned and all the relevant
# Line 667 | Line 704 | namespace OpenMD{
704      
705      /**
706       * Set MolToProcMap array
670     * @see #SimCreator::divideMolecules
707       */
708      void setMolToProcMap(const vector<int>& molToProcMap) {
709        molToProcMap_ = molToProcMap;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines