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"
11#include "tarch/logging/Log.h"
41 const tarch::la::Vector<DIMENSIONS, int>& cellCentre,
42 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
58 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
59 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
63 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
64 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
79 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
80 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
84 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
85 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
88 double*
getFaceQNew(
int index,
int depth,
int axis);
90 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
91 const tarch::la::Vector<DIMENSIONS, double>&
cellSize,
104 using CellQ = std::array<double, celldata::FVSolverQ::Cardinality>;
106 using FaceQNew = std::array<double, facedata::FVSolverQNew::Cardinality>;
109 std::vector<CellQ>
Q;
113 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.
double * getFaceQNew(int index, int depth, int axis)
DataRepository & operator=(DataRepository &&)=delete
std::array< double, facedata::FVSolverQNew::Cardinality > FaceQNew
~DataRepository()=default
int getCellQCardinality() const
int getFaceCardinality() const
DataRepository(DataRepository &&)=delete
std::vector< DepthLevel > _depthLevels
double * getCellQReconstructed(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize)
static DataRepository & getInstance()
std::size_t getMemoryUsageInBytes() const
int getCellQReconstructedCardinality() const
DataRepository & operator=(const DataRepository &)=delete
std::array< double, celldata::FVSolverQReconstructed::Cardinality > CellQReconstructed
DataRepository(const DataRepository &)=delete
double * getCellQ(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize)
std::array< double, celldata::FVSolverQ::Cardinality > CellQ
std::vector< CellQReconstructed > QReconstructed
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)