diff --git a/include/astaroth_device.h b/include/astaroth_device.h index 1d7926f..7a800c2 100644 --- a/include/astaroth_device.h +++ b/include/astaroth_device.h @@ -61,6 +61,11 @@ AcResult acDeviceLoadIntConstant(const Device device, const Stream stream, const AcResult acDeviceLoadInt3Constant(const Device device, const Stream stream, const AcInt3Param param, const int3 value); +/** */ +AcResult acDeviceLoadScalarArray(const Device device, const Stream stream, + const ScalarArrayHandle handle, const AcReal* data, + const size_t num); + /** */ AcResult acDeviceLoadMeshInfo(const Device device, const Stream stream, const AcMeshInfo device_config); diff --git a/src/core/device.cu b/src/core/device.cu index 1faaa5e..33229b8 100644 --- a/src/core/device.cu +++ b/src/core/device.cu @@ -447,6 +447,16 @@ acDeviceLoadInt3Constant(const Device device, const Stream stream, const AcInt3P return AC_SUCCESS; } +AcResult +acDeviceLoadScalarArray(const Device device, const Stream stream, const ScalarArrayHandle handle, + const AcReal* data, const size_t num) +{ + cudaSetDevice(device->id); + ERRCHK_CUDA(cudaMemcpyAsync(device->vba.profiles[handle], data, sizeof(data[0]) * num, + cudaMemcpyHostToDevice, device->streams[stream])); + return AC_SUCCESS; +} + AcResult acDeviceLoadMeshInfo(const Device device, const Stream stream, const AcMeshInfo device_config) {