Numerical Schemes

The coefficients of equation (6) must remain positive, since an increase in a neighboring value must result in an increase in \phi_P to obtain physically realistic solutions. Thus, the inequalities a_A > 0 and a_A + F_f>0 must be satisfied. The Péclet number P_f \equiv F_f / D_f is the ratio between convective strength and diffusive conductance. To achieve physically realistic solutions, the inequality

(1)\frac{1}{1-\alpha_f} > P_f > -\frac{1}{\alpha_f}

must be satisfied. The parameter \alpha_f is defined by the chosen scheme, depending on Equation (1). The various differencing schemes are:

the central differencing scheme,


(2)\alpha_f = \frac{1}{2}

so that |P_f|<2 satisfies Equation (1). Thus, the central differencing scheme is only numerically stable for a low values of P_f.

the upwind scheme,


(3)\alpha_f = \begin{cases}
1 & \text{if $P_f > 0$,} \\
0 & \text{if $P_f < 0$.}

Equation (3) satisfies the inequality in Equation (1) for all values of P_f. However the solution over predicts the diffusive term leading to excessive numerical smearing (“false diffusion”).

the exponential scheme,


(4)\alpha_f = \frac{(P_f-1)\exp{(P_f)}+1}{P_f(\exp{(P_f)}-1)}.

This formulation can be derived from the exact solution, and thus, guarantees positive coefficients while not over-predicting the diffusive terms. However, the computation of exponentials is slow and therefore a faster scheme is generally used, especially in higher dimensions.

the hybrid scheme,


(5)\alpha_f =
    \frac{P_f-1}{P_f} & \text{if $P_f > 2$,} \\
    \frac{1}{2} & \text{if $|P_f| < 2$,} \\
    -\frac{1}{P_f} & \text{if $P_f < -2$.}

The hybrid scheme is formulated by allowing P_f \rightarrow \infty, P_f \rightarrow 0 and P_f \rightarrow -\infty in the exponential scheme. The hybrid scheme is an improvement on the upwind scheme, however, it deviates from the exponential scheme at |P_f|=2.

the power law scheme,


(6)\alpha_f =
    \frac{P_f-1}{P_f} & \text{if $P_f > 10$,} \\
    \frac{(P_f-1)+(1-P_f/10)^5}{P_f} & \text{if $0 < P_f < 10$,} \\
    \frac{(1-P_f/10)^5 - 1}{P_f} & \text{if $-10 < P_f < 0$,} \\
    -\frac{1}{P_f} & \text{if $P_f < -10$.}

The power law scheme overcomes the inaccuracies of the hybrid scheme, while improving on the computational time for the exponential scheme.


VanLeerConvectionTerm not mentioned and no discussion of explicit forms.

All of the numerical schemes presented here are available in FiPy and can be selected by the user.

Last updated on Jan 28, 2020. Created using Sphinx 1.8.5.