Autodesk/XLB
GitHub: Autodesk/XLB
Stars: 477 | Forks: 81
[](https://opensource.org/licenses/Apache-2.0)
[](https://star-history.com/#Autodesk/XLB)
Simulation of a wind turbine based on the immersed boundary method.
On GPU in-situ rendering using PhantomGaze library (no I/O). Flow over a NACA airfoil using KBC Lattice Boltzmann Simulation with ~10 million cells.
DrivAer model in a wind-tunnel using KBC Lattice Boltzmann Simulation with approx. 317 million cells
Airflow into, out of, and within a building (~400 million cells)
The stages of a fluid density field from an initial state to the emergence of the "XLB" pattern through deep learning optimization at timestep 200 (see paper for details)
Lid-driven Cavity flow at Re=100,000 (~25 million cells)
## Capabilities ### LBM - BGK collision model (Standard LBM collision model) - KBC collision model (unconditionally stable for flows with high Reynolds number) - Smagorinsky LES sub-grid model for turbulence modelling ### Machine Learning - Easy integration with JAX's ecosystem of machine learning libraries - Differentiable LBM kernels - Differentiable boundary conditions ### Lattice Models - D2Q9 - D3Q19 - D3Q27 (Must be used for KBC simulation runs) ### Compute Capabilities ### Output - Binary and ASCII VTK output (based on PyVista library) - HDF5/XDMF output for multi-resolution data (with gzip compression) - In-situ rendering using [PhantomGaze](https://github.com/loliverhennigh/PhantomGaze) library - [Orbax](https://github.com/google/orbax)-based distributed asynchronous checkpointing - Image Output (including multi-resolution slice images) - 3D mesh voxelizer using trimesh ### Boundary conditions - **Equilibrium BC:** In this boundary condition, the fluid populations are assumed to be at equilibrium. Can be used to set prescribed velocity or pressure. - **Full-Way Bounceback BC:** In this boundary condition, the velocity of the fluid populations is reflected back to the fluid side of the boundary, resulting in zero fluid velocity at the boundary. - **Half-Way Bounceback BC:** Similar to the Full-Way Bounceback BC, in this boundary condition, the velocity of the fluid populations is partially reflected back to the fluid side of the boundary, resulting in a non-zero fluid velocity at the boundary. - **Do Nothing BC:** In this boundary condition, the fluid populations are allowed to pass through the boundary without any reflection or modification. - **Zouhe BC:** This boundary condition is used to impose a prescribed velocity or pressure profile at the boundary. - **Regularized BC:** This boundary condition is used to impose a prescribed velocity or pressure profile at the boundary. This BC is more stable than Zouhe BC, but computationally more expensive. - **Extrapolation Outflow BC:** A type of outflow boundary condition that uses extrapolation to avoid strong wave reflections. - **Interpolated Bounceback BC:** Interpolated bounce-back boundary condition for representing curved boundaries. - **Hybrid BC:** Combines regularized and bounce-back methods with optional wall-distance interpolation for improved accuracy on curved geometries. ## Roadmap ### Recently Completed - ✅ **Grid Refinement:** Multi-resolution LBM with nested cuboid grids and multiple kernel-fusion strategies via the Neon backend. - ✅ **Multi-GPU Acceleration using [Neon](https://github.com/Autodesk/Neon) + Warp:** Multi-GPU support through Neon's data structures with Warp-based kernels for single-resolution settings. ### Work in Progress (WIP) *Note: Some of the work-in-progress features can be found in the branches of the XLB repository. For contributions to these features, please reach out.* - 💾 **Out-of-Core Computations:** Enabling simulations that exceed available GPU memory, suitable for CPU+GPU coherent memory models such as NVIDIA's Grace Superchips (coming soon). - 🗜️ **GPU Accelerated Lossless Compression and Decompression**: Implementing high-performance lossless compression and decompression techniques for larger-scale simulations and improved performance. - 🌡️ **Fluid-Thermal Simulation Capabilities:** Incorporating heat transfer and thermal effects into fluid simulations. - 🎯 **Adjoint-based Shape and Topology Optimization:** Implementing gradient-based optimization techniques for design optimization. - 🧠 **Machine Learning Accelerated Simulations:** Leveraging machine learning to speed up simulations and improve accuracy. - 📉 **Reduced Order Modeling using Machine Learning:** Developing data-driven reduced-order models for efficient and accurate simulations. ### Wishlist *Contributions to these features are welcome. Please submit PRs for the Wishlist items.* - 🌊 **Free Surface Flows:** Simulating flows with free surfaces, such as water waves and droplets. - 📡 **Electromagnetic Wave Propagation:** Simulating the propagation of electromagnetic waves. - 🛩️ **Supersonic Flows:** Simulating supersonic flows. - 🌊🧱 **Fluid-Solid Interaction:** Modeling the interaction between fluids and solid objects. - 🧩 **Multiphase Flow Simulation:** Simulating flows with multiple immiscible fluids. - 🔥 **Combustion:** Simulating combustion processes and reactive flows. - 🪨 **Particle Flows and Discrete Element Method:** Incorporating particle-based methods for granular and particulate flows. - 🔧 **Better Geometry Processing Pipelines:** Improving the handling and preprocessing of complex geometries for simulations.