13 int NumberOfVolumesPerAxisInPatch,
18 bool EvaluateNonconservativeProduct,
19 bool EvaluateEigenvalues,
22 bool EvaluateMaximumEigenvalueAfterTimeStep,
23 class TempDataEnumeratorType>
39 int NumberOfVolumesPerAxisInPatch,
42 int NumberOfAuxiliaryVariables,
44 bool EvaluateNonconservativeProduct,
45 bool EvaluateEigenvalues,
48 bool EvaluateMaximumEigenvalueAfterTimeStep,
49 class TempDataEnumeratorType>
60 int numberOfVolumesPerAxisInPatch,
65 int numberOfVolumesPerAxisInPatch,
67 int auxiliaryVariables
71 int numberOfVolumesPerAxisInPatch,
75 int numberOfVolumesPerAxisInPatch,
81 int numberOfVolumesPerAxisInPatch,
83 int auxiliaryVariables,
96 int numberOfVolumesPerAxisInPatch,
98 bool extendInBothDirections
101 int numberOfVolumesPerAxisInPatch,
103 bool extendInBothDirections
106 int numberOfVolumesPerAxisInPatch,
108 bool extendInBothDirections
113 int numberOfVolumesPerAxisInPatch,
119 int numberOfVolumesPerAxisInPatch,
124 int numberOfVolumesPerAxisInPatch,
131#include "PatchwiseFunctors.cpph"
132#include "PatchwiseStateless.cpph"
#define KeywordToAvoidDuplicateSymbolsForInlinedFunctions
NumberOfAuxiliaryVariables
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesUnknownsPlusAuxiliaryVariables(int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables)
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesUnknowns(int numberOfVolumesPerAxisInPatch, int unknowns)
tarch::la::Vector< Dimensions+2, int > rangeOverVolumesTimesUnknownsPlusAuxiliaryVariablesTimesPatches(int numberOfVolumesPerAxisInPatch, int unknowns, int auxiliaryVariables, int patches)
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatchesPlusHaloInXDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
tarch::la::Vector< Dimensions, int > rangeOverVolumesPlusHaloInYDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatches(int numberOfVolumesPerAxisInPatch, int patches)
tarch::la::Vector< Dimensions+1, int > rangeOverVolumesTimesPatchesPlusHaloInYDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
tarch::la::Vector< Dimensions+2, int > rangeOverVolumesTimesUnknownsTimesPatches(int numberOfVolumesPerAxisInPatch, int unknowns, int patches)
tarch::la::Vector< 3, int > rangeOverVolumesPlusHaloInZDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
tarch::la::Vector< 3+1, int > rangeOverVolumesTimesPatchesPlusHaloInZDirection(int numberOfVolumesPerAxisInPatch, int haloSize, int patches)
tarch::la::Vector< Dimensions, int > rangeOverVolumesPlusHaloInXDirection(int numberOfVolumesPerAxisInPatch, int haloSize, bool extendInBothDirections)
Construct iteration range.
std::function< void(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, int normal, double *__restrict__ L)> EigenvaluesFunctor
std::function< void(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, double *__restrict__ S)> SourceFunctor
std::function< void(const double *__restrict__ Q, const double *__restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, int normal, double *__restrict__ BTimesDeltaQ)> NonconservativeProductFunctor
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRiemannPatchwiseHeapStateless(CellData< double, double > &patchData, peano4::utils::LoopPlacement loopPlacement=peano4::utils::LoopPlacement::Serial) InlineMethod
std::function< void(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, int normal, double *__restrict__ F)> FluxFunctor
std::function< double(const double *__restrict__ QR, const double *__restrict__ QL, const double *__restrict__ FR, const double *__restrict__ FL, const double *__restrict__ LR, const double *__restrict__ LL, const tarch::la::Vector< Dimensions, double > &xR, const tarch::la::Vector< Dimensions, double > &xL, const tarch::la::Vector< Dimensions, double > &h, double t, double dt, int normal, double *__restrict__ APDQ, double *__restrict__ AMDQ)> RiemannFunctor
KeywordToAvoidDuplicateSymbolsForInlinedFunctions void timeStepWithRiemannPatchwiseHeapFunctors(CellData< double, double > &patchData, const FluxFunctor &fluxFunctor, const NonconservativeProductFunctor &nonconservativeProductFunctor, const SourceFunctor &sourceFunctor, const EigenvaluesFunctor &eigenvaluesFunctor, const RiemannFunctor &riemannFunctor, peano4::utils::LoopPlacement loopPlacement=peano4::utils::LoopPlacement::Serial) InlineMethod
LoopPlacement
Guide loop-level parallelism.
Representation of a number of cells which contains all information that's required to process the sto...
#define InlineMethod
Generic identifier for inlined functions.