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
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 
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  */
50 {
51  /**
52  * @enum TMatrixType
53  * @brief All possible types of the matrix.
54  */
56  {
57  REAL, COMPLEX, INDEX, CUFFT
58  };
59 
60  /// Default constructor.
61  TMatrixRecord();
62  /// Destructor.
64 
65  /// Copy constructor.
66  TMatrixRecord(const TMatrixRecord& src);
67  /// operator =.
69 
70  /// Set all values of the record.
71  void Set(const TMatrixType matrixType,
73  const bool loadData,
74  const bool checkpoint,
76 
77  /// Pointer to the matrix object.
79  /// Matrix data type.
81  /// Matrix dimension sizes.
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 
Abstract base class. The common ancestor defining the common interface and allowing derived classes t...
Definition: BaseMatrix.h:48
std::string matrixName
Matrix name in the HDF5 file.
Definition: MatrixRecord.h:88
The header file containing the class for real matrices.
bool checkpoint
Is the matrix necessary to be preserver when checkpoint is enabled?
Definition: MatrixRecord.h:86
void Set(const TMatrixType matrixType, const TDimensionSizes dimensionSizes, const bool loadData, const bool checkpoint, TMatrixName &matrixName)
Set all values of the record.
const std::string TMatrixName
Datatype for matrix names.
Definition: MatrixNames.h:45
bool loadData
Is the matrix content loaded from the HDF5 file?
Definition: MatrixRecord.h:84
TMatrixType
All possible types of the matrix.
Definition: MatrixRecord.h:55
TMatrixRecord & operator=(const TMatrixRecord &src)
operator =.
The header file containing the class that implements 3D FFT using the cuFFT interface.
The header file containing the class for 64b integer matrices.
TDimensionSizes dimensionSizes
Matrix dimension sizes.
Definition: MatrixRecord.h:82
The header file storing names of all variables/matrices/output streams used in the simulation...
The header file with the class for complex matrices.
A structure storing details about the matrix.
Definition: MatrixRecord.h:49
TMatrixType matrixType
Matrix data type.
Definition: MatrixRecord.h:80
~TMatrixRecord()
Destructor.
Definition: MatrixRecord.h:63
The header file containing the base class for single precisions floating point numbers (floats)...
TBaseMatrix * matrixPtr
Pointer to the matrix object.
Definition: MatrixRecord.h:78
TMatrixRecord()
Default constructor.
The header file of the common ancestor of all matrix classes. A pure abstract class.
Structure with 4D dimension sizes (3 in space and 1 in time).