| 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

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
TIndexOutputHDF5Stream Class Reference

Output stream for quantities sampled by an index sensor mask. More...

`#include <IndexOutputHDF5Stream.h>`

Inheritance diagram for TIndexOutputHDF5Stream:
[legend]
Collaboration diagram for TIndexOutputHDF5Stream:
[legend]

## Public Member Functions
| TIndexOutputHDF5Stream (THDF5_File &file, TMatrixName &datasetName, const TRealMatrix &sourceMatrix, const TIndexMatrix &sensorMask, const TReduceOperator reduceOp)
| Constructor. More...
virtual | ~TIndexOutputHDF5Stream ()
| Destructor. More...
virtual void | Create ()
| Create a HDF5 stream and allocate data for it. More...
virtual void | Reopen ()
| Reopen the output stream after restart and reload data. More...
virtual void | Sample ()
| Sample data into buffer, apply reduction or copy to the CPU side. More...
virtual void | FlushRaw ()
| Flush data to disk (from raw streams only). More...
virtual void | PostProcess ()
| Apply post-processing on the buffer and flush it to the file. More...
virtual void | Checkpoint ()
| Checkpoint the stream. More...
virtual void | Close ()
| Close stream (apply post-processing if necessary, flush data and close). More...
Public Member Functions inherited from TBaseOutputHDF5Stream
| TBaseOutputHDF5Stream (THDF5_File &file, TMatrixName &rootObjectName, const TRealMatrix &sourceMatrix, const TReduceOperator reduceOp)
| Constructor. More...
virtual | ~TBaseOutputHDF5Stream ()
| Destructor.

## Protected Member Functions
virtual void | FlushBufferToFile ()
| Flush the buffer to the file. More...
Protected Member Functions inherited from TBaseOutputHDF5Stream
| TBaseOutputHDF5Stream ()
| Default constructor not allowed.
| TBaseOutputHDF5Stream (const TBaseOutputHDF5Stream &src)
| Copy constructor not allowed.
TBaseOutputHDF5Stream & | operator= (const TBaseOutputHDF5Stream &src)
| Operator = not allowed (we don't want any data movements).
virtual void | AllocateMemory ()
| A generic function to allocate memory - not used in the base class. More...
virtual void | FreeMemory ()
| A generic function to free memory - not used in the base class. More...
virtual void | CopyDataToDevice ()
| Copy data hostBuffer-> deviceBuffer. More...
virtual void | CopyDataFromDevice ()
| Copy data deviceBuffer -> hostBuffer. More...

## Protected Attributes
const TIndexMatrix & | sensorMask
| Sensor mask to sample data.
hid_t | dataset
| Handle to a HDF5 dataset.
size_t | sampledTimeStep
| Time step to store (N/A for aggregated)
cudaEvent_t | eventSamplingFinished
| Has the sampling finished?
Protected Attributes inherited from TBaseOutputHDF5Stream
THDF5_File & | file
| HDF5 file handle.
std::string | rootObjectName
| Dataset name.
const TRealMatrix & | sourceMatrix
| Source matrix to be sampled.
hid_t | dataset
| HDF5 dataset handle.
const TReduceOperator | reduceOp
| Reduce operator.
TDimensionSizes | position
| Position in the dataset.
size_t | bufferSize
| Buffer size.
float * | hostBuffer
| Temporary buffer for store on the GPU side.
float * | deviceBuffer
| Temporary buffer on the GPU side - only for aggregated quantities.

## Additional Inherited Members
Public Types inherited from TBaseOutputHDF5Stream
enum | TReduceOperator { NONE, RMS, MAX, MIN }
| How to aggregate data. More...
Static Protected Attributes inherited from TBaseOutputHDF5Stream
static const size_t | CHUNK_SIZE_4MB = 1048576
| chunk size of 4MB in number of float elements
static const size_t | MIN_GRIDPOINTS_TO_SAMPLE_IN_PARALLEL = 1048576
| The minimum number of elements to start sampling in parallel (4MB)

## Detailed Description

Output stream for quantities sampled by an index sensor mask. This class writes data to a single dataset in a root group of the HDF5 file (time-series as well as aggregations).

Definition at line 47 of file IndexOutputHDF5Stream.h.

## Constructor & Destructor Documentation

TIndexOutputHDF5Stream::TIndexOutputHDF5Stream | ( | THDF5_File & | file,
|  | TMatrixName & | datasetName,
|  | const TRealMatrix & | sourceMatrix,
|  | const TIndexMatrix & | sensorMask,
|  | const TReduceOperator | reduceOp
| ) |  |

Constructor - links the HDF5 dataset, source (sampled matrix), sensor mask and the reduce operator together. The constructor DOES NOT allocate memory because the size of the sensor mask is not known at the time the instance of the class is being created.

Parameters

  [in] | file | - Handle to the HDF5 (output) file
  [in] | datasetName | - The dataset's name (index based sensor data stored in a single dataset)
  [in] | sourceMatrix | - The source matrix (only real matrices are supported)
  [in] | sensorMask | - Index based sensor mask
  [in] | reduceOp | - Reduce operator

Definition at line 59 of file IndexOutputHDF5Stream.cpp.

TIndexOutputHDF5Stream::~TIndexOutputHDF5Stream | ( |  | ) |
| virtual

Destructor. If the file is still opened, it applies the post processing and flush the data. Then, the object memory is freed and the object destroyed.

Definition at line 80 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

## Member Function Documentation

void TIndexOutputHDF5Stream::Checkpoint | ( |  | ) |
| virtual

Checkpoint the stream and close.

Implements TBaseOutputHDF5Stream.

Definition at line 282 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

void TIndexOutputHDF5Stream::Close | ( |  | ) |
| virtual

Close stream (apply post-processing if necessary, flush data and close).

Implements TBaseOutputHDF5Stream.

Definition at line 298 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TIndexOutputHDF5Stream::Create | ( |  | ) |
| virtual

Create a HDF5 stream, create a dataset, and allocate data for it.

Implements TBaseOutputHDF5Stream.

Definition at line 94 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

void TIndexOutputHDF5Stream::FlushBufferToFile | ( |  | ) |
| protectedvirtual

Flush the buffer down to the file at the actual position

Definition at line 318 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void TIndexOutputHDF5Stream::FlushRaw | ( |  | ) |
| virtual

Flush data for the timestep. Only applicable on RAW data series.

Implements TBaseOutputHDF5Stream.

Definition at line 243 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

void TIndexOutputHDF5Stream::PostProcess | ( |  | ) |
| virtual

Apply post-processing on the buffer and flush it to the file.

Reimplemented from TBaseOutputHDF5Stream.

Definition at line 260 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

void TIndexOutputHDF5Stream::Reopen | ( |  | ) |
| virtual

Reopen the output stream after restart.

Implements TBaseOutputHDF5Stream.

Definition at line 140 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

void TIndexOutputHDF5Stream::Sample | ( |  | ) |
| virtual

Sample grid points, line them up in the buffer, if necessary a reduce operator is applied.

Warning
  data is not flushed, there is no sync.

Implements TBaseOutputHDF5Stream.

Definition at line 187 of file IndexOutputHDF5Stream.cpp.

Here is the call graph for this function:

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

- OutputHDF5Streams/IndexOutputHDF5Stream.h
- OutputHDF5Streams/IndexOutputHDF5Stream.cpp