diff --git a/Src/EB/AMReX_EB2_Level.H b/Src/EB/AMReX_EB2_Level.H index 50f7c6b5aa..2d9470bfa6 100644 --- a/Src/EB/AMReX_EB2_Level.H +++ b/Src/EB/AMReX_EB2_Level.H @@ -93,7 +93,9 @@ protected: Array m_areafrac; Array m_facecent; Array m_edgecent; - Array m_multicuts; + MultiFab m_multicut_fcx; + MultiFab m_multicut_fcy; + MultiFab m_multicut_fcz; iMultiFab m_cutcellmask; bool m_allregular = false; bool m_ok = false; @@ -294,11 +296,12 @@ GShopLevel::define_fine (G const& gshop, const Geometry& geom, m_bndryarea.define(m_grids, m_dmap, 1, ng, mf_info); m_bndrycent.define(m_grids, m_dmap, AMREX_SPACEDIM, ng, mf_info); m_bndrynorm.define(m_grids, m_dmap, AMREX_SPACEDIM, ng, mf_info); + m_multicut_fcx.define(m_grids, m_dmap, 1, ng, mf_info); + m_multicut_fcy.define(m_grids, m_dmap, 1, ng, mf_info); + m_multicut_fcz.define(m_grids, m_dmap, 1, ng, mf_info); for (int idim = 0; idim < AMREX_SPACEDIM; ++idim) { m_areafrac[idim].define(amrex::convert(m_grids, IntVect::TheDimensionVector(idim)), m_dmap, 1, ng, mf_info); - m_multicuts[idim].define(amrex::convert(m_grids, IntVect::TheDimensionVector(idim)), - m_dmap, 1, ng, mf_info); m_facecent[idim].define(amrex::convert(m_grids, IntVect::TheDimensionVector(idim)), m_dmap, AMREX_SPACEDIM-1, ng, mf_info); IntVect edge_type{1}; edge_type[idim] = 0; @@ -419,9 +422,9 @@ GShopLevel::define_fine (G const& gshop, const Geometry& geom, Array4 const& ym2 = M2[1].array(); Array4 const& zm2 = M2[2].array(); - AMREX_D_TERM(Array4 const& mcx = m_multicuts[0].array(mfi);, - Array4 const& mcy = m_multicuts[1].array(mfi);, - Array4 const& mcz = m_multicuts[2].array(mfi);); + Array4 const& mcx = m_multicut_fcx.array(mfi); + Array4 const& mcy = m_multicut_fcy.array(mfi); + Array4 const& mcz = m_multicut_fcz.array(mfi); nmc = build_faces(vbx, cfg, ftx, fty, ftz, xdg, ydg, zdg, lst, xip, yip, zip, apx, apy, apz, fcx, fcy, fcz, @@ -478,7 +481,7 @@ GShopLevel::define_fine (G const& gshop, const Geometry& geom, clst, geom); } - Array4 const& mcx = m_multicuts[0].array(mfi); + Array4 const& mcx = m_multicut_fcx.array(mfi); nmc = build_faces(vbx, cfg, ftx, fty, lst, xip, yip, apx, apy, fcx, fcy, dx, problo, cover_multiple_cuts, nsm, @@ -501,22 +504,22 @@ GShopLevel::define_fine (G const& gshop, const Geometry& geom, amrex::Print() << "Plotting multicut locations..." << "\n"; #if (AMREX_SPACEDIM == 3) - if (m_multicuts[0].max(0) > 2) + if (m_multicut_fcx.max(0) > 2) { - WriteSingleLevelPlotfile("plt.multicut.x", m_multicuts[0], {"multicut_fcx"}, geom, 0.0, 0); + WriteSingleLevelPlotfile("plt.multicut.x", m_multicut_fcx, {"multicut_fcx"}, geom, 0.0, 0); } - if (m_multicuts[1].max(0) > 2) + if (m_multicut_fcy.max(0) > 2) { - WriteSingleLevelPlotfile("plt.multicut.y", m_multicuts[1], {"multicut_fcy"}, geom, 0.0, 0); + WriteSingleLevelPlotfile("plt.multicut.y", m_multicut_fcy, {"multicut_fcy"}, geom, 0.0, 0); } - if (m_multicuts[2].max(0) > 2) + if (m_multicut_fcz.max(0) > 2) { - WriteSingleLevelPlotfile("plt.multicut.z", m_multicuts[2], {"multicut_fcz"}, geom, 0.0, 0); + WriteSingleLevelPlotfile("plt.multicut.z", m_multicut_fcz, {"multicut_fcz"}, geom, 0.0, 0); } #elif (AMREX_SPACEDIM == 2) - if (m_multicuts[0].max(0) > 2) + if (m_multicut_fcx.max(0) > 2) { - WriteSingleLevelPlotfile("plt.multicut", m_multicuts[0], {"multicut_fcx"}, geom, 0.0, 0); + WriteSingleLevelPlotfile("plt.multicut", m_multicut_fcx, {"multicut_fcx"}, geom, 0.0, 0); } #endif amrex::Abort("amrex::EB2:: more than 2 cuts not supported");