6 #include "celldata/FVSolverQ.h"
7 #include "celldata/FVSolverQReconstructed.h"
8 #include "facedata/FVSolverQNew.h"
9 #include "peano4/datamanagement/CellMarker.h"
10 #include "tarch/la/Vector.h"
40 const tarch::la::Vector<DIMENSIONS, int>& cellCentre,
41 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
57 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
58 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
62 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
63 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
79 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
80 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
85 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
86 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
90 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
91 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
108 using CellQ = std::array<double, celldata::FVSolverQ::Cardinality>;
109 using FaceQNew = std::array<double, facedata::FVSolverQNew::Cardinality>;
113 std::vector<CellQ>
Q;
117 std::array<std::vector<FaceQNew>, DIMENSIONS>
faces;
const tarch::la::Vector< DIMENSIONS, double > cellSize
A singleton repository to manage and provide access to grid cell and face data.
int getCellQReconstructedCardinality()
DataRepository & operator=(const DataRepository &)=delete
std::array< double, facedata::FVSolverQNew::Cardinality > FaceQNew
friend struct celldata::FVSolverQ
double * getFaceQNew(int index, int axis)
void copyFacesFromDevice()
DataRepository(DataRepository &&)=delete
DataRepository & operator=(DataRepository &&)=delete
double * getFaceQNewDevice(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize, int axis)
int getCellQCardinality()
static DataRepository & getInstance()
double * getCellQ(int index)
DataRepository(const DataRepository &)=delete
std::array< double, celldata::FVSolverQ::Cardinality > CellQ
friend struct celldata::FVSolverQReconstructed
std::array< double *, DIMENSIONS > facesDevice
std::array< std::vector< FaceQNew >, DIMENSIONS > faces
Provides helper functions for calculating linearized array indices from geometric cell positions.
static tarch::la::Vector< DIMENSIONS, int > getFaceIndices(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize)
Calculates the indices of the lower faces of a cell along along all axis for x axis: x_1 + x_2 * (3^D...
static int linearise(const tarch::la::Vector< DIMENSIONS, int > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize)
Calculates the linearised index of the lower face of a cell along one axis (along one axis means the ...
static int getFaceIndex(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize, int axis)