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();
298 const auto f_user = m_user_f;
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();
424 const auto f_user = m_user_f;
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();
442 if (n_face_boxes == 1) {
448 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
449 f_user(idx, fab, dcomp, numcomp, geomdata, time,
450 bcr_p, 0, orig_comp);
452 }
else if (n_face_boxes > 1) {
454 Box* boxes_p = face_boxes_aa.
data();
456 for (
const auto& b : face_boxes) {
457 ncounts += b.numPts();
462 const auto& idx =
getCell(boxes_p, n_face_boxes, icount);
463 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
464 f_user(idx, fab, dcomp, numcomp, geomdata, time,
465 bcr_p, 0, orig_comp);
470#if (AMREX_SPACEDIM >= 2)
473#if (AMREX_SPACEDIM == 2)
497 for (
const Box& b : dom_edge_boxes) {
499 if (tmp.
ok()) { edge_boxes.push_back(tmp); }
501 const int n_edge_boxes = edge_boxes.
size();
502 if (n_edge_boxes == 1) {
508 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
509 f_user(idx, fab, dcomp, numcomp, geomdata, time,
510 bcr_p, 0, orig_comp);
512 }
else if (n_edge_boxes > 1) {
514 Box* boxes_p = edge_boxes_aa.
data();
516 for (
const auto& b : edge_boxes) {
517 ncounts += b.numPts();
522 const auto& idx =
getCell(boxes_p, n_edge_boxes, icount);
523 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
524 f_user(idx, fab, dcomp, numcomp, geomdata, time,
525 bcr_p, 0, orig_comp);
531#if (AMREX_SPACEDIM == 3)
545 for (
const Box& b : dom_corner_boxes) {
547 if (tmp.
ok()) { corner_boxes.push_back(tmp); }
549 const int n_corner_boxes = corner_boxes.
size();
550 if (n_corner_boxes == 1) {
555 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
556 f_user(idx, fab, dcomp, numcomp, geomdata, time,
557 bcr_p, 0, orig_comp);
559 }
else if (n_corner_boxes > 1) {
561 Box* boxes_p = corner_boxes_aa.
data();
563 for (
const auto& b : corner_boxes) {
564 ncounts += b.numPts();
569 const auto& idx =
getCell(boxes_p, n_corner_boxes, icount);
570 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
571 f_user(idx, fab, dcomp, numcomp, geomdata, time,
572 bcr_p, 0, orig_comp);
579 BCRec const* bcr_p = bcr.data()+bcomp;
581 const auto& f_user = m_user_f;
593 for (
const Box& b : dom_face_boxes) {
595 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
599 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
600 f_user(idx, fab, dcomp, numcomp, geomdata, time,
601 bcr_p, 0, orig_comp);
606#if (AMREX_SPACEDIM >= 2)
609#if (AMREX_SPACEDIM == 2)
633 for (
const Box& b : dom_edge_boxes) {
635 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
639 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
640 f_user(idx, fab, dcomp, numcomp, geomdata, time,
641 bcr_p, 0, orig_comp);
647#if (AMREX_SPACEDIM == 3)
660 for (
const Box& b : dom_corner_boxes) {
662 amrex::For(tmp, [=] (
int i,
int j,
int k)
noexcept
665 fillfunc(idx, fab, dcomp, numcomp, domain, bcr_p, 0);
666 f_user(idx, fab, dcomp, numcomp, geomdata, time,
667 bcr_p, 0, orig_comp);