12 #ifndef CD_EBHelmholtzEBBCImplem_H
13 #define CD_EBHelmholtzEBBCImplem_H
16 #include <NeighborIterator.H>
19 #include <CD_EBHelmholtzEBBC.H>
20 #include <CD_NamespaceHeader.H>
28 const EBISBox& ebisbox =
m_eblg.getEBISL()[a_dit];
29 const RealVect& ebCentroid = ebisbox.bndryCentroid(a_vof);
31 RealVect
position =
m_probLo + (0.5 * RealVect::Unit + RealVect(a_vof.gridIndex()) + ebCentroid) *
m_dx;
42 for (
int i = 0; i < a_stencil.size(); i++) {
43 ret += a_stencil.weight(i) * a_phi(a_stencil.vof(i),
m_comp);
60 const DisjointBoxLayout& dbl =
m_eblg.getDBL();
61 const ProblemDomain& domain =
m_eblg.getDomain();
64 std::vector<Box> validBoxes;
66 Box curBox = dbl[a_dit];
69 validBoxes.emplace_back(curBox);
71 NeighborIterator nit(dbl);
72 for (nit.begin(a_dit); nit.ok(); ++nit) {
73 Box neighBox = dbl[nit()];
77 validBoxes.emplace_back(neighBox);
84 for (
int i = 0; i < a_stencil.size(); i++) {
85 const VolIndex& vof = a_stencil.vof(i);
86 const IntVect& iv = vof.gridIndex();
88 bool insideOneBox =
false;
89 for (
const auto& b : validBoxes) {
103 #include <CD_NamespaceFooter.H>
Real applyStencil(const VoFStencil &a_stencil, const EBCellFAB &a_phi) const
Apply stencil to data holder and return result.
Definition: CD_EBHelmholtzEBBCImplem.H:37
EBLevelGrid m_eblg
Level grid.
Definition: CD_EBHelmholtzEBBC.H:130
int m_ghostCF
Number of ghost cells that were filled across CF interface.
Definition: CD_EBHelmholtzEBBC.H:115
RealVect getBoundaryPosition(const VolIndex &a_vof, const DataIndex &a_dit) const
Returns physical position at the boundary.
Definition: CD_EBHelmholtzEBBCImplem.H:23
RealVect m_probLo
Lower-left corner of computational domain.
Definition: CD_EBHelmholtzEBBC.H:125
bool isStencilValidCF(const VoFStencil &a_stencil, const DataIndex &a_dit) const
Check if stencil is valid.
Definition: CD_EBHelmholtzEBBCImplem.H:50
constexpr static int m_comp
Component that everything is defined for. Always have m_comp = 0.
Definition: CD_EBHelmholtzEBBC.H:100
Real m_dx
Grid resolution.
Definition: CD_EBHelmholtzEBBC.H:120
RealVect position(const Location::Cell a_location, const VolIndex &a_vof, const EBISBox &a_ebisbox, const Real &a_dx)
Compute the position (ignoring the "origin) of a Vof.
Definition: CD_LocationImplem.H:20