FreePOOMA
2.4.1
|
The evaluators present different ways to operate on Arrays and Fields. More...
![]() |
Files | |
file | CompressibleEngines.h |
We define EngineFunctor<Engine,Tag> for tags that express the functionality that compressible bricks have. | |
file | CompressibleEval.h |
These evaluators are used in the iterates that perform evaluation on expressions with CompressibleBricks. | |
file | EngineTraits.h |
EvaluatorEngineTraits<EngineTag> associates evaluator types with engine tags. | |
file | Evaluator.h |
Evaluator evaluates expressions by examining the engines that are participating in the expression and dispatching to custom code. | |
file | EvaluatorTags.h |
Evaluator Tags are used for picking the appropriate evaluator given the engines in an expression. | |
file | ExpressionKernel.h |
An ExpressionKernel encapsulates evaluating an expression on a domain. | |
file | InlineEvaluator.h |
InlineEvaluator evaluates expressions by inlining a simple loop. | |
file | KernelTags.h |
Kernel Tags are used for picking the appropriate Kernel given the engines in an expression. | |
file | LoopApply.h |
LoopApplyEvaluator is a simple class that wraps a set of 7 functions that provide efficient loops over Interval<Dim> type domains and call operator() with the integers on a user provided functor. | |
file | MultiArgEvaluator.h |
MultiArgEvaluator is an evaluator that takes a MultiArg object. | |
file | MultiArgKernel.h |
MultiArgKernel is a generalized iterate object to hand off to smarts. | |
file | OpMask.h |
These classes implement the two argument where. | |
file | PatchCode.h |
PatchCode functionality for applying a functor to a patch. | |
file | PatchFunction.h |
PatchFunction is mix-in class that encapsulates evaluation of patch-based functors in parallel. | |
file | PatchKernel.h |
A PatchKernel encapsulates performing operations on a patch of an expression. | |
file | Reduction.h |
Reduction performs global reductions on expressions by examining the engines that are participating in the expression and dispatching to custom code. | |
file | ReductionEvaluator.h |
ReductionEvaluator<InlineKernelTag> reduces expressions by inlining a simple loop. | |
file | ReductionKernel.h |
A ReductionKernel encapsulates reducing an expression on a domain. | |
file | RequestLocks.h |
Classes and functors that are necessary to request locks on an expression. | |
file | ScalarCode.h |
Undocumented. | |
file | ScalarCodeInfo.h |
ScalarCodeInfo contains all the information necessary for evaluating a piece of scalar code on several arguments. | |
file | SimpleIntersector.h |
Intersector that assumes matching layouts. | |
file | WhereProxy.h |
WhereProxy is used to implement 2 argument where(). |
The evaluators present different ways to operate on Arrays and Fields.
This includes Fortran-like manual looping over the patches of the data using the PatchFunction<> mechanism which supports multiple input data but only one output. (PatchFunction.h, PatchKernel.h)
Another way to operate is using the ScalarCode<> facility which presents something like a n-argument stencil operation with some of the arguments being the output. (ScalarCode.h, ScalarCodeInfo.h, MultiArgKernel.h, MultiArgEvaluator.h)
Evaluating a functor at a whole domain is done using the LoopApplyEvaluator. (LoopApply.h)
The most simple way is to use POOMA expressions who are evaluated via ExpressioKernel objects. (ExpressionKernel.h)
The internal evaluator objects are templated on the patch type which gets constructed from the expression node types using the EvaluatorCombine<> traits class and produce the tags RemoteMultiPatchEvaluatorTag, MultiPatchEvaluatorTag, RemoteSinglePatchEvaluatorTag and SinglePatchEvaluatorTag. The MainEvaluatorTag specialized class is the root of any evaluation.