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

Comparing trunk/src/brains/SimInfo.cpp (file contents):
Revision 1953 by gezelter, Thu Dec 5 18:19:26 2013 UTC vs.
Revision 1987 by gezelter, Thu Apr 17 19:07:31 2014 UTC

# Line 74 | Line 74 | namespace OpenMD {
74      nGlobalMols_(0), nGlobalAtoms_(0), nGlobalCutoffGroups_(0),
75      nGlobalIntegrableObjects_(0), nGlobalRigidBodies_(0),
76      nGlobalFluctuatingCharges_(0), nGlobalBonds_(0), nGlobalBends_(0),
77 <    nGlobalTorsions_(0), nGlobalInversions_(0), nAtoms_(0), nBonds_(0),
78 <    nBends_(0), nTorsions_(0), nInversions_(0), nRigidBodies_(0),
79 <    nIntegrableObjects_(0), nCutoffGroups_(0), nConstraints_(0),
80 <    nFluctuatingCharges_(0), sman_(NULL), topologyDone_(false),
81 <    calcBoxDipole_(false), useAtomicVirial_(true) {    
77 >    nGlobalTorsions_(0), nGlobalInversions_(0), nGlobalConstraints_(0),
78 >    nAtoms_(0), nBonds_(0), nBends_(0), nTorsions_(0), nInversions_(0),
79 >    nRigidBodies_(0), nIntegrableObjects_(0), nCutoffGroups_(0),
80 >    nConstraints_(0), nFluctuatingCharges_(0), sman_(NULL),
81 >    topologyDone_(false), calcBoxDipole_(false), useAtomicVirial_(true),
82 >    hasNGlobalConstraints_(false) {    
83      
84      MoleculeStamp* molStamp;
85      int nMolWithSameStamp;
# Line 281 | Line 282 | namespace OpenMD {
282      ndf_local -= nConstraints_;
283  
284   #ifdef IS_MPI
285 <    MPI::COMM_WORLD.Allreduce(&ndf_local, &ndf_, 1, MPI::INT,MPI::SUM);
286 <    MPI::COMM_WORLD.Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1,
287 <                              MPI::INT, MPI::SUM);
285 >    MPI_Allreduce(&ndf_local, &ndf_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
286 >    MPI_Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1,
287 >      MPI_INT, MPI_SUM, MPI_COMM_WORLD);
288   #else
289      ndf_ = ndf_local;
290      nGlobalFluctuatingCharges_ = nfq_local;
# Line 297 | Line 298 | namespace OpenMD {
298  
299    int SimInfo::getFdf() {
300   #ifdef IS_MPI
301 <    MPI::COMM_WORLD.Allreduce(&fdf_local, &fdf_, 1, MPI::INT, MPI::SUM);
301 >    MPI_Allreduce(&fdf_local, &fdf_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
302   #else
303      fdf_ = fdf_local;
304   #endif
# Line 353 | Line 354 | namespace OpenMD {
354      }
355      
356   #ifdef IS_MPI
357 <    MPI::COMM_WORLD.Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI::INT, MPI::SUM);
357 >    MPI_Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
358   #else
359      ndfRaw_ = ndfRaw_local;
360   #endif
# Line 364 | Line 365 | namespace OpenMD {
365  
366      ndfTrans_local = 3 * nIntegrableObjects_ - nConstraints_;
367  
367
368   #ifdef IS_MPI
369 <    MPI::COMM_WORLD.Allreduce(&ndfTrans_local, &ndfTrans_, 1,
370 <                              MPI::INT, MPI::SUM);
369 >    MPI_Allreduce(&ndfTrans_local, &ndfTrans_, 1, MPI_INT, MPI_SUM,
370 >                  MPI_COMM_WORLD);
371   #else
372      ndfTrans_ = ndfTrans_local;
373   #endif
374  
375      ndfTrans_ = ndfTrans_ - 3 - nZconstraint_;
376
376    }
377  
378    void SimInfo::addInteractionPairs(Molecule* mol) {
# Line 710 | Line 709 | namespace OpenMD {
709     */
710    void SimInfo::update() {  
711      setupSimVariables();
712 +    calcNConstraints();
713      calcNdf();
714      calcNdfRaw();
715      calcNdfTrans();
# Line 749 | Line 749 | namespace OpenMD {
749      // count_local holds the number of found types on this processor
750      int count_local = foundTypes.size();
751  
752 <    int nproc = MPI::COMM_WORLD.Get_size();
752 >    int nproc;
753 >    MPI_Comm_size( MPI_COMM_WORLD, &nproc);
754  
755      // we need arrays to hold the counts and displacement vectors for
756      // all processors
# Line 757 | Line 758 | namespace OpenMD {
758      vector<int> disps(nproc, 0);
759  
760      // fill the counts array
761 <    MPI::COMM_WORLD.Allgather(&count_local, 1, MPI::INT, &counts[0],
762 <                              1, MPI::INT);
761 >    MPI_Allgather(&count_local, 1, MPI_INT, &counts[0],
762 >                  1, MPI_INT, MPI_COMM_WORLD);
763    
764      // use the processor counts to compute the displacement array
765      disps[0] = 0;    
# Line 772 | Line 773 | namespace OpenMD {
773      vector<int> ftGlobal(totalCount);
774      
775      // now spray out the foundTypes to all the other processors:    
776 <    MPI::COMM_WORLD.Allgatherv(&foundTypes[0], count_local, MPI::INT,
777 <                               &ftGlobal[0], &counts[0], &disps[0],
778 <                               MPI::INT);
776 >    MPI_Allgatherv(&foundTypes[0], count_local, MPI_INT,
777 >                   &ftGlobal[0], &counts[0], &disps[0],
778 >                   MPI_INT, MPI_COMM_WORLD);
779  
780      vector<int>::iterator j;
781  
# Line 838 | Line 839 | namespace OpenMD {
839      }
840  
841   #ifdef IS_MPI
842 <    bool temp;
842 >    int temp;
843 >
844      temp = usesDirectional;
845 <    MPI::COMM_WORLD.Allreduce(&temp, &usesDirectionalAtoms_, 1, MPI::BOOL,
846 <                              MPI::LOR);
845 <        
846 <    temp = usesMetallic;
847 <    MPI::COMM_WORLD.Allreduce(&temp, &usesMetallicAtoms_, 1, MPI::BOOL,
848 <                              MPI::LOR);
845 >    MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD);
846 >    usesDirectionalAtoms_ = (temp == 0) ? false : true;
847      
848 +    temp = usesMetallic;
849 +    MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD);
850 +    usesMetallicAtoms_ = (temp == 0) ? false : true;
851 +
852      temp = usesElectrostatic;
853 <    MPI::COMM_WORLD.Allreduce(&temp, &usesElectrostaticAtoms_, 1, MPI::BOOL,
854 <                              MPI::LOR);
853 >    MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD);
854 >    usesElectrostaticAtoms_ = (temp == 0) ? false : true;
855  
856      temp = usesFluctuatingCharges;
857 <    MPI::COMM_WORLD.Allreduce(&temp, &usesFluctuatingCharges_, 1, MPI::BOOL,
858 <                              MPI::LOR);
857 >    MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD);
858 >    usesFluctuatingCharges_ = (temp == 0) ? false : true;
859   #else
860  
861      usesDirectionalAtoms_ = usesDirectional;
# Line 1068 | Line 1070 | namespace OpenMD {
1070      IOIndexToIntegrableObject= v;
1071    }
1072  
1073 <  int SimInfo::getNGlobalConstraints() {
1072 <    int nGlobalConstraints;
1073 >  void SimInfo::calcNConstraints() {
1074   #ifdef IS_MPI
1075 <    MPI::COMM_WORLD.Allreduce(&nConstraints_, &nGlobalConstraints, 1,
1076 <                              MPI::INT, MPI::SUM);
1075 >    MPI_Allreduce(&nConstraints_, &nGlobalConstraints_, 1,  
1076 >                  MPI_INT, MPI_SUM, MPI_COMM_WORLD);
1077   #else
1078 <    nGlobalConstraints =  nConstraints_;
1078 >    nGlobalConstraints_ =  nConstraints_;
1079   #endif
1079    return nGlobalConstraints;
1080    }
1081  
1082   }//end namespace OpenMD

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines