chombo-discharge
Loading...
Searching...
No Matches
CD_DischargeIO.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_DISCHARGEIO_H
14#define CD_DISCHARGEIO_H
15
16// Std includes
17#include <string>
18#include <vector>
19#include <utility>
20#include <functional>
21
22// Chombo includes
23#include <REAL.H>
24#include <RealVect.H>
25#include <IntVect.H>
26#include <Vector.H>
27#include <DisjointBoxLayout.H>
28#include <LevelData.H>
29#include <EBCellFAB.H>
30#include <ParticleIO.H>
31#include <ProblemDomain.H>
32
33// Our includes
34#include <CD_EBAMRData.H>
35#include <CD_ParticleSoA.H>
37#include <CD_NamespaceHeader.H>
38
42namespace DischargeIO {
51std::string
52gitHash() noexcept;
53
61std::string
62numberFmt(long long n, char a_sep = ',') noexcept;
63
70Vector<std::string>
71numberFmt(const Vector<long long>& a_numbers, char a_sep = ',') noexcept;
72
73#ifdef CH_USE_HDF5
90void
91writeEBHDF5(const std::string& a_filename,
92 const Vector<std::string>& a_variableNames,
93 const Vector<DisjointBoxLayout>& a_grids,
94 const Vector<LevelData<EBCellFAB>*>& a_data,
95 const Vector<ProblemDomain>& a_domains,
96 const Vector<Real>& a_dx,
97 const Vector<int>& a_refinementRatios,
98 Real a_dt,
99 Real a_time,
100 const RealVect& a_probLo,
101 int a_numLevels,
102 int a_numGhost) noexcept;
103#endif
104
105#ifdef CH_USE_HDF5
113void
114writeEBHDF5Header(HDF5Handle& a_handleH5,
115 int a_numLevels,
116 const RealVect& a_probLo,
117 const Vector<std::string>& a_variableNames) noexcept;
118
119#endif
120
121#ifdef CH_USE_HDF5
134void
135writeEBHDF5Level(HDF5Handle& a_handleH5,
136 const LevelData<EBCellFAB>& a_outputData,
137 const ProblemDomain& a_domain,
138 Real a_dx,
139 Real a_dt,
140 Real a_time,
141 int a_level,
142 int a_refRatio,
143 int a_numGhost) noexcept;
144#endif
145
146#ifdef CH_USE_HDF5
152void
153writeEBHDF5(const EBAMRCellData& a_data, const std::string& a_file);
154#endif
155
171template <typename P, typename Traits>
172void
173writeH5Part(std::string a_filename,
174 const ParticleContainer<P, Traits>& a_particles,
175 RealVect a_shift,
176 Real a_time) noexcept;
177
178#ifdef CH_USE_HDF5
189template <typename P, typename Traits>
190void
191writeCheckParticlesToHDF(HDF5Handle& a_handle,
192 const LayoutData<ParticleSoA<P, Traits>>& a_particles,
193 const std::string& a_dataType);
194
205template <typename P, typename Traits>
206void
207readCheckParticlesFromHDF(HDF5Handle& a_handle,
208 LayoutData<ParticleSoA<P, Traits>>& a_particles,
209 const std::string& a_dataType);
210#endif
211} // namespace DischargeIO
212
213#include <CD_NamespaceFooter.H>
214
215#include <CD_DischargeIOImplem.H>
216
217#endif
Implementation of CD_DischargeIO.H.
Class for holding data across EBAMR hierarchies.
Declaration of an AMR-hierarchy container that owns per-patch ParticleSoA leaves.
Declaration of ParticleSoA, an arena-backed Struct-of-Arrays particle container.
AMR-hierarchy container of computational particles, stored per patch in Struct-of-Arrays form.
Definition CD_ParticleContainer.H:123
Arena-backed Struct-of-Arrays particle container for a single grid patch.
Definition CD_ParticleSoA.H:655
Namespace which encapsulates chombo-discharge IO functionality.
Definition CD_DischargeIO.H:42
void writeH5Part(std::string a_filename, const ParticleContainer< P, Traits > &a_particles, RealVect a_shift, Real a_time) noexcept
Write an SoA particle container to an H5Part file (quick visualization).
Definition CD_DischargeIOImplem.H:201
std::string numberFmt(long long n, char a_sep=',') noexcept
Number formatting method – writes big numbers using an input separator. E.g. the number 123456 is wri...
Definition CD_DischargeIO.cpp:37
std::string gitHash() noexcept
Get the git description of the source tree that this executable was compiled from.
Definition CD_DischargeIO.cpp:29