chombo-discharge
Loading...
Searching...
No Matches
CD_DomainFluxIFFAB.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_DOMAINFLUXIFFAB_H
14#define CD_DOMAINFLUXIFFAB_H
15
16// Chombo includes
17#include <BaseIFFAB.H>
18#include <ProblemDomain.H>
19#include <EBISLayout.H>
20
21// Our includes
22#include <CD_NamespaceHeader.H>
23
31{
32public:
37 static int
39 {
40 return 1; // Symmetric messaging
41 }
42
47
55 DomainFluxIFFAB(const ProblemDomain& a_domain, const EBISBox& a_ebisbox, const Box& a_box, const int a_nComp);
56
61
66 const Box&
67 box() const;
68
73 int
74 nComp() const;
75
80 const ProblemDomain&
81 getDomain() const;
82
87 const EBISBox&
88 getEBISBox() const;
89
94 void
96
104 void
105 define(const ProblemDomain& a_domain, const EBISBox& a_ebisbox, const Box& a_box, const int a_nComp);
106
114 operator()(const int a_dir, const Side::LoHiSide a_side);
115
122 const BaseIFFAB<Real>&
123 operator()(const int a_dir, const Side::LoHiSide a_side) const;
124
131 int
132 size(const Box& R, const Interval& comps) const;
133
141 void
142 linearOut(void* buf, const Box& R, const Interval& comps) const;
143
151 void
152 linearIn(void* buf, const Box& R, const Interval& comps);
153
166 void
167 copy(const Box& Rfrom, const Interval& Cdest, const Box& Rto, const DomainFluxIFFAB& src, const Interval& Csrc);
168
169protected:
174
179
184
189
194
199
204
208 void
210
214 void
215 clear();
216};
217
218#include <CD_NamespaceFooter.H>
219
220#endif
Class for holding fluxes on domain boundaries.
Definition CD_DomainFluxIFFAB.H:31
~DomainFluxIFFAB()
Destructor (does nothing)
Definition CD_DomainFluxIFFAB.cpp:38
Tuple< BaseIFFAB< Real > *, CH_SPACEDIM > m_fluxLo
BaseIFFABs on Side::Lo sides.
Definition CD_DomainFluxIFFAB.H:198
void setDefaultValues()
Set default values.
Definition CD_DomainFluxIFFAB.cpp:212
static int preAllocatable()
Pre allocatable.
Definition CD_DomainFluxIFFAB.H:38
EBISBox m_ebisbox
EBISBox.
Definition CD_DomainFluxIFFAB.H:183
Tuple< BaseIFFAB< Real > *, CH_SPACEDIM > m_fluxHi
BaseIFFABs on Side::Hi sides.
Definition CD_DomainFluxIFFAB.H:203
int nComp() const
Get number of components.
Definition CD_DomainFluxIFFAB.cpp:59
Box m_box
Defining box.
Definition CD_DomainFluxIFFAB.H:178
void linearOut(void *buf, const Box &R, const Interval &comps) const
Linearization function.
Definition CD_DomainFluxIFFAB.cpp:99
ProblemDomain m_domain
Defining domain.
Definition CD_DomainFluxIFFAB.H:173
const ProblemDomain & getDomain() const
Get the defining problem domain.
Definition CD_DomainFluxIFFAB.cpp:65
int size(const Box &R, const Interval &comps) const
Linearization function.
Definition CD_DomainFluxIFFAB.cpp:85
BaseIFFAB< Real > & operator()(const int a_dir, const Side::LoHiSide a_side)
Get the BaseIFFAB on a particular domain side.
Definition CD_DomainFluxIFFAB.cpp:265
int m_nComp
Number of components.
Definition CD_DomainFluxIFFAB.H:188
void linearIn(void *buf, const Box &R, const Interval &comps)
Linearization function.
Definition CD_DomainFluxIFFAB.cpp:119
DomainFluxIFFAB()
Default constructor. Must subsequently call define.
Definition CD_DomainFluxIFFAB.cpp:20
const EBISBox & getEBISBox() const
Get the defining ebis box.
Definition CD_DomainFluxIFFAB.cpp:71
const Box & box() const
Get the defining box.
Definition CD_DomainFluxIFFAB.cpp:53
void define(const DomainFluxIFFAB &a_copy)
Make a clone of an input data holder.
Definition CD_DomainFluxIFFAB.cpp:77
bool m_isDefined
Is defined or not.
Definition CD_DomainFluxIFFAB.H:193
void copy(const Box &Rfrom, const Interval &Cdest, const Box &Rto, const DomainFluxIFFAB &src, const Interval &Csrc)
Copy functiopn.
Definition CD_DomainFluxIFFAB.cpp:247
void clear()
Clear object.
Definition CD_DomainFluxIFFAB.cpp:228
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