6#include "tarch/la/Vector.h"
46 const tarch::la::Vector<DIMENSIONS, double>& cellCentre,
47 const tarch::la::Vector<DIMENSIONS, double>&
cellSize
86 using FaceKey = std::tuple<int, int, int>;
const tarch::la::Vector< DIMENSIONS, double > cellSize
Manages GPU data for a sparse subset of active leaf cells.
std::tuple< int, int, int > FaceKey
tarch::la::Vector< DIMENSIONS, double > * getCellSizes()
uint64_t * getBoundaryFaceIndices()
uint8_t * getBoundaryFaceNumbers()
double * getQReconstructed()
std::map< FaceKey, uint64_t > _uniqueFaceMap
void syncFacesDeviceToHost()
uint64_t * _indicesOfBoundaryFacesDevice
EnclaveDataRepository(const EnclaveDataRepository &)=delete
EnclaveDataRepository & operator=(const EnclaveDataRepository &)=delete
int getNumberOfEnclaveCells() const
void bookmarkCell(const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize)
double getMinVolumeH() const
tarch::la::Vector< DIMENSIONS, double > * getCellCentres()
void buildFromBookmarks()
int _numberOfBoundaryFaces
double getMaxVolumeH() const
EnclaveDataRepository & operator=(EnclaveDataRepository &&)=delete
double * _globalFacePoolDevice
A single, contiguous block of memory holding all unique face data.
static EnclaveDataRepository & getInstance()
tarch::la::Vector< DIMENSIONS, double > * _cellSizesDevice
void syncCellsHostToDevice()
void syncFacesHostToDevice()
uint64_t * getBoundaryCellIndices()
double * _combinedQBlockDevice
tarch::la::Vector< DIMENSIONS, double > * _cellCentresDevice
void syncCellsDeviceToHost()
int getNumberOfBoundaryFaces() const
std::vector< tarch::la::Vector< DIMENSIONS, double > > _bookmarkedCellSizes
double * _QReconstructedDevice
uint64_t * _indicesOfFacesDevice
uint64_t * _boundaryCellIndicesDevice
uint64_t * getFaceIndices()
std::vector< tarch::la::Vector< DIMENSIONS, double > > _bookmarkedCellCentres
uint8_t * _boundaryFaceNumbersDevice
int _numberOfEnclaveCells
EnclaveDataRepository(EnclaveDataRepository &&)=delete