![]() |
Files | |
file | BrickBase.h |
Base classes for Brick- & BrickView-like engines. | |
file | BrickEngine.h |
Brick & BrickView
| |
file | CompressedFraction.h |
External functions that can be applied to any engine or container to answer questions about compression and to force compression or uncompression. | |
file | CompressibleBlock.h |
A CompressibleBlock (CBlock) manages a block of data that can be compressed to a single value. | |
file | CompressibleBrick.h |
CompressibleBrick engine. | |
file | ConstantFunctionEngine.h |
Constant-function-engine objects provide a way to make a scalar behave like an array. | |
file | DataObject.h |
Traits and tags necessary for dealing with the Smarts data object inside some engines. | |
file | DynamicEngine.h |
Dynamic Engine
| |
file | Engine.h |
Engine
| |
file | EngineFunctor.h |
EngineFunctor provides a common interface to a variety of engine queries, like "are you compressed" or "are you shifted with respect to another engine". | |
file | EnginePatch.h |
Patch handling with engines:
| |
file | EngineTypeInfo.h |
Undocumented. | |
file | ExpressionEngine.h |
Engine<Dim,T,ExpressionTag<Expr> > (aka Expression-Engine) is the engine that contains a PETE expression and provides all the Array interfaces for it. | |
file | ForwardingEngine.h |
A ForwardingEngine is used to forward indices to the elements of another engine. | |
file | IndexFunctionEngine.h |
Index-function-engine objects provide a way to make a function of indices work like an array. | |
file | IndirectionEngine.h |
Work in progress! | |
file | IntersectEngine.h |
IntersectEngine provides a common interface for applying the intersector object to various engines. | |
file | Intersector.h |
Managing intersections of engines:
| |
file | IsValidLocation.h |
helper functions to determine if a particular location or region of a object is defined. | |
file | MultiPatchEngine.h |
MultiPatch engine:
| |
file | NotifyEngineWrite.h |
NotifyEngineWrite is a general wrapper class that is used to tell an engine that we're going to write to it. | |
file | RemoteDynamicEngine.h |
A wrapper engine that remotifies an Engine<1, T, Dynamic>. | |
file | RemoteEngine.h |
Remote engine support. | |
file | Stencil.h |
Stencil objects are a way to build an object which applies a stencil to an array, and returns a new Array for the expression. | |
file | UserFunction.h |
UserFunction objects are a way to build an object which applies a function to an Array, and returns a new Array for the expression. | |
file | ViewEngine.h |
Generalized view engine that can handle intersections for contained multi-patch engines. |
Engines provide the storage for Arrays and Fields and handle domain decomposition, taking sub-views and accessing components transparently by providing a common interface to their users.
Engine are usually defined recursively. Engines categorize into engines allocating storage for data, engines that provide access to computed data and engines providing modified access to other engines.
For the first category, the storage engines, the following are available:
For the second category, the computation engines, the following are available:
For the second category the most important engine types include:
Views of Engines can be constructed by using the NewEngine<> traits class which takes the to be viewed engine type and the subsetting domain type as template parameters. NewEngine<> then defines the type of the ViewEngine as Type_t typedef member.
FIXME: Introduce NewEngineEngine<>, NewEngineDomain<> and newEngineEngine() and newEngineDomain() with their concepts.