Skip to content

FluidX3D v3.2 (fast force/torque summation)

Latest
Compare
Choose a tag to compare
@ProjectPhysX ProjectPhysX released this 09 Mar 17:29
· 8 commits to master since this release

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:
    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
    now:
    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():
grafik
grafik