| kspaceFirstOrder3D-CUDA 1.1 The CUDA/C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List
- File Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MatrixRecord.h
Go to the documentation of this file.
1 /**
2 * @file MatrixRecord.h
3 *
4 * @author Jiri Jaros \n
5 * Faculty of Information Technology \n
6 * Brno University of Technology \n
7 * jarosjir@fit.vutbr.cz
8 *
9 * @brief The header file containing metadata about matrices stored in the matrix container.
10 *
11 * @version kspaceFirstOrder3D 3.4
12 *
13 * @date 02 December 2014, 15:44 (created) \n
14 * 10 August 2016, 16:43 (revised)
15 *
16 * @section License
17 * This file is part of the C++ extension of the k-Wave Toolbox
18 * (http://www.k-wave.org).\n Copyright (C) 2016 Jiri Jaros and Bradley Treeby.
19 *
20 * This file is part of the k-Wave. k-Wave is free software: you can redistribute it and/or modify
21 * it under the terms of the GNU Lesser General Public License as published by the Free Software
22 * Foundation, either version 3 of the License, or (at your option) any later version.
23 *
24 * k-Wave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
25 * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
26 * General Public License for more details.
27 *
28 * You should have received a copy of the GNU Lesser General Public License along with k-Wave.
29 * If not, see http://www.gnu.org/licenses/.
30 */
31
32 #ifndef MATRIX_RECORD_H
33 #define MATRIX_RECORD_H
34
35 #include <MatrixClasses/BaseMatrix.h>
36 #include <MatrixClasses/BaseFloatMatrix.h>
37 #include <MatrixClasses/RealMatrix.h>
38 #include <MatrixClasses/ComplexMatrix.h>
39 #include <MatrixClasses/IndexMatrix.h>
40 #include <MatrixClasses/CUFFTComplexMatrix.h>
41 #include <Utils/MatrixNames.h>
42
43 /**
44 * @struct TMatrixRecord
45 * @brief A structure storing details about the matrix.
46 * @details A structure storing details about the matrix. The matrix container stores the list of
47 * these records - metadata and pointer to the matrix.
48 */
49 struct TMatrixRecord
50 {
51 /**
52 * @enum TMatrixType
53 * @brief All possible types of the matrix.
54 */
55 enum TMatrixType
56 {
57 REAL, COMPLEX, INDEX, CUFFT
58 };
59
60 /// Default constructor.
61 TMatrixRecord();
62 /// Destructor.
63 ~TMatrixRecord() {};
64
65 /// Copy constructor.
66 TMatrixRecord(const TMatrixRecord& src);
67 /// operator =.
68 TMatrixRecord& operator= (const TMatrixRecord& src);
69
70 /// Set all values of the record.
71 void Set(const TMatrixType matrixType,
72 const TDimensionSizes dimensionSizes,
73 const bool loadData,
74 const bool checkpoint,
75 TMatrixName& matrixName);
76
77 /// Pointer to the matrix object.
78 TBaseMatrix* matrixPtr;
79 /// Matrix data type.
80 TMatrixType matrixType;
81 /// Matrix dimension sizes.
82 TDimensionSizes dimensionSizes;
83 /// Is the matrix content loaded from the HDF5 file?
84 bool loadData;
85 /// Is the matrix necessary to be preserver when checkpoint is enabled?
86 bool checkpoint;
87 /// Matrix name in the HDF5 file.
88 std::string matrixName;
89 };// end of TMatrixRecord
90 //--------------------------------------------------------------------------------------------------
91
92 #endif /* MATRIX_RECORD_H */
93
TBaseMatrix
Abstract base class. The common ancestor defining the common interface and allowing derived classes t...
Definition: BaseMatrix.h:48
TMatrixRecord::matrixName
std::string matrixName
Matrix name in the HDF5 file.
Definition: MatrixRecord.h:88
RealMatrix.h
The header file containing the class for real matrices.
TMatrixRecord::checkpoint
bool checkpoint
Is the matrix necessary to be preserver when checkpoint is enabled?
Definition: MatrixRecord.h:86
TMatrixRecord::Set
void Set(const TMatrixType matrixType, const TDimensionSizes dimensionSizes, const bool loadData, const bool checkpoint, TMatrixName &matrixName)
Set all values of the record.
Definition: MatrixRecord.cpp:105
TMatrixName
const std::string TMatrixName
Datatype for matrix names.
Definition: MatrixNames.h:45
TMatrixRecord::loadData
bool loadData
Is the matrix content loaded from the HDF5 file?
Definition: MatrixRecord.h:84
TMatrixRecord::TMatrixType
TMatrixType
All possible types of the matrix.
Definition: MatrixRecord.h:55
TMatrixRecord::operator=
TMatrixRecord & operator=(const TMatrixRecord &src)
operator =.
Definition: MatrixRecord.cpp:81
CUFFTComplexMatrix.h
The header file containing the class that implements 3D FFT using the cuFFT interface.
IndexMatrix.h
The header file containing the class for 64b integer matrices.
TMatrixRecord::dimensionSizes
TDimensionSizes dimensionSizes
Matrix dimension sizes.
Definition: MatrixRecord.h:82
MatrixNames.h
The header file storing names of all variables/matrices/output streams used in the simulation...
ComplexMatrix.h
The header file with the class for complex matrices.
TMatrixRecord
A structure storing details about the matrix.
Definition: MatrixRecord.h:49
TMatrixRecord::matrixType
TMatrixType matrixType
Matrix data type.
Definition: MatrixRecord.h:80
TMatrixRecord::~TMatrixRecord
~TMatrixRecord()
Destructor.
Definition: MatrixRecord.h:63
BaseFloatMatrix.h
The header file containing the base class for single precisions floating point numbers (floats)...
TMatrixRecord::matrixPtr
TBaseMatrix * matrixPtr
Pointer to the matrix object.
Definition: MatrixRecord.h:78
TMatrixRecord::TMatrixRecord
TMatrixRecord()
Default constructor.
Definition: MatrixRecord.cpp:47
BaseMatrix.h
The header file of the common ancestor of all matrix classes. A pure abstract class.
TDimensionSizes
Structure with 4D dimension sizes (3 in space and 1 in time).
Definition: DimensionSizes.h:66