kspaceFirstOrder3D-OMP
1.2
The C++ implementation of the k-wave toolbox for the time-domain simulation of acoustic wave fields in 3D
|
Output stream for quantities sampled in the whole domain. More...
#include <WholeDomainOutputStream.h>
Public Member Functions | |
WholeDomainOutputStream ()=delete | |
Default constructor not allowed. | |
WholeDomainOutputStream (Hdf5File &file, MatrixName &datasetName, const RealMatrix &sourceMatrix, const ReduceOperator reductionOp, float *bufferToReuse=nullptr) | |
Constructor links the HDF5 File, SourceMatrix, and SensorMask together. More... | |
WholeDomainOutputStream (const WholeDomainOutputStream &)=delete | |
Copy constructor not allowed. | |
virtual | ~WholeDomainOutputStream () |
Destructor. More... | |
WholeDomainOutputStream & | operator= (const WholeDomainOutputStream &)=delete |
operator= is not allowed. | |
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 and apply reduction, or flush to disk (no sensor mask here). More... | |
virtual void | postProcess () |
Apply post-processing on the buffer and flush it to the file. More... | |
virtual void | checkpoint () |
Checkpoint the stream and close. More... | |
virtual void | close () |
Close stream (apply post-processing if necessary, flush data and close). More... | |
Public Member Functions inherited from BaseOutputStream | |
BaseOutputStream ()=delete | |
Default constructor not allowed. | |
BaseOutputStream (Hdf5File &file, MatrixName &rootObjectName, const RealMatrix &sourceMatrix, const ReduceOperator reduceOp, float *bufferToReuse=nullptr) | |
Constructor. More... | |
BaseOutputStream (const BaseOutputStream &src) | |
Copy constructor not allowed. | |
virtual | ~BaseOutputStream () |
Destructor. More... | |
BaseOutputStream & | operator= (const BaseOutputStream &src) |
Operator = not allowed (we don't want any data movements). | |
Protected Member Functions | |
virtual void | flushBufferToFile () |
Flush the buffer to the file. More... | |
Protected Member Functions inherited from BaseOutputStream | |
virtual void | allocateMemory () |
Allocate memory using proper memory alignment. More... | |
virtual void | freeMemory () |
Free memory. More... | |
Protected Attributes | |
hid_t | mDataset |
Handle to a HDF5 dataset. | |
size_t | mSampledTimeStep |
Time step to store (N/A for aggregated). | |
Protected Attributes inherited from BaseOutputStream | |
Hdf5File & | mFile |
Handle to HDF5 output file. | |
std::string | mRootObjectName |
HDF5 group/dataset in the output file where to store data in. | |
const RealMatrix & | mSourceMatrix |
Source matrix to be sampled. | |
const ReduceOperator | mReduceOp |
Reduction operator. | |
bool | mBufferReuse |
if true, the container reuses another matrix as scratch place, e.g. Temp_1_RS3D, Temp_2_RS3D, Temp_3_RS3D. | |
size_t | mBufferSize |
Buffer size. | |
float * | mStoreBuffer |
Temporary buffer for store - only if Buffer Reuse = false! | |
Additional Inherited Members | |
Public Types inherited from BaseOutputStream | |
enum | ReduceOperator { ReduceOperator::kNone, ReduceOperator::kRms, ReduceOperator::kMax, ReduceOperator::kMin } |
How to aggregate data. More... | |
Static Protected Attributes inherited from BaseOutputStream | |
static constexpr size_t | kChunkSize4MB = 1048576 |
chunk size of 4MB in number of float elements. | |
Output stream for quantities sampled in the whole domain. The data is stored in a single dataset (aggregated quantities only).
Definition at line 44 of file WholeDomainOutputStream.h.
WholeDomainOutputStream::WholeDomainOutputStream | ( | Hdf5File & | file, |
MatrixName & | datasetName, | ||
const RealMatrix & | sourceMatrix, | ||
const ReduceOperator | reductionOp, | ||
float * | bufferToReuse = nullptr |
||
) |
[in] | file | - HDF5 file to write the output to |
[in] | datasetName | - The name of the HDF5 group. This group contains datasets for particular cuboids |
[in] | sourceMatrix | - Source matrix to be sampled |
[in] | reductionOp | - Reduction operator |
[in] | bufferToReuse | - If there is a memory space to be reused, provide a pointer |
Constructor - links the HDF5 dataset and SourceMatrix.
[in] | file | - HDF5 file to write the output to |
[in] | datasetName | - The name of the HDF5 group. This group contains datasets for particular cuboids |
[in] | sourceMatrix | - Source matrix to be sampled |
[in] | reductionOp | - Reduction operator |
[in] | bufferToReuse | - If there is a memory space to be reused, provide a pointer |
Definition at line 55 of file WholeDomainOutputStream.cpp.
|
virtual |
Destructor.
Definition at line 71 of file WholeDomainOutputStream.cpp.
|
virtual |
Checkpoint the stream
Implements BaseOutputStream.
Definition at line 224 of file WholeDomainOutputStream.cpp.
|
virtual |
Close stream (apply post-processing if necessary, flush data and close).
Implements BaseOutputStream.
Definition at line 234 of file WholeDomainOutputStream.cpp.
|
virtual |
Create a HDF5 stream for the whole domain and allocate data for it.
Implements BaseOutputStream.
Definition at line 82 of file WholeDomainOutputStream.cpp.
|
protectedvirtual |
Flush the buffer down to the file at the actual position.
Definition at line 254 of file WholeDomainOutputStream.cpp.
|
virtual |
Apply post-processing on the buffer and flush it to the file.
Reimplemented from BaseOutputStream.
Definition at line 212 of file WholeDomainOutputStream.cpp.
|
virtual |
Reopen the output stream after restart and reload data.
Implements BaseOutputStream.
Definition at line 113 of file WholeDomainOutputStream.cpp.
|
virtual |
Sample all grid points, line them up in the buffer an flush to the disk unless a reduction operator is applied.
Implements BaseOutputStream.
Definition at line 148 of file WholeDomainOutputStream.cpp.