28 void interp(
const amrex::BaseFab<T>& crse,
30 amrex::BaseFab<T>& fine,
33 const amrex::Box& fine_region,
34 const amrex::IntVect& ratio,
35 const amrex::Geometry& ,
36 const amrex::Geometry& ,
37 amrex::Vector<amrex::BCRec>
const& ,
44 int num_slope = ncomp * (AMREX_D_TERM(2, *2, *2) - 1);
45 const amrex::Box cslope_bx = amrex::enclosedCells(CoarseBox(fine_region, ratio));
46 amrex::BaseFab<T> slopefab(cslope_bx, num_slope);
50 amrex::Array4<T const>
const& crsearr = crse.const_array();
51 amrex::Array4<T>
const& finearr = fine.array();
52 amrex::Array4<T>
const& slopearr = slopefab.array();
54 AMREX_LAUNCH_HOST_DEVICE_LAMBDA_FLAG(runon, cslope_bx, tbx,
56 amrex::nodebilin_slopes<T>(tbx, slopearr, crsearr, crse_comp, ncomp, ratio);
59 AMREX_LAUNCH_HOST_DEVICE_LAMBDA_FLAG(runon, fine_region, tbx,
61 amrex::nodebilin_interp<T>(tbx, finearr, fine_comp, ncomp, slopearr, crsearr, crse_comp, ratio);