back to home

ProjectPhysX / FluidX3D

The fastest and most memory efficient lattice Boltzmann CFD software, running on all GPUs and CPUs via OpenCL. Free for non-commercial use.

4,932 stars
454 forks
50 issues
C++CMakefile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing ProjectPhysX/FluidX3D in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/ProjectPhysX/FluidX3D)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

FluidX3D The fastest and most memory efficient lattice Boltzmann CFD software, running on all GPUs and CPUs via OpenCL. Free for non-commercial use. (click on images to show videos on YouTube) Update History • v1.0 (04.08.2022) changes (public release) • public release • v1.1 (29.09.2022) changes (GPU voxelization) • added solid voxelization on GPU (slow algorithm) • added tool to print current camera position (key G ) • minor bug fix (workaround for Intel iGPU driver bug with triangle rendering) • v1.2 (24.10.2022) changes (force/torque computation) • added functions to compute force/torque on objects • added function to translate Mesh • added Stokes drag validation setup • v1.3 (10.11.2022) changes (minor bug fixes) • added unit conversion functions for torque • and can now be used independently • minor bug fix (workaround for AMD legacy driver bug with binary number literals) • v1.4 (14.12.2022) changes (Linux graphics) • complete rewrite of C++ graphics library to minimize API dependencies • added interactive graphics mode on Linux with X11 • fixed streamline visualization bug in 2D • v2.0 (09.01.2023) changes (multi-GPU upgrade) • added (cross-vendor) multi-GPU support on a single node (PC/laptop/server) • v2.1 (15.01.2023) changes (fast voxelization) • made solid voxelization on GPU lightning fast (new algorithm, from minutes to milliseconds) • v2.2 (20.01.2023) changes (velocity voxelization) • added option to voxelize moving/rotating geometry on GPU, with automatic velocity initialization for each grid point based on center of rotation, linear velocity and rotational velocity • cells that are converted from solid->fluid during re-voxelization now have their DDFs properly initialized • added option to not auto-scale mesh during , with negative parameter • added kernel for solid boundary rendering with marching-cubes • v2.3 (30.01.2023) changes (particles) • added particles with immersed-boundary method (either passive or 2-way-coupled, only supported with single-GPU) • minor optimization to GPU voxelization algorithm (workgroup threads outside mesh bounding-box return after ray-mesh intersections have been found) • displayed GPU memory allocation size is now fully accurate • fixed bug in function in • removed file extension for Linux/macOS • v2.4 (11.03.2023) changes (UI improvements) • added a help menu with key H that shows keyboard/mouse controls, visualization settings and simulation stats • improvements to keyboard/mouse control ( + / - for zoom, mouseclick frees/locks cursor) • added suggestion of largest possible grid resolution if resolution is set larger than memory allows • minor optimizations in multi-GPU communication (insignificant performance difference) • fixed bug in temperature equilibrium function for temperature extension • fixed erroneous double literal for Intel iGPUs in skybox color functions • fixed bug in make.sh where multi-GPU device IDs would not get forwarded to the executable • minor bug fixes in graphics engine (free cursor not centered during rotation, labels in VR mode) • fixed bug in size parameter standard initialization • v2.5 (11.04.2023) changes (raytracing overhaul) • implemented light absorption in fluid for raytracing graphics (no performance impact) • improved raytracing framerate when camera is inside fluid • fixed skybox pole flickering artifacts • fixed bug where moving objects during re-voxelization would leave an erroneous trail of solid grid cells behind • v2.6 (16.04.2023) changes (Intel Arc patch) • patched OpenCL issues of Intel Arc GPUs: now VRAM allocations >4GB are possible and correct VRAM capacity is reported • v2.7 (29.05.2023) changes (visualization upgrade) • added slice visualization (key 2 / key 3 modes, then switch through slice modes with key T , move slice with keys Q / E ) • made flag wireframe / solid surface visualization kernels toggleable with key 1 • added surface pressure visualization (key 1 when is enabled and is called) • added binary export function for meshes with • added for function in extension • made correction of wrong memory reporting on Intel Arc more robust • fixed bug in template functions • reverted back to separate for each OpenCL device, as the shared Context otherwise would allocate extra VRAM on all other unused Nvidia GPUs • removed Debug and x86 configurations from Visual Studio solution file (one less complication for compiling) • fixed bug that particles could get too close to walls and get stuck, or leave the fluid phase (added boundary force) • v2.8 (24.06.2023) changes (documentation + polish) • finally added more documentation • cleaned up all sample setups in for more beginner-friendliness, and added required extensions in as comments to all setups • improved loading of composite geometries, by adding an option to omit automatic mesh repositioning, added more functionality to struct in • added function to compute simulation box resolution based on box aspect ratio and VRAM occupation in MB • added function to export images for a specified video length in the compute loop • added macros to ease setting visualization modes in headless graphics mode in • simulation box dimensions are now automatically made equally divisible by domains for multi-GPU simulations • fixed Info/Warning/Error message formatting for loading files and made Info/Warning/Error message labels colored • added Ahmed body setup as an example on how body forces and drag coefficient are computed • added Cessna 172 and Bell 222 setups to showcase loading composite .stl geometries and revoxelization of moving parts • added optional semi-transparent rendering mode ( in ) • fixed flickering of streamline visualization in interactive graphics • improved smooth positioning of streamlines in slice mode • fixed bug where and in extension were also allocated in CPU RAM (not required) • fixed bug in Q-criterion rendering of halo data in multi-GPU mode, reduced gap width between domains • removed shared memory optimization fro…