1#ifndef AMREX_PLOTFILEUTIL_H_
2#define AMREX_PLOTFILEUTIL_H_
3#include <AMReX_Config.H>
22 std::string
LevelPath (
int level,
const std::string &levelPrefix =
"Level_");
26 const std::string &levelPrefix =
"Level_",
27 const std::string &mfPrefix =
"Cell");
31 const std::string &plotfilename,
32 const std::string &levelPrefix =
"Level_");
36 const std::string &plotfilename,
37 const std::string &levelPrefix =
"Level_",
38 const std::string &mfPrefix =
"Cell");
55 const std::string &subDirPrefix,
65 const Vector<BoxArray> &bArray,
66 const Vector<std::string> &varnames,
67 const Vector<Geometry> &geom,
69 const Vector<int> &level_steps,
70 const Vector<IntVect> &ref_ratio,
71 const std::string &versionName =
"HyperCLaw-V1.1",
72 const std::string &levelPrefix =
"Level_",
73 const std::string &mfPrefix =
"Cell");
77 const Vector<std::string> &varnames,
81 const std::string &versionName =
"HyperCLaw-V1.1",
82 const std::string &levelPrefix =
"Level_",
83 const std::string &mfPrefix =
"Cell",
84 const Vector<std::string>& extra_dirs = Vector<std::string>());
89 const Vector<const MultiFab*> &mf,
90 const Vector<std::string> &varnames,
91 const Vector<Geometry> &geom,
93 const Vector<int> &level_steps,
94 const Vector<IntVect> &ref_ratio,
95 const std::string &versionName =
"HyperCLaw-V1.1",
96 const std::string &levelPrefix =
"Level_",
97 const std::string &mfPrefix =
"Cell",
98 const Vector<std::string>& extra_dirs = Vector<std::string>());
113 void WriteMLMF (
const std::string &plotfilename,
114 const Vector<const MultiFab*>& mf,
115 const Vector<Geometry> &geom);
118 const Vector<const MultiFab*>& mf,
119 const Vector<std::string>& varnames,
120 const Vector<Geometry>& geom,
Real time,
const Vector<int>& level_steps,
121 const Vector<IntVect>& ref_ratio,
122 const std::string &versionName =
"HyperCLaw-V1.1",
123 const std::string &levelPrefix =
"Level_",
124 const std::string &mfPrefix =
"Cell",
125 const Vector<std::string>& extra_dirs = Vector<std::string>());
131 const Vector<std::string> &varnames,
132 const Geometry &geom,
135 const std::string &versionName =
"HyperCLaw-V1.1",
136 const std::string &levelPrefix =
"Level_",
137 const std::string &mfPrefix =
"Cell",
138 const Vector<std::string>& extra_dirs = Vector<std::string>());
142 const Vector<const MultiFab*> &mf,
143 const Vector<std::string> &varnames,
144 const Vector<Geometry> &geom,
146 const Vector<int> &level_steps,
147 const Vector<IntVect> &ref_ratio,
148 const std::string &versionName =
"HyperCLaw-V1.1",
149 const std::string &levelPrefix =
"Level_",
150 const std::string &mfPrefix =
"Cell",
151 const Vector<std::string>& extra_dirs = Vector<std::string>());
168 [[nodiscard]]
int refRatio (
int level)
const noexcept {
return m_impl->refRatio(level); }
170 [[nodiscard]]
int levelStep (
int level)
const noexcept {
return m_impl->levelStep(level); }
191 [[nodiscard]]
int nComp () const noexcept {
return m_impl->nComp(); }
198 std::unique_ptr<PlotFileDataImpl>
m_impl;
A collection of Boxes stored in an Array.
Definition AMReX_BoxArray.H:567
Calculates the distribution of FABs to MPI processes.
Definition AMReX_DistributionMapping.H:43
const FAB & get(const MFIter &mfi) const noexcept
Return a constant reference to the FAB associated with mfi.
Definition AMReX_FabArray.H:512
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
Definition AMReX_PlotFileDataImpl.H:12
Definition AMReX_PlotFileUtil.H:158
const Vector< std::string > & varNames() const noexcept
Definition AMReX_PlotFileUtil.H:189
const DistributionMapping & DistributionMap(int level) const noexcept
Definition AMReX_PlotFileUtil.H:174
Array< Real, 3 > cellSize(int level) const noexcept
Definition AMReX_PlotFileUtil.H:187
void syncDistributionMap(int level, PlotFileData const &src) noexcept
Definition AMReX_PlotFileUtil.H:178
std::unique_ptr< PlotFileDataImpl > m_impl
Definition AMReX_PlotFileUtil.H:198
int coordSys() const noexcept
Definition AMReX_PlotFileUtil.H:180
MultiFab get(int level) noexcept
Definition AMReX_PlotFileUtil.H:194
const BoxArray & boxArray(int level) const noexcept
Definition AMReX_PlotFileUtil.H:172
Array< Real, 3 > probLo() const noexcept
Definition AMReX_PlotFileUtil.H:185
Box probDomain(int level) const noexcept
Definition AMReX_PlotFileUtil.H:182
PlotFileData(std::string const &plotfile_name)
Definition AMReX_PlotFileUtil.H:160
IntVect nGrowVect(int level) const noexcept
Definition AMReX_PlotFileUtil.H:192
void syncDistributionMap(PlotFileData const &src) noexcept
Definition AMReX_PlotFileUtil.H:176
Array< Real, 3 > probHi() const noexcept
Definition AMReX_PlotFileUtil.H:186
MultiFab get(int level, std::string const &varname) noexcept
Definition AMReX_PlotFileUtil.H:195
Array< Real, 3 > probSize() const noexcept
Definition AMReX_PlotFileUtil.H:184
int finestLevel() const noexcept
Definition AMReX_PlotFileUtil.H:166
int spaceDim() const noexcept
Definition AMReX_PlotFileUtil.H:162
int refRatio(int level) const noexcept
Definition AMReX_PlotFileUtil.H:168
Real time() const noexcept
Definition AMReX_PlotFileUtil.H:164
int nComp() const noexcept
Definition AMReX_PlotFileUtil.H:191
int levelStep(int level) const noexcept
Definition AMReX_PlotFileUtil.H:170
This class is a thin wrapper around std::vector. Unlike vector, Vector::operator[] provides bound che...
Definition AMReX_Vector.H:28
amrex_real Real
Floating Point Type for Fields.
Definition AMReX_REAL.H:79
void WriteMultiLevelPlotfile(const std::string &plotfilename, int nlevels, const Vector< const MultiFab * > &mf, const Vector< std::string > &varnames, const Vector< Geometry > &geom, Real time, const Vector< int > &level_steps, const Vector< IntVect > &ref_ratio, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix, const Vector< std::string > &extra_dirs)
Definition AMReX_PlotFileUtil.cpp:160
std::array< T, N > Array
Definition AMReX_Array.H:25
Definition AMReX_Amr.cpp:49
std::string LevelFullPath(int level, const std::string &plotfilename, const std::string &levelPrefix)
return the full path of the level directory, e.g., plt00005/Level_5
Definition AMReX_PlotFileUtil.cpp:30
void EB_WriteSingleLevelPlotfile(const std::string &plotfilename, const MultiFab &mf, const Vector< std::string > &varnames, const Geometry &geom, Real time, int level_step, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix, const Vector< std::string > &extra_dirs)
Definition AMReX_PlotFileUtil.cpp:365
std::string LevelPath(int level, const std::string &levelPrefix)
return the name of the level directory, e.g., Level_5
Definition AMReX_PlotFileUtil.cpp:18
std::string MultiFabFileFullPrefix(int level, const std::string &plotfilename, const std::string &levelPrefix, const std::string &mfPrefix)
return the full path multifab prefix, e.g., plt00005/Level_5/Cell
Definition AMReX_PlotFileUtil.cpp:42
void WriteMLMF(const std::string &plotfilename, const Vector< const MultiFab * > &mf, const Vector< Geometry > &geom)
write a plotfile to disk given: -plotfile name -vector of MultiFabs -vector of Geometrys variable nam...
Definition AMReX_PlotFileUtil.cpp:253
void PreBuildDirectorHierarchy(const std::string &dirName, const std::string &, int nSubDirs, bool callBarrier)
prebuild a hierarchy of directories dirName is built first. if dirName exists, it is renamed....
Definition AMReX_PlotFileUtil.cpp:57
void WriteSingleLevelPlotfile(const std::string &plotfilename, const MultiFab &mf, const Vector< std::string > &varnames, const Geometry &geom, Real time, int level_step, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix, const Vector< std::string > &extra_dirs)
Definition AMReX_PlotFileUtil.cpp:345
std::string MultiFabHeaderPath(int level, const std::string &levelPrefix, const std::string &mfPrefix)
return the path of the multifab to write to the header, e.g., Level_5/Cell
Definition AMReX_PlotFileUtil.cpp:23
void WriteMultiLevelPlotfileHeaders(const std::string &plotfilename, int nlevels, const Vector< const MultiFab * > &mf, const Vector< std::string > &varnames, const Vector< Geometry > &geom, Real time, const Vector< int > &level_steps, const Vector< IntVect > &ref_ratio, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix, const Vector< std::string > &extra_dirs)
Definition AMReX_PlotFileUtil.cpp:289
void EB_WriteMultiLevelPlotfile(const std::string &plotfilename, int nlevels, const Vector< const MultiFab * > &mf, const Vector< std::string > &varnames, const Vector< Geometry > &geom, Real time, const Vector< int > &level_steps, const Vector< IntVect > &ref_ratio, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix, const Vector< std::string > &extra_dirs)
Definition AMReX_PlotFileUtil.cpp:383
void WriteGenericPlotfileHeader(std::ostream &HeaderFile, int nlevels, const Vector< BoxArray > &bArray, const Vector< std::string > &varnames, const Vector< Geometry > &geom, Real time, const Vector< int > &level_steps, const Vector< IntVect > &ref_ratio, const std::string &versionName, const std::string &levelPrefix, const std::string &mfPrefix)
Definition AMReX_PlotFileUtil.cpp:74