![]() |
Peano
|
A singleton repository to manage and provide access to grid cell and face data. More...
#include <DataRepository.h>
Data Structures | |
struct | DepthLevel |
struct | Indexing |
Provides helper functions for calculating linearized array indices from geometric cell positions. More... | |
Public Member Functions | |
DataRepository (const DataRepository &)=delete | |
DataRepository & | operator= (const DataRepository &)=delete |
DataRepository (DataRepository &&)=delete | |
DataRepository & | operator= (DataRepository &&)=delete |
~DataRepository () | |
double * | getCellQ (int index) |
double * | getCellQ (const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize) |
double * | getFaceQNew (int index, int axis) |
double * | getFaceQNew (const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize, int axis) |
double * | getFaceQNewDevice (const tarch::la::Vector< DIMENSIONS, double > &cellCentre, const tarch::la::Vector< DIMENSIONS, double > &cellSize, int axis) |
void | copyFacesToDevice () |
void | copyFacesFromDevice () |
int | getFaceCardinality () |
int | getCellQReconstructedCardinality () |
int | getCellQCardinality () |
Static Public Member Functions | |
static DataRepository & | getInstance () |
Private Types | |
using | CellQ = std::array< double, celldata::FVSolverQ::Cardinality > |
using | FaceQNew = std::array< double, facedata::FVSolverQNew::Cardinality > |
Private Member Functions | |
DataRepository () | |
Private Attributes | |
DepthLevel | _depthLevel |
Friends | |
struct | celldata::FVSolverQ |
struct | celldata::FVSolverQReconstructed |
A singleton repository to manage and provide access to grid cell and face data.
This class holds the memory for all cell-local and face-local data arrays (Q, QReconstructed, etc.) for the entire grid. It uses a keying system based on cell position and refinement depth to uniquely identify and retrieve data for any given cell.
Definition at line 26 of file DataRepository.h.
|
private |
Definition at line 108 of file DataRepository.h.
|
private |
Definition at line 109 of file DataRepository.h.
|
delete |
|
delete |
benchmarks::exahype2::kernelbenchmarks::DataRepository::~DataRepository | ( | ) |
Definition at line 84 of file DataRepository.cpp.
References _depthLevel, and benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::facesDevice.
|
private |
Definition at line 72 of file DataRepository.cpp.
References _depthLevel, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::faces, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::facesDevice, getFaceCardinality(), and benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::Q.
void benchmarks::exahype2::kernelbenchmarks::DataRepository::copyFacesFromDevice | ( | ) |
Definition at line 156 of file DataRepository.cpp.
References _depthLevel, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::faces, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::facesDevice, and getFaceCardinality().
Referenced by main().
void benchmarks::exahype2::kernelbenchmarks::DataRepository::copyFacesToDevice | ( | ) |
Definition at line 144 of file DataRepository.cpp.
References _depthLevel, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::faces, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::facesDevice, and getFaceCardinality().
Referenced by main().
double * benchmarks::exahype2::kernelbenchmarks::DataRepository::getCellQ | ( | const tarch::la::Vector< DIMENSIONS, double > & | cellCentre, |
const tarch::la::Vector< DIMENSIONS, double > & | cellSize | ||
) |
Definition at line 103 of file DataRepository.cpp.
References cellSize, and getCellQ().
double * benchmarks::exahype2::kernelbenchmarks::DataRepository::getCellQ | ( | int | index | ) |
Definition at line 101 of file DataRepository.cpp.
References _depthLevel, and benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::Q.
Referenced by applyInitialConditions(), getCellQ(), main(), plotGrid(), and projectPatchOntoFaces().
int benchmarks::exahype2::kernelbenchmarks::DataRepository::getCellQCardinality | ( | ) |
Definition at line 97 of file DataRepository.cpp.
Referenced by main().
int benchmarks::exahype2::kernelbenchmarks::DataRepository::getCellQReconstructedCardinality | ( | ) |
Definition at line 99 of file DataRepository.cpp.
Referenced by main().
int benchmarks::exahype2::kernelbenchmarks::DataRepository::getFaceCardinality | ( | ) |
Definition at line 95 of file DataRepository.cpp.
Referenced by copyFacesFromDevice(), copyFacesToDevice(), DataRepository(), and getFaceQNewDevice().
double * benchmarks::exahype2::kernelbenchmarks::DataRepository::getFaceQNew | ( | const tarch::la::Vector< DIMENSIONS, double > & | cellCentre, |
const tarch::la::Vector< DIMENSIONS, double > & | cellSize, | ||
int | axis | ||
) |
Definition at line 126 of file DataRepository.cpp.
References _depthLevel, cellSize, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::faces, and benchmarks::exahype2::kernelbenchmarks::DataRepository::Indexing::getFaceIndex().
double * benchmarks::exahype2::kernelbenchmarks::DataRepository::getFaceQNew | ( | int | index, |
int | axis | ||
) |
Definition at line 115 of file DataRepository.cpp.
References _depthLevel, and benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::faces.
Referenced by applyBoundaryConditionsToAxis(), and projectPatchOntoFaces().
double * benchmarks::exahype2::kernelbenchmarks::DataRepository::getFaceQNewDevice | ( | const tarch::la::Vector< DIMENSIONS, double > & | cellCentre, |
const tarch::la::Vector< DIMENSIONS, double > & | cellSize, | ||
int | axis | ||
) |
Definition at line 135 of file DataRepository.cpp.
References _depthLevel, cellSize, benchmarks::exahype2::kernelbenchmarks::DataRepository::DepthLevel::facesDevice, getFaceCardinality(), and benchmarks::exahype2::kernelbenchmarks::DataRepository::Indexing::getFaceIndex().
Referenced by main().
|
static |
Definition at line 90 of file DataRepository.cpp.
Referenced by applyBoundaryConditionsToAxis(), applyInitialConditions(), main(), plotGrid(), and projectPatchOntoFaces().
|
delete |
|
delete |
|
friend |
Definition at line 105 of file DataRepository.h.
|
friend |
Definition at line 106 of file DataRepository.h.
|
private |
Definition at line 121 of file DataRepository.h.
Referenced by copyFacesFromDevice(), copyFacesToDevice(), DataRepository(), getCellQ(), getFaceQNew(), getFaceQNewDevice(), and ~DataRepository().