11 if (lev==0 && m_solverChoice.init_l1ad_T) {
12 const int Lm = geom.Domain().size()[0] *
rrx;
13 const int Mm = geom.Domain().size()[1] *
rry;
14 BoxArray old_ba(mf_h.boxArray());
15 BoxArray tmp_ba = old_ba.refine(IntVect(
rrx,
rry,1));
16 DistributionMapping tmp_dm(tmp_ba);
17 MultiFab mf_h_hires(tmp_ba, tmp_dm, 2, mf_h.nGrow());
18 mf_h_hires.setVal(
geomdata.ProbHi(2));
20 for ( MFIter mfi(mf_h_hires, TilingIfNotGPU()); mfi.isValid(); ++mfi )
22 Array4<Real>
const& h = (mf_h_hires).array(mfi);
24 Box bx = mfi.tilebox();
31 Gpu::streamSynchronize();
35 ParallelFor(gbx3D, [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
39 Real
val1 = (jFort<=
Mm/2.0) ? jFort :
Mm+1-jFort;
41 Real adj =
geomdata.CellSize()[0]/(1000.0_rt *
rrx);
43 h(i,j,0) = std::min(-
geomdata.ProbLo(2),(84.5_rt+66.526_rt*std::tanh((
val1*adj-10.0_rt)/7.0_rt)));
47 ParallelFor(gbx3D, [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
51 Real
val1 = (iFort <=
Lm/2.0) ? iFort :
Lm+1-iFort;
53 Real adj =
geomdata.CellSize()[1]/(1000.0_rt *
rry);
55 h(i,j,0) = std::min(-
geomdata.ProbLo(2),(84.5_rt+66.526_rt*std::tanh((
val1*adj-10.0_rt)/7.0_rt)));
59 average_down(mf_h_hires, mf_h, 0, mf_h.nComp(), IntVect(
rrx,
rry,1));
63 for ( MFIter mfi(mf_h, TilingIfNotGPU()); mfi.isValid(); ++mfi )
65 Array4<Real>
const& h = (mf_h).array(mfi);
67 Box bx = mfi.tilebox();
74 Gpu::streamSynchronize();
78 ParallelFor(gbx3D, [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
82 Real
val1 = (jFort<=
Mm/2.0) ? jFort :
Mm+1-jFort;
84 Real adj =
geomdata.CellSize()[0]/1000.0_rt;
86 h(i,j,0) = std::min(-
geomdata.ProbLo(2),(84.5_rt+66.526_rt*std::tanh((
val1*adj-10.0_rt)/7.0_rt)));
90 ParallelFor(gbx3D, [=] AMREX_GPU_DEVICE (
int i,
int j,
int )
94 Real
val1 = (iFort <=
Lm/2.0) ? iFort :
Lm+1-iFort;
96 Real adj =
geomdata.CellSize()[1]/1000.0_rt;
98 h(i,j,0) = std::min(-
geomdata.ProbLo(2),(84.5_rt+66.526_rt*std::tanh((
val1*adj-10.0_rt)/7.0_rt)));