4.9.6. Advection Methods
Consider transport of an arbitrary scalar between the control volumes
and
in the figure below.
Fig. 4.2 Control volumes for flux across a single face f
In order to calculate the advection of we need to be able to evaluate
. The mass flow rate through the face (
) is determined by our continuity solve, but for each transport scalar we need to determine
. The scheme used to find
can come in a number of different flavors. The basic ones are described in the following sections, followed by the blending scheme Fuego uses to combine them.
4.9.6.1. Central Difference
Using a central difference scheme (CDS) we simply interpolate from the node locations to the face location using the element weights
, so
(4.13)
This provides a second order accurate advection operator, but poor stability properties in regimes with high Peclet numbers.
4.9.6.2. Upwind Method
Using only the value of the upwind node from the face provides a simple, stable, inexpensive approach, but it is only first order accurate.
(4.14)
4.9.6.3. MUSCL Upwind
Using MUSCL (Monotonic Upstream-centered Scheme for Conservation Laws) we use the gradient of at the upwind node to project a value of
from the node location.
(4.15)
where we also require a limiter function, that uses
(4.16)
(4.17)
4.9.6.4. Fuego Blending Approach
The cell Peclet number is the ratio of advection to diffusion, defined as
(4.18)
Fuego uses several blending functions to combine the three advection operators as a function of cell Peclet number.
(4.19)
Here, is the user-specified
first order upwind factor (a value between 0 and 1), is a central difference blending coefficient that transitions between 0 and 1 depending on the cell Peclet number (described below), and
is the user-specified upwind choice, either
or
.
When you set , you define what fraction of the advection operator is always first-order upwind, and the remaining fraction is then split between your choice of upwind operator (
UPW or MUSCL) and central-difference based on .
The blending coefficient is either defined by
(4.20)
where is specified by
HYBRID UPWIND FACTOR and can be any value greater than zero, or by
(4.21)
where is defined by
HYBRID UPWIND SHIFT and is defined by
HYBRID UPWIND WIDTH.
These parameters can be set globally, or per equation. The per-equation specification takes precedence, so you can set a global configuration, and then override it only for certain equations.
Begin Solution Options
Upwind Method = [UPW | MUSCL] # Default "UPW"
First Order Upwind Factor = [0 to 1] # Default 0
Hybrid Upwind Factor = [0+] # Default 1
Upwind Limiter = [None, Superbee, Minmod, Van_Albada, Van_Leer] # Default "None"
Hybrid Upwind Method = [Blending | Tanh] # Default "Blending"
Hybrid Upwind Shift = X # Default 0
Hybrid Upwind Width = X # Default 0
An example configuration below uses no first-order upwinding, and blends between MUSCL and CDS using the TANH blending rule with different transition points for momentum and the other equations.
Begin Solution Options
UPWIND METHOD IS MUSCL
UPWIND LIMITER IS VAN_LEER
FIRST ORDER UPWIND FACTOR = 0.0 # 0% upwinding
HYBRID UPWIND METHOD = TANH
HYBRID UPWIND WIDTH = 2
HYBRID UPWIND SHIFT = 2
HYBRID UPWIND WIDTH = 200 FOR EQUATION X_Momentum
HYBRID UPWIND WIDTH = 200 FOR EQUATION Y_Momentum
HYBRID UPWIND SHIFT = 2000 FOR EQUATION X_Momentum
HYBRID UPWIND SHIFT = 2000 FOR EQUATION Y_Momentum