k-Wave Toolbox


3D time-domain simulation of wave propagation on a GPU using C++ CUDA code.


See kspaceFirstOrder3D.


kspaceFirstOrder3DG provides an blind interface to the native C++ CUDA version of kspaceFirstOrder3D (called kspaceFirstOrder3D-CUDA) in the same way as kspaceFirstOrder3DC.

The function works by appending the optional input 'SaveToDisk' to the user inputs and then calling kspaceFirstOrder3D to save the input files to disk. The contents of sensor.record (if set) are parsed as input flags, and the C++ code is run using the kspaceFirstOrder3D. The input and output files are saved to the temporary directory native to the operating system, and are deleted after the function runs.

This function requires the C++ binary/executable of kspaceFirstOrder3D-CUDA to be downloaded from www.k-wave.org/download.php and placed in the "binaries" directory of the k-Wave toolbox.

Note, not all input options are currently supported, and all display options are ignored (only command line outputs are given). See the k-Wave user manual for more information.

Optional Inputs

Optional 'string', value pairs that may be used to modify the default computational settings.

Input Valid Settings Default Description
'BinaryName' (string) 'kspaceFirstOrder3D-CUDA' on linux and 'kspaceFirstOrder3D-CUDA.exe' on windows Name of the binary file.
'BinaryPath' (string) 'binaries/' Path of the binary file.
'DataName' (string) 'kwave_[input/output]_data_[date].h5' Prefix used to generate a custom name for the input and output data files (this is appended with '_input.h5' and '_output.h5').
'DataPath' (string) path returned by tempdir Location of the folder where the input and output HDF5 files should be stored.
'DeleteData' (Boolean scalar) true Boolean controlling whether the input and output HDF5 files should be deleted after running the simulation.