FluidX3D v2.8 (documentation + polish)
Thank you for using FluidX3D! The v2.8 update doesn't add too many new features, but finally more documentation, loads of refactoring and significant usability improvements:
- finally added more documentation
- cleaned up all sample setups in
setup.cpp
for much more beginner-friendly learning - added required extensions in
defines.hpp
as comments to all setups insetup.cpp
- improved loading of composite .stl geometries, by adding an option to omit automatic repositioning of the mesh
- added more functionality to
Mesh
struct inutilities.hpp
- added
uint3 resolution(float3 box_aspect_ratio, uint memory)
function to compute simulation box resolution based on box aspect ratio and VRAM occupation in MB - added
bool lbm.graphics.next_frame(...)
function to export images for a specified video length in themain_setup
compute loop - added
VIS_...
macros to ease setting visualization modes in headless graphics mode inlbm.graphics.visualization_modes
- simulation box dimensions are now automatically made equally divisible by domains for multi-GPU simulations
- made Info/Warning/Error message labels colored
- added Cessna 172 propeller airplane and Bell 222 helicopter setups to showcase how loading of composite .stl geometries and revoxelization of moving parts works
- added Ahmed body setup as an example on how body forces and drag coefficient are computed; expect absolute forces to be too large by up to a factor 2, because even large resolution is not enough to fully capture the turbulent boundary layer in this case; a wall function is needed, I'll scan literature on it
- added optional semi-transparent rendering mode (
#define GRAPHICS_TRANSPARENCY 0.7f
indefines.hpp
)
Bug fixes:
- fixed flickering of streamline visualization in interactive graphics
- improved smooth positioning of streamlines in slice mode
- fixed bug where mass and massex in SURFACE extension were also allocated in CPU RAM (not required)
- fixed bug in Q-criterion isosurface rendering of halo data in multi-GPU mode
- reduced gap width between domains in Q-criterion isosurface rendering in multi-GPU mode
- fixed crash/bug in local memory optimization in mesh voxelization kernel
- removed shared memory optimization from mesh voxelization kernel, as it crashes on Nvidia GPUs with new GPU drivers and is incompatible with old OpenCL 1.0 GPUs
- fixed Info/Warning/Error message formatting for loading files
Some showcases of what v2.8 is capable of:
(click on images to show videos on YouTube)
Have fun with the software!
-- Moritz