Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_PlotFileDataImpl.H
Go to the documentation of this file.
1#ifndef AMREX_PLOT_FILE_DATA_IMPL_H_
2#define AMREX_PLOT_FILE_DATA_IMPL_H_
3#include <AMReX_Config.H>
4
5#include <AMReX_MultiFab.H>
6#include <AMReX_VisMF.H>
7#include <string>
8
9namespace amrex {
10
12{
13public:
14 PlotFileDataImpl (std::string const& plotfile_name);
15
16 [[nodiscard]] int spaceDim () const noexcept { return m_spacedim; }
17
18 [[nodiscard]] Real time () const noexcept { return m_time; }
19
20 [[nodiscard]] int finestLevel () const noexcept { return m_finest_level; }
21
22 [[nodiscard]] int refRatio (int level) const noexcept { return m_ref_ratio[level]; }
23
24 [[nodiscard]] int levelStep (int level) const noexcept { return m_level_steps[level]; }
25
26 [[nodiscard]] const BoxArray& boxArray (int level) const noexcept { return m_ba[level]; }
27
28 [[nodiscard]] const DistributionMapping& DistributionMap (int level) const noexcept { return m_dmap[level]; }
29
30 void syncDistributionMap (PlotFileDataImpl const& src) noexcept;
31
32 void syncDistributionMap (int level, PlotFileDataImpl const& src) noexcept;
33
34 [[nodiscard]] int coordSys () const noexcept { return m_coordsys; }
35
36 [[nodiscard]] Box probDomain (int level) const noexcept { return m_prob_domain[level]; }
37
38 [[nodiscard]] Array<Real,AMREX_SPACEDIM> probSize () const noexcept { return m_prob_size; }
39 [[nodiscard]] Array<Real,AMREX_SPACEDIM> probLo () const noexcept { return m_prob_lo; }
40 [[nodiscard]] Array<Real,AMREX_SPACEDIM> probHi () const noexcept { return m_prob_hi; }
41 [[nodiscard]] Array<Real,AMREX_SPACEDIM> cellSize (int level) const noexcept { return m_cell_size[level]; }
42
43 [[nodiscard]] const Vector<std::string>& varNames () const noexcept { return m_var_names; }
44
45 [[nodiscard]] int nComp () const noexcept { return m_ncomp; }
46 [[nodiscard]] IntVect nGrowVect (int level) const noexcept { return m_ngrow[level]; }
47
48 MultiFab get (int level) noexcept;
49 MultiFab get (int level, std::string const& varname) noexcept;
50
51private:
52 std::string m_plotfile_name;
53 std::string m_file_version;
54 int m_ncomp;
55 Vector<std::string> m_var_names;
56 int m_spacedim;
57 Real m_time;
58 int m_finest_level, m_nlevels;
59 Array<Real,AMREX_SPACEDIM> m_prob_lo {{AMREX_D_DECL(0.,0.,0.)}};
60 Array<Real,AMREX_SPACEDIM> m_prob_hi {{AMREX_D_DECL(1.,1.,1.)}};
61 Array<Real,AMREX_SPACEDIM> m_prob_size {{AMREX_D_DECL(1.,1.,1.)}};
62 Vector<int> m_ref_ratio;
63 Vector<Box> m_prob_domain;
64 Vector<int> m_level_steps;
65 Vector<Array<Real,AMREX_SPACEDIM> > m_cell_size;
66 int m_coordsys;
67 Vector<std::string> m_mf_name;
68 Vector<std::unique_ptr<VisMF> > m_vismf;
69 Vector<BoxArray> m_ba;
70 Vector<DistributionMapping> m_dmap;
71 Vector<IntVect> m_ngrow;
72};
73
74}
75
76#endif
#define AMREX_D_DECL(a, b, c)
Definition AMReX_SPACE.H:171
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
A collection (stored as an array) of FArrayBox objects.
Definition AMReX_MultiFab.H:40
Definition AMReX_PlotFileDataImpl.H:12
int coordSys() const noexcept
Definition AMReX_PlotFileDataImpl.H:34
Array< Real, 3 > probSize() const noexcept
Definition AMReX_PlotFileDataImpl.H:38
Real time() const noexcept
Definition AMReX_PlotFileDataImpl.H:18
const DistributionMapping & DistributionMap(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:28
Array< Real, 3 > cellSize(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:41
MultiFab get(int level) noexcept
Definition AMReX_PlotFileDataImpl.cpp:124
int finestLevel() const noexcept
Definition AMReX_PlotFileDataImpl.H:20
const BoxArray & boxArray(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:26
Array< Real, 3 > probHi() const noexcept
Definition AMReX_PlotFileDataImpl.H:40
int levelStep(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:24
int spaceDim() const noexcept
Definition AMReX_PlotFileDataImpl.H:16
Box probDomain(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:36
Array< Real, 3 > probLo() const noexcept
Definition AMReX_PlotFileDataImpl.H:39
void syncDistributionMap(PlotFileDataImpl const &src) noexcept
Definition AMReX_PlotFileDataImpl.cpp:107
int refRatio(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:22
IntVect nGrowVect(int level) const noexcept
Definition AMReX_PlotFileDataImpl.H:46
const Vector< std::string > & varNames() const noexcept
Definition AMReX_PlotFileDataImpl.H:43
int nComp() const noexcept
Definition AMReX_PlotFileDataImpl.H:45
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
std::array< T, N > Array
Definition AMReX_Array.H:26
Definition AMReX_Amr.cpp:49