#include <MultiPatchEngine.h>
Public Types | |
enum | { dimensions = Dim } |
enum | { hasDataObject = false } |
enum | { dynamic = PatchEngine_t::dynamic } |
enum | { zeroBased = true } |
enum | { multiPatch = true } |
typedef MultiPatchView < LayoutTag, PatchTag, Dim2 > | Tag_t |
typedef Engine< Dim, T, Tag_t > | This_t |
typedef Engine< Dim, T, Tag_t > | Engine_t |
typedef Engine< Dim2, T, MultiPatch< LayoutTag, PatchTag > > | ViewedEngine_t |
typedef Interval< Dim > | Domain_t |
typedef T | Element_t |
typedef PatchTag | PatchTag_t |
typedef Engine< Dim2, T, PatchTag_t > | PatchEngine_t |
typedef PatchEngine_t::ElementRef_t | ElementRef_t |
typedef RefCountedBlockPtr < PatchEngine_t > | PatchContainer_t |
typedef MultiPatchLayoutTraits < LayoutTag, Dim2 > | ViewedLayoutTraits_t |
typedef ViewedLayoutTraits_t::Layout_t | ViewedLayout_t |
typedef ViewedLayoutTraits_t::template View< Dim > | NestedViewTraits_t |
typedef NestedViewTraits_t::Layout_t | Layout_t |
Public Member Functions | |
Engine () | |
The default constructor is available, but must be followed by use of operator= to set this object up in a usable state. | |
template<class DT > | |
Engine (const ViewedEngine_t &engine, const Domain< Dim2, DT > &domain) | |
The constructors take a MultiPatch and a non-slice domain like an Interval<Dim2> or a Range<Dim2>. | |
template<class DT > | |
Engine (const ViewedEngine_t &engine, const SliceDomain< DT > &domain) | |
The constructors take a MultiPatch and a slice domain like a SliceInterval<Dim2,Dim> or a SliceRange<Dim2,Dim>. | |
template<class DT > | |
Engine (const This_t &engine, const Domain< Dim, DT > &domain) | |
The constructors take a MultiPatchView and a non-slice domain like an Interval<Dim2> or a Range<Dim2>. | |
template<int OrigDim, class DT > | |
Engine (const Engine< OrigDim, T, Tag_t > &engine, const SliceDomain< DT > &domain) | |
The constructors take a MultiPatchView and a slice domain like a SliceInterval<OrigDim,Dim> or a SliceRange<OrigDim,Dim>. | |
Engine (const Engine_t &model) | |
Copy constructor. | |
~Engine () | |
non - Trivial. | |
Engine_t & | operator= (const Engine_t &model) |
Assignment operators. | |
NewEngine< This_t, INode< Dim > >::Type_t | globalPatch (const INode< Dim > &inode) const |
Return a patch given a Node or INode. | |
template<class Domain > | |
NewEngine< This_t, Node < Domain > >::Type_t | globalPatch (const Node< Domain > &node) const |
Layout_t & | layout () |
Return the layout. | |
const Layout_t & | layout () const |
const Domain_t & | domain () const |
Return the domain and base domain. | |
const Domain_t & | innerDomain () const |
int | first (int) const |
Return the first index in the given direction (always zero). | |
bool | initialized () const |
Return whether we have been initialized yet or not. | |
void | fillGuards () const |
Fill the internal guard cells. | |
void | fillGuards (const GuardLayers< Dim2 > &g) const |
void | setGuards (const T &val) const |
Set the internal guard cells to a particular value (default zero). | |
void | accumulateFromGuards () const |
Accumulate from the internal guards into. | |
void | setDirty () const |
Set and get the dirty flag (fillGuard is a no-op unless the dirty flag is true). | |
void | clearDirty (int face=-1) const |
bool | isDirty (int face=-1) const |
const PatchContainer_t & | data () const |
Return the data. | |
template<int D1, class T1 > | |
bool | sameController (const Engine< D1, T1, Tag_t > &e) const |
Return whether or not this engine has the same controller as another. | |
PatchContainer_t | block () const |
Return a (shallow) copy of the data block. | |
const ViewedEngine_t & | baseEngine () const |
Return the base engine to be used by constructors. | |
Element access via Loc. | |
Element_t | read (const Loc< Dim > &) const |
ElementRef_t | operator() (const Loc< Dim > &) const |
Element access via ints for speed. | |
Element_t | read (int) const |
Element_t | read (int, int) const |
Element_t | read (int, int, int) const |
Element_t | read (int, int, int, int) const |
Element_t | read (int, int, int, int, int) const |
Element_t | read (int, int, int, int, int, int) const |
Element_t | read (int, int, int, int, int, int, int) const |
ElementRef_t | operator() (int) const |
ElementRef_t | operator() (int, int) const |
ElementRef_t | operator() (int, int, int) const |
ElementRef_t | operator() (int, int, int, int) const |
ElementRef_t | operator() (int, int, int, int, int) const |
ElementRef_t | operator() (int, int, int, int, int, int) const |
ElementRef_t | operator() (int, int, int, int, int, int, int) const |
The Domain of this engine is an Interval<Dim>, which is a tensor product of Dim 1-D intervals. For view-engines, these intervals are 0-based (i.e. [0..N0]x[0..N1] etc.).
The Dim2 parameter gives the dimension of the MP that ultimately spawned this MPView. This does not necessarily need to equal Dim because of the possibility of a slice.
Note that this is NOT the domain of the underlying data storage, but rather it is the domain as presented to the outside world.
typedef MultiPatchView<LayoutTag, PatchTag, Dim2> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Tag_t |
typedef Engine<Dim,T,Tag_t> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::This_t |
typedef Engine<Dim,T,Tag_t> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine_t |
typedef Engine<Dim2,T,MultiPatch<LayoutTag,PatchTag> > Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ViewedEngine_t |
typedef Interval<Dim> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Domain_t |
typedef T Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t |
typedef PatchTag Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::PatchTag_t |
typedef Engine<Dim2, T, PatchTag_t> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::PatchEngine_t |
typedef PatchEngine_t::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t |
typedef RefCountedBlockPtr<PatchEngine_t> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::PatchContainer_t |
typedef MultiPatchLayoutTraits<LayoutTag,Dim2> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ViewedLayoutTraits_t |
typedef ViewedLayoutTraits_t::Layout_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ViewedLayout_t |
typedef ViewedLayoutTraits_t::template View<Dim> Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::NestedViewTraits_t |
typedef NestedViewTraits_t::Layout_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Layout_t |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
anonymous enum |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | ) | [inline] |
The default constructor is available, but must be followed by use of operator= to set this object up in a usable state.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | const ViewedEngine_t & | engine, | |
const Domain< Dim2, DT > & | domain | |||
) | [inline] |
The constructors take a MultiPatch and a non-slice domain like an Interval<Dim2> or a Range<Dim2>.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | const ViewedEngine_t & | engine, | |
const SliceDomain< DT > & | domain | |||
) | [inline] |
The constructors take a MultiPatch and a slice domain like a SliceInterval<Dim2,Dim> or a SliceRange<Dim2,Dim>.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | const This_t & | engine, | |
const Domain< Dim, DT > & | domain | |||
) | [inline] |
The constructors take a MultiPatchView and a non-slice domain like an Interval<Dim2> or a Range<Dim2>.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | const Engine< OrigDim, T, Tag_t > & | engine, | |
const SliceDomain< DT > & | domain | |||
) | [inline] |
The constructors take a MultiPatchView and a slice domain like a SliceInterval<OrigDim,Dim> or a SliceRange<OrigDim,Dim>.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Engine | ( | const Engine_t & | model | ) |
Copy constructor.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::~Engine | ( | ) | [inline] |
non - Trivial.
Engine_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator= | ( | const Engine_t & | model | ) |
Assignment operators.
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | const Loc< Dim > & | loc | ) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | const Loc< Dim > & | loc | ) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0 | ) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1, | |||
int | i2 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::Element_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::read | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5, | |||
int | i6 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0 | ) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1, | |||
int | i2 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5 | |||
) | const [inline] |
Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::ElementRef_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::operator() | ( | int | i0, | |
int | i1, | |||
int | i2, | |||
int | i3, | |||
int | i4, | |||
int | i5, | |||
int | i6 | |||
) | const [inline] |
NewEngine<This_t, INode<Dim> >::Type_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::globalPatch | ( | const INode< Dim > & | inode | ) | const [inline] |
Return a patch given a Node or INode.
This is different than in MultiPatch because we really need to take a view here.
References contains(), INode< Dim >::domain(), INode< Dim >::globalID(), and PAssert.
NewEngine<This_t, Node<Domain> >::Type_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::globalPatch | ( | const Node< Domain > & | node | ) | const [inline] |
References contains(), Node< Dom, OrigDom >::domain(), Node< Dom, OrigDom >::globalID(), and PAssert.
Layout_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::layout | ( | ) | [inline] |
Return the layout.
const Layout_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::layout | ( | ) | const [inline] |
const Domain_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::domain | ( | ) | const [inline] |
Return the domain and base domain.
const Domain_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::innerDomain | ( | ) | const [inline] |
int Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::first | ( | int | ) | const [inline] |
Return the first index in the given direction (always zero).
bool Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::initialized | ( | ) | const [inline] |
Return whether we have been initialized yet or not.
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::fillGuards | ( | ) | const [inline] |
Fill the internal guard cells.
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::fillGuards | ( | const GuardLayers< Dim2 > & | g | ) | const [inline] |
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::setGuards | ( | const T & | val | ) | const [inline] |
Set the internal guard cells to a particular value (default zero).
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::accumulateFromGuards | ( | ) | const [inline] |
Accumulate from the internal guards into.
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::setDirty | ( | ) | const [inline] |
Set and get the dirty flag (fillGuard is a no-op unless the dirty flag is true).
void Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::clearDirty | ( | int | face = -1 |
) | const [inline] |
bool Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::isDirty | ( | int | face = -1 |
) | const [inline] |
const PatchContainer_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::data | ( | ) | const [inline] |
Return the data.
bool Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::sameController | ( | const Engine< D1, T1, Tag_t > & | e | ) | const [inline] |
Return whether or not this engine has the same controller as another.
We find this by finding if the beginning of the block for each of them is the same.
PatchContainer_t Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::block | ( | ) | const [inline] |
Return a (shallow) copy of the data block.
WARNING: If a copy of the data block exists at the time that all views of the engine go away, the dirty flag will not be deleted. So using this should be avoided, if possible.
const ViewedEngine_t& Engine< Dim, T, MultiPatchView< LayoutTag, PatchTag, Dim2 > >::baseEngine | ( | ) | const [inline] |
Return the base engine to be used by constructors.