kspaceFirstOrder3D-CUDA  1.1
The CUDA/C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
TComplexMatrix Class Reference

The class for complex matrices. More...

#include <ComplexMatrix.h>

Inheritance diagram for TComplexMatrix:
Collaboration diagram for TComplexMatrix:

Public Member Functions

 TComplexMatrix (const TDimensionSizes &dimensionSizes)
 Constructor. More...
 
virtual ~TComplexMatrix ()
 Destructor. More...
 
TFloatComplexoperator[] (const size_t &index)
 Operator []. More...
 
const TFloatComplexoperator[] (const size_t &index) const
 Operator [], constant version. More...
 
virtual void ReadDataFromHDF5File (THDF5_File &file, TMatrixName &matrixName)
 Load data from the HDF5_File. More...
 
virtual void WriteDataToHDF5File (THDF5_File &file, TMatrixName &matrixName, const size_t compressionLevel)
 Write data into the HDF5_File. More...
 
- Public Member Functions inherited from TBaseFloatMatrix
 TBaseFloatMatrix ()
 Default constructor. More...
 
virtual TDimensionSizes GetDimensionSizes () const
 Get dimension sizes of the matrix.
 
virtual size_t GetElementCount () const
 Get element count of the matrix.
 
virtual size_t GetAllocatedElementCount () const
 Get total allocated element count (might differ from total element count used for the simulation because of padding).
 
virtual void ZeroMatrix ()
 Zero all elements of the matrix (NUMA first touch). More...
 
virtual void ScalarDividedBy (const float scalar)
 Divide scalar/ matrix_element[i]. More...
 
virtual float * GetHostData ()
 Get raw CPU data out of the class (for direct CPU kernel access).
 
virtual const float * GetHostData () const
 Get raw CPU data out of the class (for direct CPU kernel access).
 
virtual float * GetDeviceData ()
 Get raw GPU data out of the class (for direct GPU kernel access).
 
virtual const float * GetDeviceData () const
 Get raw GPU data out of the class (for direct GPU kernel access).
 
virtual void CopyToDevice ()
 Copy data from CPU -> GPU (Host -> Device). More...
 
virtual void CopyFromDevice ()
 Copy data from GPU -> CPU (Device -> Host). More...
 
- Public Member Functions inherited from TBaseMatrix
 TBaseMatrix ()
 Default constructor.
 
virtual ~TBaseMatrix ()
 Destructor.
 

Protected Member Functions

 TComplexMatrix ()
 Default constructor not allowed for public.
 
 TComplexMatrix (const TComplexMatrix &src)
 Copy constructor not allowed for public.
 
TComplexMatrixoperator= (const TComplexMatrix &src)
 Operator not allowed for public.
 
virtual void InitDimensions (const TDimensionSizes &dimensionSizes)
 Initialize dimension sizes and related structures. More...
 
- Protected Member Functions inherited from TBaseFloatMatrix
virtual void AllocateMemory ()
 Memory allocation (both on CPU and GPU). More...
 
virtual void FreeMemory ()
 Memory allocation (both on CPU and GPU). More...
 
 TBaseFloatMatrix (const TBaseFloatMatrix &src)
 Copy constructor is not directly allowed.
 
TBaseFloatMatrixoperator= (const TBaseFloatMatrix &src)
 Operator = is not directly allowed.
 

Additional Inherited Members

- Protected Attributes inherited from TBaseFloatMatrix
size_t nElements
 Total number of elements.
 
size_t nAllocatedElements
 Total number of allocated elements (in terms of floats).
 
struct TDimensionSizes dimensionSizes
 Dimension sizes.
 
size_t dataRowSize
 Size of a 1D row in X dimension.
 
size_t dataSlabSize
 Size of a 2D slab.
 
float * hostData
 Raw CPU matrix data.
 
float * deviceData
 Raw GPU matrix data.
 

Detailed Description

The class for complex matrices.

Definition at line 54 of file ComplexMatrix.h.

Constructor & Destructor Documentation

TComplexMatrix::TComplexMatrix ( const TDimensionSizes dimensionSizes)

Constructor.

Parameters
[in]dimensionSizes- Dimension sizes of the matrix

Definition at line 51 of file ComplexMatrix.cpp.

Here is the call graph for this function:

TComplexMatrix::~TComplexMatrix ( )
virtual

Destructor.

Definition at line 62 of file ComplexMatrix.cpp.

Here is the call graph for this function:

Member Function Documentation

void TComplexMatrix::InitDimensions ( const TDimensionSizes dimensionSizes)
protectedvirtual

Initialize matrix dimension sizes.

Parameters
[in]dimensionSizes- Dimension sizes of the matrix

Definition at line 147 of file ComplexMatrix.cpp.

Here is the caller graph for this function:

TFloatComplex& TComplexMatrix::operator[] ( const size_t &  index)
inline

Operator [].

Parameters
[in]index- 1D index into the array
Returns
An element of the matrix

Definition at line 69 of file ComplexMatrix.h.

const TFloatComplex& TComplexMatrix::operator[] ( const size_t &  index) const
inline

Operator [], constant version.

Parameters
[in]index- 1D index into the array
Returns
element of the matrix

Definition at line 80 of file ComplexMatrix.h.

void TComplexMatrix::ReadDataFromHDF5File ( THDF5_File file,
TMatrixName matrixName 
)
virtual

Read data from HDF5 file (do some basic checks). Only from the root group.

Parameters
[in]file- HDF5 file
[in]matrixName- HDF5 dataset name
  • Exceptions
    ios::failurewhen there is a problem

Implements TBaseMatrix.

Definition at line 77 of file ComplexMatrix.cpp.

Here is the call graph for this function:

void TComplexMatrix::WriteDataToHDF5File ( THDF5_File file,
TMatrixName matrixName,
const size_t  compressionLevel 
)
virtual

Write data to HDF5 file (only from the root group).

Parameters
[in]file- HDF5 file handle
[in]matrixName- HDF5 dataset name
[in]compressionLevel- Compression level for the dataset
Exceptions
ios::failurean exception what the operation fails

Implements TBaseMatrix.

Definition at line 110 of file ComplexMatrix.cpp.

Here is the call graph for this function:


The documentation for this class was generated from the following files: