#include <LevelData.H>
Inheritance diagram for LevelData< T >:
Public Methods | |
LevelData () | |
LevelData (const DisjointBoxLayout &dp, int comps, const IntVect &ghost=IntVect::TheZeroVector(), const DataFactory< T > &a_factory=DefaultDataFactory< T >()) | |
virtual | ~LevelData () |
virtual void | define (const DisjointBoxLayout &dp, int comps, const IntVect &ghost=IntVect::TheZeroVector(), const DataFactory< T > &a_factory=DefaultDataFactory< T >()) |
virtual void | define (const LevelData< T > &da, const DataFactory< T > &a_factory=DefaultDataFactory< T >()) |
virtual void | define (const LevelData< T > &da, const Interval &comps, const DataFactory< T > &a_factory=DefaultDataFactory< T >()) |
virtual void | copyTo (const Interval &srcComps, BoxLayoutData< T > &dest, const Interval &destComps) const |
virtual void | copyTo (const Interval &srcComps, BoxLayoutData< T > &dest, const Interval &destComps, const Copier &copier) const |
virtual void | copyTo (const Interval &srcComps, LevelData< T > &dest, const Interval &destComps) const |
virtual void | copyTo (const Interval &srcComps, LevelData< T > &dest, const Interval &destComps, const Copier &copier, const LDOperator< T > &a_op=LDOperator< T >()) const |
virtual void | exchange (const Interval &comps) |
virtual void | exchange (const Interval &comps, const Copier &copier) |
const IntVect & | ghostVect () const |
const DisjointBoxLayout & | getBoxes () const |
const DisjointBoxLayout & | disjointBoxLayout () const |
virtual void | apply (void(*a_Function)(const Box &box, int comps, T &t)) |
overidden virtual functions | |
These functions will invoke error messages when invoked. C++ will ensure that constructors are not called for the base class by a user, but a 'define' function has no such protection, hence the need to prevent such usage. A runtime error is not a perfect solution...(strong construction gets around this *sigh*). classes that derive from LevelData will have to turn it's valid defines into runtime errors also and make it's own defines. Thus taking over the job of the compiler. | |
virtual void | define (const BoxLayout &dp, int comps, const DataFactory< T > &factory) |
virtual void | define (const BoxLayoutData< T > &da, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayoutData< T > &da, const Interval &comps, const DataFactory< T > &factory=DefaultDataFactory< T >()) |
virtual void | define (const BoxLayout &deadFunction) |
overridden and throws an error. | |
Protected Attributes | |
DisjointBoxLayout | m_disjointBoxLayout |
IntVect | m_ghost |
Friends | |
void | aliasLevelData (LevelData< T > &a_alias, LevelData< T > *a_original, const Interval &a_interval) |
Data over a disjoint union of rectangles. |
|
|
|
|
|
|
|
User writes a function with the signature:
They can then hand this off to LayoutData::apply. This class then cycles through all the T objects and invokes this function. Function must not be inline. (I'm still trying to figure out a nice way to send in non-static member functions). for example: LevelData<FArrayBox> data(layout, 3, IntVect::Unit); struct val{ static void set1(const Box& box, int comps, const FArrayBox& f) { f.setVal(box, box.smallEnd(0)); } data.apply(val::set1); Reimplemented from BoxLayoutData< T >. |
|
same as copyTo that takes a BoxLayoutData, except that it fills the ghost cells of 'dest' with data from 'this' also. USer passes in a prebuilt Copier object |
|
same as copyTo that takes a BoxLayoutData, except that it fills the ghost cells of 'dest' with data from 'this' also. |
|
|
|
|
|
overridden and throws an error.
Reimplemented from BoxLayoutData< T >. |
|
Define this BoxLayoutData to be the subset of the data in da defined by the Interval comps. Reimplemented from BoxLayoutData< T >. |
|
Reimplemented from BoxLayoutData< T >. |
|
Reimplemented from BoxLayoutData< T >. |
|
Copy definer. 'this' LevelData thrown away and da's LevelData copied. This LevelData is now defined for the range [0, comps.size()] and filled with the data in da from [comps.begin(), comps.end()] |
|
copy definer. this LevelData thrown away and da's LevelData copied |
|
|
|
|
|
|
|
|
|
|
|
|
|
Data over a disjoint union of rectangles. LevelData is-a BoxLayoutData. It is built from a DisjointBoxLayout instead though, thus making the data in a DisjointBoxLayout uniquely defined for all spatial indices defined by the underlying DisjointBoxLayout. It carries within it an inherent concept of ghost cells (which the user can choose to be empty). Since LevelData is-a BoxLayoutData, all the methods required of the template class T for BoxLayoutData are also required for LevelData. LevelData does not have any extra requirements. |
|
|
|
|