383 gpu::FieldAccessor<float> flux_field,
385 auto const offset =
getLinearIndex(blockIdx, threadIdx, gridDim, blockDim, 13u);
386 flux_field.set(blockIdx, threadIdx);
388 if (flux_field.isValidPosition()) {
389 j_out[0u] = flux_field.get(0u);
390 j_out[1u] = flux_field.get(1u);
391 j_out[2u] = flux_field.get(2u);
392 j_out[3u] = flux_field.get(3u);
393 j_out[4u] = flux_field.get(4u);
394 j_out[5u] = flux_field.get(5u);
395 j_out[6u] = flux_field.get(6u);
396 j_out[7u] = flux_field.get(7u);
397 j_out[8u] = flux_field.get(8u);
398 j_out[9u] = flux_field.get(9u);
399 j_out[10u] = flux_field.get(10u);
400 j_out[11u] = flux_field.get(11u);
401 j_out[12u] = flux_field.get(12u);
427 gpu::FieldAccessor<float> flux_field,
429 auto const offset =
getLinearIndex(blockIdx, threadIdx, gridDim, blockDim, 3u);
430 flux_field.set(blockIdx, threadIdx);
432 if (flux_field.isValidPosition()) {
433 j_out[0u] = float(0.0);
434 j_out[1u] = float(0.0);
435 j_out[2u] = float(0.0);
445 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 1u);
446 j_out[1u] += add_flux * 1;
447 add_flux = float(0.5) * flux_field.get(1u);
448 j_out[1u] += add_flux * -1;
449 add_flux = float(0.5) * flux_field.get(0u);
450 j_out[0u] += add_flux * -1;
454 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 0u);
455 j_out[0u] += add_flux * 1;
459 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 2u);
460 j_out[2u] += add_flux * 1;
461 add_flux = float(0.5) * flux_field.get(2u);
462 j_out[2u] += add_flux * -1;
463 add_flux = float(0.5) * flux_field.get(4u);
464 j_out[0u] += add_flux * -1;
465 j_out[1u] += add_flux * 1;
469 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 3u);
470 j_out[0u] += add_flux * 1;
471 j_out[1u] += add_flux * 1;
472 add_flux = float(0.5) * flux_field.get(3u);
473 j_out[0u] += add_flux * -1;
474 j_out[1u] += add_flux * -1;
478 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 4u);
479 j_out[0u] += add_flux * 1;
480 j_out[1u] += add_flux * -1;
484 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 7u);
485 j_out[1u] += add_flux * 1;
486 j_out[2u] += add_flux * 1;
487 add_flux = float(0.5) * flux_field.get(8u);
488 j_out[1u] += add_flux * -1;
489 j_out[2u] += add_flux * 1;
490 add_flux = float(0.5) * flux_field.get(6u);
491 j_out[0u] += add_flux * -1;
492 j_out[2u] += add_flux * 1;
496 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 5u);
497 j_out[0u] += add_flux * 1;
498 j_out[2u] += add_flux * 1;
502 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 8u);
503 j_out[1u] += add_flux * 1;
504 j_out[2u] += add_flux * -1;
505 add_flux = float(0.5) * flux_field.get(7u);
506 j_out[1u] += add_flux * -1;
507 j_out[2u] += add_flux * -1;
508 add_flux = float(0.5) * flux_field.get(5u);
509 j_out[0u] += add_flux * -1;
510 j_out[2u] += add_flux * -1;
514 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 6u);
515 j_out[0u] += add_flux * 1;
516 j_out[2u] += add_flux * -1;
520 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 9u);
521 j_out[0u] += add_flux * 1;
522 j_out[1u] += add_flux * 1;
523 j_out[2u] += add_flux * 1;
524 add_flux = float(0.5) * flux_field.get(12u);
525 j_out[0u] += add_flux * -1;
526 j_out[1u] += add_flux * 1;
527 j_out[2u] += add_flux * 1;
531 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 11u);
532 j_out[0u] += add_flux * 1;
533 j_out[1u] += add_flux * -1;
534 j_out[2u] += add_flux * 1;
535 add_flux = float(0.5) * flux_field.get(10u);
536 j_out[0u] += add_flux * -1;
537 j_out[1u] += add_flux * -1;
538 j_out[2u] += add_flux * 1;
542 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 10u);
543 j_out[0u] += add_flux * 1;
544 j_out[1u] += add_flux * 1;
545 j_out[2u] += add_flux * -1;
546 add_flux = float(0.5) * flux_field.get(11u);
547 j_out[0u] += add_flux * -1;
548 j_out[1u] += add_flux * 1;
549 j_out[2u] += add_flux * -1;
553 add_flux = float(-0.5) * flux_field.getNeighbor(cx, cy, cz, 12u);
554 j_out[0u] += add_flux * 1;
555 j_out[1u] += add_flux * -1;
556 j_out[2u] += add_flux * -1;
557 add_flux = float(0.5) * flux_field.get(9u);
558 j_out[0u] += add_flux * -1;
559 j_out[1u] += add_flux * -1;
560 j_out[2u] += add_flux * -1;