Thread: Realtime CFD ?
View Single Post
Old 09-19-2022, 02:59 PM   #9 (permalink)
freebeard
Master EcoModder
 
freebeard's Avatar
 
Join Date: Aug 2012
Location: northwest of normal
Posts: 27,747
Thanks: 7,791
Thanked 8,596 Times in 7,079 Posts
1) To Be Determined
2) [shrug]
3) Compatibility
4) [shrug]
5) Follows from 3).
6) and 7) Demonstrates a total lack of understandig of Free and Open Source software. You can charge for support.

This suggests you haven't visited the GitHub page at all. I'm not going to reproduce the nested list format for your convenience. The source is just a click away.
Quote:
FluidX3D
The fastest and most memory efficient lattice Boltzmann CFD software, running on any GPU via OpenCL.

Compute Features
CFD model: lattice Boltzmann method (LBM)
streaming (part 2/2):
f0temp(x,t) = f0(x, t)
fitemp(x,t) = f(t%2 ? i : (i%2 ? i+1 : i-1))(i%2 ? x : x-ei, t) for i ∈ [1, q-1]

collision:
ρ(x,t) = (Σi fitemp(x,t)) + 1

u(x,t) = 1∕ρ(x,t) Σi ci fitemp(x,t)

fieq-shifted(x,t) = wi ρ · ((u°ci)2∕(2c4) - (u°u)∕(2c2) + (u°ci)∕c2) + wi (ρ-1)

fitemp(x, t+Δt) = fitemp(x,t) + Ωi(fitemp(x,t), fieq-shifted(x,t), τ)

streaming (part 1/2):
f0(x, t+Δt) = f0temp(x, t+Δt)
f(t%2 ? (i%2 ? i+1 : i-1) : i)(i%2 ? x+ei : x, t+Δt) = fitemp(x, t+Δt) for i ∈ [1, q-1]

peak performance on most GPUs (datacenter/gaming/professional/laptop), validated with roofline model
up to 4.29 billion (2³²) lattice points, or 1624³ resolution, on a single GPU (if it has 225 GB memory)
optimized to minimize memory demand to 55 Bytes/node (~⅙ (~⅓) of conventional FP64 (FP32) LBM solvers)
in-place streaming with Esoteric-Pull: almost cuts memory demand in half and slightly increases performance due to implicit bounce-back boundaries; offers optimal memory access patterns for single-node in-place streaming
decoupled arithmetic precision (FP32) and memory precision (FP32 or FP16S or FP16C): all arithmetic is done in FP32 for compatibility on all hardware, but LBM density distribution functions in memory can be compressed to FP16S or FP16C: almost cuts memory demand in half again and almost doubles performance, without impacting overall accuracy for most setups
DDF-shifting and other algebraic optimization to minimize round-off error
updating density and velocity in the stream_collide() kernel is optional (higher performance if disabled)
velocity sets:
D2Q9
D3Q15
D3Q19 (default)
D3Q27
collision operators
single-relaxation-time (SRT/BGK) (default)
two-relaxation-time (TRT)
only 8 flag bits per lattice point (can be used independently / at the same time):
TYPE_S (stationary or moving) solid boundaries
TYPE_E equilibrium boundaries (inflow/outflow)
TYPE_T temperature boundaries
TYPE_F free surface (fluid)
TYPE_I free surface (interface)
TYPE_G free surface (gas)
TYPE_X remaining for custom use or further extensions
TYPE_Y remaining for custom use or further extensions
Optional Compute Extensions
boundary types
stationary mid-grid bounce-back boundaries (stationary solid boundaries)
moving mid-grid bounce-back boundaries (moving solid boundaries)
equilibrium boundaries (non-reflective inflow/outflow)
temperature boundaries (fixed temperature)
global force per volume (Guo forcing), can be modified on-the-fly
local force per volume (force field)
optional computation of forces from the fluid on solid boundaries
state-of-the-art free surface LBM (FSLBM) implementation:
volume-of-fluid model
fully analytic PLIC for efficient curvature calculation
improved mass conservation
ultra efficient implementation with only 4 kernels additionally to stream_collide() kernel
thermal LBM to simulate thermal convection
D3Q7 subgrid for thermal DDFs
in-place streaming with Esoteric-Pull for thermal DDFs
optional FP16S or FP16C compression for thermal DDFs with DDF-shifting
Smagorinsky-Lilly subgrid turbulence LES model to keep simulations with very large Reynolds number stable
equations
Can you tell us what the lattice Boltzmann method is or does?
Quote:
Lattice Boltzmann methods
The lattice Boltzmann methods, originated from the lattice gas automata method, is a class of computational fluid dynamics methods for fluid simulation. Instead of solving the Navier–Stokes equations directly, a fluid density on a lattice is simulated with streaming and collision processes.Wikipedia
__________________
.
.
Without freedom of speech we wouldn't know who all the idiots are. -- anonymous poster

____________________
.
.
"We're deeply sorry." -- Pfizer
  Reply With Quote
The Following User Says Thank You to freebeard For This Useful Post:
aerohead (09-22-2022)