244 const unsigned int index_x =
static_cast<int>(std::floor((R(0) -
xbegin_m) /
hx_m));
245 const double lever_x = (R(0) -
xbegin_m) /
hx_m - index_x;
247 const unsigned int index_y =
static_cast<int>(std::floor((R(1) -
ybegin_m) /
hy_m));
248 const double lever_y = (R(1) -
ybegin_m) /
hy_m - index_y;
250 const unsigned int index_z = (int)std::floor((R(2) -
zbegin_m)/
hz_m);
251 const double lever_z = (R(2) -
zbegin_m) /
hz_m - index_z;
262 const unsigned int deltaZ = 1;
264 const unsigned long index1 = index_x * deltaX + index_y * deltaY + index_z * deltaZ;
266 E(0) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEx_m[index1 ]
267 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEx_m[index1 + deltaX ]
268 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthEx_m[index1 + deltaY ]
269 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthEx_m[index1 + deltaX + deltaY ]
270 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthEx_m[index1 + deltaZ]
271 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthEx_m[index1 + deltaX + deltaZ]
272 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthEx_m[index1 + deltaY + deltaZ]
273 + lever_x * lever_y * lever_z *
FieldstrengthEx_m[index1 + deltaX + deltaY + deltaZ];
275 E(1) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEy_m[index1 ]
276 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEy_m[index1 + deltaX ]
277 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthEy_m[index1 + deltaY ]
278 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthEy_m[index1 + deltaX + deltaY ]
279 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthEy_m[index1 + deltaZ]
280 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthEy_m[index1 + deltaX + deltaZ]
281 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthEy_m[index1 + deltaY + deltaZ]
282 + lever_x * lever_y * lever_z *
FieldstrengthEy_m[index1 + deltaX + deltaY + deltaZ];
284 E(2) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEz_m[index1 ]
285 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthEz_m[index1 + deltaX ]
286 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthEz_m[index1 + deltaY ]
287 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthEz_m[index1 + deltaX + deltaY ]
288 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthEz_m[index1 + deltaZ]
289 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthEz_m[index1 + deltaX + deltaZ]
290 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthEz_m[index1 + deltaY + deltaZ]
291 + lever_x * lever_y * lever_z *
FieldstrengthEz_m[index1 + deltaX + deltaY + deltaZ];
293 B(0) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBx_m[index1 ]
294 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBx_m[index1 + deltaX ]
295 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthBx_m[index1 + deltaY ]
296 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthBx_m[index1 + deltaX + deltaY ]
297 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthBx_m[index1 + deltaZ]
298 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthBx_m[index1 + deltaX + deltaZ]
299 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthBx_m[index1 + deltaY + deltaZ]
300 + lever_x * lever_y * lever_z *
FieldstrengthBx_m[index1 + deltaX + deltaY + deltaZ];
302 B(1) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBy_m[index1 ]
303 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBy_m[index1 + deltaX ]
304 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthBy_m[index1 + deltaY ]
305 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthBy_m[index1 + deltaX + deltaY ]
306 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthBy_m[index1 + deltaZ]
307 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthBy_m[index1 + deltaX + deltaZ]
308 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthBy_m[index1 + deltaY + deltaZ]
309 + lever_x * lever_y * lever_z *
FieldstrengthBy_m[index1 + deltaX + deltaY + deltaZ];
311 B(2) += (1.0 - lever_x) * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBz_m[index1 ]
312 + lever_x * (1.0 - lever_y) * (1.0 - lever_z) *
FieldstrengthBz_m[index1 + deltaX ]
313 + (1.0 - lever_x) * lever_y * (1.0 - lever_z) *
FieldstrengthBz_m[index1 + deltaY ]
314 + lever_x * lever_y * (1.0 - lever_z) *
FieldstrengthBz_m[index1 + deltaX + deltaY ]
315 + (1.0 - lever_x) * (1.0 - lever_y) * lever_z *
FieldstrengthBz_m[index1 + deltaZ]
316 + lever_x * (1.0 - lever_y) * lever_z *
FieldstrengthBz_m[index1 + deltaX + deltaZ]
317 + (1.0 - lever_x) * lever_y * lever_z *
FieldstrengthBz_m[index1 + deltaY + deltaZ]
318 + lever_x * lever_y * lever_z *
FieldstrengthBz_m[index1 + deltaX + deltaY + deltaZ];
367 F[i].first =
hz_m * i;
372 if (opal->isOptimizerRun())
return;
375 opal->getAuxiliaryOutputDirectory(),
378 std::ofstream out(fname);
382 out << std::setw(16) << std::setprecision(8) << F[i].first
383 << std::setw(16) << std::setprecision(8) << E(0)
384 << std::setw(16) << std::setprecision(8) << E(1)
385 << std::setw(16) << std::setprecision(8) << E(2)
386 << std::setw(16) << std::setprecision(8) << B(0)
387 << std::setw(16) << std::setprecision(8) << B(1)
388 << std::setw(16) << std::setprecision(8) << B(2) <<
"\n";
void write3DField(unsigned int nx, unsigned int ny, unsigned int nz, const std::pair< double, double > &xrange, const std::pair< double, double > &yrange, const std::pair< double, double > &zrange, const std::vector< Vector_t > &ef, const std::vector< Vector_t > &bf)