| 523 |  | atomRowData.skippedCharge.end(), 0.0); | 
| 524 |  | fill(atomColData.skippedCharge.begin(), | 
| 525 |  | atomColData.skippedCharge.end(), 0.0); | 
| 526 | + | } | 
| 527 | + |  | 
| 528 | + | if (storageLayout_ & DataStorage::dslFlucQForce) { | 
| 529 | + | fill(atomRowData.flucQFrc.begin(), | 
| 530 | + | atomRowData.flucQFrc.end(), 0.0); | 
| 531 | + | fill(atomColData.flucQFrc.begin(), | 
| 532 | + | atomColData.flucQFrc.end(), 0.0); | 
| 533 |  | } | 
| 534 |  |  | 
| 535 |  | if (storageLayout_ & DataStorage::dslElectricField) { | 
| 538 |  | fill(atomColData.electricField.begin(), | 
| 539 |  | atomColData.electricField.end(), V3Zero); | 
| 540 |  | } | 
| 541 | + |  | 
| 542 |  | if (storageLayout_ & DataStorage::dslFlucQForce) { | 
| 543 |  | fill(atomRowData.flucQFrc.begin(), atomRowData.flucQFrc.end(), | 
| 544 |  | 0.0); | 
| 1013 |  | if (storageLayout_ & DataStorage::dslSkippedCharge) { | 
| 1014 |  | idat.skippedCharge1 = &(atomRowData.skippedCharge[atom1]); | 
| 1015 |  | idat.skippedCharge2 = &(atomColData.skippedCharge[atom2]); | 
| 1016 | + | } | 
| 1017 | + |  | 
| 1018 | + | if (storageLayout_ & DataStorage::dslFlucQPosition) { | 
| 1019 | + | idat.flucQ1 = &(atomRowData.flucQPos[atom1]); | 
| 1020 | + | idat.flucQ2 = &(atomColData.flucQPos[atom2]); | 
| 1021 |  | } | 
| 1022 |  |  | 
| 1023 |  | #else | 
| 1070 |  | idat.skippedCharge1 = &(snap_->atomData.skippedCharge[atom1]); | 
| 1071 |  | idat.skippedCharge2 = &(snap_->atomData.skippedCharge[atom2]); | 
| 1072 |  | } | 
| 1073 | + |  | 
| 1074 | + | if (storageLayout_ & DataStorage::dslFlucQPosition) { | 
| 1075 | + | idat.flucQ1 = &(snap_->atomData.flucQPos[atom1]); | 
| 1076 | + | idat.flucQ2 = &(snap_->atomData.flucQPos[atom2]); | 
| 1077 | + | } | 
| 1078 | + |  | 
| 1079 |  | #endif | 
| 1080 |  | } | 
| 1081 |  |  | 
| 1088 |  | atomRowData.force[atom1] += *(idat.f1); | 
| 1089 |  | atomColData.force[atom2] -= *(idat.f1); | 
| 1090 |  |  | 
| 1091 | + | if (storageLayout_ & DataStorage::dslFlucQForce) { | 
| 1092 | + | atomRowData.flucQFrc[atom1] += *(idat.dVdFQ1); | 
| 1093 | + | atomColData.flucQFrc[atom2] += *(idat.dVdFQ2); | 
| 1094 | + | } | 
| 1095 | + |  | 
| 1096 | + | if (storageLayout_ & DataStorage::dslElectricField) { | 
| 1097 | + | atomRowData.electricField[atom1] += *(idat.eField1); | 
| 1098 | + | atomColData.electricField[atom2] += *(idat.eField2); | 
| 1099 | + | } | 
| 1100 | + |  | 
| 1101 |  | // should particle pot be done here also? | 
| 1102 |  | #else | 
| 1103 |  | pairwisePot += *(idat.pot); | 
| 1109 |  | snap_->atomData.particlePot[atom1] += *(idat.vpair) * *(idat.sw); | 
| 1110 |  | snap_->atomData.particlePot[atom2] -= *(idat.vpair) * *(idat.sw); | 
| 1111 |  | } | 
| 1112 | < |  | 
| 1112 | > |  | 
| 1113 | > | if (storageLayout_ & DataStorage::dslFlucQForce) { | 
| 1114 | > | snap_->atomData.flucQFrc[atom1] += *(idat.dVdFQ1); | 
| 1115 | > | snap_->atomData.flucQFrc[atom2] -= *(idat.dVdFQ2); | 
| 1116 | > | } | 
| 1117 | > |  | 
| 1118 | > | if (storageLayout_ & DataStorage::dslElectricField) { | 
| 1119 | > | snap_->atomData.electricField[atom1] += *(idat.eField1); | 
| 1120 | > | snap_->atomData.electricField[atom2] += *(idat.eField2); | 
| 1121 | > | } | 
| 1122 | > |  | 
| 1123 |  | #endif | 
| 1124 |  |  | 
| 1125 |  | } |