arXiv reader

High-order positivity-preserving well-balanced schemes: combining flux globalization with modified Patankar deferred correction methods

Philipp Öffner, Michael Redle and Davide Torlo

arXiv
2610.21857v1 · PDF · 15 October 2026
Categories
math.NA, cs.NA
Licence
CC BY 4.0 The site shows the text.

Abstract

Positivity-preserving schemes for hyperbolic balance laws are typically built from the Zhang-Shu limiter and strong-stability-preserving Runge-Kutta (SSP-RK) time stepping, at the cost of a restrictive time-step condition. The modified Patankar deferred correction (mPDeC) method removes this restriction, offering high-order accuracy, conservation, and unconditional positivity. However, its solution-dependent Patankar weights make the time update nonlinear, so, unlike with RK methods, preserving (steady and moving) equilibria, i.e., well-balancing (WB), is no longer straightforward. In this paper, we construct high-order, WB, positivity-preserving mPDeC schemes by combining mPDeC with a flux-globalization approach. We demonstrate the idea on the one-dimensional shallow water equations, using a WB A-WENO spatial discretization, and introduce a modified local characteristic decomposition that remains stable in the presence of dry states. Numerical experiments on one-dimensional benchmarks confirm that the method satisfies the desired properties.

Items 7

Remark

Remark 2.1

QQB3

Both the second-order and fifth-order schemes presented in this section are NOT positivity preserving. We discuss the adjustments to ensure positivity spatially in §?.

Remark

Remark 3.1

2MOG

(Division by a small c_\alpha) In the case that c_\alpha is zero or near zero, the divisions within the mass matrix in (?) cause it to become ill-conditioned. Hence, to avoid this division by a small quantity, we follow the suggestion of, e.g., [torlo2020] and apply a desingularization; for numerator n and denominator d we take

\frac{n}{d} \approx \begin{cases} 0, & \text{if } d < 10^{-8}, \\ \displaystyle \frac{2d \cdot n}{d^2 + \max\{d^2, 10^{-8}\}}, & \text{otherwise}. \end{cases}

This ensures numerical stability while preserving the physical behavior; see, e.g., [ciallella2022] for more details.

Remark

Remark 4.1 (Practical aspects for shallow water)

2330

For the SW system (?), we only apply mPDeC to the h evolution. It is physically realistic that the quantity q becomes negative from positive values; thus, q is evolved numerically with the classical DeC.

Remark

Remark 4.2 (Linear solver)

WNDU

In one spatial dimension, (?) results in the mass matrix \mathbb M in equation (?) being a tri-diagonal matrix, barring boundary conditions. In this work, we consider zero-extrapolation, Dirichlet, and periodic boundary conditions; of which, only periodic conditions result in a non-tri-diagonal matrix. In the case where \mathbb M is tri-diagonal, we solve the system with Thomas algorithm. In the periodic case, the resulting mass matrix is tri-diagonal with the off-diagonal corners being non-zero. In this case, we use a Sherman-Morrison decomposition of the matrix \mathbb M to obtain the solution to \mathbb M \bm c^{\ell, (m)} = \bm c^n explicitly via two separate tri-diagonal solves.

Remark

Remark 4.3 (Zhang-Shu limiter time-step restriction)

8FFO

Although we use the Zhang-Shu limiter to spatially ensure positivity, the use of the linearly implicit mPDeC for the time evolution of h allows us to forego its additional strong CFL restriction. In practice, we run the simulations with classical explicit CFL due to the stability of the underlying FD method.

Theorem

Theorem 4.4 (WB property of the mPDeC scheme)

LZAW

Given a well-balanced semi-discretization of (?), the mPDeC scheme with the semi-discretization in (?) is well-balanced for the same equilibrium states.

Proof of Theorem 4.4

Given an equilibrium state \bm U^{\text{eq}} and the corresponding equilibrium variables \bm E^{\text{eq}}, we have that the semi-discretization in (?) is WB, and thus {\boldsymbol{{\mathcal{K}}}}_{j+\frac12}={\boldsymbol{{\mathcal{K}}}}_{j-\frac12}={\boldsymbol{{\mathcal{K}}}}^{\text{eq}} for all j. Now, let us prove that, for one mP-Euler time step (?), the equilibrium state is preserved at the next time step. The extension to mPDeC is straightforward. Since {\boldsymbol{{\mathcal{K}}}}_{j+\frac12}={\boldsymbol{{\mathcal{K}}}}_{j-\frac12}, suppose, w.l.o.g., that {{\mathcal{K}}}^h_{j+\frac12}={{\mathcal{K}}}^h_{j-\frac12}>0, where {{\mathcal{K}}}^h_{j+\frac12} denotes the first component of {\boldsymbol{{\mathcal{K}}}}_{j+\frac12}, corresponding to the water height h, the variable we want to keep positive. Then, by (?), we have that p_{j,j+1} = d_{j,j-1} = 0 and p_{j,j-1} = d_{j,j+1} = \frac{1}{\Delta x}{{\mathcal{K}}}^h_{j+\frac12}. Since, the mP-Euler system has a unique solution [burchard2003], we prove that \bm U^{n+1} = \bm U^n = \bm U^{\text{eq}} is a solution of the mP-Euler system. Indeed, the update formula for the first component h reads

\begin{aligned} h^{n+1}_j &= h^n_j + \Delta t\left( \underbrace{p_{j,j-1}(\bm U^n)}_{={{\mathcal{K}}}^{\text{eq},h}}\underbrace{\frac{h_{j-1}^{n+1}}{h_{j-1}^{n}}}_{=1} +\underbrace{p_{j,j-1}(\bm U^n)}_{=0} \underbrace{\frac{h_{j+1}^{n+1}}{h_{j+1}^{n}}}_{=1} -\underbrace{d_{j,j+1}(\bm U^n)}_{={{\mathcal{K}}}^{\text{eq},h}} \underbrace{\frac{h_{j}^{n+1}}{h_{j}^{n}}}_{=1} -\underbrace{d_{j,j-1}(\bm U^n)}_{=0} \underbrace{\frac{h_{j}^{n+1}}{h_{j}^{n}}}_{=1} \right)=h_j^n \end{aligned}

that is clearly satisfied by the equilibrium. The case with negative {{\mathcal{K}}}^h_{j+\frac12} is analogous.

Source and licence

The text on this page is from arXiv:2610.21857v1 by Philipp Öffner, Michael Redle and Davide Torlo, under the licence CC BY 4.0. The corpus made these changes: it read the items out of the LaTeX source, it expanded the macros of the paper, it put each proof after its statement, and it converted the text to HTML. The formulas are the TeX of the paper, and KaTeX renders them. A formula or a reference can look different from the PDF. The page is published under CC BY 4.0.

The record of each item is in analysis/objects/2610/2610.21857.jsonl.