OpenQBMM implements realizable advection schemes which allow moments to be transported without compromising their realizability. The following options are available:

 Scheme Description Order noAdvection No advection. Used in zero-dimensional solvers to avoid unnecessary calculations n/a firstOrderKinetic First-order kinetic scheme. 1 zeta ζ simplified scheme of Laurent and Nguyen (2017). 2

The noAdvection and is selected by specifying their name in the momentAdvection sub-dictionary in the quadratureProperties dictionary.

{

}

For the first-order kinetic and the ζ scheme, it is necessary to specify the moment inversion method.

{

basicMomentInversion
{
}

}

The ζ scheme requires the moment inversion to be specified:

{

basicMomentInversion
{
}
}

Important: The Gauss moment inversion should be used if an even number of nodes is used. If an odd number of moments is transported, the Gauss-Radau quadrature should be selected.

#### Selection of the reconstruction scheme

The first-order kinetic scheme requires the following entries in the interpolationSchemes sub-dictionary contained in the fvSolution dictionary:

“interpolate\(moment.*\)” upwind phi;

reconstruct(weight) upwind;
reconstruct(abscissa) upwind;

The ζ scheme requires the Minmod limiter is used for the zero-order moment and the ζk quantities used by the scheme. The following entries must be added to the interpolationSchemes sub-dictionary contained in the fvSolution dictionary:

reconstruct(m0)   Minmod;
reconstruct(zeta) Minmod;

#### Courant–Friedrichs–Lewy condition for realizable schemes

The realizable advection schemes are explicit, and ensure the realizability of the transported moment set if an appropriate constraint on the time step is satisfied.

 Scheme Maximum CFL for realizability Recommended settings noAdvection No limitation. The code returns 1 for the scheme, since it is assumed that’s the maximum desired value. n/a firstOrderUpwind 1.0 Adaptive time stepping. Provided solvers automatically compute the appropriate value of the CFL condition and enforce it if time-step adaption is active. zeta Mesh-dependent: 1/(Number of cell faces with outgoing flux + 1) Adaptive time stepping. Provided solvers automatically compute the appropriate value of the CFL condition and enforce it if time-step adaption is active.

The CFL condition to ensure moment realizability is accessible using the realizableCo() method of the corresponding model. For example, in pbeTranportFoam, the following instruction is used to retrieve the maximum allowed value of the CFL condition:

scalar realizableCo = populationBalance().realizableCo();