143 IBlock *
block, ConstBlockDataID flagFieldID,
144 FlagUID boundaryFlagUID, FlagUID domainFlagUID) {
150 auto *flagField =
block->getData<FlagField_T>(flagFieldID);
152 if (!(flagField->flagExists(boundaryFlagUID) &&
153 flagField->flagExists(domainFlagUID)))
156 auto boundaryFlag = flagField->getFlag(boundaryFlagUID);
157 auto domainFlag = flagField->getFlag(domainFlagUID);
159 auto inner = flagField->xyzSize();
160 inner.expand(cell_idx_t(-1));
162 indexVectorAll.clear();
163 indexVectorInner.clear();
164 indexVectorOuter.clear();
166 for (
auto it = flagField->beginWithGhostLayerXYZ(
167 cell_idx_c(flagField->nrOfGhostLayers() - 1));
168 it != flagField->end(); ++it) {
169 if (!isFlagSet(it, domainFlag))
172 if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) {
173 auto element =
IndexInfo(it.x(), it.y(), it.z(), 0);
174 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
175 Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *
block);
176 element.flux_0 = InitialisatonAdditionalData[0];
177 element.flux_1 = InitialisatonAdditionalData[1];
178 element.flux_2 = InitialisatonAdditionalData[2];
179 indexVectorAll.push_back(element);
180 if (
inner.contains(it.x(), it.y(), it.z()))
181 indexVectorInner.push_back(element);
183 indexVectorOuter.push_back(element);
187 for (
auto it = flagField->beginWithGhostLayerXYZ(
188 cell_idx_c(flagField->nrOfGhostLayers() - 1));
189 it != flagField->end(); ++it) {
190 if (!isFlagSet(it, domainFlag))
193 if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) {
194 auto element =
IndexInfo(it.x(), it.y(), it.z(), 1);
195 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
196 Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *
block);
197 element.flux_0 = InitialisatonAdditionalData[0];
198 element.flux_1 = InitialisatonAdditionalData[1];
199 element.flux_2 = InitialisatonAdditionalData[2];
200 indexVectorAll.push_back(element);
201 if (
inner.contains(it.x(), it.y(), it.z()))
202 indexVectorInner.push_back(element);
204 indexVectorOuter.push_back(element);
208 for (
auto it = flagField->beginWithGhostLayerXYZ(
209 cell_idx_c(flagField->nrOfGhostLayers() - 1));
210 it != flagField->end(); ++it) {
211 if (!isFlagSet(it, domainFlag))
214 if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) {
215 auto element =
IndexInfo(it.x(), it.y(), it.z(), 2);
216 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
217 Cell(it.x() + 0, it.y() + -1, it.z() + 0), blocks, *
block);
218 element.flux_0 = InitialisatonAdditionalData[0];
219 element.flux_1 = InitialisatonAdditionalData[1];
220 element.flux_2 = InitialisatonAdditionalData[2];
221 indexVectorAll.push_back(element);
222 if (
inner.contains(it.x(), it.y(), it.z()))
223 indexVectorInner.push_back(element);
225 indexVectorOuter.push_back(element);
229 for (
auto it = flagField->beginWithGhostLayerXYZ(
230 cell_idx_c(flagField->nrOfGhostLayers() - 1));
231 it != flagField->end(); ++it) {
232 if (!isFlagSet(it, domainFlag))
235 if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) {
236 auto element =
IndexInfo(it.x(), it.y(), it.z(), 3);
237 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
238 Cell(it.x() + -1, it.y() + 0, it.z() + 0), blocks, *
block);
239 element.flux_0 = InitialisatonAdditionalData[0];
240 element.flux_1 = InitialisatonAdditionalData[1];
241 element.flux_2 = InitialisatonAdditionalData[2];
242 indexVectorAll.push_back(element);
243 if (
inner.contains(it.x(), it.y(), it.z()))
244 indexVectorInner.push_back(element);
246 indexVectorOuter.push_back(element);
250 for (
auto it = flagField->beginWithGhostLayerXYZ(
251 cell_idx_c(flagField->nrOfGhostLayers() - 1));
252 it != flagField->end(); ++it) {
253 if (!isFlagSet(it, domainFlag))
256 if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) {
257 auto element =
IndexInfo(it.x(), it.y(), it.z(), 4);
258 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
259 Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *
block);
260 element.flux_0 = InitialisatonAdditionalData[0];
261 element.flux_1 = InitialisatonAdditionalData[1];
262 element.flux_2 = InitialisatonAdditionalData[2];
263 indexVectorAll.push_back(element);
264 if (
inner.contains(it.x(), it.y(), it.z()))
265 indexVectorInner.push_back(element);
267 indexVectorOuter.push_back(element);
271 for (
auto it = flagField->beginWithGhostLayerXYZ(
272 cell_idx_c(flagField->nrOfGhostLayers() - 1));
273 it != flagField->end(); ++it) {
274 if (!isFlagSet(it, domainFlag))
277 if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) {
278 auto element =
IndexInfo(it.x(), it.y(), it.z(), 5);
279 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
280 Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *
block);
281 element.flux_0 = InitialisatonAdditionalData[0];
282 element.flux_1 = InitialisatonAdditionalData[1];
283 element.flux_2 = InitialisatonAdditionalData[2];
284 indexVectorAll.push_back(element);
285 if (
inner.contains(it.x(), it.y(), it.z()))
286 indexVectorInner.push_back(element);
288 indexVectorOuter.push_back(element);
292 for (
auto it = flagField->beginWithGhostLayerXYZ(
293 cell_idx_c(flagField->nrOfGhostLayers() - 1));
294 it != flagField->end(); ++it) {
295 if (!isFlagSet(it, domainFlag))
298 if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) {
299 auto element =
IndexInfo(it.x(), it.y(), it.z(), 6);
300 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
301 Cell(it.x() + 0, it.y() + 0, it.z() + -1), blocks, *
block);
302 element.flux_0 = InitialisatonAdditionalData[0];
303 element.flux_1 = InitialisatonAdditionalData[1];
304 element.flux_2 = InitialisatonAdditionalData[2];
305 indexVectorAll.push_back(element);
306 if (
inner.contains(it.x(), it.y(), it.z()))
307 indexVectorInner.push_back(element);
309 indexVectorOuter.push_back(element);
313 for (
auto it = flagField->beginWithGhostLayerXYZ(
314 cell_idx_c(flagField->nrOfGhostLayers() - 1));
315 it != flagField->end(); ++it) {
316 if (!isFlagSet(it, domainFlag))
319 if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) {
320 auto element =
IndexInfo(it.x(), it.y(), it.z(), 7);
321 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
322 Cell(it.x() + -1, it.y() + 1, it.z() + 0), blocks, *
block);
323 element.flux_0 = InitialisatonAdditionalData[0];
324 element.flux_1 = InitialisatonAdditionalData[1];
325 element.flux_2 = InitialisatonAdditionalData[2];
326 indexVectorAll.push_back(element);
327 if (
inner.contains(it.x(), it.y(), it.z()))
328 indexVectorInner.push_back(element);
330 indexVectorOuter.push_back(element);
334 for (
auto it = flagField->beginWithGhostLayerXYZ(
335 cell_idx_c(flagField->nrOfGhostLayers() - 1));
336 it != flagField->end(); ++it) {
337 if (!isFlagSet(it, domainFlag))
340 if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) {
341 auto element =
IndexInfo(it.x(), it.y(), it.z(), 8);
342 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
343 Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *
block);
344 element.flux_0 = InitialisatonAdditionalData[0];
345 element.flux_1 = InitialisatonAdditionalData[1];
346 element.flux_2 = InitialisatonAdditionalData[2];
347 indexVectorAll.push_back(element);
348 if (
inner.contains(it.x(), it.y(), it.z()))
349 indexVectorInner.push_back(element);
351 indexVectorOuter.push_back(element);
355 for (
auto it = flagField->beginWithGhostLayerXYZ(
356 cell_idx_c(flagField->nrOfGhostLayers() - 1));
357 it != flagField->end(); ++it) {
358 if (!isFlagSet(it, domainFlag))
361 if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) {
362 auto element =
IndexInfo(it.x(), it.y(), it.z(), 9);
363 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
364 Cell(it.x() + -1, it.y() + -1, it.z() + 0), blocks, *
block);
365 element.flux_0 = InitialisatonAdditionalData[0];
366 element.flux_1 = InitialisatonAdditionalData[1];
367 element.flux_2 = InitialisatonAdditionalData[2];
368 indexVectorAll.push_back(element);
369 if (
inner.contains(it.x(), it.y(), it.z()))
370 indexVectorInner.push_back(element);
372 indexVectorOuter.push_back(element);
376 for (
auto it = flagField->beginWithGhostLayerXYZ(
377 cell_idx_c(flagField->nrOfGhostLayers() - 1));
378 it != flagField->end(); ++it) {
379 if (!isFlagSet(it, domainFlag))
382 if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) {
383 auto element =
IndexInfo(it.x(), it.y(), it.z(), 10);
384 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
385 Cell(it.x() + 1, it.y() + -1, it.z() + 0), blocks, *
block);
386 element.flux_0 = InitialisatonAdditionalData[0];
387 element.flux_1 = InitialisatonAdditionalData[1];
388 element.flux_2 = InitialisatonAdditionalData[2];
389 indexVectorAll.push_back(element);
390 if (
inner.contains(it.x(), it.y(), it.z()))
391 indexVectorInner.push_back(element);
393 indexVectorOuter.push_back(element);
397 for (
auto it = flagField->beginWithGhostLayerXYZ(
398 cell_idx_c(flagField->nrOfGhostLayers() - 1));
399 it != flagField->end(); ++it) {
400 if (!isFlagSet(it, domainFlag))
403 if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) {
404 auto element =
IndexInfo(it.x(), it.y(), it.z(), 11);
405 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
406 Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *
block);
407 element.flux_0 = InitialisatonAdditionalData[0];
408 element.flux_1 = InitialisatonAdditionalData[1];
409 element.flux_2 = InitialisatonAdditionalData[2];
410 indexVectorAll.push_back(element);
411 if (
inner.contains(it.x(), it.y(), it.z()))
412 indexVectorInner.push_back(element);
414 indexVectorOuter.push_back(element);
418 for (
auto it = flagField->beginWithGhostLayerXYZ(
419 cell_idx_c(flagField->nrOfGhostLayers() - 1));
420 it != flagField->end(); ++it) {
421 if (!isFlagSet(it, domainFlag))
424 if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) {
425 auto element =
IndexInfo(it.x(), it.y(), it.z(), 12);
426 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
427 Cell(it.x() + 0, it.y() + -1, it.z() + 1), blocks, *
block);
428 element.flux_0 = InitialisatonAdditionalData[0];
429 element.flux_1 = InitialisatonAdditionalData[1];
430 element.flux_2 = InitialisatonAdditionalData[2];
431 indexVectorAll.push_back(element);
432 if (
inner.contains(it.x(), it.y(), it.z()))
433 indexVectorInner.push_back(element);
435 indexVectorOuter.push_back(element);
439 for (
auto it = flagField->beginWithGhostLayerXYZ(
440 cell_idx_c(flagField->nrOfGhostLayers() - 1));
441 it != flagField->end(); ++it) {
442 if (!isFlagSet(it, domainFlag))
445 if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) {
446 auto element =
IndexInfo(it.x(), it.y(), it.z(), 13);
447 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
448 Cell(it.x() + -1, it.y() + 0, it.z() + 1), blocks, *
block);
449 element.flux_0 = InitialisatonAdditionalData[0];
450 element.flux_1 = InitialisatonAdditionalData[1];
451 element.flux_2 = InitialisatonAdditionalData[2];
452 indexVectorAll.push_back(element);
453 if (
inner.contains(it.x(), it.y(), it.z()))
454 indexVectorInner.push_back(element);
456 indexVectorOuter.push_back(element);
460 for (
auto it = flagField->beginWithGhostLayerXYZ(
461 cell_idx_c(flagField->nrOfGhostLayers() - 1));
462 it != flagField->end(); ++it) {
463 if (!isFlagSet(it, domainFlag))
466 if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) {
467 auto element =
IndexInfo(it.x(), it.y(), it.z(), 14);
468 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
469 Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *
block);
470 element.flux_0 = InitialisatonAdditionalData[0];
471 element.flux_1 = InitialisatonAdditionalData[1];
472 element.flux_2 = InitialisatonAdditionalData[2];
473 indexVectorAll.push_back(element);
474 if (
inner.contains(it.x(), it.y(), it.z()))
475 indexVectorInner.push_back(element);
477 indexVectorOuter.push_back(element);
481 for (
auto it = flagField->beginWithGhostLayerXYZ(
482 cell_idx_c(flagField->nrOfGhostLayers() - 1));
483 it != flagField->end(); ++it) {
484 if (!isFlagSet(it, domainFlag))
487 if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) {
488 auto element =
IndexInfo(it.x(), it.y(), it.z(), 15);
489 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
490 Cell(it.x() + 0, it.y() + 1, it.z() + -1), blocks, *
block);
491 element.flux_0 = InitialisatonAdditionalData[0];
492 element.flux_1 = InitialisatonAdditionalData[1];
493 element.flux_2 = InitialisatonAdditionalData[2];
494 indexVectorAll.push_back(element);
495 if (
inner.contains(it.x(), it.y(), it.z()))
496 indexVectorInner.push_back(element);
498 indexVectorOuter.push_back(element);
502 for (
auto it = flagField->beginWithGhostLayerXYZ(
503 cell_idx_c(flagField->nrOfGhostLayers() - 1));
504 it != flagField->end(); ++it) {
505 if (!isFlagSet(it, domainFlag))
508 if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) {
509 auto element =
IndexInfo(it.x(), it.y(), it.z(), 16);
510 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
511 Cell(it.x() + 0, it.y() + -1, it.z() + -1), blocks, *
block);
512 element.flux_0 = InitialisatonAdditionalData[0];
513 element.flux_1 = InitialisatonAdditionalData[1];
514 element.flux_2 = InitialisatonAdditionalData[2];
515 indexVectorAll.push_back(element);
516 if (
inner.contains(it.x(), it.y(), it.z()))
517 indexVectorInner.push_back(element);
519 indexVectorOuter.push_back(element);
523 for (
auto it = flagField->beginWithGhostLayerXYZ(
524 cell_idx_c(flagField->nrOfGhostLayers() - 1));
525 it != flagField->end(); ++it) {
526 if (!isFlagSet(it, domainFlag))
529 if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) {
530 auto element =
IndexInfo(it.x(), it.y(), it.z(), 17);
531 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
532 Cell(it.x() + -1, it.y() + 0, it.z() + -1), blocks, *
block);
533 element.flux_0 = InitialisatonAdditionalData[0];
534 element.flux_1 = InitialisatonAdditionalData[1];
535 element.flux_2 = InitialisatonAdditionalData[2];
536 indexVectorAll.push_back(element);
537 if (
inner.contains(it.x(), it.y(), it.z()))
538 indexVectorInner.push_back(element);
540 indexVectorOuter.push_back(element);
544 for (
auto it = flagField->beginWithGhostLayerXYZ(
545 cell_idx_c(flagField->nrOfGhostLayers() - 1));
546 it != flagField->end(); ++it) {
547 if (!isFlagSet(it, domainFlag))
550 if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) {
551 auto element =
IndexInfo(it.x(), it.y(), it.z(), 18);
552 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
553 Cell(it.x() + 1, it.y() + 0, it.z() + -1), blocks, *
block);
554 element.flux_0 = InitialisatonAdditionalData[0];
555 element.flux_1 = InitialisatonAdditionalData[1];
556 element.flux_2 = InitialisatonAdditionalData[2];
557 indexVectorAll.push_back(element);
558 if (
inner.contains(it.x(), it.y(), it.z()))
559 indexVectorInner.push_back(element);
561 indexVectorOuter.push_back(element);
565 for (
auto it = flagField->beginWithGhostLayerXYZ(
566 cell_idx_c(flagField->nrOfGhostLayers() - 1));
567 it != flagField->end(); ++it) {
568 if (!isFlagSet(it, domainFlag))
571 if (isFlagSet(it.neighbor(1, 1, 1, 0), boundaryFlag)) {
572 auto element =
IndexInfo(it.x(), it.y(), it.z(), 19);
573 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
574 Cell(it.x() + 1, it.y() + 1, it.z() + 1), blocks, *
block);
575 element.flux_0 = InitialisatonAdditionalData[0];
576 element.flux_1 = InitialisatonAdditionalData[1];
577 element.flux_2 = InitialisatonAdditionalData[2];
578 indexVectorAll.push_back(element);
579 if (
inner.contains(it.x(), it.y(), it.z()))
580 indexVectorInner.push_back(element);
582 indexVectorOuter.push_back(element);
586 for (
auto it = flagField->beginWithGhostLayerXYZ(
587 cell_idx_c(flagField->nrOfGhostLayers() - 1));
588 it != flagField->end(); ++it) {
589 if (!isFlagSet(it, domainFlag))
592 if (isFlagSet(it.neighbor(-1, 1, 1, 0), boundaryFlag)) {
593 auto element =
IndexInfo(it.x(), it.y(), it.z(), 20);
594 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
595 Cell(it.x() + -1, it.y() + 1, it.z() + 1), blocks, *
block);
596 element.flux_0 = InitialisatonAdditionalData[0];
597 element.flux_1 = InitialisatonAdditionalData[1];
598 element.flux_2 = InitialisatonAdditionalData[2];
599 indexVectorAll.push_back(element);
600 if (
inner.contains(it.x(), it.y(), it.z()))
601 indexVectorInner.push_back(element);
603 indexVectorOuter.push_back(element);
607 for (
auto it = flagField->beginWithGhostLayerXYZ(
608 cell_idx_c(flagField->nrOfGhostLayers() - 1));
609 it != flagField->end(); ++it) {
610 if (!isFlagSet(it, domainFlag))
613 if (isFlagSet(it.neighbor(1, -1, 1, 0), boundaryFlag)) {
614 auto element =
IndexInfo(it.x(), it.y(), it.z(), 21);
615 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
616 Cell(it.x() + 1, it.y() + -1, it.z() + 1), blocks, *
block);
617 element.flux_0 = InitialisatonAdditionalData[0];
618 element.flux_1 = InitialisatonAdditionalData[1];
619 element.flux_2 = InitialisatonAdditionalData[2];
620 indexVectorAll.push_back(element);
621 if (
inner.contains(it.x(), it.y(), it.z()))
622 indexVectorInner.push_back(element);
624 indexVectorOuter.push_back(element);
628 for (
auto it = flagField->beginWithGhostLayerXYZ(
629 cell_idx_c(flagField->nrOfGhostLayers() - 1));
630 it != flagField->end(); ++it) {
631 if (!isFlagSet(it, domainFlag))
634 if (isFlagSet(it.neighbor(-1, -1, 1, 0), boundaryFlag)) {
635 auto element =
IndexInfo(it.x(), it.y(), it.z(), 22);
636 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
637 Cell(it.x() + -1, it.y() + -1, it.z() + 1), blocks, *
block);
638 element.flux_0 = InitialisatonAdditionalData[0];
639 element.flux_1 = InitialisatonAdditionalData[1];
640 element.flux_2 = InitialisatonAdditionalData[2];
641 indexVectorAll.push_back(element);
642 if (
inner.contains(it.x(), it.y(), it.z()))
643 indexVectorInner.push_back(element);
645 indexVectorOuter.push_back(element);
649 for (
auto it = flagField->beginWithGhostLayerXYZ(
650 cell_idx_c(flagField->nrOfGhostLayers() - 1));
651 it != flagField->end(); ++it) {
652 if (!isFlagSet(it, domainFlag))
655 if (isFlagSet(it.neighbor(1, 1, -1, 0), boundaryFlag)) {
656 auto element =
IndexInfo(it.x(), it.y(), it.z(), 23);
657 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
658 Cell(it.x() + 1, it.y() + 1, it.z() + -1), blocks, *
block);
659 element.flux_0 = InitialisatonAdditionalData[0];
660 element.flux_1 = InitialisatonAdditionalData[1];
661 element.flux_2 = InitialisatonAdditionalData[2];
662 indexVectorAll.push_back(element);
663 if (
inner.contains(it.x(), it.y(), it.z()))
664 indexVectorInner.push_back(element);
666 indexVectorOuter.push_back(element);
670 for (
auto it = flagField->beginWithGhostLayerXYZ(
671 cell_idx_c(flagField->nrOfGhostLayers() - 1));
672 it != flagField->end(); ++it) {
673 if (!isFlagSet(it, domainFlag))
676 if (isFlagSet(it.neighbor(-1, 1, -1, 0), boundaryFlag)) {
677 auto element =
IndexInfo(it.x(), it.y(), it.z(), 24);
678 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
679 Cell(it.x() + -1, it.y() + 1, it.z() + -1), blocks, *
block);
680 element.flux_0 = InitialisatonAdditionalData[0];
681 element.flux_1 = InitialisatonAdditionalData[1];
682 element.flux_2 = InitialisatonAdditionalData[2];
683 indexVectorAll.push_back(element);
684 if (
inner.contains(it.x(), it.y(), it.z()))
685 indexVectorInner.push_back(element);
687 indexVectorOuter.push_back(element);
691 for (
auto it = flagField->beginWithGhostLayerXYZ(
692 cell_idx_c(flagField->nrOfGhostLayers() - 1));
693 it != flagField->end(); ++it) {
694 if (!isFlagSet(it, domainFlag))
697 if (isFlagSet(it.neighbor(1, -1, -1, 0), boundaryFlag)) {
698 auto element =
IndexInfo(it.x(), it.y(), it.z(), 25);
699 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
700 Cell(it.x() + 1, it.y() + -1, it.z() + -1), blocks, *
block);
701 element.flux_0 = InitialisatonAdditionalData[0];
702 element.flux_1 = InitialisatonAdditionalData[1];
703 element.flux_2 = InitialisatonAdditionalData[2];
704 indexVectorAll.push_back(element);
705 if (
inner.contains(it.x(), it.y(), it.z()))
706 indexVectorInner.push_back(element);
708 indexVectorOuter.push_back(element);
712 for (
auto it = flagField->beginWithGhostLayerXYZ(
713 cell_idx_c(flagField->nrOfGhostLayers() - 1));
714 it != flagField->end(); ++it) {
715 if (!isFlagSet(it, domainFlag))
718 if (isFlagSet(it.neighbor(-1, -1, -1, 0), boundaryFlag)) {
719 auto element =
IndexInfo(it.x(), it.y(), it.z(), 26);
720 Vector3<float> InitialisatonAdditionalData = elementInitaliser(
721 Cell(it.x() + -1, it.y() + -1, it.z() + -1), blocks, *
block);
722 element.flux_0 = InitialisatonAdditionalData[0];
723 element.flux_1 = InitialisatonAdditionalData[1];
724 element.flux_2 = InitialisatonAdditionalData[2];
725 indexVectorAll.push_back(element);
726 if (
inner.contains(it.x(), it.y(), it.z()))
727 indexVectorInner.push_back(element);
729 indexVectorOuter.push_back(element);