11 #ifndef _BOXLAYOUTDATA_H_ 12 #define _BOXLAYOUTDATA_H_ 21 #include "NamespaceHeader.H" 115 return m_origPointer->threadSafe();
158 void define(
const int a_dir);
182 return arg.size(b, comps);
187 arg.linearOut(buf, R, comps);
192 arg.linearIn(buf, R, comps);
204 virtual void op(T& dest,
205 const Box& RegionFrom,
213 dest.copy(RegionFrom, Cdest,RegionTo, src, Csrc);
217 int sizeSource = size(src, RegionFrom, Csrc);
218 int sizeDest = size(dest, RegionTo, Cdest);
220 if (T::preAllocatable() == 0 || T::preAllocatable() == 1)
222 if (sizeSource != sizeDest)
224 MayDay::Abort(
"LinearizationTest failure: dest and source have different sizes");
228 void* b = (
void*)&(buffer[0]);
284 virtual void define(
const BoxLayout& boxes,
int comps,
299 virtual void define(
const BoxLayout& boxes);
327 void generalCopyTo(
const BoxLayout& a_destGrids,
334 void generalCopyTo(
const BoxLayout& a_destGrids,
346 void addTo(
const Interval& a_srcComps,
356 void addTo(
const Interval& a_srcComps,
360 const Copier& a_copier)
const;
370 void addToBegin(
const Interval& a_srcComps,
373 const Copier& a_copier)
const;
376 void addToEnd(
const Interval& a_destComps);
393 virtual void apply(
void (*a_Function)(
const Box&
box,
int comps, T& t));
396 virtual bool isDefined()
const;
398 virtual void clear() ;
533 #include "NamespaceFooter.H" 536 #endif //BOXLAYOUTDATA
void postSendsFromMe() const
Definition: BoxLayoutDataI.H:372
void postReceivesToMe() const
Definition: BoxLayoutDataI.H:377
void allocateBuffers(const BoxLayoutData< T > &a_src, const Interval &a_srcComps, const BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op) const
Definition: BoxLayoutDataI.H:354
int m_comps
Definition: BoxLayoutData.H:403
CopierBuffer * m_buff
Definition: BoxLayoutData.H:481
A reference-counting handle class.
Definition: RefCountedPtr.H:173
Interval interval() const
Definition: BoxLayoutData.H:312
Interval m_interval
Definition: BoxLayoutData.H:119
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
LayoutData< Real * > aliasPtrs
Definition: BoxLayoutData.H:94
virtual void linearIn(T &arg, void *buf, const Box &R, const Interval &comps) const
Definition: BoxLayoutData.H:189
virtual bool threadSafe() const
this boolean only has to do with whether the op(...) function is thread safe
Definition: BoxLayoutData.H:200
void makeItSoLocalCopy(const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const
Definition: BoxLayoutDataI.H:291
A not-necessarily-disjoint collective of boxes.
Definition: BoxLayout.H:145
Data that maintains a one-to-one mapping of T to the boxes in a BoxLayout.
Definition: BoxLayout.H:26
Real norm(const BoxLayoutData< FArrayBox > &A, const Interval &interval, const int &p=2)
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:152
void unpackReceivesToMe(const Interval &a_destComps, const LDOperator< T > &a_op)
Definition: BoxLayoutDataI.H:382
void makeItSoBegin(const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const
Definition: BoxLayoutDataI.H:250
void completePendingSends() const
Definition: BoxLayoutDataI.H:349
void setVector(const BoxLayoutData< T > &da, const Interval &srcComps, const Interval &destComps)
Definition: BoxLayoutDataI.H:45
virtual ~DataFactory()
Definition: BoxLayoutData.H:34
virtual bool callDelete() const
Definition: BoxLayoutData.H:43
virtual void op(T &dest, const Box &RegionFrom, const Interval &Cdest, const Box &RegionTo, const T &src, const Interval &Csrc) const
Definition: BoxLayoutData.H:204
virtual ~FABAliasFlBxDataFactory()
Definition: BoxLayoutData.H:127
Definition: EBInterface.H:45
Definition: BoxLayoutData.H:150
Factory object to data members of a BoxLayoutData container.
Definition: BoxLayoutData.H:70
A FArrayBox-like container for face-centered fluxes.
Definition: FluxBox.H:22
virtual ~FaceFabDataFactory()
Definition: BoxLayoutData.H:153
void const char const int const int const int const Real const Real * A
Definition: Lapack.H:83
virtual int size(const T &arg, const Box &b, const Interval &comps) const
Definition: BoxLayoutData.H:180
Structure for passing component ranges in code.
Definition: Interval.H:23
void unpackReceivesToMe_append(LayoutData< Vector< RefCountedPtr< T > > > &a_dest, const Interval &a_destComps, int ncomp, const DataFactory< T > &factory, const LDOperator< T > &a_op) const
Definition: BoxLayoutDataI.H:389
int m_dir
Definition: BoxLayoutData.H:166
new code
Definition: BoxLayoutData.H:170
void allocateGhostVector(const DataFactory< T > &factory, const IntVect &ghost=IntVect::Zero)
Definition: BoxLayoutDataI.H:167
Data on a BoxLayout.
Definition: BoxLayoutData.H:97
void linearOut(void *const a_outBuf, const T &inputT)
Definition: SPMDI.H:33
double Real
Definition: REAL.H:33
BoxLayoutData< FluxBox > * m_origPointer
Definition: BoxLayoutData.H:142
Definition: BoxLayoutData.H:80
virtual ~LDOperator()
Definition: BoxLayoutData.H:177
Definition: BoxLayoutData.H:124
void makeItSo(const Interval &a_srcComps, const BoxLayoutData< T > &a_src, BoxLayoutData< T > &a_dest, const Interval &a_destComps, const Copier &a_copier, const LDOperator< T > &a_op=LDOperator< T >()) const
Definition: BoxLayoutDataI.H:232
virtual ~AliasDataFactory()
Definition: BoxLayoutData.H:103
virtual ~FABAliasDataFactory()
Definition: BoxLayoutData.H:83
virtual bool threadSafe() const
Definition: BoxLayoutData.H:113
virtual bool threadSafe() const
Definition: BoxLayoutData.H:49
static const IntVect Zero
Definition: IntVect.H:658
A Rectangular Domain on an Integer Lattice.
Definition: Box.H:469
int nComp() const
Definition: BoxLayoutData.H:306
Definition: DataIndex.H:114
Definition: BoxLayoutData.H:100
void writeSendDataFromMeIntoBuffers(const BoxLayoutData< T > &a_src, const Interval &a_srcComps, const LDOperator< T > &a_op) const
Definition: BoxLayoutDataI.H:365
bool m_isdefined
Definition: BoxLayoutData.H:405
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
Definition: FArrayBox.H:45
virtual T * create(const Box &box, int ncomps, const DataIndex &a_datInd) const =0
factory function. creates a new 'T' object
Factory object to data members of a BoxLayoutData container.
Definition: BoxLayoutData.H:30
void makeItSoEnd(const Interval &a_destComps, const LDOperator< T > &a_op=LDOperator< T >())
Definition: BoxLayoutDataI.H:335
int m_dir
Definition: BoxLayoutData.H:144
virtual bool threadSafe() const
Definition: BoxLayoutData.H:301
virtual void linearOut(const T &arg, void *buf, const Box &R, const Interval &comps) const
Definition: BoxLayoutData.H:184
Definition: BoxLayoutData.H:173
BoxLayoutData< T > * m_origPointer
Definition: BoxLayoutData.H:118
bool m_threadSafe
Definition: BoxLayoutData.H:404
virtual T * create(const Box &box, int ncomps, const DataIndex &a_datInd) const
factory function. creates a new 'T' object
Definition: BoxLayoutDataI.H:31
void linearIn(T &a_outputT, const void *const inBuf)
Definition: SPMDI.H:27
Interval m_interval
Definition: BoxLayoutData.H:143
static void Abort(const char *const a_msg=m_nullString)
Print out message to cerr and exit via abort() (if serial) or MPI_Abort() (if parallel).