void setValue(LevelData<EBCellFAB>& phase, const BaseBCValue& value, const Box& domain, const RealVect& dx, const RealVect& origin, bool useKappa) { RealVect loc; IntVect originIV = domain.smallEnd(); DataIterator dit = phase.dataIterator(); for (dit.begin(); dit.ok(); ++dit) { EBCellFAB& efab = phase[dit]; FArrayBox& fab = efab.getFArrayBox(); ForAllX(Real, fab) { D_EXPR(loc[0]=iR+nR-nR+originIV[0], loc[1]=jR+originIV[1], loc[2]=kR+originIV[2]); loc+=0.5; loc*=dx; loc+=origin; fabR = value.value(loc, RealVect::Zero, 1.e99,0); } EndFor ; if (useKappa) { const EBISBox& ebox = efab.getEBISBox(); IntVectSet ivs = ebox.getIrregIVS(efab.getRegion()); IVSIterator it(ivs); for (; it.ok(); ++it) { const IntVect iv = it(); VolIndex vi(iv,0); if (ebox.bndryArea(vi) != 0) { loc = iv; loc+=0.5; loc+= ebox.centroid(vi); loc*=dx; loc+=origin; efab(vi, 0) = value.value(loc, RealVect::Zero, 1.e99,0)*ebox.volFrac(vi); } } } }
IntVect::IntVect (const Array<int> &a) { BL_ASSERT(a.size() == BL_SPACEDIM); D_EXPR(vect[0] = a[0], vect[1] = a[1], vect[2] = a[2]); }
IntVect::IntVect (const int *a) { D_EXPR(vect[0] = a[0], vect[1] = a[1], vect[2] = a[2]); }