![]() |
Peano
|
Functions | |
void | runBenchmarks (int numberOfCells, double timeStamp, double timeStepSize, const tarch::la::Vector< DIMENSIONS, double > cellCenter, const tarch::la::Vector< DIMENSIONS, double > cellSize) |
Variables | |
tarch::logging::Log | _log |
This is variant 5 of the fused kernels. More... | |
void variant5::runBenchmarks | ( | int | numberOfCells, |
double | timeStamp, | ||
double | timeStepSize, | ||
const tarch::la::Vector< DIMENSIONS, double > | cellCenter, | ||
const tarch::la::Vector< DIMENSIONS, double > | cellSize | ||
) |
Definition at line 225 of file Variant5.cpp.
References variant1::_log, cellCenter, cellSize, exahype2::FaceData< inType, outType >::dt, exahype2::FaceData< inType, outType >::faceCentre, exahype2::FaceData< inType, outType >::faceSize, firstTask(), initialTask(), benchmarks::exahype2::kernelbenchmarks::initInputData(), benchmarks::exahype2::kernelbenchmarks::NumberOfInputEntriesPerCell, exahype2::FaceData< inType, outType >::QIn, exahype2::FaceData< inType, outType >::QOut, benchmarks::exahype2::kernelbenchmarks::reportRuntime(), secondTask(), exahype2::FaceData< inType, outType >::t, timeStamp, timeStepSize, and timingComputeKernel.
Referenced by main().
|
extern |
This is variant 5 of the fused kernels.
In this variant, we will assume that faceData is constructed per FACE, and that it contains data from both from sides of said face, i.e. the "left" and "right" sides. We assume that this data IS NOT shared with the neighbour, i.e. there always exist two instances of a faceData object between which data must be copied between timesteps.
This means that the data in the faces must be copied from one face to the other in between timesteps, but we assume that the Riemann solver cannot be performed at this time. Therefore, the Riemann problem must be solved on each face twice, once per adjacent cell.
This can be implemented as once enclave task, in which every kernel is solved in order for every cell.
Upsides: only one dependency which occurs between timesteps only one enclave task which corresponds to that of FV
Downsides: Each Riemann solver must be performed twice, once per adjacent cell Data needs to be copied between faces of adjacent cells