# | Line 59 | Line 59 | namespace OpenMD { | |
---|---|---|
59 | nLocal_ = snap_->getNumberOfAtoms(); | |
60 | ||
61 | nGroups_ = info_->getNLocalCutoffGroups(); | |
62 | – | cerr << "in dId, nGroups = " << nGroups_ << "\n"; |
62 | // gather the information for atomtype IDs (atids): | |
63 | idents = info_->getIdentArray(); | |
64 | AtomLocalToGlobal = info_->getGlobalAtomIndices(); | |
65 | cgLocalToGlobal = info_->getGlobalGroupIndices(); | |
66 | vector<int> globalGroupMembership = info_->getGlobalGroupMembership(); | |
67 | + | |
68 | massFactors = info_->getMassFactors(); | |
69 | + | |
70 | PairList excludes = info_->getExcludedInteractions(); | |
71 | PairList oneTwo = info_->getOneTwoInteractions(); | |
72 | PairList oneThree = info_->getOneThreeInteractions(); | |
# | Line 225 | Line 226 | namespace OpenMD { | |
226 | } | |
227 | ||
228 | void ForceMatrixDecomposition::createGtypeCutoffMap() { | |
229 | < | |
229 | > | |
230 | RealType tol = 1e-6; | |
231 | RealType rc; | |
232 | int atid; | |
# | Line 303 | Line 304 | namespace OpenMD { | |
304 | vector<RealType> groupCutoff(nGroups_, 0.0); | |
305 | groupToGtype.resize(nGroups_); | |
306 | ||
306 | – | cerr << "nGroups = " << nGroups_ << "\n"; |
307 | for (int cg1 = 0; cg1 < nGroups_; cg1++) { | |
308 | ||
309 | groupCutoff[cg1] = 0.0; | |
# | Line 332 | Line 332 | namespace OpenMD { | |
332 | } | |
333 | #endif | |
334 | ||
335 | – | cerr << "gTypeCutoffs.size() = " << gTypeCutoffs.size() << "\n"; |
335 | // Now we find the maximum group cutoff value present in the simulation | |
336 | ||
337 | RealType groupMax = *max_element(gTypeCutoffs.begin(), gTypeCutoffs.end()); | |
# | Line 453 | Line 452 | namespace OpenMD { | |
452 | atomRowData.functionalDerivative.end(), 0.0); | |
453 | fill(atomColData.functionalDerivative.begin(), | |
454 | atomColData.functionalDerivative.end(), 0.0); | |
455 | + | } |
456 | + | |
457 | + | if (storageLayout_ & DataStorage::dslSkippedCharge) { |
458 | + | fill(atomRowData.skippedCharge.begin(), atomRowData.skippedCharge.end(), 0.0); |
459 | + | fill(atomColData.skippedCharge.begin(), atomColData.skippedCharge.end(), 0.0); |
460 | } | |
461 | ||
462 | #else | |
# | Line 474 | Line 478 | namespace OpenMD { | |
478 | fill(snap_->atomData.functionalDerivative.begin(), | |
479 | snap_->atomData.functionalDerivative.end(), 0.0); | |
480 | } | |
481 | + | if (storageLayout_ & DataStorage::dslSkippedCharge) { |
482 | + | fill(snap_->atomData.skippedCharge.begin(), |
483 | + | snap_->atomData.skippedCharge.end(), 0.0); |
484 | + | } |
485 | #endif | |
486 | ||
487 | } | |
# | Line 875 | Line 883 | namespace OpenMD { | |
883 | snap_->atomData.force[atom1] += *(idat.f1); | |
884 | snap_->atomData.force[atom2] -= *(idat.f1); | |
885 | #endif | |
886 | < | |
886 | > | |
887 | } | |
888 | ||
889 | ||
890 | void ForceMatrixDecomposition::fillSkipData(InteractionData &idat, | |
891 | int atom1, int atom2) { | |
884 | – | // Still Missing:: skippedCharge fill must be added to DataStorage |
892 | #ifdef IS_MPI | |
893 | idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]), | |
894 | ff_->getAtomType(identsCol[atom2]) ); | |
# | Line 890 | Line 897 | namespace OpenMD { | |
897 | idat.eFrame1 = &(atomRowData.electroFrame[atom1]); | |
898 | idat.eFrame2 = &(atomColData.electroFrame[atom2]); | |
899 | } | |
900 | + | |
901 | if (storageLayout_ & DataStorage::dslTorque) { | |
902 | idat.t1 = &(atomRowData.torque[atom1]); | |
903 | idat.t2 = &(atomColData.torque[atom2]); | |
904 | } | |
905 | + | |
906 | + | if (storageLayout_ & DataStorage::dslSkippedCharge) { |
907 | + | idat.skippedCharge1 = &(atomRowData.skippedCharge[atom1]); |
908 | + | idat.skippedCharge2 = &(atomColData.skippedCharge[atom2]); |
909 | + | } |
910 | #else | |
911 | idat.atypes = make_pair( ff_->getAtomType(idents[atom1]), | |
912 | ff_->getAtomType(idents[atom2]) ); | |
# | Line 902 | Line 915 | namespace OpenMD { | |
915 | idat.eFrame1 = &(snap_->atomData.electroFrame[atom1]); | |
916 | idat.eFrame2 = &(snap_->atomData.electroFrame[atom2]); | |
917 | } | |
918 | + | |
919 | if (storageLayout_ & DataStorage::dslTorque) { | |
920 | idat.t1 = &(snap_->atomData.torque[atom1]); | |
921 | idat.t2 = &(snap_->atomData.torque[atom2]); | |
922 | } | |
923 | + | |
924 | + | if (storageLayout_ & DataStorage::dslSkippedCharge) { |
925 | + | idat.skippedCharge1 = &(snap_->atomData.skippedCharge[atom1]); |
926 | + | idat.skippedCharge2 = &(snap_->atomData.skippedCharge[atom2]); |
927 | + | } |
928 | #endif | |
929 | } | |
930 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |