275 int dcomp,
int numcomp,
283 Box gdomain = domain;
284 for (
int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
286 gdomain.
grow(idim,len[idim]);
290 if (gdomain.
contains(bx)) {
return; }
293 const auto geomdata = geom.
data();
307 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
308 fab(i,j,k,n) = fab(dxlo,j,k,n);
311 bcr_p, 0, orig_comp);
318 int dxhi = domain.
bigEnd(0);
322 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
323 fab(i,j,k,n) = fab(dxhi,j,k,n);
326 bcr_p, 0, orig_comp);
330#if (AMREX_SPACEDIM >= 2)
338 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
339 fab(i,j,k,n) = fab(i,dylo,k,n);
342 bcr_p, 0, orig_comp);
349 int dyhi = domain.
bigEnd(1);
353 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
354 fab(i,j,k,n) = fab(i,dyhi,k,n);
357 bcr_p, 0, orig_comp);
362#if (AMREX_SPACEDIM == 3)
370 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
371 fab(i,j,k,n) = fab(i,j,dzlo,n);
374 bcr_p, 0, orig_comp);
381 int dzhi = domain.
bigEnd(2);
385 for (
int n = dcomp; n < dcomp+numcomp; ++n) {
386 fab(i,j,k,n) = fab(i,j,dzhi,n);
389 bcr_p, 0, orig_comp);
399 int dcomp,
int numcomp,
402 int orig_comp, FF
const& fillfunc)
408 Box gdomain = domain;
409 for (
int idim = 0; idim < AMREX_SPACEDIM; ++idim) {
411 gdomain.
grow(idim,len[idim]);
415 if (gdomain.
contains(bx)) {
return; }
418 const auto geomdata = geom.
data();
437 for (
const Box& b : dom_face_boxes) {
439 if (tmp.
ok()) { face_boxes.push_back(tmp); }
441 const int n_face_boxes = face_boxes.
size();
445 for (
const Box& b : face_boxes) {
451 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
452 f_user(idx, fab, dcomp, numcomp, geomdata, time,
453 bcr_p, 0, orig_comp);
456 }
else if (n_face_boxes > 1) {
458 Box* boxes_p = face_boxes_aa.
data();
460 for (
const auto& b : face_boxes) {
461 ncounts += b.numPts();
466 const auto& idx =
getCell(boxes_p, n_face_boxes, icount);
467 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
468 f_user(idx, fab, dcomp, numcomp, geomdata, time,
469 bcr_p, 0, orig_comp);
474#if (AMREX_SPACEDIM >= 2)
477#if (AMREX_SPACEDIM == 2)
501 for (
const Box& b : dom_edge_boxes) {
503 if (tmp.
ok()) { edge_boxes.push_back(tmp); }
505 const int n_edge_boxes = edge_boxes.
size();
509 for (
const Box& b : edge_boxes) {
515 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
516 f_user(idx, fab, dcomp, numcomp, geomdata, time,
517 bcr_p, 0, orig_comp);
520 }
else if (n_edge_boxes > 1) {
522 Box* boxes_p = edge_boxes_aa.
data();
524 for (
const auto& b : edge_boxes) {
525 ncounts += b.numPts();
530 const auto& idx =
getCell(boxes_p, n_edge_boxes, icount);
531 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
532 f_user(idx, fab, dcomp, numcomp, geomdata, time,
533 bcr_p, 0, orig_comp);
539#if (AMREX_SPACEDIM == 3)
553 for (
const Box& b : dom_corner_boxes) {
555 if (tmp.
ok()) { corner_boxes.push_back(tmp); }
557 const int n_corner_boxes = corner_boxes.
size();
558 if (n_corner_boxes == 1) {
563 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
564 f_user(idx, fab, dcomp, numcomp, geomdata, time,
565 bcr_p, 0, orig_comp);
567 }
else if (n_corner_boxes > 1) {
569 Box* boxes_p = corner_boxes_aa.
data();
571 for (
const auto& b : corner_boxes) {
572 ncounts += b.numPts();
577 const auto& idx =
getCell(boxes_p, n_corner_boxes, icount);
578 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
579 f_user(idx, fab, dcomp, numcomp, geomdata, time,
580 bcr_p, 0, orig_comp);
587 BCRec const* bcr_p = bcr.data()+bcomp;
601 for (
const Box& b : dom_face_boxes) {
603 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
607 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
608 f_user(idx, fab, dcomp, numcomp, geomdata, time,
609 bcr_p, 0, orig_comp);
614#if (AMREX_SPACEDIM >= 2)
617#if (AMREX_SPACEDIM == 2)
641 for (
const Box& b : dom_edge_boxes) {
643 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
647 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
648 f_user(idx, fab, dcomp, numcomp, geomdata, time,
649 bcr_p, 0, orig_comp);
655#if (AMREX_SPACEDIM == 3)
668 for (
const Box& b : dom_corner_boxes) {
670 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
673 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
674 f_user(idx, fab, dcomp, numcomp, geomdata, time,
675 bcr_p, 0, orig_comp);