50namespace internal_streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda {
51static FUNC_PREFIX __launch_bounds__(256) void streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda(
float *
RESTRICT const _data_force,
float *
RESTRICT const
_data_pdfs,
float *
RESTRICT _data_pdfs_tmp, int64_t const
_size_force_0, int64_t const
_size_force_1, int64_t const
_size_force_2, int64_t const
_stride_force_0, int64_t const
_stride_force_1, int64_t const
_stride_force_2, int64_t const
_stride_force_3, int64_t const
_stride_pdfs_0, int64_t const
_stride_pdfs_1, int64_t const
_stride_pdfs_2, int64_t const
_stride_pdfs_3, int64_t const
_stride_pdfs_tmp_0, int64_t const
_stride_pdfs_tmp_1, int64_t const
_stride_pdfs_tmp_2, int64_t const
_stride_pdfs_tmp_3, uint32_t
block_offset_0, uint32_t
block_offset_1, uint32_t
block_offset_2,
float kT,
float omega_bulk,
float omega_even,
float omega_odd,
float omega_shear, uint32_t
seed, uint32_t time_step) {
52 if (blockDim.x * blockIdx.x + threadIdx.x + 1 <
_size_force_0 - 1 && blockDim.y * blockIdx.y + threadIdx.y + 1 <
_size_force_1 - 1 && blockDim.z * blockIdx.z + threadIdx.z + 1 <
_size_force_2 - 1) {
53 const int64_t ctr_0 = blockDim.x * blockIdx.x + threadIdx.x + 1;
54 const int64_t ctr_1 = blockDim.y * blockIdx.y + threadIdx.y + 1;
55 const int64_t ctr_2 = blockDim.z * blockIdx.z + threadIdx.z + 1;
109 const float xi_47 =
omega_shear * 0.041666666666666664f;
110 const float xi_51 =
omega_bulk * 0.041666666666666664f;
114 const float xi_97 = 3.7416573867739413f;
115 const float xi_98 = random_3_0 - 0.5f;
116 const float xi_100 = 5.4772255750516612f;
117 const float xi_101 = random_3_2 - 0.5f;
118 const float xi_103 = random_1_1 - 0.5f;
119 const float xi_104 = 2.4494897427831779f;
120 const float xi_107 = 8.3666002653407556f;
121 const float xi_108 = random_3_1 - 0.5f;
123 const float xi_118 = xi_11 + xi_3;
129 const float xi_133 = random_0_1 - 0.5f;
140 const float xi_151 = random_2_3 - 0.5f;
146 const float xi_160 =
omega_odd * 0.083333333333333329f;
147 const float xi_161 = xi_159 * xi_160;
148 const float xi_162 = random_1_2 - 0.5f;
149 const float xi_173 = 1.7320508075688772f;
150 const float xi_174 = random_0_0 - 0.5f;
152 const float xi_186 = xi_138 + xi_185;
154 const float xi_188 = random_2_1 - 0.5f;
157 const float xi_191 = xi_160 * xi_190;
158 const float xi_192 = random_2_0 - 0.5f;
161 const float xi_200 = random_2_2 - 0.5f;
162 const float xi_201 = -xi_124 - xi_125 + xi_126 + xi_140 + xi_198 + xi_6;
163 const float xi_202 = xi_160 * xi_201;
164 const float xi_203 = random_1_3 - 0.5f;
166 const float xi_223 =
omega_odd * 0.041666666666666664f;
167 const float xi_224 = xi_159 * xi_223;
169 const float xi_227 = xi_149 * xi_226;
170 const float xi_233 = xi_201 * xi_223;
171 const float xi_234 = xi_199 * xi_226;
172 const float xi_254 = xi_187 * xi_226;
173 const float xi_255 = xi_190 * xi_223;
174 const float rr_0 = 0.0f;
175 const float xi_23 = rr_0 * xi_22;
176 const float xi_35 = rr_0 * xi_34;
177 const float xi_41 = rr_0 * xi_40;
178 const float xi_45 = rr_0 * 0.041666666666666664f;
183 const float vel1Term = xi_4 + xi_5;
186 const float rho = delta_rho + 1.0f;
187 const float xi_95 =
kT * rho;
189 const float xi_99 = xi_96 * xi_97 * xi_98;
190 const float xi_102 = xi_100 * xi_101 * xi_96;
191 const float xi_105 = powf(xi_95 * (1.0f - ((-
omega_bulk + 1.0f) * (-
omega_bulk + 1.0f))), 0.5f);
192 const float xi_106 = xi_103 * xi_104 * xi_105;
193 const float xi_109 = xi_107 * xi_108 * xi_96;
194 const float xi_131 = xi_99 * 0.11904761904761904f;
196 const float xi_135 = xi_134 * 0.5f;
197 const float xi_136 = xi_133 * xi_135;
198 const float xi_152 = powf(xi_95 * (1.0f - ((-
omega_odd + 1.0f) * (-
omega_odd + 1.0f))), 0.5f);
199 const float xi_153 = xi_152 * 1.4142135623730951f;
200 const float xi_154 = xi_153 * 0.5f;
201 const float xi_163 = xi_104 * xi_152;
202 const float xi_164 = xi_163 * 0.16666666666666666f;
203 const float xi_165 = xi_162 * xi_164;
204 const float xi_166 = xi_161 + xi_165;
205 const float xi_167 = xi_149 * xi_150 + xi_151 * xi_154 + xi_166;
206 const float xi_169 = xi_102 * 0.10000000000000001f;
207 const float xi_175 = xi_134 * xi_173 * xi_174;
208 const float xi_176 = xi_175 * 0.16666666666666666f;
209 const float xi_184 = xi_109 * 0.071428571428571425f;
210 const float xi_193 = xi_164 * xi_192;
211 const float xi_194 = xi_191 + xi_193;
212 const float xi_195 = xi_150 * xi_187 + xi_154 * xi_188 + xi_194;
213 const float xi_197 = xi_109 * 0.042857142857142858f;
214 const float xi_204 = xi_164 * xi_203;
215 const float xi_205 = xi_202 + xi_204;
216 const float xi_206 = xi_150 * xi_199 + xi_154 * xi_200 + xi_205;
217 const float xi_207 = xi_133 * xi_134 * 0.25f;
218 const float xi_210 = xi_99 * 0.083333333333333329f;
219 const float xi_214 = -xi_191 - xi_193;
220 const float xi_215 = xi_135 * (random_0_2 - 0.5f);
221 const float xi_222 = xi_135 * (random_1_0 - 0.5f);
222 const float xi_228 = xi_163 * 0.083333333333333329f;
223 const float xi_229 = xi_162 * xi_228;
224 const float xi_230 = xi_153 * 0.25f;
225 const float xi_231 = xi_151 * xi_230;
226 const float xi_235 = xi_203 * xi_228;
227 const float xi_236 = xi_200 * xi_230;
228 const float xi_237 = -xi_233 + xi_234 - xi_235 + xi_236;
229 const float xi_239 = xi_109 * 0.014285714285714285f;
230 const float xi_241 = xi_99 * 0.023809523809523808f;
231 const float xi_244 = xi_233 - xi_234 + xi_235 - xi_236;
232 const float xi_246 = -xi_207;
233 const float xi_249 = xi_109 * 0.035714285714285712f;
234 const float xi_251 = xi_135 * (random_0_3 - 0.5f);
235 const float xi_256 = xi_188 * xi_230;
236 const float xi_257 = xi_192 * xi_228;
237 const float xi_258 = -xi_254 + xi_255 - xi_256 + xi_257;
238 const float xi_260 = xi_254 - xi_255 + xi_256 - xi_257;
239 const float xi_0 = ((1.0f) / (rho));
240 const float xi_10 = xi_0 * 0.5f;
243 const float xi_28 = xi_17 * 0.16666666666666666f;
244 const float xi_29 = -xi_28;
245 const float xi_30 = xi_17 * 0.083333333333333329f;
247 const float xi_48 = xi_17 * xi_47 + xi_29;
248 const float xi_49 = xi_34 - xi_46 + xi_48;
249 const float xi_52 = xi_17 * xi_51;
250 const float xi_59 = u_0 * xi_58;
251 const float xi_64 = u_0 * xi_63;
252 const float xi_68 = -xi_34 + xi_46 + xi_48;
255 const float xi_86 = xi_85 * 0.25f;
256 const float xi_89 = xi_62 * xi_85;
257 const float xi_111 = u_0 * u_0;
260 const float xi_26 = xi_18 * 0.16666666666666666f;
262 const float xi_42 = -xi_26;
263 const float xi_43 = xi_18 * 0.083333333333333329f;
264 const float xi_53 = xi_18 * xi_51;
265 const float xi_60 = u_1 * 0.25f;
267 const float xi_65 = u_1 * xi_62;
269 const float xi_67 = xi_59 + xi_61 - xi_64 - xi_66;
270 const float xi_69 = -xi_59 - xi_61 + xi_64 + xi_66;
273 const float xi_110 = rho * (u_1 * u_1);
274 const float xi_117 = -xi_110;
275 const float xi_216 = rho * u_1;
277 const float xi_219 = -xi_215 - xi_218;
278 const float xi_220 = xi_215 + xi_218;
281 const float xi_24 = xi_19 * 0.16666666666666666f;
282 const float xi_25 = -xi_24;
283 const float xi_27 = xi_19 * 0.083333333333333329f;
284 const float xi_32 = -
omega_shear * xi_26 +
omega_shear * xi_27 + xi_18 * 0.33333333333333331f + xi_25 + xi_31;
287 const float xi_44 = -
omega_shear * xi_24 +
omega_shear * xi_43 + xi_19 * 0.33333333333333331f + xi_31 + xi_42;
288 const float xi_54 = xi_19 * xi_51;
289 const float xi_55 = xi_18 * xi_47 + xi_42 + xi_52 + xi_53 + xi_54;
290 const float xi_56 = -xi_22 + xi_50 + xi_55;
291 const float xi_57 = xi_27 + xi_37 + xi_56;
292 const float xi_70 = xi_22 - xi_50 + xi_55;
293 const float xi_71 = xi_27 + xi_37 + xi_70;
294 const float xi_73 = xi_19 * xi_47 + xi_25;
295 const float xi_74 = -xi_40 + xi_72 + xi_73;
296 const float xi_76 = xi_30 + xi_56 + xi_75;
297 const float xi_78 = u_2 * xi_58;
298 const float xi_80 = u_2 * xi_63;
299 const float xi_81 = -xi_77 - xi_78 + xi_79 + xi_80;
300 const float xi_82 = xi_30 + xi_70 + xi_75;
301 const float xi_83 = xi_77 + xi_78 - xi_79 - xi_80;
302 const float xi_84 = xi_36 + xi_43 + xi_52 + xi_53 + xi_54 + xi_74;
304 const float xi_88 = xi_87 * 0.25f;
305 const float xi_90 = xi_62 * xi_87;
306 const float xi_91 = xi_86 + xi_88 - xi_89 - xi_90;
307 const float xi_92 = -xi_86 - xi_88 + xi_89 + xi_90;
308 const float xi_93 = xi_40 - xi_72 + xi_73;
309 const float xi_94 = xi_36 + xi_43 + xi_52 + xi_53 + xi_54 + xi_93;
310 const float xi_113 = rho * (u_2 * u_2);
314 const float xi_119 = rho * xi_111 - xi_112 + xi_113 - xi_117 - xi_118 - xi_13 - xi_16 - xi_5;
320 const float xi_130 = xi_128 * 0.01984126984126984f;
321 const float xi_132 = xi_130 + xi_131;
324 const float xi_143 = xi_142 * 0.125f;
325 const float xi_144 = -xi_136 - xi_143;
326 const float xi_168 = xi_116 * 0.050000000000000003f;
329 const float xi_172 = xi_171 * 0.041666666666666664f;
330 const float xi_177 = xi_172 + xi_176;
331 const float xi_178 = xi_168 + xi_169 + xi_177;
332 const float xi_179 = -xi_130 - xi_131;
333 const float xi_180 = xi_136 + xi_143;
334 const float xi_181 = -xi_172 - xi_176;
335 const float xi_182 = -xi_168 - xi_169 + xi_181;
336 const float xi_183 = xi_123 * 0.035714285714285712f;
337 const float xi_196 = xi_123 * 0.021428571428571429f;
338 const float xi_208 = xi_142 * 0.0625f;
339 const float xi_209 = xi_128 * 0.013888888888888888f;
340 const float xi_211 = xi_106 * 0.083333333333333329f + xi_120 * 0.041666666666666664f;
341 const float xi_212 = xi_171 * 0.020833333333333332f + xi_175 * 0.083333333333333329f + xi_211;
342 const float xi_213 = xi_166 + xi_207 + xi_208 + xi_209 + xi_210 + xi_212;
343 const float xi_221 = -xi_161 - xi_165 + xi_207 + xi_208 + xi_209 + xi_210 + xi_212;
345 const float xi_232 = xi_222 - xi_224 + xi_225 + xi_227 - xi_229 + xi_231;
346 const float xi_238 = xi_123 * 0.0071428571428571426f;
347 const float xi_240 = xi_128 * 0.003968253968253968f;
348 const float xi_242 = -xi_240 - xi_241;
349 const float xi_243 = xi_102 * 0.050000000000000003f + xi_116 * 0.025000000000000001f + xi_181 + xi_211 - xi_238 - xi_239 + xi_242;
350 const float xi_245 =
omega_bulk * xi_119 * -0.041666666666666664f +
omega_even * xi_115 * -0.025000000000000001f + xi_100 * xi_101 * xi_96 * -0.050000000000000003f + xi_103 * xi_104 * xi_105 * -0.083333333333333329f + xi_177 + xi_238 + xi_239 + xi_240 + xi_241;
351 const float xi_247 = -xi_208;
352 const float xi_248 = xi_123 * 0.017857142857142856f;
353 const float xi_250 = xi_205 + xi_212 + xi_242 + xi_246 + xi_247 + xi_248 + xi_249;
355 const float xi_253 = -xi_251 - xi_252;
356 const float xi_259 = xi_251 + xi_252;
357 const float xi_261 = xi_222 + xi_224 + xi_225 - xi_227 + xi_229 - xi_231;
358 const float xi_262 = -xi_202 - xi_204 + xi_212 + xi_242 + xi_246 + xi_247 + xi_248 + xi_249;
359 const float forceTerm_0 = xi_17 * xi_20 - xi_17 + xi_18 * xi_20 - xi_18 + xi_19 * xi_20 - xi_19;
360 const float forceTerm_1 = xi_21 - xi_23 + xi_32;
361 const float forceTerm_2 = -xi_21 + xi_23 + xi_32;
362 const float forceTerm_3 = -xi_33 + xi_35 - xi_38;
363 const float forceTerm_4 = xi_33 - xi_35 - xi_38;
364 const float forceTerm_5 = xi_39 - xi_41 + xi_44;
365 const float forceTerm_6 = -xi_39 + xi_41 + xi_44;
366 const float forceTerm_7 = -xi_49 - xi_57 - xi_67;
367 const float forceTerm_8 = -xi_57 - xi_68 - xi_69;
368 const float forceTerm_9 = -xi_49 - xi_69 - xi_71;
369 const float forceTerm_10 = -xi_67 - xi_68 - xi_71;
370 const float forceTerm_11 = -xi_74 - xi_76 - xi_81;
371 const float forceTerm_12 = -xi_74 - xi_82 - xi_83;
372 const float forceTerm_13 = -xi_49 - xi_84 - xi_91;
373 const float forceTerm_14 = -xi_68 - xi_84 - xi_92;
374 const float forceTerm_15 = -xi_76 - xi_83 - xi_93;
375 const float forceTerm_16 = -xi_81 - xi_82 - xi_93;
376 const float forceTerm_17 = -xi_49 - xi_92 - xi_94;
377 const float forceTerm_18 = -xi_68 - xi_91 - xi_94;
402 if (!this->configured_)
403 WALBERLA_ABORT(
"This Sweep contains a configure function that needs to be called manually")
405 auto pdfs =
block->getData<gpu::GPUField<float>>(pdfsID);
406 auto force =
block->getData<gpu::GPUField<float>>(forceID);
407 gpu::GPUField<float> *pdfs_tmp;
409 if (cache_pdfs_.find(
block) == cache_pdfs_.end()) {
410 pdfs_tmp = pdfs->cloneUninitialized();
411 cache_pdfs_[
block] = pdfs_tmp;
413 pdfs_tmp = cache_pdfs_[
block];
417 auto &seed = this->seed_;
418 auto &omega_shear = this->omega_shear_;
419 auto &kT = this->kT_;
420 auto &block_offset_0 = this->block_offset_0_;
421 auto &omega_bulk = this->omega_bulk_;
422 auto &omega_odd = this->omega_odd_;
423 auto &time_step = this->time_step_;
424 auto &block_offset_2 = this->block_offset_2_;
425 auto &block_offset_1 = this->block_offset_1_;
426 auto &omega_even = this->omega_even_;
427 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(force->nrOfGhostLayers()))
428 float *
RESTRICT const _data_force = force->dataAt(-1, -1, -1, 0);
429 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
430 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(pdfs->nrOfGhostLayers()))
431 float *
RESTRICT const _data_pdfs = pdfs->dataAt(-1, -1, -1, 0);
432 WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx)
433 WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(pdfs_tmp->nrOfGhostLayers()))
434 float *
RESTRICT _data_pdfs_tmp = pdfs_tmp->dataAt(-1, -1, -1, 0);
435 WALBERLA_ASSERT_EQUAL(pdfs_tmp->layout(), field::fzyx)
436 WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(int64_c(force->xSize()) + 2))
437 const int64_t _size_force_0 = int64_t(int64_c(force->xSize()) + 2);
438 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
439 WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(int64_c(force->ySize()) + 2))
440 const int64_t _size_force_1 = int64_t(int64_c(force->ySize()) + 2);
441 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
442 WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(int64_c(force->zSize()) + 2))
443 const int64_t _size_force_2 = int64_t(int64_c(force->zSize()) + 2);
444 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
445 const int64_t _stride_force_0 = int64_t(force->xStride());
446 const int64_t _stride_force_1 = int64_t(force->yStride());
447 const int64_t _stride_force_2 = int64_t(force->zStride());
448 const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride()));
449 const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride());
450 const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride());
451 const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride());
452 const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride()));
453 const int64_t _stride_pdfs_tmp_0 = int64_t(pdfs_tmp->xStride());
454 const int64_t _stride_pdfs_tmp_1 = int64_t(pdfs_tmp->yStride());
455 const int64_t _stride_pdfs_tmp_2 = int64_t(pdfs_tmp->zStride());
456 const int64_t _stride_pdfs_tmp_3 = int64_t(1 * int64_t(pdfs_tmp->fStride()));
457 dim3 _block(uint32_c(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)), uint32_c(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))), uint32_c(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))));
458 dim3 _grid(uint32_c(((_size_force_0 - 2) % (((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)) == 0 ? (int64_t)(_size_force_0 - 2) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)) : ((int64_t)(_size_force_0 - 2) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))) + 1)), uint32_c(((_size_force_1 - 2) % (((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))) == 0 ? (int64_t)(_size_force_1 - 2) / (int64_t)(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))) : ((int64_t)(_size_force_1 - 2) / (int64_t)(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) + 1)), uint32_c(((_size_force_2 - 2) % (((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))) == 0 ? (int64_t)(_size_force_2 - 2) / (int64_t)(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))) : ((int64_t)(_size_force_2 - 2) / (int64_t)(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))))) + 1)));
459 internal_streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda::streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda<<<_grid, _block, 0, stream>>>(_data_force, _data_pdfs, _data_pdfs_tmp, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_pdfs_tmp_0, _stride_pdfs_tmp_1, _stride_pdfs_tmp_2, _stride_pdfs_tmp_3, block_offset_0, block_offset_1, block_offset_2, kT, omega_bulk, omega_even, omega_odd, omega_shear, seed, time_step);
460 pdfs->swapDataPointers(pdfs_tmp);
464 if (!this->configured_)
465 WALBERLA_ABORT(
"This Sweep contains a configure function that needs to be called manually")
467 CellInterval ci = globalCellInterval;
468 CellInterval blockBB = blocks->getBlockCellBB(*
block);
469 blockBB.expand(ghostLayers);
470 ci.intersect(blockBB);
471 blocks->transformGlobalToBlockLocalCellInterval(ci, *
block);
475 auto pdfs =
block->getData<gpu::GPUField<float>>(pdfsID);
476 auto force =
block->getData<gpu::GPUField<float>>(forceID);
477 gpu::GPUField<float> *pdfs_tmp;
479 if (cache_pdfs_.find(
block) == cache_pdfs_.end()) {
480 pdfs_tmp = pdfs->cloneUninitialized();
481 cache_pdfs_[
block] = pdfs_tmp;
483 pdfs_tmp = cache_pdfs_[
block];
487 auto &seed = this->seed_;
488 auto &omega_shear = this->omega_shear_;
489 auto &kT = this->kT_;
490 auto &block_offset_0 = this->block_offset_0_;
491 auto &omega_bulk = this->omega_bulk_;
492 auto &omega_odd = this->omega_odd_;
493 auto &time_step = this->time_step_;
494 auto &block_offset_2 = this->block_offset_2_;
495 auto &block_offset_1 = this->block_offset_1_;
496 auto &omega_even = this->omega_even_;
497 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(force->nrOfGhostLayers()))
498 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(force->nrOfGhostLayers()))
499 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(force->nrOfGhostLayers()))
500 float *
RESTRICT const _data_force = force->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
501 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
502 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
503 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
504 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(pdfs->nrOfGhostLayers()))
505 float *
RESTRICT const _data_pdfs = pdfs->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
506 WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx)
507 WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
508 WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
509 WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(pdfs_tmp->nrOfGhostLayers()))
510 float *
RESTRICT _data_pdfs_tmp = pdfs_tmp->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0);
511 WALBERLA_ASSERT_EQUAL(pdfs_tmp->layout(), field::fzyx)
512 WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(int64_c(ci.xSize()) + 2))
513 const int64_t _size_force_0 = int64_t(int64_c(ci.xSize()) + 2);
514 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
515 WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(int64_c(ci.ySize()) + 2))
516 const int64_t _size_force_1 = int64_t(int64_c(ci.ySize()) + 2);
517 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
518 WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(int64_c(ci.zSize()) + 2))
519 const int64_t _size_force_2 = int64_t(int64_c(ci.zSize()) + 2);
520 WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx)
521 const int64_t _stride_force_0 = int64_t(force->xStride());
522 const int64_t _stride_force_1 = int64_t(force->yStride());
523 const int64_t _stride_force_2 = int64_t(force->zStride());
524 const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride()));
525 const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride());
526 const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride());
527 const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride());
528 const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride()));
529 const int64_t _stride_pdfs_tmp_0 = int64_t(pdfs_tmp->xStride());
530 const int64_t _stride_pdfs_tmp_1 = int64_t(pdfs_tmp->yStride());
531 const int64_t _stride_pdfs_tmp_2 = int64_t(pdfs_tmp->zStride());
532 const int64_t _stride_pdfs_tmp_3 = int64_t(1 * int64_t(pdfs_tmp->fStride()));
533 dim3 _block(uint32_c(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)), uint32_c(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))), uint32_c(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))));
534 dim3 _grid(uint32_c(((_size_force_0 - 2) % (((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)) == 0 ? (int64_t)(_size_force_0 - 2) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)) : ((int64_t)(_size_force_0 - 2) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))) + 1)), uint32_c(((_size_force_1 - 2) % (((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))) == 0 ? (int64_t)(_size_force_1 - 2) / (int64_t)(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))) : ((int64_t)(_size_force_1 - 2) / (int64_t)(((1024 < ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))) ? 1024 : ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) + 1)), uint32_c(((_size_force_2 - 2) % (((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))) == 0 ? (int64_t)(_size_force_2 - 2) / (int64_t)(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))))) : ((int64_t)(_size_force_2 - 2) / (int64_t)(((64 < ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))) ? 64 : ((_size_force_2 - 2 < ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2))))))) ? _size_force_2 - 2 : ((int64_t)(256) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2) * ((_size_force_1 - 2 < 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))) ? _size_force_1 - 2 : 2 * ((int64_t)(128) / (int64_t)(((128 < _size_force_0 - 2) ? 128 : _size_force_0 - 2)))))))))) + 1)));
535 internal_streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda::streamcollidesweepthermalizedsingleprecisioncuda_streamcollidesweepthermalizedsingleprecisioncuda<<<_grid, _block, 0, stream>>>(_data_force, _data_pdfs, _data_pdfs_tmp, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_pdfs_tmp_0, _stride_pdfs_tmp_1, _stride_pdfs_tmp_2, _stride_pdfs_tmp_3, block_offset_0, block_offset_1, block_offset_2, kT, omega_bulk, omega_even, omega_odd, omega_shear, seed, time_step);
536 pdfs->swapDataPointers(pdfs_tmp);