Moment-Based Boundary Conditions¶
In Nassu’s RR-BGK solver a boundary node stores hydrodynamic moments, not individual populations (see Recursive Regularized-BGK). A boundary condition is therefore defined by the moments imposed at the boundary node: density \(\rho\), velocity \(u_\alpha\), and rate-of-strain \(S_{\alpha\beta}\) (equivalently the non-equilibrium stress \(\Pi^{\mathrm{neq}}_{\alpha\beta}\)). The populations are not bounced, reflected, or copied direction by direction; they are reconstructed from the imposed moments by the third-order Hermite expansion at the start of the next collision step. This is the regularized, moment-target formulation of Latt et al.[1] and Malaspinas[2], organised on the moment hierarchy following the moment-based boundary conditions of Bennett, Dellar, and Reis [3][4][5][6].
Principle
A boundary condition imposes macroscopics, not populations. It writes the boundary node’s \(\{\rho,\ u_\alpha,\ S_{\alpha\beta}\}\); the next bulk collision rebuilds \(f_i\) from them. There is no population-level reflection step.
The moment-group rule¶
The discrete velocity set carries more populations than there are physically meaningful boundary constraints, so the unknown inward populations must be closed by a finite set of macroscopic conditions. The moment-based rule [4][5] is to close them one macroscopic per moment group, in hierarchy order:
the conserved moments first - density \(\rho\) (zeroth) and momentum \(\rho u_\alpha\) (first);
then the second moment - the stress \(\Pi^{\mathrm{neq}}_{\alpha\beta}\) (equivalently \(S_{\alpha\beta}\)).
In practice each boundary family imposes one or two moments directly and derives the remaining one from a closure. A no-slip wall imposes velocity, fixes density, and derives the stress from a wall-normal finite difference. A velocity inlet imposes density and velocity and sets the stress to its equilibrium value. An outlet fixes density and takes velocity and stress from the interior. Higher moments beyond the second carry no independent boundary physics; the recursive expansion fills them from the imposed moments (Eq. (22)), which is exactly the regularization that discards ghost content.
General reconstruction¶
Given the boundary moments \(\{\rho,\ u_\alpha,\ S_{\alpha\beta}\}\), the populations follow from the same third-order Hermite expansion used by the collision operator. The non-equilibrium stress is recovered from the rate-of-strain by inverting the macroscopic relation,
and the populations are assembled as the truncated equilibrium plus non-equilibrium expansions,
with \(f_{i}^{\mathrm{eq}}\) given by Eq. (14) and \(f_{i}^{\mathrm{neq}}\) by Eq. (25). A boundary family is then fully specified by which of \(\{\rho,\ u_\alpha,\ S_{\alpha\beta}\}\) it imposes and how it closes the rest.
Wall-normal finite-difference closure¶
Every closure that derives a gradient at the boundary uses a single stencil convention. The wall-normal derivative is the second-order one-sided finite difference, evaluated at the boundary node \(x_0\) and reaching two nodes into the fluid along the inward normal (with \(\Delta x = 1\) at each level):
The rate-of-strain is built from these one-sided derivatives,
consistent with the regularized solid-wall stencil (Eqs. (2), (3)) and the scalar wall reconstructions. This is the same off-wall stencil whose lattice-Boltzmann use traces to Skordos[7]. It is the only wall-normal difference used by any fluid boundary condition.
Note
The stencil is one-sided and reaches into the fluid. It is well defined wherever two interior nodes exist along the inward normal; edges and corners follow the overwriting order set in the chapter introduction.
Density is fixed, not extrapolated¶
Fixed-density rule
At a boundary node the density is fixed to a prescribed value, not extrapolated or copied from the interior neighbour.
Extrapolating density is the weak link of a boundary closure. The wall-normal density gradient is small and noisy, so a one-sided extrapolation amplifies lattice noise directly into the imposed pressure \(p = \rho c_s^2\); accumulated over a run it drifts the domain-average density and destabilises the weakly-compressible pressure field. Pinning the boundary density removes that feedback path and is standard practice for regularized boundaries [1]. Concretely:
Walls (no-slip, moving, slip) fix \(\rho\) at the boundary node rather than reading it from the neighbour.
The regularized Neumann outlet fixes \(\rho(\mathbf{x}_{\mathrm{out}}) = \rho_{\mathrm{cte}}\), which is why it holds a stable outlet pressure where a plain zero-gradient (Neumann) condition lets the density float (see Outlet).
The only moments allowed to be zero-gradiented from the interior are velocity and stress, and only where the boundary models an open surface.
Boundary families as moment closures¶
Each bulk boundary condition is one instance of impose -> derive -> reconstruct. The per-type pages carry the geometry and use cases; this section states only the moment closure.
Family |
Impose |
Derive |
Reconstruct |
|---|---|---|---|
No-slip wall |
\(u_\alpha = 0\); fix \(\rho\) |
\(S_{\alpha\beta}\) from Eq. (4) |
Eq. (2) |
Moving wall |
\(u_\alpha = u_{\mathrm{w},\alpha}\); fix \(\rho\) |
\(S_{\alpha\beta}\) from Eq. (4) |
Eq. (2) |
Velocity inlet |
\(\rho\) and \(u_\alpha\) |
\(S_{\alpha\beta} = 0\) (equilibrium) |
\(f_i = f_i^{\mathrm{eq}}\) |
Outlet (reg. Neumann) |
fix \(\rho = \rho_{\mathrm{cte}}\) |
\(u_\alpha\), \(S_{\alpha\beta}\) zero-gradient from interior |
Eq. (2) |
Free surface / slip |
\(u_n = 0\); fix \(\rho\) |
tangential \(u_t\), \(S_{\alpha\beta}\) zero-gradient |
Eq. (2) |
Wall-modeled rough wall |
\(u_\alpha\), \(S_{\alpha\beta}\) from modeled \(\tau_w\) |
\(\tau_w\) from log-law / TBL |
Eq. (2) |
No-slip solid wall - impose \(u_\alpha = 0\) and fix the density; derive \(S_{\alpha\beta}\) from the one-sided strain (Eq. (4)); reconstruct via the third-order Hermite expansion. See Solid Wall.
Moving wall - identical to the no-slip wall but with \(u_\alpha = u_{\mathrm{w},\alpha}\); same fixed-density and derived-stress treatment. See Moving Wall.
Velocity inlet - impose both \(\rho\) and \(u_\alpha\) and set the state to equilibrium (\(S_{\alpha\beta} = 0\)), so \(f_i = f_i^{\mathrm{eq}}\). See Inlet.
Outlet (regularized Neumann) - fix the density (pressure) and take velocity and stress as zero-gradient from the interior node. See Outlet.
Free-surface / slip - impose zero normal velocity, fix the density, and zero-gradient the tangential velocity and stress. See Free Surface.
Wall-modeled rough wall - set the velocity and stress from the modeled wall stress \(\tau_w\) (log-law / TBL); the moment-based wall stress route follows Malaspinas and Sagaut[8]. The closure for \(\tau_w\) is not re-derived here; see the Wall model chapter.
Velocity-set independence¶
The closures are derived on the hydrodynamic moment hierarchy, not on a particular discrete velocity set, so they are velocity-set agnostic. The published three-dimensional moment-based boundary conditions are formulated on D3Q19 [6]; they transfer to Nassu’s production D3Q27 lattice unchanged, with no expected physical difference, because the imposed moments \(\{\rho,\ u_\alpha,\ \Pi^{\mathrm{neq}}_{\alpha\beta}\}\) and their Hermite reconstruction are identical on both sets (D3Q27 simply carries the complete third-order Hermite basis exactly).
Relation to population bounce-back¶
Population bounce-back is the legacy local alternative: at streaming it reflects the post-collision population back along the opposite direction, \(f_{\bar{i}}(t+\Delta t) = f_{i}^{*}(t)\) (Eq. (1)). This places the wall on the link midway between nodes, half a lattice spacing off the boundary node, and the effective wall position drifts with the relaxation time as the viscosity or LES eddy viscosity changes - so the wall is only first-order accurate in its location [1][9]. Moment imposition instead places the wall exactly on the boundary node and reconstructs from imposed macroscopics, removing the relaxation-time offset.
Bounce-back vs moment imposition
Moment imposition is node-coincident and reads the wall macroscopics directly; population bounce-back is strictly local but viscosity-dependent and offset by half a node. Moment imposition is the formulation used throughout this chapter; bounce-back remains documented as the local, viscosity-dependent legacy form.
BC contract (engineering spec)¶
Boundary-condition contract
This is the implementation contract every bulk BC targets. It is normative.
A boundary condition determines the boundary node’s moments and writes them: for a fluid field \(\{\rho,\ u_\alpha,\ S_{\alpha\beta},\ \theta\}\); for a transported scalar field \(\{\phi,\ q_\alpha\}\). The next bulk collision rebuilds the populations from those moments. The BC owns the moments; it never owns populations.
Disqualifying anti-pattern. Any population round-trip is forbidden: reconstructing populations, reflecting them (\(f_i = f_{\bar i}\)), and re-deriving moments (moms2pops -> reflect -> pops2moms) is the exact pattern this formulation removes. A BC that touches individual \(f_i\) to enforce a wall is wrong by construction.
Shared invariants.
One finite-difference stencil. Every wall-normal gradient uses Eq. (3) (second-order, one-sided, two interior nodes along the inward normal). No BC introduces its own stencil.
Density is fixed, never extrapolated. Walls and the regularized outlet pin \(\rho\) at the boundary node. Only velocity and stress may be zero-gradiented, and only for open-surface families.
One shared symbolic closure per field, parameterized by face normal. There is exactly one reconstruction routine per field (fluid, scalar), parameterized by the boundary normal \(\hat m\) and the imposed-moment set. There are no per-BC copies of the reconstruction, and no per-face copies of the closure - the normal is an argument, not a fork. This is the no-duplication mandate applied to boundaries: the same code, the same path, one closure differing only by its genuine variation points (which moments are imposed, the face normal).