146 int nlev = vars_new.size();
151 for (
int iline(0); iline<nline; ++iline) {
152 int dir =
m_dir[iline];
153 amrex::Box bnd_bx =
m_bnd_bx[iline];
154 amrex::IntVect cell = bnd_bx.smallEnd();
157 for (
int ilev(nlev-1); ilev>=0; --ilev) {
160 amrex::MultiFab mf_cc_vel;
161 auto ba = vars_new[ilev][
Vars::cons].boxArray();
162 auto dm = vars_new[ilev][
Vars::cons].DistributionMap();
163 mf_cc_vel.define(ba, dm, AMREX_SPACEDIM, amrex::IntVect(1,1,1));
164 average_face_to_cellcenter(mf_cc_vel,0,
165 amrex::Array<const amrex::MultiFab*,3>{&vars_new[ilev][
Vars::xvel],
170 amrex::MultiFab mf_cc_data;
171 mf_cc_data.define(ba, dm, ncomp, 1);
176 amrex::MultiFab::Copy(mf_cc_data, mf_cc_vel, 0, mf_comp, 1, 0);
180 amrex::MultiFab::Copy(mf_cc_data, mf_cc_vel, 1, mf_comp, 1, 0);
184 amrex::MultiFab::Copy(mf_cc_data, mf_cc_vel, 2, mf_comp, 1, 0);
190 #pragma omp parallel if (amrex::Gpu::notInLaunchRegion())
192 for (amrex::MFIter mfi(mf_cc_data, amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi) {
193 const amrex::Box& tbx = mfi.tilebox();
194 auto const& dfab = mf_cc_data.array(mfi);
195 auto const& vfab = mf_cc_vel.array(mfi);
197 amrex::ParallelFor(tbx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k) noexcept
199 dfab(i,j,k,mf_comp) = std::sqrt(vfab(i,j,k,0)*vfab(i,j,k,0)
200 + vfab(i,j,k,1)*vfab(i,j,k,1)
201 + vfab(i,j,k,2)*vfab(i,j,k,2)) ;
209 #pragma omp parallel if (amrex::Gpu::notInLaunchRegion())
211 for (amrex::MFIter mfi(mf_cc_data, amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi) {
212 const amrex::Box& tbx = mfi.tilebox();
213 auto const& dfab = mf_cc_data.array(mfi);
214 auto const& cfab = vars_new[ilev][
Vars::cons].array(mfi);
216 amrex::ParallelFor(tbx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k) noexcept
227 #pragma omp parallel if (amrex::Gpu::notInLaunchRegion())
229 for (amrex::MFIter mfi(mf_cc_data, amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi) {
230 const amrex::Box& tbx = mfi.tilebox();
231 auto const& dfab = mf_cc_data.array(mfi);
232 auto const& cfab = vars_new[ilev][
Vars::cons].array(mfi);
234 amrex::ParallelFor(tbx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k) noexcept
238 dfab(i,j,k,mf_comp));
245 #pragma omp parallel if (amrex::Gpu::notInLaunchRegion())
247 for (amrex::MFIter mfi(mf_cc_data, amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi) {
248 const amrex::Box& tbx = mfi.tilebox();
249 auto const& dfab = mf_cc_data.array(mfi);
250 auto const& cfab = vars_new[ilev][
Vars::cons].array(mfi);
252 amrex::ParallelFor(tbx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k) noexcept
261 #pragma omp parallel if (amrex::Gpu::notInLaunchRegion())
263 for (amrex::MFIter mfi(mf_cc_data, amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi) {
264 const amrex::Box& tbx = mfi.tilebox();
265 auto const& dfab = mf_cc_data.array(mfi);
266 auto const& cfab = vars_new[ilev][
Vars::cons].array(mfi);
268 amrex::ParallelFor(tbx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k) noexcept
277 m_ls_mf[iline] = get_line_data(mf_cc_data, dir, cell, bnd_bx);
280 auto min_bnd_bx =
m_ls_mf[iline].boxArray().minimalBox();
281 if (bnd_bx == min_bnd_bx) {
continue; }
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real getPgivenRTh(const amrex::Real rhotheta, const amrex::Real qv=0.)
Definition: ERF_EOS.H:84
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
#define RhoQ1_comp
Definition: ERF_IndexDefines.H:42
@ xvel
Definition: ERF_IndexDefines.H:141
@ cons
Definition: ERF_IndexDefines.H:140
@ zvel
Definition: ERF_IndexDefines.H:143
@ yvel
Definition: ERF_IndexDefines.H:142