kspaceFirstOrder3D-OMP
1.0
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
|
00001 00031 #ifndef LONGMATRIXDATA_H 00032 #define LONGMATRIXDATA_H 00033 00034 00035 #include <MatrixClasses/BaseLongMatrix.h> 00036 00037 #include <Utils/DimensionSizes.h> 00038 00043 class TLongMatrix : public TBaseLongMatrix{ 00044 public: 00045 00047 TLongMatrix(struct TDimensionSizes DimensionSizes); 00048 00050 virtual ~TLongMatrix() { FreeMemory(); }; 00051 00053 virtual void ReadDataFromHDF5File(THDF5_File & HDF5_File, const char * MatrixName); 00055 virtual void WriteDataToHDF5File(THDF5_File & HDF5_File, const char * MatrixName, const int CompressionLevel); 00056 00062 long& operator [](const size_t& index) { 00063 return pMatrixData[index]; 00064 }; 00065 00066 00074 inline long& GetElementFrom3D(const size_t X, const size_t Y, const size_t Z){ 00075 return pMatrixData[Z * p2DDataSliceSize + Y * pDataRowSize + X]; 00076 }; 00077 00078 00079 00081 void RecomputeIndices(); 00082 00083 00084 00085 protected: 00087 TLongMatrix() : TBaseLongMatrix() {}; 00088 00090 TLongMatrix(const TLongMatrix& src); 00091 00093 TLongMatrix& operator = (const TLongMatrix& src); 00094 00095 private: 00096 00097 00098 };// end of TLongMatrixData 00099 //------------------------------------------------------------------------------ 00100 #endif /* LONGMATRIXDATA_H */ 00101