@@ -82,7 +82,10 @@ namespace ntt {
82
82
std::vector<Content> A = { this ->buff_content [buff_ind] };
83
83
AssertEmptyContent (A);
84
84
std::size_t ni1 = this ->Ni1 (), ni2 = this ->Ni2 (), ni3 = this ->Ni3 ();
85
- real_t weight = (1.0 / params.ppc0 ()) / math::pow (2.0 * smooth + 1.0 , static_cast <int >(D));
85
+ real_t weight = ONE / math::pow (2.0 * smooth + 1.0 , static_cast <int >(D));
86
+ if (field != FieldID::Nppc) {
87
+ weight /= params.ppc0 ();
88
+ }
86
89
if constexpr (D == Dim1) {
87
90
Kokkos::deep_copy (Kokkos::subview (this ->buff , Kokkos::ALL (), (int )buff_ind), ZERO);
88
91
} else if constexpr (D == Dim2) {
@@ -131,7 +134,7 @@ namespace ntt {
131
134
real_t contrib { ZERO };
132
135
if (field == FieldID::Rho) {
133
136
contrib = ((mass == ZERO) ? ONE : mass);
134
- } else if (field == FieldID::N) {
137
+ } else if (( field == FieldID::N) || (field == FieldID::Nppc) ) {
135
138
contrib = ONE;
136
139
} else if (field == FieldID::T) {
137
140
real_t energy { ((mass == ZERO) ? get_photon_Energy_SR (species, p)
@@ -149,9 +152,11 @@ namespace ntt {
149
152
}
150
153
}
151
154
}
155
+ if (fieldID != FieldID::Nppc) {
156
+ contrib *= this_metric.min_cell_volume () / this_metric.sqrt_det_h ({ x1 });
157
+ }
152
158
for (int i1_ = i1_min; i1_ <= i1_max; ++i1_) {
153
- buff_access (i1_, buff_ind) += contrib * weight * this_metric.min_cell_volume ()
154
- / this_metric.sqrt_det_h ({ x1 });
159
+ buff_access (i1_, buff_ind) += contrib * weight;
155
160
}
156
161
}
157
162
});
@@ -171,7 +176,7 @@ namespace ntt {
171
176
real_t contrib { ZERO };
172
177
if (field == FieldID::Rho) {
173
178
contrib = ((mass == ZERO) ? ONE : mass);
174
- } else if (field == FieldID::N) {
179
+ } else if (( field == FieldID::N) || (field == FieldID::Nppc) ) {
175
180
contrib = ONE;
176
181
} else if (field == FieldID::T) {
177
182
real_t energy { ((mass == ZERO) ? get_photon_Energy_SR (species, p)
@@ -204,11 +209,12 @@ namespace ntt {
204
209
}
205
210
#endif
206
211
}
212
+ if (fieldID != FieldID::Nppc) {
213
+ contrib *= this_metric.min_cell_volume () / this_metric.sqrt_det_h ({ x1, x2 });
214
+ }
207
215
for (int i2_ = i2_min; i2_ <= i2_max; ++i2_) {
208
216
for (int i1_ = i1_min; i1_ <= i1_max; ++i1_) {
209
- buff_access (i1_, i2_, buff_ind) += contrib * weight
210
- * this_metric.min_cell_volume ()
211
- / this_metric.sqrt_det_h ({ x1, x2 });
217
+ buff_access (i1_, i2_, buff_ind) += contrib * weight;
212
218
}
213
219
}
214
220
}
@@ -233,7 +239,7 @@ namespace ntt {
233
239
real_t contrib { ZERO };
234
240
if (field == FieldID::Rho) {
235
241
contrib = ((mass == ZERO) ? ONE : mass);
236
- } else if (field == FieldID::N) {
242
+ } else if (( field == FieldID::N) || (field == FieldID::Nppc) ) {
237
243
contrib = ONE;
238
244
} else if (field == FieldID::T) {
239
245
real_t energy { ((mass == ZERO) ? get_photon_Energy_SR (species, p)
@@ -264,12 +270,14 @@ namespace ntt {
264
270
}
265
271
#endif
266
272
}
273
+ if (fieldID != FieldID::Nppc) {
274
+ contrib
275
+ *= this_metric.min_cell_volume () / this_metric.sqrt_det_h ({ x1, x2, x3 });
276
+ }
267
277
for (int i3_ = i3_min; i3_ <= i3_max; ++i3_) {
268
278
for (int i2_ = i2_min; i2_ <= i2_max; ++i2_) {
269
279
for (int i1_ = i1_min; i1_ <= i1_max; ++i1_) {
270
- buff_access (i1_, i2_, i3_, buff_ind)
271
- += contrib * weight * this_metric.min_cell_volume ()
272
- / this_metric.sqrt_det_h ({ x1, x2, x3 });
280
+ buff_access (i1_, i2_, i3_, buff_ind) += contrib * weight;
273
281
}
274
282
}
275
283
}
0 commit comments