141 BL_PROFILE(
"ERF::WriteBndryPlanes::write_planes");
148 const std::string chkname =
149 m_filename + Concatenate(
"/bndry_output", t_step);
153 const std::string level_prefix =
"Level_";
154 PreBuildDirectorHierarchy(chkname, level_prefix, 1,
true);
159 DistributionMapping dm{ba};
162 Box target_box_shifted(IntVect(0,0,0),new_hi);
163 BoxArray ba_shifted(target_box_shifted);
168 std::string filename = MultiFabFileFullPrefix(
bndry_lev, chkname, level_prefix, var_name);
171 if (var_name ==
"velocity") {
172 ncomp = AMREX_SPACEDIM;
181 if (var_name ==
"density")
185 }
else if (var_name ==
"temperature") {
186 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
187 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
189 const Box& bx = mfi.tilebox();
190 Real time =
static_cast<Real>(time_d);
199 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
200 }
else if (var_name ==
"theta") {
201 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
202 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
204 const Box& bx = mfi.tilebox();
207 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
208 }
else if (var_name ==
"scalar") {
209 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
210 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
212 const Box& bx = mfi.tilebox();
215 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
216 }
else if (var_name ==
"ke") {
217 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
218 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
220 const Box& bx = mfi.tilebox();
223 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
224 }
else if (var_name ==
"qv") {
225 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
227 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
229 const Box& bx = mfi.tilebox();
235 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
236 }
else if (var_name ==
"qc") {
237 MultiFab
Temp(S.boxArray(),S.DistributionMap(),ncomp,0);
239 for (MFIter mfi(Temp, TilingIfNotGPU()); mfi.isValid(); ++mfi)
241 const Box& bx = mfi.tilebox();
247 bndry.copyFrom(Temp, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
248 }
else if (var_name ==
"velocity") {
249 MultiFab Vel(S.boxArray(), S.DistributionMap(), 3,
m_out_rad);
250 average_face_to_cellcenter(Vel,0,Array<const MultiFab*,3>{&
xvel,&
yvel,&
zvel});
251 bndry.copyFrom(Vel, nghost, 0, 0, ncomp,
m_geom[
bndry_lev].periodicity());
254 Error(
"Don't know how to output this variable");
257 for (OrientationIter oit; oit !=
nullptr; ++oit) {
259 if (ori.coordDir() < 2) {
260 std::string facename = Concatenate(filename +
'_', ori, 1);
261 br_shift(oit, bndry, bndry_shifted);
262 bndry_shifted[ori].write(facename);
269 if (ParallelDescriptor::IOProcessor()) {
271 oftime << std::setprecision(17) << t_step <<
' ' << time_d <<
'\n';
#define RhoScalar_comp
Definition: ERF_IndexDefines.H:40
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
#define RhoQ2_comp
Definition: ERF_IndexDefines.H:43
#define RhoQ1_comp
Definition: ERF_IndexDefines.H:42
#define RhoKE_comp
Definition: ERF_IndexDefines.H:38
void br_shift(OrientationIter oit, const BndryRegister &b1, BndryRegister &b2)
Definition: ERF_WriteBndryPlanes.cpp:21
const int m_out_rad
Definition: ERF_WriteBndryPlanes.H:54
const int m_extent_rad
Definition: ERF_WriteBndryPlanes.H:55
@ xvel
Definition: ERF_IndexDefines.H:177
@ cons
Definition: ERF_IndexDefines.H:176
@ zvel
Definition: ERF_IndexDefines.H:179
@ yvel
Definition: ERF_IndexDefines.H:178
void erf_derrhodivide(const Box &bx, FArrayBox &derfab, const FArrayBox &datfab, const int scalar_index)
Definition: ERF_Derive.cpp:168
void erf_dermoisttemp(const Box &bx, FArrayBox &derfab, int, int, const FArrayBox &datfab, const FArrayBox &, const Geometry &, Real, const int *, const int)
Definition: ERF_Derive.cpp:266
void erf_dertemp(const Box &bx, FArrayBox &derfab, int, int, const FArrayBox &datfab, const FArrayBox &, const Geometry &, Real, const int *, const int)
Definition: ERF_Derive.cpp:243