98 NAMD_bug(
"PmePencilXYZ::submitReductions, pmeKSpaceCompute not initialized");
105 double energy_F = energy;
114 scale1 = elecLambdaUp;
115 scale2 = elecLambda2Up;
123 scale1 = elecLambdaDown;
124 scale2 = elecLambda2Down;
132 scale1 = 1.0 - elecLambdaUp;
133 scale2 = 1.0 - elecLambda2Up;
141 scale1 = 1.0 - elecLambdaDown;
142 scale2 = 1.0 - elecLambda2Down;
152 scale1 = -1.0 * (elecLambdaUp + elecLambdaDown - 1.0);
153 scale2 = -1.0 * (elecLambda2Up + elecLambda2Down - 1.0);
160 for (
size_t i = 0; i < 9; ++i) {
166 double energy_TI_1 = 0.0;
167 double energy_TI_2 = 0.0;
173 scale1 = elecLambdaUp;
174 energy_TI_1 = energy;
180 scale1 = elecLambdaDown;
181 energy_TI_2 = energy;
187 scale1 = 1.0 - elecLambdaUp;
188 energy_TI_1 = -1.0 * energy;
194 scale1 = 1.0 - elecLambdaDown;
195 energy_TI_2 = -1.0 * energy;
202 scale1 = -1.0 * (elecLambdaUp + elecLambdaDown - 1.0);
203 energy_TI_1 = -1.0 * energy;
204 energy_TI_2 = -1.0 * energy;
208 for (
size_t i = 0; i < 9; ++i) {
218 reduction->
item(REDUCTION_VIRIAL_SLOW_XX) += virial[0];
219 reduction->
item(REDUCTION_VIRIAL_SLOW_XY) += virial[1];
220 reduction->
item(REDUCTION_VIRIAL_SLOW_XZ) += virial[2];
221 reduction->
item(REDUCTION_VIRIAL_SLOW_YX) += virial[3];
222 reduction->
item(REDUCTION_VIRIAL_SLOW_YY) += virial[4];
223 reduction->
item(REDUCTION_VIRIAL_SLOW_YZ) += virial[5];
224 reduction->
item(REDUCTION_VIRIAL_SLOW_ZX) += virial[6];
225 reduction->
item(REDUCTION_VIRIAL_SLOW_ZY) += virial[7];
226 reduction->
item(REDUCTION_VIRIAL_SLOW_ZZ) += virial[8];
230 bool ready_to_submit =
true;
235 if (ready_to_submit) {
virtual void submit(void)=0
SimParameters * simParameters
const unsigned int NUM_GRID_MAX
std::array< int, NUM_GRID_MAX > energyReady
std::array< PmeKSpaceCompute *, NUM_GRID_MAX > pmeKSpaceComputes
void NAMD_bug(const char *err_msg)