13#ifndef CD_MFBASEIVFAB_H
14#define CD_MFBASEIVFAB_H
17#include <BoxLayoutData.H>
19#include <IntVectSet.H>
21#include <EBISLayout.H>
24#include <CD_NamespaceHeader.H>
43 MFBaseIVFAB(
const Vector<IntVectSet>& a_regions,
const Vector<EBGraph>& a_phaseGraphs,
const Vector<int>& a_nComp);
55 virtual BaseIVFAB<Real>&
63 virtual const BaseIVFAB<Real>&
71 virtual BaseIVFAB<Real>*
97 copy(
const Box& a_fromBox,
98 const Interval& a_dst_interv,
101 const Interval& a_srcInterv);
117 size(
const Box& R,
const Interval& comps)
const;
126 linearOut(
void* buf,
const Box& R,
const Interval& comps)
const;
135 linearIn(
void* buf,
const Box& R,
const Interval& comps);
173 define(Vector<EBISLayout>& a_ebisl,
const Vector<int>& a_nComp);
183 create(
const Box& a_box,
int a_ignored_argument,
const DataIndex& a_dit)
const;
197#include <CD_NamespaceFooter.H>
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