| 305 | 
  | 
      return i != molecules_.end() ? i->second : NULL; | 
| 306 | 
  | 
    } | 
| 307 | 
  | 
 | 
| 308 | 
< | 
    double getRcut() { | 
| 308 | 
> | 
    RealType getRcut() { | 
| 309 | 
  | 
      return rcut_; | 
| 310 | 
  | 
    } | 
| 311 | 
  | 
 | 
| 312 | 
< | 
    double getRsw() { | 
| 312 | 
> | 
    RealType getRsw() { | 
| 313 | 
  | 
      return rsw_; | 
| 314 | 
  | 
    } | 
| 315 | 
  | 
 | 
| 316 | 
< | 
    double getList() { | 
| 316 | 
> | 
    RealType getList() { | 
| 317 | 
  | 
      return rlist_; | 
| 318 | 
  | 
    } | 
| 319 | 
  | 
         | 
| 372 | 
  | 
      return fortranInitialized_; | 
| 373 | 
  | 
    } | 
| 374 | 
  | 
         | 
| 375 | 
+ | 
    bool getCalcBoxDipole() { | 
| 376 | 
+ | 
      return calcBoxDipole_; | 
| 377 | 
+ | 
    } | 
| 378 | 
+ | 
 | 
| 379 | 
  | 
    //below functions are just forward functions | 
| 380 | 
  | 
    //To compose or to inherit is always a hot debate. In general, is-a relation need subclassing, in the | 
| 381 | 
  | 
    //the other hand, has-a relation need composing. | 
| 433 | 
  | 
         | 
| 434 | 
  | 
    friend std::ostream& operator <<(std::ostream& o, SimInfo& info); | 
| 435 | 
  | 
 | 
| 436 | 
< | 
    void getCutoff(double& rcut, double& rsw); | 
| 436 | 
> | 
    void getCutoff(RealType& rcut, RealType& rsw); | 
| 437 | 
  | 
         | 
| 438 | 
  | 
  private: | 
| 439 | 
  | 
 | 
| 455 | 
  | 
    /** Figure out which polynomial type to use for the switching function */ | 
| 456 | 
  | 
    void setupSwitchingFunction(); | 
| 457 | 
  | 
 | 
| 458 | 
+ | 
    /** Determine if we need to accumulate the simulation box dipole */ | 
| 459 | 
+ | 
    void setupAccumulateBoxDipole(); | 
| 460 | 
+ | 
 | 
| 461 | 
  | 
    /** Calculates the number of degress of freedom in the whole system */ | 
| 462 | 
  | 
    void calcNdf(); | 
| 463 | 
  | 
    void calcNdfRaw(); | 
| 535 | 
  | 
    std::string statFileName_; | 
| 536 | 
  | 
    std::string restFileName_; | 
| 537 | 
  | 
         | 
| 538 | 
< | 
    double rcut_;       /**< cutoff radius*/ | 
| 539 | 
< | 
    double rsw_;        /**< radius of switching function*/ | 
| 540 | 
< | 
    double rlist_;      /**< neighbor list radius */ | 
| 538 | 
> | 
    RealType rcut_;       /**< cutoff radius*/ | 
| 539 | 
> | 
    RealType rsw_;        /**< radius of switching function*/ | 
| 540 | 
> | 
    RealType rlist_;      /**< neighbor list radius */ | 
| 541 | 
  | 
 | 
| 542 | 
  | 
    bool fortranInitialized_; /**< flag indicate whether fortran side is initialized */ | 
| 543 | 
  | 
 | 
| 544 | 
+ | 
    bool calcBoxDipole_; /**< flag to indicate whether or not we calculate the simulation box dipole moment */ | 
| 545 | 
+ | 
 | 
| 546 | 
  | 
#ifdef IS_MPI | 
| 547 | 
  | 
    //in Parallel version, we need MolToProc | 
| 548 | 
  | 
  public: |