40 const auto& ldom = this->
layout_mp->getLocalNDIndex();
41 const int nghost = this->
A_n.getNghost();
42 const auto aview = this->
A_n.getView();
43 const auto anp1view = this->
A_np1.getView();
44 const auto anm1view = this->
A_nm1.getView();
51 / (
static_cast<scalar>(Kokkos::pow(this->
hr_m[2] / this->
hr_m[0], 2))
52 +
static_cast<scalar>(Kokkos::pow(this->
hr_m[2] / this->
hr_m[1], 2))));
57 - (1 - 2 * calA) *
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[0], 2))
58 - (1 - 2 * calA) *
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[1], 2))
59 -
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[2], 2))),
60 .a2 =
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[0], 2)),
61 .a4 =
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[1], 2)),
62 .a6 =
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[2], 2))
63 - 2 * calA *
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[0], 2))
64 - 2 * calA *
static_cast<scalar>(Kokkos::pow(this->
dt / this->
hr_m[1], 2)),
65 .a8 =
static_cast<scalar>(Kokkos::pow(this->
dt, 2))};
67 true_nr += (nghost * 2);
68 constexpr uint32_t one_if_absorbing_otherwise_0 =
75 uint32_t ig = i + ldom.first()[0];
76 uint32_t jg = j + ldom.first()[1];
77 uint32_t kg = k + ldom.first()[2];
80 uint32_t(ig == one_if_absorbing_otherwise_0)
81 + (uint32_t(jg == one_if_absorbing_otherwise_0) << 1)
82 + (uint32_t(kg == one_if_absorbing_otherwise_0) << 2)
83 + (uint32_t(ig == true_nr[0] - one_if_absorbing_otherwise_0 - 1) << 3)
84 + (uint32_t(jg == true_nr[1] - one_if_absorbing_otherwise_0 - 1) << 4)
85 + (uint32_t(kg == true_nr[2] - one_if_absorbing_otherwise_0 - 1) << 5);
89 -anm1view(i, j, k) + ndisp.
a1 * aview(i, j, k)
91 * (calA * aview(i + 1, j, k - 1) + (1 - 2 * calA) * aview(i + 1, j, k)
92 + calA * aview(i + 1, j, k + 1))
94 * (calA * aview(i - 1, j, k - 1) + (1 - 2 * calA) * aview(i - 1, j, k)
95 + calA * aview(i - 1, j, k + 1))
97 * (calA * aview(i, j + 1, k - 1) + (1 - 2 * calA) * aview(i, j + 1, k)
98 + calA * aview(i, j + 1, k + 1))
100 * (calA * aview(i, j - 1, k - 1) + (1 - 2 * calA) * aview(i, j - 1, k)
101 + calA * aview(i, j - 1, k + 1))
102 + ndisp.
a6 * aview(i, j, k + 1) + ndisp.
a6 * aview(i, j, k - 1)
103 + ndisp.
a8 * source_view(i, j, k);
107 this->
A_np1.fillHalo();