182 IBlock *
block, ConstBlockDataID flagFieldID,
183 FlagUID boundaryFlagUID, FlagUID domainFlagUID) {
189 auto *flagField =
block->getData<FlagField_T>(flagFieldID);
191 if (!(flagField->flagExists(boundaryFlagUID) &&
192 flagField->flagExists(domainFlagUID)))
195 auto boundaryFlag = flagField->getFlag(boundaryFlagUID);
196 auto domainFlag = flagField->getFlag(domainFlagUID);
198 auto inner = flagField->xyzSize();
199 inner.expand(cell_idx_t(-1));
201 indexVectorAll.clear();
202 indexVectorInner.clear();
203 indexVectorOuter.clear();
205 for (
auto it = flagField->beginWithGhostLayerXYZ(
206 cell_idx_c(flagField->nrOfGhostLayers() - 1));
207 it != flagField->end(); ++it) {
208 if (!isFlagSet(it, domainFlag))
211 if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) {
212 auto element =
IndexInfo(it.x(), it.y(), it.z(), 0);
213 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
214 Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *
block);
215 element.flux_0 = InitialisatonAdditionalData[0];
216 element.flux_1 = InitialisatonAdditionalData[1];
217 element.flux_2 = InitialisatonAdditionalData[2];
218 indexVectorAll.emplace_back(element);
219 if (
inner.contains(it.x(), it.y(), it.z()))
220 indexVectorInner.emplace_back(element);
222 indexVectorOuter.emplace_back(element);
226 for (
auto it = flagField->beginWithGhostLayerXYZ(
227 cell_idx_c(flagField->nrOfGhostLayers() - 1));
228 it != flagField->end(); ++it) {
229 if (!isFlagSet(it, domainFlag))
232 if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) {
233 auto element =
IndexInfo(it.x(), it.y(), it.z(), 1);
234 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
235 Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *
block);
236 element.flux_0 = InitialisatonAdditionalData[0];
237 element.flux_1 = InitialisatonAdditionalData[1];
238 element.flux_2 = InitialisatonAdditionalData[2];
239 indexVectorAll.emplace_back(element);
240 if (
inner.contains(it.x(), it.y(), it.z()))
241 indexVectorInner.emplace_back(element);
243 indexVectorOuter.emplace_back(element);
247 for (
auto it = flagField->beginWithGhostLayerXYZ(
248 cell_idx_c(flagField->nrOfGhostLayers() - 1));
249 it != flagField->end(); ++it) {
250 if (!isFlagSet(it, domainFlag))
253 if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) {
254 auto element =
IndexInfo(it.x(), it.y(), it.z(), 2);
255 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
256 Cell(it.x() + 0, it.y() + -1, it.z() + 0), blocks, *
block);
257 element.flux_0 = InitialisatonAdditionalData[0];
258 element.flux_1 = InitialisatonAdditionalData[1];
259 element.flux_2 = InitialisatonAdditionalData[2];
260 indexVectorAll.emplace_back(element);
261 if (
inner.contains(it.x(), it.y(), it.z()))
262 indexVectorInner.emplace_back(element);
264 indexVectorOuter.emplace_back(element);
268 for (
auto it = flagField->beginWithGhostLayerXYZ(
269 cell_idx_c(flagField->nrOfGhostLayers() - 1));
270 it != flagField->end(); ++it) {
271 if (!isFlagSet(it, domainFlag))
274 if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) {
275 auto element =
IndexInfo(it.x(), it.y(), it.z(), 3);
276 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
277 Cell(it.x() + -1, it.y() + 0, it.z() + 0), blocks, *
block);
278 element.flux_0 = InitialisatonAdditionalData[0];
279 element.flux_1 = InitialisatonAdditionalData[1];
280 element.flux_2 = InitialisatonAdditionalData[2];
281 indexVectorAll.emplace_back(element);
282 if (
inner.contains(it.x(), it.y(), it.z()))
283 indexVectorInner.emplace_back(element);
285 indexVectorOuter.emplace_back(element);
289 for (
auto it = flagField->beginWithGhostLayerXYZ(
290 cell_idx_c(flagField->nrOfGhostLayers() - 1));
291 it != flagField->end(); ++it) {
292 if (!isFlagSet(it, domainFlag))
295 if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) {
296 auto element =
IndexInfo(it.x(), it.y(), it.z(), 4);
297 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
298 Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *
block);
299 element.flux_0 = InitialisatonAdditionalData[0];
300 element.flux_1 = InitialisatonAdditionalData[1];
301 element.flux_2 = InitialisatonAdditionalData[2];
302 indexVectorAll.emplace_back(element);
303 if (
inner.contains(it.x(), it.y(), it.z()))
304 indexVectorInner.emplace_back(element);
306 indexVectorOuter.emplace_back(element);
310 for (
auto it = flagField->beginWithGhostLayerXYZ(
311 cell_idx_c(flagField->nrOfGhostLayers() - 1));
312 it != flagField->end(); ++it) {
313 if (!isFlagSet(it, domainFlag))
316 if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) {
317 auto element =
IndexInfo(it.x(), it.y(), it.z(), 5);
318 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
319 Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *
block);
320 element.flux_0 = InitialisatonAdditionalData[0];
321 element.flux_1 = InitialisatonAdditionalData[1];
322 element.flux_2 = InitialisatonAdditionalData[2];
323 indexVectorAll.emplace_back(element);
324 if (
inner.contains(it.x(), it.y(), it.z()))
325 indexVectorInner.emplace_back(element);
327 indexVectorOuter.emplace_back(element);
331 for (
auto it = flagField->beginWithGhostLayerXYZ(
332 cell_idx_c(flagField->nrOfGhostLayers() - 1));
333 it != flagField->end(); ++it) {
334 if (!isFlagSet(it, domainFlag))
337 if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) {
338 auto element =
IndexInfo(it.x(), it.y(), it.z(), 6);
339 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
340 Cell(it.x() + 0, it.y() + 0, it.z() + -1), blocks, *
block);
341 element.flux_0 = InitialisatonAdditionalData[0];
342 element.flux_1 = InitialisatonAdditionalData[1];
343 element.flux_2 = InitialisatonAdditionalData[2];
344 indexVectorAll.emplace_back(element);
345 if (
inner.contains(it.x(), it.y(), it.z()))
346 indexVectorInner.emplace_back(element);
348 indexVectorOuter.emplace_back(element);
352 for (
auto it = flagField->beginWithGhostLayerXYZ(
353 cell_idx_c(flagField->nrOfGhostLayers() - 1));
354 it != flagField->end(); ++it) {
355 if (!isFlagSet(it, domainFlag))
358 if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) {
359 auto element =
IndexInfo(it.x(), it.y(), it.z(), 7);
360 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
361 Cell(it.x() + -1, it.y() + 1, it.z() + 0), blocks, *
block);
362 element.flux_0 = InitialisatonAdditionalData[0];
363 element.flux_1 = InitialisatonAdditionalData[1];
364 element.flux_2 = InitialisatonAdditionalData[2];
365 indexVectorAll.emplace_back(element);
366 if (
inner.contains(it.x(), it.y(), it.z()))
367 indexVectorInner.emplace_back(element);
369 indexVectorOuter.emplace_back(element);
373 for (
auto it = flagField->beginWithGhostLayerXYZ(
374 cell_idx_c(flagField->nrOfGhostLayers() - 1));
375 it != flagField->end(); ++it) {
376 if (!isFlagSet(it, domainFlag))
379 if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) {
380 auto element =
IndexInfo(it.x(), it.y(), it.z(), 8);
381 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
382 Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *
block);
383 element.flux_0 = InitialisatonAdditionalData[0];
384 element.flux_1 = InitialisatonAdditionalData[1];
385 element.flux_2 = InitialisatonAdditionalData[2];
386 indexVectorAll.emplace_back(element);
387 if (
inner.contains(it.x(), it.y(), it.z()))
388 indexVectorInner.emplace_back(element);
390 indexVectorOuter.emplace_back(element);
394 for (
auto it = flagField->beginWithGhostLayerXYZ(
395 cell_idx_c(flagField->nrOfGhostLayers() - 1));
396 it != flagField->end(); ++it) {
397 if (!isFlagSet(it, domainFlag))
400 if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) {
401 auto element =
IndexInfo(it.x(), it.y(), it.z(), 9);
402 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
403 Cell(it.x() + -1, it.y() + -1, it.z() + 0), blocks, *
block);
404 element.flux_0 = InitialisatonAdditionalData[0];
405 element.flux_1 = InitialisatonAdditionalData[1];
406 element.flux_2 = InitialisatonAdditionalData[2];
407 indexVectorAll.emplace_back(element);
408 if (
inner.contains(it.x(), it.y(), it.z()))
409 indexVectorInner.emplace_back(element);
411 indexVectorOuter.emplace_back(element);
415 for (
auto it = flagField->beginWithGhostLayerXYZ(
416 cell_idx_c(flagField->nrOfGhostLayers() - 1));
417 it != flagField->end(); ++it) {
418 if (!isFlagSet(it, domainFlag))
421 if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) {
422 auto element =
IndexInfo(it.x(), it.y(), it.z(), 10);
423 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
424 Cell(it.x() + 1, it.y() + -1, it.z() + 0), blocks, *
block);
425 element.flux_0 = InitialisatonAdditionalData[0];
426 element.flux_1 = InitialisatonAdditionalData[1];
427 element.flux_2 = InitialisatonAdditionalData[2];
428 indexVectorAll.emplace_back(element);
429 if (
inner.contains(it.x(), it.y(), it.z()))
430 indexVectorInner.emplace_back(element);
432 indexVectorOuter.emplace_back(element);
436 for (
auto it = flagField->beginWithGhostLayerXYZ(
437 cell_idx_c(flagField->nrOfGhostLayers() - 1));
438 it != flagField->end(); ++it) {
439 if (!isFlagSet(it, domainFlag))
442 if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) {
443 auto element =
IndexInfo(it.x(), it.y(), it.z(), 11);
444 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
445 Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *
block);
446 element.flux_0 = InitialisatonAdditionalData[0];
447 element.flux_1 = InitialisatonAdditionalData[1];
448 element.flux_2 = InitialisatonAdditionalData[2];
449 indexVectorAll.emplace_back(element);
450 if (
inner.contains(it.x(), it.y(), it.z()))
451 indexVectorInner.emplace_back(element);
453 indexVectorOuter.emplace_back(element);
457 for (
auto it = flagField->beginWithGhostLayerXYZ(
458 cell_idx_c(flagField->nrOfGhostLayers() - 1));
459 it != flagField->end(); ++it) {
460 if (!isFlagSet(it, domainFlag))
463 if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) {
464 auto element =
IndexInfo(it.x(), it.y(), it.z(), 12);
465 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
466 Cell(it.x() + 0, it.y() + -1, it.z() + 1), blocks, *
block);
467 element.flux_0 = InitialisatonAdditionalData[0];
468 element.flux_1 = InitialisatonAdditionalData[1];
469 element.flux_2 = InitialisatonAdditionalData[2];
470 indexVectorAll.emplace_back(element);
471 if (
inner.contains(it.x(), it.y(), it.z()))
472 indexVectorInner.emplace_back(element);
474 indexVectorOuter.emplace_back(element);
478 for (
auto it = flagField->beginWithGhostLayerXYZ(
479 cell_idx_c(flagField->nrOfGhostLayers() - 1));
480 it != flagField->end(); ++it) {
481 if (!isFlagSet(it, domainFlag))
484 if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) {
485 auto element =
IndexInfo(it.x(), it.y(), it.z(), 13);
486 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
487 Cell(it.x() + -1, it.y() + 0, it.z() + 1), blocks, *
block);
488 element.flux_0 = InitialisatonAdditionalData[0];
489 element.flux_1 = InitialisatonAdditionalData[1];
490 element.flux_2 = InitialisatonAdditionalData[2];
491 indexVectorAll.emplace_back(element);
492 if (
inner.contains(it.x(), it.y(), it.z()))
493 indexVectorInner.emplace_back(element);
495 indexVectorOuter.emplace_back(element);
499 for (
auto it = flagField->beginWithGhostLayerXYZ(
500 cell_idx_c(flagField->nrOfGhostLayers() - 1));
501 it != flagField->end(); ++it) {
502 if (!isFlagSet(it, domainFlag))
505 if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) {
506 auto element =
IndexInfo(it.x(), it.y(), it.z(), 14);
507 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
508 Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *
block);
509 element.flux_0 = InitialisatonAdditionalData[0];
510 element.flux_1 = InitialisatonAdditionalData[1];
511 element.flux_2 = InitialisatonAdditionalData[2];
512 indexVectorAll.emplace_back(element);
513 if (
inner.contains(it.x(), it.y(), it.z()))
514 indexVectorInner.emplace_back(element);
516 indexVectorOuter.emplace_back(element);
520 for (
auto it = flagField->beginWithGhostLayerXYZ(
521 cell_idx_c(flagField->nrOfGhostLayers() - 1));
522 it != flagField->end(); ++it) {
523 if (!isFlagSet(it, domainFlag))
526 if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) {
527 auto element =
IndexInfo(it.x(), it.y(), it.z(), 15);
528 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
529 Cell(it.x() + 0, it.y() + 1, it.z() + -1), blocks, *
block);
530 element.flux_0 = InitialisatonAdditionalData[0];
531 element.flux_1 = InitialisatonAdditionalData[1];
532 element.flux_2 = InitialisatonAdditionalData[2];
533 indexVectorAll.emplace_back(element);
534 if (
inner.contains(it.x(), it.y(), it.z()))
535 indexVectorInner.emplace_back(element);
537 indexVectorOuter.emplace_back(element);
541 for (
auto it = flagField->beginWithGhostLayerXYZ(
542 cell_idx_c(flagField->nrOfGhostLayers() - 1));
543 it != flagField->end(); ++it) {
544 if (!isFlagSet(it, domainFlag))
547 if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) {
548 auto element =
IndexInfo(it.x(), it.y(), it.z(), 16);
549 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
550 Cell(it.x() + 0, it.y() + -1, it.z() + -1), blocks, *
block);
551 element.flux_0 = InitialisatonAdditionalData[0];
552 element.flux_1 = InitialisatonAdditionalData[1];
553 element.flux_2 = InitialisatonAdditionalData[2];
554 indexVectorAll.emplace_back(element);
555 if (
inner.contains(it.x(), it.y(), it.z()))
556 indexVectorInner.emplace_back(element);
558 indexVectorOuter.emplace_back(element);
562 for (
auto it = flagField->beginWithGhostLayerXYZ(
563 cell_idx_c(flagField->nrOfGhostLayers() - 1));
564 it != flagField->end(); ++it) {
565 if (!isFlagSet(it, domainFlag))
568 if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) {
569 auto element =
IndexInfo(it.x(), it.y(), it.z(), 17);
570 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
571 Cell(it.x() + -1, it.y() + 0, it.z() + -1), blocks, *
block);
572 element.flux_0 = InitialisatonAdditionalData[0];
573 element.flux_1 = InitialisatonAdditionalData[1];
574 element.flux_2 = InitialisatonAdditionalData[2];
575 indexVectorAll.emplace_back(element);
576 if (
inner.contains(it.x(), it.y(), it.z()))
577 indexVectorInner.emplace_back(element);
579 indexVectorOuter.emplace_back(element);
583 for (
auto it = flagField->beginWithGhostLayerXYZ(
584 cell_idx_c(flagField->nrOfGhostLayers() - 1));
585 it != flagField->end(); ++it) {
586 if (!isFlagSet(it, domainFlag))
589 if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) {
590 auto element =
IndexInfo(it.x(), it.y(), it.z(), 18);
591 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
592 Cell(it.x() + 1, it.y() + 0, it.z() + -1), blocks, *
block);
593 element.flux_0 = InitialisatonAdditionalData[0];
594 element.flux_1 = InitialisatonAdditionalData[1];
595 element.flux_2 = InitialisatonAdditionalData[2];
596 indexVectorAll.emplace_back(element);
597 if (
inner.contains(it.x(), it.y(), it.z()))
598 indexVectorInner.emplace_back(element);
600 indexVectorOuter.emplace_back(element);
604 for (
auto it = flagField->beginWithGhostLayerXYZ(
605 cell_idx_c(flagField->nrOfGhostLayers() - 1));
606 it != flagField->end(); ++it) {
607 if (!isFlagSet(it, domainFlag))
610 if (isFlagSet(it.neighbor(1, 1, 1, 0), boundaryFlag)) {
611 auto element =
IndexInfo(it.x(), it.y(), it.z(), 19);
612 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
613 Cell(it.x() + 1, it.y() + 1, it.z() + 1), blocks, *
block);
614 element.flux_0 = InitialisatonAdditionalData[0];
615 element.flux_1 = InitialisatonAdditionalData[1];
616 element.flux_2 = InitialisatonAdditionalData[2];
617 indexVectorAll.emplace_back(element);
618 if (
inner.contains(it.x(), it.y(), it.z()))
619 indexVectorInner.emplace_back(element);
621 indexVectorOuter.emplace_back(element);
625 for (
auto it = flagField->beginWithGhostLayerXYZ(
626 cell_idx_c(flagField->nrOfGhostLayers() - 1));
627 it != flagField->end(); ++it) {
628 if (!isFlagSet(it, domainFlag))
631 if (isFlagSet(it.neighbor(-1, 1, 1, 0), boundaryFlag)) {
632 auto element =
IndexInfo(it.x(), it.y(), it.z(), 20);
633 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
634 Cell(it.x() + -1, it.y() + 1, it.z() + 1), blocks, *
block);
635 element.flux_0 = InitialisatonAdditionalData[0];
636 element.flux_1 = InitialisatonAdditionalData[1];
637 element.flux_2 = InitialisatonAdditionalData[2];
638 indexVectorAll.emplace_back(element);
639 if (
inner.contains(it.x(), it.y(), it.z()))
640 indexVectorInner.emplace_back(element);
642 indexVectorOuter.emplace_back(element);
646 for (
auto it = flagField->beginWithGhostLayerXYZ(
647 cell_idx_c(flagField->nrOfGhostLayers() - 1));
648 it != flagField->end(); ++it) {
649 if (!isFlagSet(it, domainFlag))
652 if (isFlagSet(it.neighbor(1, -1, 1, 0), boundaryFlag)) {
653 auto element =
IndexInfo(it.x(), it.y(), it.z(), 21);
654 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
655 Cell(it.x() + 1, it.y() + -1, it.z() + 1), blocks, *
block);
656 element.flux_0 = InitialisatonAdditionalData[0];
657 element.flux_1 = InitialisatonAdditionalData[1];
658 element.flux_2 = InitialisatonAdditionalData[2];
659 indexVectorAll.emplace_back(element);
660 if (
inner.contains(it.x(), it.y(), it.z()))
661 indexVectorInner.emplace_back(element);
663 indexVectorOuter.emplace_back(element);
667 for (
auto it = flagField->beginWithGhostLayerXYZ(
668 cell_idx_c(flagField->nrOfGhostLayers() - 1));
669 it != flagField->end(); ++it) {
670 if (!isFlagSet(it, domainFlag))
673 if (isFlagSet(it.neighbor(-1, -1, 1, 0), boundaryFlag)) {
674 auto element =
IndexInfo(it.x(), it.y(), it.z(), 22);
675 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
676 Cell(it.x() + -1, it.y() + -1, it.z() + 1), blocks, *
block);
677 element.flux_0 = InitialisatonAdditionalData[0];
678 element.flux_1 = InitialisatonAdditionalData[1];
679 element.flux_2 = InitialisatonAdditionalData[2];
680 indexVectorAll.emplace_back(element);
681 if (
inner.contains(it.x(), it.y(), it.z()))
682 indexVectorInner.emplace_back(element);
684 indexVectorOuter.emplace_back(element);
688 for (
auto it = flagField->beginWithGhostLayerXYZ(
689 cell_idx_c(flagField->nrOfGhostLayers() - 1));
690 it != flagField->end(); ++it) {
691 if (!isFlagSet(it, domainFlag))
694 if (isFlagSet(it.neighbor(1, 1, -1, 0), boundaryFlag)) {
695 auto element =
IndexInfo(it.x(), it.y(), it.z(), 23);
696 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
697 Cell(it.x() + 1, it.y() + 1, it.z() + -1), blocks, *
block);
698 element.flux_0 = InitialisatonAdditionalData[0];
699 element.flux_1 = InitialisatonAdditionalData[1];
700 element.flux_2 = InitialisatonAdditionalData[2];
701 indexVectorAll.emplace_back(element);
702 if (
inner.contains(it.x(), it.y(), it.z()))
703 indexVectorInner.emplace_back(element);
705 indexVectorOuter.emplace_back(element);
709 for (
auto it = flagField->beginWithGhostLayerXYZ(
710 cell_idx_c(flagField->nrOfGhostLayers() - 1));
711 it != flagField->end(); ++it) {
712 if (!isFlagSet(it, domainFlag))
715 if (isFlagSet(it.neighbor(-1, 1, -1, 0), boundaryFlag)) {
716 auto element =
IndexInfo(it.x(), it.y(), it.z(), 24);
717 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
718 Cell(it.x() + -1, it.y() + 1, it.z() + -1), blocks, *
block);
719 element.flux_0 = InitialisatonAdditionalData[0];
720 element.flux_1 = InitialisatonAdditionalData[1];
721 element.flux_2 = InitialisatonAdditionalData[2];
722 indexVectorAll.emplace_back(element);
723 if (
inner.contains(it.x(), it.y(), it.z()))
724 indexVectorInner.emplace_back(element);
726 indexVectorOuter.emplace_back(element);
730 for (
auto it = flagField->beginWithGhostLayerXYZ(
731 cell_idx_c(flagField->nrOfGhostLayers() - 1));
732 it != flagField->end(); ++it) {
733 if (!isFlagSet(it, domainFlag))
736 if (isFlagSet(it.neighbor(1, -1, -1, 0), boundaryFlag)) {
737 auto element =
IndexInfo(it.x(), it.y(), it.z(), 25);
738 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
739 Cell(it.x() + 1, it.y() + -1, it.z() + -1), blocks, *
block);
740 element.flux_0 = InitialisatonAdditionalData[0];
741 element.flux_1 = InitialisatonAdditionalData[1];
742 element.flux_2 = InitialisatonAdditionalData[2];
743 indexVectorAll.emplace_back(element);
744 if (
inner.contains(it.x(), it.y(), it.z()))
745 indexVectorInner.emplace_back(element);
747 indexVectorOuter.emplace_back(element);
751 for (
auto it = flagField->beginWithGhostLayerXYZ(
752 cell_idx_c(flagField->nrOfGhostLayers() - 1));
753 it != flagField->end(); ++it) {
754 if (!isFlagSet(it, domainFlag))
757 if (isFlagSet(it.neighbor(-1, -1, -1, 0), boundaryFlag)) {
758 auto element =
IndexInfo(it.x(), it.y(), it.z(), 26);
759 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
760 Cell(it.x() + -1, it.y() + -1, it.z() + -1), blocks, *
block);
761 element.flux_0 = InitialisatonAdditionalData[0];
762 element.flux_1 = InitialisatonAdditionalData[1];
763 element.flux_2 = InitialisatonAdditionalData[2];
764 indexVectorAll.emplace_back(element);
765 if (
inner.contains(it.x(), it.y(), it.z()))
766 indexVectorInner.emplace_back(element);
768 indexVectorOuter.emplace_back(element);