|
FreePOOMA
2.4.1
|
A specialization of Engine for StencilEngine. More...
#include <Stencil.h>
Public Types | |
| enum | { dimensions = D } |
| enum | { hasDataObject = ExprEngine_t::hasDataObject } |
| enum | { dynamic = false } |
| enum | { multiPatch = ExprEngine_t::multiPatch } |
| enum | { zeroBased = true } |
| typedef StencilEngine < Function, Expression > | Tag_t |
| typedef Engine< D, T, Tag_t > | This_t |
| typedef This_t | Engine_t |
| typedef Interval< D > | Domain_t |
| typedef DomainLayout< D > | Layout_t |
| typedef T | Element_t |
| typedef ErrorType | ElementRef_t |
| typedef Expression::Engine_t | ExprEngine_t |
Public Member Functions | |
| Engine () | |
| template<class Layout2 > | |
| Engine (const Layout2 &layout) | |
| Engine (const Function &f, const Expression &e) | |
| Engine (const Function &f, const Expression &e, const Interval< D > &domain) | |
| Construct StencilEngine from stencil functor, expression and output domain. | |
| template<int Dim, class Tx , class EngineTag > | |
| void | initExpressionFromModel (const Array< Dim, Tx, EngineTag > &model) |
| template<class Mesh , class Tx , class EngineTag > | |
| void | initExpressionFromModel (const Field< Mesh, Tx, EngineTag > &model) |
| This_t & | operator= (const This_t &model) |
| const Domain_t & | domain () const |
| Layout_t | layout () const |
| int | first (int i) const |
| Interval< D > | viewDomain (const Interval< D > &domain) const |
| viewDomain() translates the provided output domain to the appropriate input domain. | |
| INode< D > | viewDomain (const INode< D > &inode) const |
| viewDomain implementation for INode. | |
| Interval< D > | intersectDomain () const |
| intersectDomain() gives the "original", unshifted output domain. | |
| const Function & | function () const |
| const Expression & | expression () const |
| int | offset (int d) const |
Viewing constructors | |
| template<class OtherE > | |
| Engine (const Engine< D, T, StencilEngine< Function, OtherE > > &e, const INode< D > &node) | |
| INode view of a StencilEngine. | |
| Engine (const Engine_t &e, const Interval< D > &domain) | |
| Interval view of a StencilEngine. | |
Indexing | |
| Element_t | read (int i) const |
| Element_t | read (int i, int j) const |
| Element_t | read (int i, int j, int k) const |
| Element_t | read (const Loc< 1 > &loc) const |
| Element_t | read (const Loc< 2 > &loc) const |
| Element_t | read (const Loc< 3 > &loc) const |
| Element_t | operator() (int i) const |
| Element_t | operator() (int i, int j) const |
| Element_t | operator() (int i, int j, int k) const |
A specialization of Engine for StencilEngine.
This does all of the usual Engine things:
| typedef StencilEngine<Function, Expression> Engine< D, T, StencilEngine< Function, Expression > >::Tag_t |
| typedef Engine<D, T, Tag_t> Engine< D, T, StencilEngine< Function, Expression > >::This_t |
| typedef This_t Engine< D, T, StencilEngine< Function, Expression > >::Engine_t |
| typedef Interval<D> Engine< D, T, StencilEngine< Function, Expression > >::Domain_t |
| typedef DomainLayout<D> Engine< D, T, StencilEngine< Function, Expression > >::Layout_t |
| typedef T Engine< D, T, StencilEngine< Function, Expression > >::Element_t |
| typedef ErrorType Engine< D, T, StencilEngine< Function, Expression > >::ElementRef_t |
| typedef Expression::Engine_t Engine< D, T, StencilEngine< Function, Expression > >::ExprEngine_t |
| anonymous enum |
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | ) | [inline] |
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | const Layout2 & | layout | ) | [inline, explicit] |
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | const Function & | f, |
| const Expression & | e | ||
| ) | [inline] |
References insetDomain().
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | const Function & | f, |
| const Expression & | e, | ||
| const Interval< D > & | domain | ||
| ) | [inline] |
Construct StencilEngine from stencil functor, expression and output domain.
The output domain specifies the domain the resulting StencilEngine can be indexed with.
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | const Engine< D, T, StencilEngine< Function, OtherE > > & | e, |
| const INode< D > & | node | ||
| ) | [inline] |
INode view of a StencilEngine.
Apply the view to the expression and update our input domain and offset accordingly.
References INode< Dim >::domain().
| Engine< D, T, StencilEngine< Function, Expression > >::Engine | ( | const Engine_t & | e, |
| const Interval< D > & | domain | ||
| ) | [inline] |
Interval view of a StencilEngine.
Adjust domain and offset, but do not apply a view to the expression itself. Note that this means any possible bounds checking will be deferred to later indexing of the engine.
| void Engine< D, T, StencilEngine< Function, Expression > >::initExpressionFromModel | ( | const Array< Dim, Tx, EngineTag > & | model | ) | [inline] |
References Array< Dim, T, EngineTag >::engine().
| void Engine< D, T, StencilEngine< Function, Expression > >::initExpressionFromModel | ( | const Field< Mesh, Tx, EngineTag > & | model | ) | [inline] |
References Field< Mesh, T, EngineTag >::fieldEngine().
| This_t& Engine< D, T, StencilEngine< Function, Expression > >::operator= | ( | const This_t & | model | ) | [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | int | i | ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | int | i, |
| int | j | ||
| ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | int | i, |
| int | j, | ||
| int | k | ||
| ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | const Loc< 1 > & | loc | ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | const Loc< 2 > & | loc | ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::read | ( | const Loc< 3 > & | loc | ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::operator() | ( | int | i | ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::operator() | ( | int | i, |
| int | j | ||
| ) | const [inline] |
| Element_t Engine< D, T, StencilEngine< Function, Expression > >::operator() | ( | int | i, |
| int | j, | ||
| int | k | ||
| ) | const [inline] |
| const Domain_t& Engine< D, T, StencilEngine< Function, Expression > >::domain | ( | ) | const [inline] |
| Layout_t Engine< D, T, StencilEngine< Function, Expression > >::layout | ( | ) | const [inline] |
| int Engine< D, T, StencilEngine< Function, Expression > >::first | ( | int | i | ) | const [inline] |
References PAssert.
| Interval<D> Engine< D, T, StencilEngine< Function, Expression > >::viewDomain | ( | const Interval< D > & | domain | ) | const [inline] |
viewDomain() translates the provided output domain to the appropriate input domain.
That is, it returns a domain that should be used in viewing the StencilEngine expression from the domain that was used viewing the StencilEngine itself.
| INode<D> Engine< D, T, StencilEngine< Function, Expression > >::viewDomain | ( | const INode< D > & | inode | ) | const [inline] |
viewDomain implementation for INode.
References INode< Dim >::domain().
| Interval<D> Engine< D, T, StencilEngine< Function, Expression > >::intersectDomain | ( | ) | const [inline] |
intersectDomain() gives the "original", unshifted output domain.
That is, the output domain in the notion of the expression domains.
| const Function& Engine< D, T, StencilEngine< Function, Expression > >::function | ( | ) | const [inline] |
| const Expression& Engine< D, T, StencilEngine< Function, Expression > >::expression | ( | ) | const [inline] |
| int Engine< D, T, StencilEngine< Function, Expression > >::offset | ( | int | d | ) | const [inline] |
1.7.6.1