7 int numberOfGridCellsPerPatchPerAxis,
10 int auxiliaryVariables,
11 MaxEigenvalue maxEigenvalue
15 for (
int patchIndex=0; patchIndex<patchData.
numberOfCells; patchIndex++) {
16 double newMaxEigenvalue = 0.0;
17 dfor(cell,numberOfGridCellsPerPatchPerAxis) {
18 newMaxEigenvalue = std::max(
21 *(patchData.
QOut + patchIndex),
28 patchData.
t[patchIndex],
29 patchData.
dt[patchIndex]
39 const double* __restrict__ QOut,
50 for (
int normal=0; normal<Dimensions; normal++) {
54 & (QOut[ QOutEnumerator(patchIndex,
volumeIndex,0) ]),
#define dfor(counter, max)
d-dimensional Loop
static double reduceMaxEigenvalue_LoopBody(const double *__restrict__ QOut, const QOutEnumeratorType &QOutEnumerator, exahype2::fd::MaxEigenvalue maxEigenvalue, const tarch::la::Vector< Dimensions, double > &patchCentre, const tarch::la::Vector< Dimensions, double > &patchSize, int patchIndex, const tarch::la::Vector< Dimensions, int > &volumeIndex, double t, double dt) InlineMethod
static tarch::la::Vector< 2, double > getGridCellCentre(const tarch::la::Vector< 2, double > &x, const tarch::la::Vector< 2, double > &h, int numberOfGridCellsPerPatchPerAxis, const tarch::la::Vector< 2, int > &index)
In ExaHyPE's Finite Volume setup, a cell hosts a patch of Finite Volumes.
void reduceMaxEigenvalue_patchwise_functors(::exahype2::CellData< double, double > &patchData, int numberOfGridCellsPerPatchPerAxis, int overlap, int unknowns, int auxiliaryVariables, MaxEigenvalue maxEigenvalue)
static tarch::la::Vector< 2, double > getGridCellSize(const tarch::la::Vector< 2, double > &h, int numberOfGridCellsPerPatchPerAxis)
std::function< double(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &gridCellX, const tarch::la::Vector< Dimensions, double > &gridCellH, double t, double dt, int normal) MaxEigenvalue)
The max eigenvalue is used if and only if you have adaptive time stepping.
auto volumeIndex(Args... args)
Representation of a number of cells which contains all information that's required to process the sto...
outType ** QOut
Out values.
const int numberOfCells
As we store data as SoA, we have to know how big the actual arrays are.
double * maxEigenvalue
Out values.
tarch::la::Vector< Dimensions, double > * cellCentre
tarch::la::Vector< Dimensions, double > * cellSize
Array of struct enumerator.
const int _numberOfDoFsPerAxisInCell