--- branches/development/src/brains/SimInfo.hpp 2011/05/26 13:55:04 1569 +++ branches/development/src/brains/SimInfo.hpp 2012/05/26 18:13:43 1725 @@ -36,7 +36,8 @@ * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). - * [4] Vardeman & Gezelter, in progress (2009). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ /** @@ -59,7 +60,7 @@ #include "math/Vector3.hpp" #include "math/SquareMatrix3.hpp" #include "types/MoleculeStamp.hpp" -#include "UseTheForce/ForceField.hpp" +#include "brains/ForceField.hpp" #include "utils/PropertyMap.hpp" #include "utils/LocalIndexManager.hpp" #include "nonbonded/SwitchingFunction.hpp" @@ -166,6 +167,9 @@ namespace OpenMD{ return nAtoms_; } + /** Returns the number of effective cutoff groups on local processor */ + unsigned int getNLocalCutoffGroups(); + /** Returns the number of local bonds */ unsigned int getNBonds(){ return nBonds_; @@ -218,6 +222,11 @@ namespace OpenMD{ * @param i the iterator of molecule array */ Molecule* nextMolecule(MoleculeIterator& i); + + /** Returns the total number of fluctuating charges that are present */ + int getNFluctuatingCharges() { + return nGlobalFluctuatingCharges_; + } /** Returns the number of degrees of freedom */ int getNdf() { @@ -513,6 +522,7 @@ namespace OpenMD{ int nIntegrableObjects_; /**< number of integrable objects in local processor */ int nCutoffGroups_; /**< number of cutoff groups in local processor */ int nConstraints_; /**< number of constraints in local processors */ + int nFluctuatingCharges_; /**< number of fluctuating charges in local processor */ /// Counts of global objects int nGlobalMols_; /**< number of molecules in the system (GLOBAL) */ @@ -520,6 +530,8 @@ namespace OpenMD{ int nGlobalCutoffGroups_; /**< number of cutoff groups in this system (GLOBAL) */ int nGlobalIntegrableObjects_; /**< number of integrable objects in this system */ int nGlobalRigidBodies_; /**< number of rigid bodies in this system (GLOBAL) */ + int nGlobalFluctuatingCharges_;/**< number of fluctuating charges in this system (GLOBAL) */ + /// Degress of freedom int ndf_; /**< number of degress of freedom (excludes constraints) (LOCAL) */ @@ -534,6 +546,7 @@ namespace OpenMD{ bool usesDirectionalAtoms_; /**< are there atoms with position AND orientation? */ bool usesMetallicAtoms_; /**< are there transition metal atoms? */ bool usesElectrostaticAtoms_; /**< are there electrostatic atoms? */ + bool usesFluctuatingCharges_; /**< are there fluctuating charges? */ bool usesAtomicVirial_; /**< are we computing atomic virials? */ bool requiresPrepair_; /**< does this simulation require a pre-pair loop? */ bool requiresSkipCorrection_; /**< does this simulation require a skip-correction? */ @@ -542,7 +555,7 @@ namespace OpenMD{ public: bool usesElectrostaticAtoms() { return usesElectrostaticAtoms_; } bool usesDirectionalAtoms() { return usesDirectionalAtoms_; } - bool usesMetallicAtoms() { return usesMetallicAtoms_; } + bool usesFluctuatingCharges() { return usesFluctuatingCharges_; } bool usesAtomicVirial() { return usesAtomicVirial_; } bool requiresPrepair() { return requiresPrepair_; } bool requiresSkipCorrection() { return requiresSkipCorrection_;} @@ -598,8 +611,13 @@ namespace OpenMD{ vector massFactors_; public: vector getMassFactors() { return massFactors_; } - private: + PairList* getExcludedInteractions() { return &excludedInteractions_; } + PairList* getOneTwoInteractions() { return &oneTwoInteractions_; } + PairList* getOneThreeInteractions() { return &oneThreeInteractions_; } + PairList* getOneFourInteractions() { return &oneFourInteractions_; } + + private: /// lists to handle atoms needing special treatment in the non-bonded interactions PairList excludedInteractions_; /**< atoms excluded from interacting with each other */