32 #ifndef MATRIX_CONTAINER_H 33 #define MATRIX_CONTAINER_H 244 template <
typename T>
247 return static_cast<T&
> (*(
mContainer[matrixIdx].matrixPtr));
Initial pressure source data.
velocity shift for non-staggered velocity in x.
Velocity z source input data.
Non uniform grid acoustic velocity in y.
Class implementing the matrix container.
Temporary matrix for 1D fft in y.
Non uniform grid acoustic velocity on staggered grid x.
Transducer source input data.
Temporary matrix for 1D fft in z.
MatrixContainer & operator=(const MatrixContainer &)=delete
Operator = is not allowed.
Velocity source geometry data.
void loadDataFromCheckpointFile()
Load selected matrices from the checkpoint HDF5 file.
bool empty() const
Is the container empty?
Non uniform grid acoustic velocity in z.
Velocity x on staggered grid.
The header file containing metadata about matrices stored in the matrix container.
MatrixRecord & operator[](const MatrixIdx matrixIdx)
operator[]
Pressure source input data.
Absorbing coefficient Nabla 1.
Absorbing coefficient Tau.
Negative shift for non-staggered velocity in z.
Negative Fourier shift in z.
void freeMatrices()
Destroy and free all matrices.
std::map< MatrixIdx, MatrixRecord > mContainer
Map holding the container.
Negative shift for non-staggered velocity in y.
Absorbing coefficient Nabla 2.
void createMatrices()
Create all matrix objects in the container.
~MatrixContainer()
Destructor.
dt / initial velocity on staggered grid z.
Cuboid corners sensor mask.
Negative Fourier shift in y.
Positive Fourier shift in y.
MatrixContainer()
Constructor.
MatrixIdx
Matrix identifers of all matrices in the k-space code.
The header file storing names of all variables.
Non uniform grid acoustic velocity on staggered grid z.
Velocity y source input data.
Positive Fourier shift in z.
The header file containing the structure with 3D dimension sizes.
Velocity x source input data.
dt / initial velocity on staggered grid y.
Non uniform grid acoustic velocity in x.
void storeDataIntoCheckpointFile()
Store selected matrices into the checkpoint file.
T & getMatrix(const MatrixIdx matrixIdx)
Get the matrix with a specific type from the container.
Positive Fourier shift in x.
Delay mask for many types sources.
Non uniform grid acoustic velocity on staggered grid y.
velocity shift for non-staggered velocity in y.
Negative shift for non-staggered velocity in x.
void loadDataFromInputFile()
Load all marked matrices from the input HDF5 file.
velocity shift for non-staggered velocity in z.
dt / initial velocity on staggered grid x.
Negative Fourier shift in x.
Velocity z on staggered grid.
Velocity y on staggered grid.
Pressure source geometry data.
Absorbing coefficient Eau.
size_t size() const
Get the number of matrices in the container.
Temporary matrix for fft shift.
Temporary matrix for 1D fft in x.
A structure storing details about the matrix.
The header file of the common ancestor of all matrix classes. A pure abstract class.
void addMatrices()
Populate the container based on the simulation type.