Skip to content

Commit 3c2412b

Browse files
fix bug in minkowski currentAmpere kernal
1 parent b23904b commit 3c2412b

2 files changed

Lines changed: 15 additions & 16 deletions

File tree

src/engines/srpic.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -525,18 +525,18 @@ namespace ntt {
525525
const auto q0 = m_params.template get<real_t>("scales.q0");
526526
const auto n0 = m_params.template get<real_t>("scales.n0");
527527
const auto B0 = m_params.template get<real_t>("scales.B0");
528+
const auto ppc0 = m_params.template get<real_t>("scales.ppc0");
528529
const auto coeff = -dt * q0 * n0 / B0;
529530
if constexpr (M::CoordType == Coord::Cart) {
530531
// minkowski case
531-
const auto V0 = m_params.template get<real_t>("scales.V0");
532532

533533
Kokkos::parallel_for(
534534
"Ampere",
535535
domain.mesh.rangeActiveCells(),
536536
kernel::mink::CurrentsAmpere_kernel<M::Dim>(domain.fields.em,
537537
domain.fields.cur,
538-
coeff / V0,
539-
ONE / n0));
538+
coeff,
539+
ONE / ppc0));
540540
} else {
541541
auto range = range_with_axis_BCs(domain);
542542
const auto ni2 = domain.mesh.n_active(in::x2);

src/kernels/ampere_mink.hpp

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,25 +92,24 @@ namespace kernel::mink {
9292
class CurrentsAmpere_kernel {
9393
ndfield_t<D, 6> E;
9494
ndfield_t<D, 3> J;
95-
// coeff = -dt * q0 * n0 / (B0 * V0)
95+
// coeff = -dt * q0 * n0 / B0
9696
const real_t coeff;
97-
const real_t inv_n0;
9897

9998
public:
10099
CurrentsAmpere_kernel(const ndfield_t<D, 6>& E,
101100
const ndfield_t<D, 3> J,
102101
real_t coeff,
103-
real_t inv_n0)
102+
real_t inv_ppc0)
104103
: E { E }
105104
, J { J }
106105
, coeff { coeff }
107-
, inv_n0 { inv_n0 } {}
106+
, inv_ppc0 { inv_ppc0 } {}
108107

109108
Inline void operator()(index_t i1) const {
110109
if constexpr (D == Dim::_1D) {
111-
J(i1, cur::jx1) *= inv_n0;
112-
J(i1, cur::jx2) *= inv_n0;
113-
J(i1, cur::jx3) *= inv_n0;
110+
J(i1, cur::jx1) *= inv_ppc0;
111+
J(i1, cur::jx2) *= inv_ppc0;
112+
J(i1, cur::jx3) *= inv_ppc0;
114113

115114
E(i1, em::ex1) += J(i1, cur::jx1) * coeff;
116115
E(i1, em::ex2) += J(i1, cur::jx2) * coeff;
@@ -124,9 +123,9 @@ namespace kernel::mink {
124123

125124
Inline void operator()(index_t i1, index_t i2) const {
126125
if constexpr (D == Dim::_2D) {
127-
J(i1, i2, cur::jx1) *= inv_n0;
128-
J(i1, i2, cur::jx2) *= inv_n0;
129-
J(i1, i2, cur::jx3) *= inv_n0;
126+
J(i1, i2, cur::jx1) *= inv_ppc0;
127+
J(i1, i2, cur::jx2) *= inv_ppc0;
128+
J(i1, i2, cur::jx3) *= inv_ppc0;
130129

131130
E(i1, i2, em::ex1) += J(i1, i2, cur::jx1) * coeff;
132131
E(i1, i2, em::ex2) += J(i1, i2, cur::jx2) * coeff;
@@ -141,9 +140,9 @@ namespace kernel::mink {
141140

142141
Inline void operator()(index_t i1, index_t i2, index_t i3) const {
143142
if constexpr (D == Dim::_3D) {
144-
J(i1, i2, i3, cur::jx1) *= inv_n0;
145-
J(i1, i2, i3, cur::jx2) *= inv_n0;
146-
J(i1, i2, i3, cur::jx3) *= inv_n0;
143+
J(i1, i2, i3, cur::jx1) *= inv_ppc0;
144+
J(i1, i2, i3, cur::jx2) *= inv_ppc0;
145+
J(i1, i2, i3, cur::jx3) *= inv_ppc0;
147146

148147
E(i1, i2, i3, em::ex1) += J(i1, i2, i3, cur::jx1) * coeff;
149148
E(i1, i2, i3, em::ex2) += J(i1, i2, i3, cur::jx2) * coeff;

0 commit comments

Comments
 (0)