33 #ifndef MATRIX_CONTAINER_H
34 #define MATRIX_CONTAINER_H
59 ux_sgx , uy_sgy , uz_sgz,
60 ux_shifted, uy_shifted, uz_shifted,
61 duxdx , duydy , duzdz,
62 dxudxn , dyudyn , dzudzn,
63 dxudxn_sgx, dyudyn_sgy, dzudzn_sgz,
65 rhox, rhoy , rhoz, rho0,
66 dt_rho0_sgx, dt_rho0_sgy, dt_rho0_sgz,
68 p0_source_input, sensor_mask_index, sensor_mask_corners,
69 ddx_k_shift_pos, ddy_k_shift_pos, ddz_k_shift_pos,
70 ddx_k_shift_neg, ddy_k_shift_neg, ddz_k_shift_neg,
71 x_shift_neg_r , y_shift_neg_r , z_shift_neg_r,
72 pml_x_sgx , pml_y_sgy , pml_z_sgz,
73 pml_x , pml_y , pml_z,
75 absorb_tau, absorb_eta, absorb_nabla1, absorb_nabla2, BonA,
77 ux_source_input, uy_source_input, uz_source_input,
80 u_source_index, p_source_index, transducer_source_input,
84 temp_1_real_3D, temp_2_real_3D, temp_3_real_3D,
85 cufft_x_temp, cufft_y_temp, cufft_z_temp, cufft_shift_temp
143 template <
typename T>
void AddMatrices()
Populate the container based on the simulation type.
void FreeMatrices()
Destroy and free all matrices.
void LoadDataFromCheckpointFile(THDF5_File &checkpointFile)
Load all matrices from the output HDF5 file.
TMatrixRecordContainer matrixContainer
map holding the container
The header file containing the class for real matrices.
~TMatrixContainer()
Destructor.
void LoadDataFromInputFile(THDF5_File &inputFile)
Load all matrices from the input HDF5 file.
std::map< TMatrixIdx, TMatrixRecord > TMatrixRecordContainer
Datatype for the map associating the matrix ID enum and matrix record.
TMatrixRecord & operator[](const TMatrixIdx matrixIdx)
operator[]
The header file containing metadata about matrices stored in the matrix container.
T & GetMatrix(const TMatrixIdx matrixIdx)
Get the matrix with a specific type from the container.
void CreateMatrices()
Create all matrices in the container.
size_t Size() const
Get the number of matrices in the container.
bool IsEmpty() const
Is the container empty?
The header file containing the class that implements 3D FFT using the cuFFT interface.
The header file containing the class for 64b integer matrices.
The header file storing names of all variables/matrices/output streams used in the simulation...
TMatrixIdx
Matrix identifers of all matrices in the k-space code, names based on the Matlab notation.
The header file containing the structure with 3D dimension sizes.
Class implementing the matrix container.
TMatrixContainer()
Constructor.
The header file with the class for complex matrices.
A structure storing details about the matrix.
TMatrixContainer & operator=(const TMatrixContainer &src)
Operator = is not allowed for public.
void CopyMatricesFromDevice()
Copy all matrices from device to host (GPU -> CPU).
The header file containing the base class for single precisions floating point numbers (floats)...
void CopyMatricesToDevice()
Copy all matrices from host to device (CPU -> GPU).
void StoreDataIntoCheckpointFile(THDF5_File &checkpointFile)
Store selected matrices into the checkpoint file.
The header file of the common ancestor of all matrix classes. A pure abstract class.
Class wrapping the HDF5 routines.