Added a new generic function to the interface (astaroth.h) for loading arbitrary device constants. Also (unintended) autoformatting.

This commit is contained in:
jpekkila
2019-07-03 16:19:25 +03:00
parent 32c8520543
commit d4d2680f40
2 changed files with 20 additions and 10 deletions

View File

@@ -409,11 +409,15 @@ AcResult acQuit(void);
unless otherwise stated. */ unless otherwise stated. */
AcResult acSynchronize(void); AcResult acSynchronize(void);
/** */
AcResult acloadDeviceConstant(const AcRealParam param, const AcReal value);
/** Tool for loading forcing vector information into the device memory /** Tool for loading forcing vector information into the device memory
*/ */
AcResult acForcingVec(const AcReal forcing_magnitude, const AcReal3 k_force, const AcReal3 ff_hel_re, AcResult acForcingVec(const AcReal forcing_magnitude, const AcReal3 k_force,
const AcReal3 ff_hel_im, const AcReal forcing_phase, const AcReal kaver); const AcReal3 ff_hel_re, const AcReal3 ff_hel_im, const AcReal forcing_phase,
const AcReal kaver);
/* End extern "C" */ /* End extern "C" */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -506,15 +506,24 @@ acSynchronize(void)
return AC_SUCCESS; return AC_SUCCESS;
} }
//Tool for loading forcing vector information into the device memory
AcResult AcResult
acForcingVec(const AcReal forcing_magnitude, const AcReal3 k_force, const AcReal3 ff_hel_re, acloadDeviceConstant(const AcRealParam param, const AcReal value)
{
for (int i = 0; i < num_devices; ++i) {
loadDeviceConstant(devices[i], param, value);
}
return AC_SUCCESS;
}
// Tool for loading forcing vector information into the device memory
AcResult
acForcingVec(const AcReal forcing_magnitude, const AcReal3 k_force, const AcReal3 ff_hel_re,
const AcReal3 ff_hel_im, const AcReal forcing_phase, const AcReal kaver) const AcReal3 ff_hel_im, const AcReal forcing_phase, const AcReal kaver)
{ {
for (int i = 0; i < num_devices; ++i) { for (int i = 0; i < num_devices; ++i) {
loadDeviceConstant(devices[i], AC_forcing_magnitude, forcing_magnitude); loadDeviceConstant(devices[i], AC_forcing_magnitude, forcing_magnitude);
loadDeviceConstant(devices[i], AC_forcing_phase, forcing_phase ); loadDeviceConstant(devices[i], AC_forcing_phase, forcing_phase);
loadDeviceConstant(devices[i], AC_k_forcex, k_force.x); loadDeviceConstant(devices[i], AC_k_forcex, k_force.x);
loadDeviceConstant(devices[i], AC_k_forcey, k_force.y); loadDeviceConstant(devices[i], AC_k_forcey, k_force.y);
@@ -529,10 +538,7 @@ acForcingVec(const AcReal forcing_magnitude, const AcReal3 k_force, const AcReal
loadDeviceConstant(devices[i], AC_ff_hel_imz, ff_hel_im.z); loadDeviceConstant(devices[i], AC_ff_hel_imz, ff_hel_im.z);
loadDeviceConstant(devices[i], AC_kaver, kaver); loadDeviceConstant(devices[i], AC_kaver, kaver);
} }
return AC_SUCCESS; return AC_SUCCESS;
} }