| 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) {     | 
| 81 | 
> | 
    topologyDone_(false), calcBoxDipole_(false), calcBoxQuadrupole_(false), | 
| 82 | 
> | 
    useAtomicVirial_(true), hasNGlobalConstraints_(false) {     | 
| 83 | 
  | 
     | 
| 84 | 
  | 
    MoleculeStamp* molStamp; | 
| 85 | 
  | 
    int nMolWithSameStamp; | 
| 751 | 
  | 
 | 
| 752 | 
  | 
    int nproc; | 
| 753 | 
  | 
    MPI_Comm_size( MPI_COMM_WORLD, &nproc); | 
| 754 | 
– | 
    // int nproc = MPI::COMM_WORLD.Get_size(); | 
| 754 | 
  | 
 | 
| 755 | 
  | 
    // we need arrays to hold the counts and displacement vectors for | 
| 756 | 
  | 
    // all processors | 
| 760 | 
  | 
    // fill the counts array | 
| 761 | 
  | 
    MPI_Allgather(&count_local, 1, MPI_INT, &counts[0], | 
| 762 | 
  | 
                  1, MPI_INT, MPI_COMM_WORLD); | 
| 764 | 
– | 
    // MPI::COMM_WORLD.Allgather(&count_local, 1, MPI::INT, &counts[0], | 
| 765 | 
– | 
    //                           1, MPI::INT); | 
| 763 | 
  | 
   | 
| 764 | 
  | 
    // use the processor counts to compute the displacement array | 
| 765 | 
  | 
    disps[0] = 0;     | 
| 776 | 
  | 
    MPI_Allgatherv(&foundTypes[0], count_local, MPI_INT,  | 
| 777 | 
  | 
                   &ftGlobal[0], &counts[0], &disps[0],  | 
| 778 | 
  | 
                   MPI_INT, MPI_COMM_WORLD); | 
| 782 | 
– | 
    // MPI::COMM_WORLD.Allgatherv(&foundTypes[0], count_local, MPI::INT,  | 
| 783 | 
– | 
    //                            &ftGlobal[0], &counts[0], &disps[0],  | 
| 784 | 
– | 
    //                            MPI::INT); | 
| 779 | 
  | 
 | 
| 780 | 
  | 
    vector<int>::iterator j; | 
| 781 | 
  | 
 | 
| 821 | 
  | 
    if ( simParams_->haveAccumulateBoxDipole() )  | 
| 822 | 
  | 
      if ( simParams_->getAccumulateBoxDipole() ) { | 
| 823 | 
  | 
        calcBoxDipole_ = true;        | 
| 824 | 
+ | 
      } | 
| 825 | 
+ | 
    // we only call setAccumulateBoxQuadrupole if the accumulateBoxQuadrupole | 
| 826 | 
+ | 
    // parameter is true | 
| 827 | 
+ | 
    calcBoxQuadrupole_ = false; | 
| 828 | 
+ | 
    if ( simParams_->haveAccumulateBoxQuadrupole() )  | 
| 829 | 
+ | 
      if ( simParams_->getAccumulateBoxQuadrupole() ) { | 
| 830 | 
+ | 
        calcBoxQuadrupole_ = true;        | 
| 831 | 
  | 
      } | 
| 832 | 
  | 
     | 
| 833 | 
  | 
    set<AtomType*>::iterator i; |