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

Comparing branches/development/src/brains/SimInfo.hpp (file contents):
Revision 1534 by gezelter, Wed Dec 29 21:53:28 2010 UTC vs.
Revision 1544 by gezelter, Fri Mar 18 19:31:52 2011 UTC

# Line 70 | Line 70 | namespace OpenMD{
70  
71   using namespace std;
72   namespace OpenMD{
73  enum CutoffMethod {
74    HARD,
75    SWITCHING_FUNCTION,
76    SHIFTED_POTENTIAL,
77    SHIFTED_FORCE
78  };
79
73    //forward decalration
74    class SnapshotManager;
75    class Molecule;
# Line 306 | Line 299 | namespace OpenMD{
299      /** Overloaded version of gyrational volume that also returns
300          det(I) so dV/dr can be calculated*/
301      void getGyrationalVolume(RealType &vol, RealType &detI);
302 <    /** main driver function to interact with fortran during the
310 <        initialization and molecule migration */
302 >
303      void update();
304 +    /**
305 +     * Setup Fortran Simulation
306 +     */
307 +    void setupFortran();
308  
309 +
310      /** Returns the local index manager */
311      LocalIndexManager* getLocalIndexManager() {
312        return &localIndexMan_;
# Line 343 | Line 340 | namespace OpenMD{
340  
341      int getGlobalMolMembership(int id){
342        return globalMolMembership_[id];
346    }
347
348    RealType getCutoffRadius() {
349      return cutoffRadius_;
343      }
351
352    RealType getSwitchingRadius() {
353      return switchingRadius_;
354    }
355
356    RealType getListRadius() {
357      return listRadius_;
358    }
344          
345      string getFinalConfigFileName() {
346        return finalConfigFileName_;
# Line 476 | Line 461 | namespace OpenMD{
461       */
462      void removeInteractionPairs(Molecule* mol);
463  
479
480    /** Returns the unique atom types of local processor in an array */
481    set<AtomType*> getUniqueAtomTypes();
482
464      /** Returns the set of atom types present in this simulation */
465      set<AtomType*> getSimulatedAtomTypes();
466          
# Line 492 | Line 473 | namespace OpenMD{
473      /** fill up the simtype struct and other simulation-related variables */
474      void setupSimVariables();
475  
495    /**
496     * Setup Fortran Simulation
497     * @see #setupFortranParallel
498     */
499    void setupFortranSim();
476  
501    /** Figure out the cutoff radius and cutoff method */
502    void setupCutoffs();
503    /** Figure out the switching radius and polynomial type for the switching function */
504    void setupSwitching();
505    /** Figure out the simulation variables associated with electrostatics */
506    void setupElectrostatics();  
507    /** Figure out the neighbor list skin thickness */
508    void setupNeighborlists();
509
477      /** Determine if we need to accumulate the simulation box dipole */
478      void setupAccumulateBoxDipole();
479  
# Line 561 | Line 528 | namespace OpenMD{
528      bool requiresSkipCorrection_; /**< does this simulation require a skip-correction? */
529      bool requiresSelfCorrection_; /**< does this simulation require a self-correction? */
530  
531 +  public:
532 +    bool usesElectrostaticAtoms() { return usesElectrostaticAtoms_; }
533 +    bool usesDirectionalAtoms() { return usesDirectionalAtoms_; }
534 +    bool usesMetallicAtoms() { return usesMetallicAtoms_; }
535 +
536 +  private:
537      /// Data structures holding primary simulation objects
538      map<int, Molecule*>  molecules_;  /**< map holding pointers to LOCAL molecules */
539      simtype fInfo_;                   /**< A dual struct shared by C++
# Line 568 | Line 541 | namespace OpenMD{
541                                           information about what types
542                                           of calculation are
543                                           required */
544 <    
544 >
545      /// Stamps are templates for objects that are then used to create
546      /// groups of objects.  For example, a molecule stamp contains
547      /// information on how to build that molecule (i.e. the topology,
# Line 591 | Line 564 | namespace OpenMD{
564       * by SimCreator once and only once, since it is never changed
565       * during the simulation. It shoudl be nGlobalAtoms_ in size.
566       */
567 <    vector<int> globalMolMembership_;        
567 >    vector<int> globalMolMembership_;
568 >
569 >    /**
570 >     * A vector that maps between the local index of an atom and the
571 >     * index of the AtomType.
572 >     */
573 >    vector<int> identArray_;
574 >    vector<int> getIdentArray() { return identArray_; }
575 >    
576                
577      /// lists to handle atoms needing special treatment in the non-bonded interactions
578      PairList excludedInteractions_;  /**< atoms excluded from interacting with each other */
# Line 621 | Line 602 | namespace OpenMD{
602      string statFileName_;
603      string restFileName_;
604          
624    RealType cutoffRadius_;         /**< cutoff radius for non-bonded interactions */
625    RealType switchingRadius_;      /**< inner radius of switching function */
626    RealType listRadius_;           /**< Verlet neighbor list radius */
627    RealType skinThickness_;        /**< Verlet neighbor list skin thickness */    
628    CutoffMethod cutoffMethod_;     /**< Cutoff Method for most non-bonded interactions */
629    SwitchingFunctionType sft_;     /**< Type of switching function in use */
605  
606      bool fortranInitialized_; /** flag to indicate whether the fortran side is initialized */
607      
# Line 669 | Line 644 | namespace OpenMD{
644      }
645          
646    private:
672
673    void setupFortranParallel();
647          
648      /**
649       * The size of molToProcMap_ is equal to total number of molecules

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines