chombo-discharge
Loading...
Searching...
No Matches
CD_MFBaseIVFAB.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_MFBASEIVFAB_H
14#define CD_MFBASEIVFAB_H
15
16// Chombo includes
17#include <BoxLayoutData.H>
18#include <BaseIVFAB.H>
19#include <IntVectSet.H>
20#include <EBGraph.H>
21#include <EBISLayout.H>
22
23// Our includes
24#include <CD_NamespaceHeader.H>
25
30{
31public:
36
44
48 virtual ~MFBaseIVFAB();
49
55 virtual BaseIVFAB<Real>&
56 getIVFAB(const int a_phase);
57
63 virtual const BaseIVFAB<Real>&
64 getIVFAB(const int a_phase) const;
65
71 virtual BaseIVFAB<Real>*
73
78 virtual int
79 numPhases();
80
85 virtual void
87
96 virtual void
97 copy(const Box& a_fromBox,
99 const Box& a_toBox,
100 const MFBaseIVFAB& a_src,
101 const Interval& a_srcInterv);
102
107 static int
109
116 virtual int
117 size(const Box& R, const Interval& comps) const;
118
125 virtual void
126 linearOut(void* buf, const Box& R, const Interval& comps) const;
127
134 virtual void
135 linearIn(void* buf, const Box& R, const Interval& comps);
136
137protected:
142};
143
147class MFBaseIVFABFactory : public DataFactory<MFBaseIVFAB>
148{
149public:
154
161
165 virtual ~MFBaseIVFABFactory();
166
172 virtual void
174
182 virtual MFBaseIVFAB*
183 create(const Box& a_box, int a_ignored_argument, const DataIndex& a_dit) const;
184
185protected:
190
195};
196
197#include <CD_NamespaceFooter.H>
198
199#endif
Factory class for creating MFBaseIVFABs.
Definition CD_MFBaseIVFAB.H:148
Vector< int > m_nComp
Components per phase.
Definition CD_MFBaseIVFAB.H:194
MFBaseIVFABFactory()=delete
Don't see why we need a default constructor.
virtual MFBaseIVFAB * create(const Box &a_box, int a_ignored_argument, const DataIndex &a_dit) const
Factory method.
Definition CD_MFBaseIVFAB.cpp:163
virtual ~MFBaseIVFABFactory()
Destructor.
Definition CD_MFBaseIVFAB.cpp:148
Vector< EBISLayout > m_ebisl
EBIS layouts for different phases.
Definition CD_MFBaseIVFAB.H:189
virtual void define(Vector< EBISLayout > &a_ebisl, const Vector< int > &a_nComp)
Define function.
Definition CD_MFBaseIVFAB.cpp:154
Multiphase BaseIVFAB<Real>.
Definition CD_MFBaseIVFAB.H:30
MFBaseIVFAB()
Weak construction.
virtual ~MFBaseIVFAB()
Destructor (does nothing)
Definition CD_MFBaseIVFAB.cpp:37
virtual void linearIn(void *buf, const Box &R, const Interval &comps)
Linearization function.
Definition CD_MFBaseIVFAB.cpp:127
virtual void linearOut(void *buf, const Box &R, const Interval &comps) const
Linearization function.
Definition CD_MFBaseIVFAB.cpp:111
Vector< BaseIVFAB< Real > * > m_phase
Phase-indexed pointers to BaseIVFAB<Real> storage.
Definition CD_MFBaseIVFAB.H:141
virtual BaseIVFAB< Real > & getIVFAB(const int a_phase)
Get BaseIVFAB for specified phase.
Definition CD_MFBaseIVFAB.cpp:45
virtual void copy(const Box &a_fromBox, const Interval &a_dst_interv, const Box &a_toBox, const MFBaseIVFAB &a_src, const Interval &a_srcInterv)
Copy function (see Chombo docs)
Definition CD_MFBaseIVFAB.cpp:82
virtual int numPhases()
Get number of phases.
Definition CD_MFBaseIVFAB.cpp:68
static int preAllocatable()
Linearization preallocation query. Required for LevelData construction.
Definition CD_MFBaseIVFAB.cpp:94
virtual void setVal(Real a_value)
Set value.
Definition CD_MFBaseIVFAB.cpp:74
virtual int size(const Box &R, const Interval &comps) const
Size function. Required for LevelData construction.
Definition CD_MFBaseIVFAB.cpp:100
virtual BaseIVFAB< Real > * getPhasePtr(int a_phase)
Get BaseIVFAB pointer for phase.
Definition CD_MFBaseIVFAB.cpp:61
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38