Skip to content

MySolver::flux parameter F (double**) contiguous or not ?

Here is the signature of the flux function:

void GRMHD::GRMHDSolver::flux(const double* const Q,double** F)

When using Fortran user code, it is assumed by @svenk that F is a contiguous array. This is true with the generic kernel but false with the optimized one due to changing the data layout of LFi from (t, z, y, x, nDim + 1 for Source, nVar) to (nDim + 1 for Source,t, z,y, x, , nVar_padded)

The assumption that F is contiguous was never explicitly given so my question:

Should F be assumed to be contiguous ?

If yes I need to adapt the optimized kernel, if not then the Fortran user code should at least explicitly mention this and if possible do the conversion himself.

Concerned: @svenk @ga96nuv @di25cox @gi26det