MCPcopy Create free account
hub / github.com/AMReX-Astro/Castro / boundaryDterm

Method boundaryDterm

Source/radiation/HypreExtMultiABec.cpp:1020–1071  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1018
1019
1020void HypreExtMultiABec::boundaryDterm(int level,
1021 MultiFab* Dterm,
1022 MultiFab& Soln,
1023 int icomp)
1024{
1025 BL_PROFILE("HypreExtMultiABec::boundaryDterm");
1026
1027 const Box& domain = bd[level]->getDomain();
1028#ifdef _OPENMP
1029#pragma omp parallel
1030#endif
1031 for (MFIter mfi(Soln); mfi.isValid(); ++mfi) {
1032 int i = mfi.index();
1033 const Box &reg = grids[level][i];
1034 for (OrientationIter oitr; oitr; oitr++) {
1035 int cdir(oitr());
1036 int idim = oitr().coordDir();
1037 const RadBoundCond &bct = bd[level]->bndryConds(oitr())[i];
1038 const Real &bcl = bd[level]->bndryLocs(oitr())[i];
1039 const FArrayBox &bcv = bd[level]->bndryValues(oitr())[mfi];
1040 const Mask &msk = bd[level]->bndryMasks(oitr(), i);
1041
1042 if (reg[oitr()] == domain[oitr()]) {
1043 Array4<int const> tf_arr;
1044 int bctype = bct;
1045 if (bd[level]->mixedBndry(oitr())) {
1046 const BaseFab<int> &tf = *(bd[level]->bndryTypes(oitr())[i]);
1047 tf_arr = tf.array();
1048 bctype = -1;
1049 }
1050 HABEC::hdterm3(Dterm[idim][mfi].array(),
1051 Soln[mfi].array(icomp),
1052 reg,
1053 cdir, bctype, tf_arr, bcl,
1054 bcv.array(bdcomp),
1055 msk.array(),
1056 (*d2coefs[level])[idim][mfi].array(),
1057 geom[level].CellSize());
1058 }
1059 else {
1060 HABEC::hdterm(Dterm[idim][mfi].array(),
1061 Soln[mfi].array(icomp),
1062 reg,
1063 cdir, bct, bcl,
1064 bcv.array(bdcomp),
1065 msk.array(),
1066 (*d2coefs[level])[idim][mfi].array(),
1067 geom[level].CellSize());
1068 }
1069 }
1070 }
1071}

Callers 1

levelDtermMethod · 0.80

Calls 4

hdterm3Function · 0.85
hdtermFunction · 0.85
isValidMethod · 0.80
mixedBndryMethod · 0.45

Tested by

no test coverage detected