chombo-discharge
Loading...
Searching...
No Matches
CD_EBAMRData.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_EBAMRDATA_H
14#define CD_EBAMRDATA_H
15
16// Chombo includes
17#include <LevelData.H>
18#include <RefCountedPtr.H>
19#include <EBCellFAB.H>
20#include <EBFluxFAB.H>
21#include <EBFaceFAB.H>
22#include <BaseIVFAB.H>
23#include <BaseIFFAB.H>
24#include <MFCellFAB.H>
25#include <MFFluxFAB.H>
26#include <BinItem.H>
27
28// Our includes
29#include <CD_DomainFluxIFFAB.H>
30#include <CD_MFBaseIVFAB.H>
31#include <CD_NamespaceHeader.H>
32
39template <typename T>
41{
42public:
46 EBAMRData() noexcept;
47
52 EBAMRData(int a_size) noexcept;
53
57 virtual ~EBAMRData() noexcept;
58
65 operator[](int a_level) noexcept;
66
73 operator[](int a_level) const noexcept;
74
79 void
80 resize(int a_size) noexcept;
81
86 void
87 setRealm(const std::string& a_realm) noexcept;
88
93 int
94 size() const noexcept;
95
99 void
100 exchange() noexcept;
101
105 void
106 clear() noexcept;
107
111 void
112 reserve() noexcept;
113
117 void
118 release() noexcept;
119
124 bool
125 isReserved() const noexcept;
126
132 getData() noexcept;
133
139 getData() const noexcept;
140
145 void
147
152 const std::string
153 getRealm() const noexcept;
154
155protected:
160
165
170};
171
172#include <CD_NamespaceFooter.H>
173
174#include <CD_EBAMRDataImplem.H>
175
176#endif
Declaration of a BaseIFFAB wrapper that holds domain fluxes.
Implementation of EBAMRData.H.
Declaration of a multiphase BaseIVFAB<Real>
Default class for holding LevelData<T> data across an EBAMR realm.
Definition CD_EBAMRData.H:41
EBAMRData() noexcept
Default constructor. Does nothing.
Definition CD_EBAMRDataImplem.H:24
void reserve() noexcept
Reserve data.
Definition CD_EBAMRDataImplem.H:85
bool m_reserved
Reserved or not.
Definition CD_EBAMRData.H:164
Vector< RefCountedPtr< LevelData< T > > > & getData() noexcept
Get underlying data. Returns m_data.
Definition CD_EBAMRDataImplem.H:115
void exchange() noexcept
Exchange on all AMR levels.
Definition CD_EBAMRDataImplem.H:106
std::string m_realm
Identifier for realm.
Definition CD_EBAMRData.H:159
virtual ~EBAMRData() noexcept
Destructor. Does nothing.
Definition CD_EBAMRDataImplem.H:39
int size() const noexcept
Get size of m_data.
Definition CD_EBAMRDataImplem.H:67
void push_back(RefCountedPtr< LevelData< T > > &a_levelData) noexcept
Push a LevelData<T> object to the back of the data vector.
Definition CD_EBAMRDataImplem.H:129
bool isReserved() const noexcept
Check if data is reserved.
Definition CD_EBAMRDataImplem.H:99
void clear() noexcept
Delete all data.
Definition CD_EBAMRDataImplem.H:74
void resize(int a_size) noexcept
Resize m_data to having size a_size.
Definition CD_EBAMRDataImplem.H:60
void setRealm(const std::string &a_realm) noexcept
Sets the realm for this object.
Definition CD_EBAMRDataImplem.H:143
void release() noexcept
Release data.
Definition CD_EBAMRDataImplem.H:92
const std::string getRealm() const noexcept
Returns the string identifier for whatever realm this data is supposed to be allocated over.
Definition CD_EBAMRDataImplem.H:136
Vector< RefCountedPtr< LevelData< T > > > m_data
Underlying data.
Definition CD_EBAMRData.H:169
RefCountedPtr< LevelData< T > > & operator[](int a_level) noexcept
Indexing operators. Returns m_data[a_level].
Definition CD_EBAMRDataImplem.H:46
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26