# Force models¶

## Get started:¶

This module offers different models to introduce a body force in the lattice Boltzmann scheme. If you don’t know which model to choose, use lbmpy.forcemodels.Schiller. For incompressible collision models the lbmpy.forcemodels.Buick model can be better.

## Detailed information:¶

Force models add a term $$C_F$$ to the collision equation:

$f(\pmb{x} + c_q \Delta t, t + \Delta t) - f(\pmb{x},t) = \Omega(f, f^{(eq)}) + \underbrace{F_q}_{\mbox{forcing term}}$

The form of this term depends on the concrete force model: the first moment of this forcing term is equal to the acceleration $$\pmb{a}$$ for all force models.

$\sum_q \pmb{c}_q F_q = \pmb{a}$

The second order moment is different for the forcing models - if it is zero the model is suited for incompressible flows. For weakly compressible collision operators a force model with a corrected second order moment should be chosen.

\begin{align}\begin{aligned}\sum_q c_{qi} c_{qj} f_q = F_i u_j + F_j u_i \hspace{1cm} \mbox{for Guo, Luo models}\\\sum_q c_{qi} c_{qj} f_q = 0 \hspace{1cm} \mbox{for Simple, Buick}\end{aligned}\end{align}

Models with zero second order moment have:

$F_q = \frac{w_q}{c_s^2} c_{qi} \; a_i$

Models with nonzero second moment have:

$F_q = \frac{w_q}{c_s^2} c_{qi} \; a_i + \frac{w_q}{c_s^4} (c_{qi} c_{qj} - c_s^2 \delta_{ij} ) u_j \, a_i$

For all force models the computation of the macroscopic velocity has to be adapted (shifted) by adding a term $$S_{macro}$$ that we call “macroscopic velocity shift”

\begin{align}\begin{aligned}\pmb{u} = \sum_q \pmb{c}_q f_q + S_{macro}\\S_{macro} = \frac{\Delta t}{2} \sum_q F_q\end{aligned}\end{align}

Some models also shift the velocity entering the equilibrium distribution.

## Comparison¶

Force models can be distinguished by 2 options:

Option 1:

$$C_F = 1$$ and equilibrium velocity is not shifted, or $$C_F=(1 - \frac{\omega}{2})$$ and equilibrum is shifted.

Option 2:

second velocity moment is zero or $$F_i u_j + F_j u_i$$

Option2 \ Option1

no equilibrium shift

equilibrium shift

second moment zero

Simple

Buick

second moment nonzero

Luo

Guo

class Simple(force)

A simple force model which introduces the following additional force term in the collision process $$\frac{w_q}{c_s^2} c_{qi} \; a_i$$ (often: force = rho * acceleration) Should only be used with constant forces! Shifts the macroscopic velocity by F/2, but does not change the equilibrium velocity.

class Luo(force)

Force model by Luo [Luo93].

Shifts the macroscopic velocity by F/2, but does not change the equilibrium velocity.

class Guo(force)

Force model by Guo [GZS02] Adapts the calculation of the macroscopic velocity as well as the equilibrium velocity (both shifted by F/2)!

class Schiller(force)

Force model by Schiller [Sch08], equation 4.67 Equivalent to Guo but not restricted to SRT.

class Buick(force)

This force model [BG00] has a force term with zero second moment. It is suited for incompressible lattice models.

class EDM(force)

Exact differencing force model