How ulton321/fluidbench works
FluidBench compares CPU and GPU execution of a shared 2D lattice-Boltzmann workload, with commands for backend discovery, benchmarking, size sweeps, validation, and visualization. Its principal path is CLI request → configuration/backend selection → solver and benchmark execution → reported results. It also includes a separate 3D solver and two browser experiences: a local benchmark dashboard and an independent WebGL flow viewer. Source excerpts establish core solver, backend, CLI, and viewer relationships; unsampled benchmark and server internals are represented conservatively.
Main entry points: cli.py CLI commands · server.py Local dashboard · lbm.py D2Q9 solver · app.js Viewer controls
Components 11
User interfaces
- CLI commands
fluidbench/cli.py - Local dashboard
fluidbench/server.py
Simulation compute
- Array backends
fluidbench/backends.py - D2Q9 solver
fluidbench/lbm.py - D3Q19 solver
fluidbench/lbm3d.py
Benchmarking
- Benchmark engine
fluidbench/benchmark.py - Flow visualization
fluidbench/visualize.py
Browser viewer
- Viewer controls
fluidbench/web/app.js - WebGL simulation
fluidbench/web/lbm-gl.js
Other components
- Engineer
- Browser user
Connections 13
- Engineer → CLI commands: runs commands
README.md - CLI commands → Array backends: selects backend
fluidbench/cli.py - CLI commands → D2Q9 solver: configures runs
fluidbench/cli.py - CLI commands → Benchmark engine: runs benchmarks
fluidbench/cli.py - CLI commands → Flow visualization: renders simulation
fluidbench/cli.py - CLI commands → Local dashboard: starts server
fluidbench/cli.py - D2Q9 solver → Array backends: uses array operations
fluidbench/lbm.py - D3Q19 solver → Array backends: uses array operations
fluidbench/lbm3d.py - Flow visualization → D2Q9 solver: advances solver
fluidbench/visualize.py - Local dashboard → Benchmark engine: runs shared benchmarks
README.md - Browser user → Viewer controls: controls viewer
README.md - Viewer controls → WebGL simulation: drives simulation
fluidbench/web/app.js - Local dashboard → Viewer controls: serves browser UI