Skip to content

Fluid Dynamics Module

Overview

The FluidDynamics module provides a Lattice Boltzmann Method (LBM) solver for incompressible and compressible fluid flow within the OpenPhase framework. It is designed for tightly coupled phase-field and fluid simulations — including multi-phase flow, solid–fluid interaction, thermally compressible flow, and reactive flow.

The module is self-contained and interacts with the broader OpenPhase framework through the PhaseField, Velocities, BoundaryConditions, Composition, and Temperature objects.


Physics scope

CapabilityDescription
Single-phase incompressible flowNavier–Stokes via BGK-LBM (isothermal)
Multi-phase / multi-component flowPseudo-potential methods (Benzi, Kupershtokh)
Phase-field couplingDiffuse-interface solid–fluid boundaries
Solid–fluid interactionBounce-back, drag forces, rigid body motion
Solid–solid interactionShort-range repulsion (Standard / Wang models)
Thermally compressible flowLow-Mach number compressible extension
Reactive flowCoupling to species transport and heat sources

See also: examples

In OpenPhase-main/examples/:

  • Flow — single-phase incompressible flow.
  • ThermalCompressibleFlow — Poiseuille / cylinder / packed-bed thermally compressible variants.
  • Foam — foam-microstructure flow.
  • ReactiveFlow — combustion in 0D, 1D, and 2D — see Reactive Flows.

Module components

ClassHeaderRole
FlowSolverLBMFluidDynamics/FlowSolverLBM.hCore D3Q27 LBM solver
D3Q27FluidDynamics/D3Q27.hPopulation array and stencil weights
InteractionFluidFluidFluidDynamics/InteractionFluidFluid.hFluid–fluid pseudo-potential forces
InteractionSolidFluidFluidDynamics/InteractionSolidFluid.hSolid–fluid coupling and rigid body dynamics
InteractionSolidSolidFluidDynamics/InteractionSolidSolid.hSolid particle short-range repulsion
BenziGasFluidDynamics/BenziGas.hBenzi pseudo-potential EOS helper
VanDerWaalsGasFluidDynamics/VanDerWaalsGas.hVan der Waals EOS helper

Position in a simulation

In a typical OpenPhase simulation, the FluidDynamics module is instantiated alongside the phase-field and transport modules and called each time step after the phase-field update:

text
Settings, BoundaryConditions

PhaseField (microstructure evolution)

FlowSolverLBM::Solve()   ← FluidDynamics module

AdvectionHR, Diffusion, Temperature, ...

The Velocities object bridges the LBM solver and advective transport: the LBM solver writes fluid velocities into it, and advection/diffusion modules read from it.


TODO


Documentation pages

PageContent
LBM TheoryMathematical foundations
FlowSolverLBMMain solver class
Multi-Phase FlowPseudo-potential models
Solid–Fluid InteractionBounce-back, drag, rigid bodies
Solid–Solid InteractionParticle contact models
Thermal Compressible FlowLow-Mach compressible extension
Reactive FlowCoupling to combustion / chemistry
Usage & I/OInput file, output fields, examples

Released under the GNU GPLv3 License.