Thank you for using FluidX3D! Update v3.2 brings the much requested GPU-accelerated force/torque summation:
Improvements
- implemented GPU-accelerated force/torque summation (~20x faster than CPU-multithreaded implementation before)
- simplified calculating object force/torque in setups; before:
now:
lbm.voxelize_mesh_on_device(mesh, TYPE_S|TYPE_X); const float3 lbm_com = lbm.calculate_object_center_of_mass(TYPE_S|TYPE_X); // ... lbm.calculate_force_on_boundaries(); lbm.F.read_from_device(); // having to copy entire lbm.F from GPU VRAM to CPU RAM was slow!! const float3 lbm_force = lbm.calculate_force_on_object(TYPE_S|TYPE_X); // slow CPU-multithreaded summation const float3 lbm_torque = lbm.calculate_torque_on_object(lbm_com, TYPE_S|TYPE_X); // slow CPU-multithreaded summation
lbm.voxelize_mesh_on_device(mesh, TYPE_S|TYPE_X); const float3 lbm_com = lbm.object_center_of_mass(TYPE_S|TYPE_X); // ... const float3 lbm_force = lbm.object_force(TYPE_S|TYPE_X); // fast GPU-accelerated summation, copy only result to CPU const float3 lbm_torque = lbm.object_torque(lbm_com, TYPE_S|TYPE_X); // fast GPU-accelerated summation, copy only result to CPU
- improved coloring in
VIS_FIELD
/ray_grid_traverse_sum()
- updated OpenCL-Wrapper now compiles OpenCL C code with
-cl-std=CL3.0
if available
Bug fixes
- fixed compiling on macOS with new OpenCL headers
Have fun with the software!
-- Moritz
Here a showcase of the improved coloring in VIS_FIELD
/ray_grid_traverse_sum()
: