# | 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 88 | Line 88 | namespace OpenMD { | |
88 | ||
89 | vector<Component*> components = simParams->getComponents(); | |
90 | ||
91 | < | for (vector<Component*>::iterator i = components.begin(); i !=components.end(); ++i) { |
91 | > | for (vector<Component*>::iterator i = components.begin(); |
92 | > | i !=components.end(); ++i) { |
93 | molStamp = (*i)->getMoleculeStamp(); | |
94 | nMolWithSameStamp = (*i)->getNMol(); | |
95 | ||
# | Line 267 | Line 268 | namespace OpenMD { | |
268 | ndf_local -= nConstraints_; | |
269 | ||
270 | #ifdef IS_MPI | |
271 | < | MPI_Allreduce(&ndf_local,&ndf_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); |
272 | < | MPI_Allreduce(&nfq_local,&nGlobalFluctuatingCharges_,1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); |
271 | > | MPI::COMM_WORLD.Allreduce(&ndf_local, &ndf_, 1, MPI::INT,MPI::SUM); |
272 | > | MPI::COMM_WORLD.Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1, |
273 | > | MPI::INT, MPI::SUM); |
274 | #else | |
275 | ndf_ = ndf_local; | |
276 | nGlobalFluctuatingCharges_ = nfq_local; | |
# | Line 282 | Line 284 | namespace OpenMD { | |
284 | ||
285 | int SimInfo::getFdf() { | |
286 | #ifdef IS_MPI | |
287 | < | MPI_Allreduce(&fdf_local,&fdf_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); |
287 | > | MPI::COMM_WORLD.Allreduce(&fdf_local, &fdf_, 1, MPI::INT, MPI::SUM); |
288 | #else | |
289 | fdf_ = fdf_local; | |
290 | #endif | |
# | Line 338 | Line 340 | namespace OpenMD { | |
340 | } | |
341 | ||
342 | #ifdef IS_MPI | |
343 | < | MPI_Allreduce(&ndfRaw_local,&ndfRaw_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); |
343 | > | MPI::COMM_WORLD.Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI::INT, MPI::SUM); |
344 | #else | |
345 | ndfRaw_ = ndfRaw_local; | |
346 | #endif | |
# | Line 351 | Line 353 | namespace OpenMD { | |
353 | ||
354 | ||
355 | #ifdef IS_MPI | |
356 | < | MPI_Allreduce(&ndfTrans_local,&ndfTrans_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); |
356 | > | MPI::COMM_WORLD.Allreduce(&ndfTrans_local, &ndfTrans_, 1, |
357 | > | MPI::INT, MPI::SUM); |
358 | #else | |
359 | ndfTrans_ = ndfTrans_local; | |
360 | #endif | |
# | Line 778 | Line 781 | namespace OpenMD { | |
781 | ||
782 | return atomTypes; | |
783 | } | |
784 | + | |
785 | ||
786 | + | int getGlobalCountOfType(AtomType* atype) { |
787 | + | /* |
788 | + | set<AtomType*> atypes = getSimulatedAtomTypes(); |
789 | + | map<AtomType*, int> counts_; |
790 | + | |
791 | + | for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { |
792 | + | for(atom = mol->beginAtom(ai); atom != NULL; |
793 | + | atom = mol->nextAtom(ai)) { |
794 | + | atom->getAtomType(); |
795 | + | } |
796 | + | } |
797 | + | */ |
798 | + | return 0; |
799 | + | } |
800 | + | |
801 | void SimInfo::setupSimVariables() { | |
802 | useAtomicVirial_ = simParams_->getUseAtomicVirial(); | |
803 | < | // we only call setAccumulateBoxDipole if the accumulateBoxDipole parameter is true |
803 | > | // we only call setAccumulateBoxDipole if the accumulateBoxDipole |
804 | > | // parameter is true |
805 | calcBoxDipole_ = false; | |
806 | if ( simParams_->haveAccumulateBoxDipole() ) | |
807 | if ( simParams_->getAccumulateBoxDipole() ) { | |
# | Line 875 | Line 895 | namespace OpenMD { | |
895 | ||
896 | ||
897 | void SimInfo::prepareTopology() { | |
878 | – | int nExclude, nOneTwo, nOneThree, nOneFour; |
898 | ||
899 | //calculate mass ratio of cutoff group | |
900 | SimInfo::MoleculeIterator mi; | |
# | Line 922 | Line 941 | namespace OpenMD { | |
941 | } | |
942 | } | |
943 | ||
925 | – | //scan topology |
926 | – | |
927 | – | nExclude = excludedInteractions_.getSize(); |
928 | – | nOneTwo = oneTwoInteractions_.getSize(); |
929 | – | nOneThree = oneThreeInteractions_.getSize(); |
930 | – | nOneFour = oneFourInteractions_.getSize(); |
931 | – | |
932 | – | int* excludeList = excludedInteractions_.getPairList(); |
933 | – | int* oneTwoList = oneTwoInteractions_.getPairList(); |
934 | – | int* oneThreeList = oneThreeInteractions_.getPairList(); |
935 | – | int* oneFourList = oneFourInteractions_.getPairList(); |
936 | – | |
944 | topologyDone_ = true; | |
945 | } | |
946 | ||
# | Line 979 | Line 986 | namespace OpenMD { | |
986 | ||
987 | for (mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { | |
988 | ||
989 | < | for (atom = mol->beginAtom(atomIter); atom != NULL; atom = mol->nextAtom(atomIter)) { |
989 | > | for (atom = mol->beginAtom(atomIter); atom != NULL; |
990 | > | atom = mol->nextAtom(atomIter)) { |
991 | atom->setSnapshotManager(sman_); | |
992 | } | |
993 | ||
994 | < | for (rb = mol->beginRigidBody(rbIter); rb != NULL; rb = mol->nextRigidBody(rbIter)) { |
994 | > | for (rb = mol->beginRigidBody(rbIter); rb != NULL; |
995 | > | rb = mol->nextRigidBody(rbIter)) { |
996 | rb->setSnapshotManager(sman_); | |
997 | } | |
998 | ||
999 | < | for (cg = mol->beginCutoffGroup(cgIter); cg != NULL; cg = mol->nextCutoffGroup(cgIter)) { |
999 | > | for (cg = mol->beginCutoffGroup(cgIter); cg != NULL; |
1000 | > | cg = mol->nextCutoffGroup(cgIter)) { |
1001 | cg->setSnapshotManager(sman_); | |
1002 | } | |
1003 | } | |
# | Line 1002 | Line 1012 | namespace OpenMD { | |
1012 | ||
1013 | ||
1014 | StuntDouble* SimInfo::getIOIndexToIntegrableObject(int index) { | |
1015 | < | return IOIndexToIntegrableObject.at(index); |
1015 | > | if (index >= int(IOIndexToIntegrableObject.size())) { |
1016 | > | sprintf(painCave.errMsg, |
1017 | > | "SimInfo::getIOIndexToIntegrableObject Error: Integrable Object\n" |
1018 | > | "\tindex exceeds number of known objects!\n"); |
1019 | > | painCave.isFatal = 1; |
1020 | > | simError(); |
1021 | > | return NULL; |
1022 | > | } else |
1023 | > | return IOIndexToIntegrableObject.at(index); |
1024 | } | |
1025 | ||
1026 | void SimInfo::setIOIndexToIntegrableObject(const vector<StuntDouble*>& v) { | |
1027 | IOIndexToIntegrableObject= v; | |
1028 | } | |
1011 | – | /* |
1012 | – | void SimInfo::setStuntDoubleFromGlobalIndex(vector<StuntDouble*> v) { |
1013 | – | assert( v.size() == nAtoms_ + nRigidBodies_); |
1014 | – | sdByGlobalIndex_ = v; |
1015 | – | } |
1029 | ||
1017 | – | StuntDouble* SimInfo::getStuntDoubleFromGlobalIndex(int index) { |
1018 | – | //assert(index < nAtoms_ + nRigidBodies_); |
1019 | – | return sdByGlobalIndex_.at(index); |
1020 | – | } |
1021 | – | */ |
1030 | int SimInfo::getNGlobalConstraints() { | |
1031 | int nGlobalConstraints; | |
1032 | #ifdef IS_MPI | |
1033 | < | MPI_Allreduce(&nConstraints_, &nGlobalConstraints, 1, MPI_INT, MPI_SUM, |
1034 | < | MPI_COMM_WORLD); |
1033 | > | MPI::COMM_WORLD.Allreduce(&nConstraints_, &nGlobalConstraints, 1, |
1034 | > | MPI::INT, MPI::SUM); |
1035 | #else | |
1036 | nGlobalConstraints = nConstraints_; | |
1037 | #endif |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |