| 1018 | |
| 1019 | |
| 1020 | void 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 ® = 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 | } |
no test coverage detected