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 {
50std::string
51numberFmt(long long n, char a_sep = ',') noexcept;
52
59Vector<std::string>
60numberFmt(const Vector<long long>& a_numbers, char a_sep = ',') noexcept;
61
62#ifdef CH_USE_HDF5
79void
80writeEBHDF5(const std::string& a_filename,
81 const Vector<std::string>& a_variableNames,
82 const Vector<DisjointBoxLayout>& a_grids,
83 const Vector<LevelData<EBCellFAB>*>& a_data,
84 const Vector<ProblemDomain>& a_domains,
85 const Vector<Real>& a_dx,
86 const Vector<int>& a_refinementRatios,
87 Real a_dt,
88 Real a_time,
89 const RealVect& a_probLo,
90 int a_numLevels,
91 int a_numGhost) noexcept;
92#endif
93
94#ifdef CH_USE_HDF5
102void
103writeEBHDF5Header(HDF5Handle& a_handleH5,
104 int a_numLevels,
105 const RealVect& a_probLo,
106 const Vector<std::string>& a_variableNames) noexcept;
107
108#endif
109
110#ifdef CH_USE_HDF5
123void
124writeEBHDF5Level(HDF5Handle& a_handleH5,
125 const LevelData<EBCellFAB>& a_outputData,
126 const ProblemDomain& a_domain,
127 Real a_dx,
128 Real a_dt,
129 Real a_time,
130 int a_level,
131 int a_refRatio,
132 int a_numGhost) noexcept;
133#endif
134
135#ifdef CH_USE_HDF5
141void
142writeEBHDF5(const EBAMRCellData& a_data, const std::string& a_file);
143#endif
144
160template <typename P, typename Traits>
161void
162writeH5Part(std::string a_filename,
163 const ParticleContainer<P, Traits>& a_particles,
164 RealVect a_shift,
165 Real a_time) noexcept;
166
167#ifdef CH_USE_HDF5
178template <typename P, typename Traits>
179void
180writeCheckParticlesToHDF(HDF5Handle& a_handle,
181 const LayoutData<ParticleSoA<P, Traits>>& a_particles,
182 const std::string& a_dataType);
183
194template <typename P, typename Traits>
195void
196readCheckParticlesFromHDF(HDF5Handle& a_handle,
197 LayoutData<ParticleSoA<P, Traits>>& a_particles,
198 const std::string& a_dataType);
199#endif
200} // namespace DischargeIO
201
202#include <CD_NamespaceFooter.H>
203
204#include <CD_DischargeIOImplem.H>
205
206#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:28