| 55 | 
  | 
  void ForceMatrixDecomposition::distributeInitialData() { | 
| 56 | 
  | 
    snap_ = sman_->getCurrentSnapshot(); | 
| 57 | 
  | 
    storageLayout_ = sman_->getStorageLayout(); | 
| 58 | 
+ | 
    ff_ = info_->getForceField(); | 
| 59 | 
  | 
    nLocal_ = snap_->getNumberOfAtoms(); | 
| 60 | 
  | 
    nGroups_ = snap_->getNumberOfCutoffGroups(); | 
| 61 | 
  | 
 | 
| 62 | 
  | 
    // gather the information for atomtype IDs (atids): | 
| 63 | 
< | 
    vector<int> identsLocal = info_->getIdentArray(); | 
| 63 | 
> | 
    identsLocal = info_->getIdentArray(); | 
| 64 | 
  | 
    AtomLocalToGlobal = info_->getGlobalAtomIndices(); | 
| 65 | 
  | 
    cgLocalToGlobal = info_->getGlobalGroupIndices(); | 
| 66 | 
  | 
    vector<int> globalGroupMembership = info_->getGlobalGroupMembership(); | 
| 148 | 
  | 
    skipsForRowAtom.clear(); | 
| 149 | 
  | 
    skipsForRowAtom.reserve(nAtomsInRow_); | 
| 150 | 
  | 
    for (int i = 0; i < nAtomsInRow_; i++) { | 
| 151 | 
< | 
      int iglob = AtomColToGlobal[i]; | 
| 151 | 
> | 
      int iglob = AtomRowToGlobal[i]; | 
| 152 | 
  | 
      for (int j = 0; j < nAtomsInCol_; j++) { | 
| 153 | 
< | 
        int jglob = AtomRowToGlobal[j];         | 
| 153 | 
> | 
        int jglob = AtomColToGlobal[j];         | 
| 154 | 
  | 
        if (excludes.hasPair(iglob, jglob))  | 
| 155 | 
  | 
          skipsForRowAtom[i].push_back(j);        | 
| 156 | 
  | 
      }       | 
| 159 | 
  | 
    toposForRowAtom.clear(); | 
| 160 | 
  | 
    toposForRowAtom.reserve(nAtomsInRow_); | 
| 161 | 
  | 
    for (int i = 0; i < nAtomsInRow_; i++) { | 
| 162 | 
< | 
      int iglob = AtomColToGlobal[i]; | 
| 162 | 
> | 
      int iglob = AtomRowToGlobal[i]; | 
| 163 | 
  | 
      int nTopos = 0; | 
| 164 | 
  | 
      for (int j = 0; j < nAtomsInCol_; j++) { | 
| 165 | 
< | 
        int jglob = AtomRowToGlobal[j];         | 
| 165 | 
> | 
        int jglob = AtomColToGlobal[j];         | 
| 166 | 
  | 
        if (oneTwo.hasPair(iglob, jglob)) { | 
| 167 | 
  | 
          toposForRowAtom[i].push_back(j); | 
| 168 | 
  | 
          topoDistRow[i][nTopos] = 1; | 
| 541 | 
  | 
    InteractionData idat; | 
| 542 | 
  | 
 | 
| 543 | 
  | 
#ifdef IS_MPI | 
| 544 | 
+ | 
     | 
| 545 | 
+ | 
    idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]),  | 
| 546 | 
+ | 
                             ff_->getAtomType(identsCol[atom2]) ); | 
| 547 | 
+ | 
 | 
| 548 | 
  | 
    if (storageLayout_ & DataStorage::dslAmat) { | 
| 549 | 
  | 
      idat.A1 = &(atomRowData.aMat[atom1]); | 
| 550 | 
  | 
      idat.A2 = &(atomColData.aMat[atom2]); | 
| 571 | 
  | 
    } | 
| 572 | 
  | 
 | 
| 573 | 
  | 
#else | 
| 574 | 
+ | 
 | 
| 575 | 
+ | 
    idat.atypes = make_pair( ff_->getAtomType(identsLocal[atom1]),  | 
| 576 | 
+ | 
                             ff_->getAtomType(identsLocal[atom2]) ); | 
| 577 | 
+ | 
 | 
| 578 | 
  | 
    if (storageLayout_ & DataStorage::dslAmat) { | 
| 579 | 
  | 
      idat.A1 = &(snap_->atomData.aMat[atom1]); | 
| 580 | 
  | 
      idat.A2 = &(snap_->atomData.aMat[atom2]); | 
| 607 | 
  | 
 | 
| 608 | 
  | 
    InteractionData idat; | 
| 609 | 
  | 
#ifdef IS_MPI | 
| 610 | 
+ | 
    idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]),  | 
| 611 | 
+ | 
                             ff_->getAtomType(identsCol[atom2]) ); | 
| 612 | 
+ | 
 | 
| 613 | 
  | 
    if (storageLayout_ & DataStorage::dslElectroFrame) { | 
| 614 | 
  | 
      idat.eFrame1 = &(atomRowData.electroFrame[atom1]); | 
| 615 | 
  | 
      idat.eFrame2 = &(atomColData.electroFrame[atom2]); | 
| 623 | 
  | 
      idat.t2 = &(atomColData.force[atom2]); | 
| 624 | 
  | 
    } | 
| 625 | 
  | 
#else | 
| 626 | 
+ | 
    idat.atypes = make_pair( ff_->getAtomType(identsLocal[atom1]),  | 
| 627 | 
+ | 
                             ff_->getAtomType(identsLocal[atom2]) ); | 
| 628 | 
+ | 
 | 
| 629 | 
  | 
    if (storageLayout_ & DataStorage::dslElectroFrame) { | 
| 630 | 
  | 
      idat.eFrame1 = &(snap_->atomData.electroFrame[atom1]); | 
| 631 | 
  | 
      idat.eFrame2 = &(snap_->atomData.electroFrame[atom2]); | 
| 638 | 
  | 
      idat.t1 = &(snap_->atomData.force[atom1]); | 
| 639 | 
  | 
      idat.t2 = &(snap_->atomData.force[atom2]); | 
| 640 | 
  | 
    } | 
| 641 | 
< | 
#endif | 
| 627 | 
< | 
     | 
| 641 | 
> | 
#endif     | 
| 642 | 
  | 
  } | 
| 643 | 
  | 
 | 
| 630 | 
– | 
 | 
| 631 | 
– | 
 | 
| 632 | 
– | 
 | 
| 644 | 
  | 
  /* | 
| 645 | 
  | 
   * buildNeighborList | 
| 646 | 
  | 
   * |