Peano
variant4 Namespace Reference

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 4 of the fused kernels. More...
 

Function Documentation

◆ runBenchmarks()

void variant4::runBenchmarks ( int  numberOfCells,
double  timeStamp,
double  timeStepSize,
const tarch::la::Vector< DIMENSIONS, double >  cellCenter,
const tarch::la::Vector< DIMENSIONS, double >  cellSize 
)

Variable Documentation

◆ _log

tarch::logging::Log variant4::_log
extern

This is variant 4 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. the faceData exists once per Cell and data must be copied between two instances of the same face between timeSteps.

This means that the data in the faces must be copied from one face to the other in between timeSteps, at which point the Riemann kernels can be performed as well.

This can be implemented as two enclave tasks, with the first consisting of exchanging face data and solving the pre-required Riemann problems, and the second being solving the problems inside of all of the cells.

Upsides: only requires each Riemann Kernel to be performed once only one dependency between two groups of tasks

Downsides: Requires copying of data between faces Costly data dependency at the beginning of the step due to the initial Riemann solves