#include "IntVect.H"
#include "BoxLayoutData.H"
#include "DisjointBoxLayout.H"
#include "Copier.H"
#include "SPMD.H"
#include "NamespaceHeader.H"
#include "NamespaceFooter.H"
#include "LevelDataI.H"
Go to the source code of this file.
Classes | |
class | LevelData< T > |
struct | LevelData< T >::ApplyFunctor |
Functions | |
template<class T> | |
void | aliasLevelData (LevelData< T > &a_alias, LevelData< T > *a_original, const Interval &a_interval) |
Data over a disjoint union of rectangles. |
void aliasLevelData | ( | LevelData< T > & | a_alias, | |
LevelData< T > * | a_original, | |||
const Interval & | a_interval | |||
) | [inline] |
Data over a disjoint union of rectangles.
LevelData aliasing function.
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.
a_alias | aliased LevelData<T> object. original data in a_alias is destroyed and new aliasing role assumed. | |
a_original | pointer to LevelData<T> that will be aliased. | |
a_interval | range of components of each T in a_original that will be created in the a_alias argument. |
LevelData<FArrayBox> original(dbl, 4, 2*IntVect::Unit); Interval subcomps(2, 3); LevelData<FArrayBox> alias; aliasLevelData<FArrayBox>(alias, &original, subcomps); // component 0 of every FArrayBox in alias references the same data as // component 2 in original
The template class T must have an 'alias' constructor
class A { public: A(const Interval& subcomps, A& original);// alias constructor ... };
References LevelData< T >::define(), LevelData< T >::disjointBoxLayout(), LevelData< T >::ghostVect(), and Interval::size().