27 [[maybe_unused]]
const double*
const __restrict__ Q,
28 [[maybe_unused]]
const tarch::la::Vector<DIMENSIONS, double>& x,
29 [[maybe_unused]]
const tarch::la::Vector<DIMENSIONS, double>& h,
30 [[maybe_unused]]
const double t,
31 [[maybe_unused]]
double*
const __restrict__ S
33 const double exponentialXTerm = tarch::la::pow((x(0) -
xZero), 2) / (2 *
sigmaXSq);
34 const double exponentialYTerm = tarch::la::pow((x(1) -
zZero), 2) / (2 *
sigmaZSq);
35 const double exponentialTTerm = tarch::la::pow((t -
tZero), 2) / (2 *
sigmaTSq);
36 const double cosTerm = std::cos(
kX * x(0)) * std::cos(
omega * t);
39 assertion1(!std::isnan(exponentialXTerm), exponentialXTerm);
40 assertion1(!std::isnan(exponentialYTerm), exponentialYTerm);
41 assertion1(!std::isnan(exponentialTTerm), exponentialTTerm);
43 assertion1(!std::isnan(cosTerm), cosTerm);
47 S[2] += Q[0] *
FZero * tarch::la::pow(tarch::la::E, -exponentialXTerm - exponentialYTerm - exponentialTTerm)