June 30, 2026
High-order accurate simulations of special relativistic hydrodynamics (RHD) are prone to numerical breakdown if intrinsic physical constraints (positive rest-mass density/pressure and subluminal velocity) are violated near strong discontinuities. In this work, we develop a robust and efficient physical-constraint-preserving (PCP) flux-limiting framework for high-order schemes, using finite-difference WENO as a representative example. By leveraging the geometric quasilinearization (GQL) representation, which equivalently reformulates the nonlinear RHD constraints into a family of linear inequalities, we integrate a Zalesak-type Flux-Corrected Transport (FCT) update into a scalar-style limiter that acts directly on conservative variables. A critical innovation is the explicit, non-iterative determination of limiting parameters via a rational stereographic parameterization of the GQL normal vector. This technique transforms the required worst-case minimization over auxiliary variables into a generalized Rayleigh-quotient formulation, allowing the optimal parameters to be obtained by solving small symmetric eigenvalue problems (\(2\times2\) in 1D; \((d+1)\times(d+1)\) in \(d\) dimensions). Relaxed variants are further introduced to reduce computational costs in multidimensions while retaining the PCP guarantee. Extensive numerical benchmarks ranging from 1D to 3D, including ultra-relativistic Riemann problems and astrophysical jets, demonstrate that the proposed method robustly enforces physical admissibility, sharply resolves discontinuities, and maintains design-order accuracy for smooth solutions.
Keywords: special relativistic hydrodynamics ,physical-constraints-preserving ,flux-corrected transport ,geometric quasilinearization (GQL) ,high-order accuracy ,WENO.
Relativistic hydrodynamics (RHD) provides a fundamental description of fluid motion at velocities approaching the speed of light and plays a central role in astrophysics, high-energy physics, and cosmology. The governing equations feature strong nonlinearities and, in many practically relevant regimes, extremely large Lorentz factors; as a result, analytical solutions are rare and high-fidelity numerical simulation becomes indispensable for elucidating the dynamics of relativistic flows. Compared with the nonrelativistic Euler equations, RHD exhibits a more intricate and nonlinearly coupled relationship between conservative and primitive variables, which poses additional challenges for designing robust, accurate, and efficient numerical methods.
Early numerical investigations date back to [1], [2], where finite-difference discretizations augmented by artificial viscosity were employed in Lagrangian or Eulerian coordinates. Over the past decades, a wide range of high-resolution and high-order methods have been developed for RHD, including finite-volume, finite-difference, and discontinuous Galerkin (DG) approaches; see, e.g., [3]–[7]. To further enhance the resolution of discontinuities and multiscale structures, adaptive mesh refinement and adaptive moving-mesh techniques have also been incorporated into RHD simulations [8], [9].
A central difficulty in RHD computations is the strict enforcement of intrinsic physical constraints: positivity of the rest-mass density and pressure, and the subluminal constraint on the fluid velocity (i.e., \(|{\boldsymbol{v}}|<1\) with the light speed \(c=1\)). These constraints define the admissible state set of the system. Numerical violations (negative density/pressure or superluminal velocity) are not only nonphysical but may also cause immediate breakdown of the computation, particularly in extreme regimes characterized by large Lorentz factors, near-vacuum conditions, or strong shocks. In practice, such failures are sometimes handled in an ad hoc manner by restarting with more diffusive schemes and/or smaller CFL numbers until admissibility is recovered [8], [10]. This lack of rigor and predictability motivates the development of high-order methods that guarantee admissibility by construction, commonly referred to as physical-constraints-preserving (PCP) or, more generally, invariant-domain-preserving (IDP) schemes.
In the broader setting of hyperbolic conservation laws, the design of provably PCP/IDP schemes has advanced substantially, with two major limiter paradigms emerging. The first class consists of scaling-type limiters, pioneered by Zhang and Shu, and successfully applied to scalar conservation laws [11], the nonrelativistic Euler equations [12], [13], and the compressible Navier–Stokes equations [14]. The second class enforces admissibility through flux correction, i.e., nonlinear blending of high-order and low-order numerical fluxes. Representative examples include parametrized maximum-principle/positivity-preserving flux limiters for scalar laws [15], [16], convection-dominated diffusion [17], and the compressible Euler equations [18]. In addition, Hu, Adams, and Shu [19] proposed a sufficient positivity-preserving flux limiting condition for the Euler equations via a convex decomposition of cell averages, an approach later generalized to special RHD by Wu and Tang [5].
The flux-correction philosophy can be traced back to the Flux-Corrected Transport (FCT) method of Boris and Book [20]–[22]. Zalesak extended FCT to fully multidimensional settings [23] and developed a structured-grid limiter for scalar conservation laws [24], laying foundations for later IDP/PCP developments. Recent work has further clarified the close connection between Zalesak-type FCT limiters and parametrized flux limiters; see, e.g., [15], [25]. Kuzmin and collaborators systematically extended FCT to multidimensional and high-order discretizations [26], [27] and proposed monolithic convex limiting techniques for hyperbolic systems [28]. Other notable FCT-type variants include the Point-Average-Moment PolynomiAl-Interpreted (PAMPA) schemes [29]–[31]. Another influential line is the convex limiting framework of Guermond, Popov, and Tomas [32]–[34], developed for discretization-independent IDP mechanisms and applied across continuous finite elements and other discretization frameworks. For comprehensive discussions of FCT/IDP principles and algorithms, we refer to [25], [35] and the references therein.
Applying PCP/IDP ideas to RHD is nontrivial. Although the equations are conservative, neither the fluxes nor the wave speeds admit simple closed-form expressions purely in terms of conservative variables, since they depend on primitive variables obtained through a nonlinear recovery procedure; see Section 2. Despite these difficulties, major progress has been achieved for special RHD. Wu and Tang [5] derived the first explicit equivalent characterization of the admissible state set, later generalized to general equations of state (EOS) [36], and developed high-order PCP finite-difference WENO schemes with flux-corrected limiters. This foundation has supported extensions to unstructured finite-volume methods [37], discontinuous Galerkin (DG) methods [36], [38], and invariant-region/minimum-entropy-principle approaches [39], [40]. Related PCP frameworks have also been established for general relativistic hydrodynamics [41] and coupled with the oscillation-eliminating approach [42] in [43], and PCP techniques have been extended to relativistic MHD [44], [45] as well as nonrelativistic MHD [46]–[48]. For further background, we refer to the reviews [49], [50], the textbook [51], and recent studies [52]–[54].
More recently, the geometric quasilinearization (GQL) framework was introduced in [55], inspired by PCP analyses for (relativistic) MHD and related systems [44]–[48]. GQL converts nonlinear admissibility constraints into equivalent families of linear inequalities parameterized by auxiliary variables, offering a geometric route to PCP design. However, for special RHD a key practical bottleneck remains: enforcing the nonlinear constraint \(q({\boldsymbol{U}})>0\) (encoding positive pressure and subluminal velocity) in a way that is both sharp and efficient. Achieving high resolution requires the flux-corrected limiting parameter \(\theta\in[0,1]\) to stay as close to \(1\) as possible, while guaranteeing admissibility at every interface and Runge–Kutta stage. Even within the GQL framework [55], the limiting step naturally leads to a worst-case optimization over an auxiliary variable \(v_{*}\); existing strategies often rely on discrete sampling or iterative root-finding, whose cost and implementation complexity grow rapidly in multiple space dimensions and may become overly restrictive when the solution approaches the boundary of the admissible set.
To address these issues, we propose a new, efficient PCP flux-limiting framework for special RHD that avoids iterative searches over auxiliary variables in the limiting step. Building on the GQL characterization and the classical Zalesak-type FCT mechanism, our main contributions are:
GQL–FCT scalar-style PCP limiting. We integrate the GQL family of linear inequalities into an FCT update to construct a scalar-style limiter that acts directly on conservative variables. In contrast to classical characteristic FCT limiters for hyperbolic systems [23], [24], our GQL-based PCP limiter does not require characteristic decomposition in the limiting step. Furthermore, unlike the FCT approach using GQL with a specific convex decomposition for PAMPA schemes [29], the present limiter avoids such a prior convex decomposition; our limiting approach is thus applicable to other high-order numerical frameworks, such as finite difference and finite volume schemes.
Eigenvalue-based parameter estimation. We resolve the computational bottleneck associated with the nonlinear constraint. By introducing a rational (stereographic-type) parameterization of the GQL normal vector, we transform the worst-case minimization over GQL auxiliary variables into a generalized Rayleigh-quotient maximization. Consequently, the limiter parameters are obtained from only a few small symmetric eigenvalue problems (\(2\times2\) in 1D; \((d{+}1)\times(d{+}1)\) in \(d\) dimensions), yielding an explicit, non-iterative procedure. For 2D and 3D, we further propose relaxed variants that substantially reduce the number of eigenvalue evaluations while retaining robustness (from 16 to 6 in 2D and from 64 to 9 in 3D).
High-order PCP WENO schemes and numerical validation. We couple the new limiter with standard fifth-order finite-difference WENO reconstruction and strong-stability-preserving Runge–Kutta time integration. A series of demanding one- to three-dimensional benchmarks, including ultra-relativistic Riemann problems, multidimensional Riemann problems, shock–bubble interaction, and relativistic jet simulations, demonstrate robustness and high-order accuracy. Comparisons with the classical Wu–Tang PCP limiter [5] indicate that the new estimator provides better resolution.
From the viewpoint of invariant-domain enforcement, convex limiting and its monolithic variants provide a general mechanism to restrict high-order (anti-diffusive) corrections so that the updated degrees of freedom remain in a prescribed convex admissible set; see, e.g., the convex limiting framework of Guermond et al. [33], [34] and the monolithic convex limiting approach of Kuzmin [28]. In contrast, we exploit the specific geometry of the special-RHD admissible set in conservative variables: besides \(D>0\), the nonlinear constraint \(q({\boldsymbol{U}})=E-\sqrt{D^2+|{\boldsymbol{m}}|^2}>0\) is represented exactly as the intersection of linear half-space inequalities \({\boldsymbol{U}}\cdot{\boldsymbol{n}}({\boldsymbol{v}}_*)>0\) for all \({\boldsymbol{v}}_*\in \mathbb{B}_1({\boldsymbol{0}})\). This makes it possible to embed constraint enforcement into a scalar-style Zalesak-type FCT update by applying lower-bound limiting to the projected quantities \({\boldsymbol{U}}\cdot{\boldsymbol{n}}({\boldsymbol{v}}_*)\), acting directly on conservative variables and avoiding any problem-specific convex decomposition of states in the limiting step.
The remainder of this paper is organized as follows. Section 2 introduces the governing equations and the GQL characterization of the admissible state set. Section 3 outlines the base finite-difference WENO discretization. Section 4 details the construction of the GQL–FCT PCP flux limiter, the eigenvalue-based parameter estimation, and the proof of the PCP property. Numerical validations are presented in Section 5, followed by conclusions in Section 6.
The \(d\)-dimensional special relativistic hydrodynamics system can be formulated as a system of hyperbolic conservation laws: \[\label{eq:RHD3D} \frac{\partial {\boldsymbol{U}}}{\partial t} + \sum_{i=1}^{d} \frac{\partial {\boldsymbol{F}}_i({\boldsymbol{U}})}{\partial x_i} = {\boldsymbol{0}},\tag{1}\] where the conservative vector \({\boldsymbol{U}}\) and flux function \({\boldsymbol{F}}_i\) are defined as \[\begin{align} &{\boldsymbol{U}} = \left( D, {\boldsymbol{m}}^\top, E \right)^\top = \left( \rho \gamma, \rho h \gamma^2 {\boldsymbol{v}}^\top, \rho h \gamma^2 - p \right)^\top, \tag{2} \\ &{\boldsymbol{F}}_i = \left( D v_i, v_i {\boldsymbol{m}}^\top + p {\boldsymbol{e}}_i^\top, m_i \right)^\top = \left( \rho \gamma v_i, \rho h \gamma^2 v_i {\boldsymbol{v}}^\top + p {\boldsymbol{e}}_i^\top, \rho h \gamma^2 v_i \right)^\top. \tag{3} \end{align}\] Here, \(D,\;{\boldsymbol{m}}\), and \(E\) correspond to the mass density, momentum density vector, and energy density, respectively, and are collectively referred to as conservative variables. The rest-mass density \(\rho\), fluid velocity \({\boldsymbol{v}} = (v_1, v_2, \dots, v_d)^\top\), and pressure \(p\) are often termed primitive variables. The Lorentz factor \(\gamma = (1 - |{\boldsymbol{v}}|^2)^{-\frac{1}{2}},\) with \({|\boldsymbol{v}|}\) denoting the magnitude of the velocity vector, and \({\boldsymbol{e}}_i\) stands for the \(i\)-th column of the \(d \times d\) identity matrix.
The RHD system 1 is closed by an EOS, which relates the specific enthalpy \(h\) to pressure \(p\) and rest-mass density \(\rho\). To ensure relativistic causality (local sound speed \(c_s<1\)), the EOS must satisfy the inequality [36]: \[h\;\left(\frac{1}{\rho} - \frac{\partial h}{\partial p}(p,\rho)\right) < \frac{\partial h}{\partial \rho}(p,\rho) < 0.\] In this work, we adopt the ideal EOS: \[\label{ID-EOS} h = 1 + \frac{\Gamma p}{(\Gamma -1) \rho} ,\tag{4}\] where \(\Gamma \in (1,2]\) is the adiabatic index. The admissible state set of the RHD system 1 with the ideal EOS 4 is defined as: \[\label{eq:3constraints} \mathcal{G} = \left\{ {\boldsymbol{U}} = (D, {\boldsymbol{m}}^\top, E)^\top \in \mathbb{R}^{d+2} \mid \rho({\boldsymbol{U}}) > 0,\;p({\boldsymbol{U}}) > 0,\;{\boldsymbol{v}}({\boldsymbol{U}}) \in \mathbb{B}_1({\boldsymbol{0}})\subseteq\mathbb{R}^d\right\},\tag{5}\] where \(\mathbb{B}_1({\boldsymbol{0}})\) denotes the \(d\)-dimensional unit ball centered at the origin. An explicit equivalent characterization of \(\mathcal{G}\) was derived in [5]: \[\label{1stequivG} \mathcal{G}^{(1)} = \left\{ {\boldsymbol{U}} = (D, {\boldsymbol{m}}^\top, E)^\top \in \mathbb{R}^{d+2} \mid D > 0,\;q({\boldsymbol{U}}) := E - \sqrt{D^2 + |{\boldsymbol{m}}|^2} > 0 \right\},\tag{6}\] which was further linearized via the GQL framework [55] as: \[\label{eq:1218} \mathcal{G}^{(2)}= \left\{ {\boldsymbol{U}} = (D,{\boldsymbol{m}}^\top,E)^\top \in \mathbb{R}^{d+2} \mid D > 0,\; {\boldsymbol{U}}\cdot {\boldsymbol{n}}_* > 0,\;\forall {\boldsymbol{v}_*} \in \mathbb{B}_1({\boldsymbol{0}}) \right\},\tag{7}\] where \({\boldsymbol{n}}_*:= \big( -\sqrt{1-|{\boldsymbol{v}}_*|^2}, -{\boldsymbol{v}}_*^\top, 1 \big)^\top\), and \({\boldsymbol{v}}_*\) is the auxiliary parameter introduced in the GQL framework to linearize the constraints. As demonstrated in Section 4, this linear representation \(\mathcal{G}^{(2)}\) offers substantial advantages over the original nonlinear form of \(\mathcal{G}\) in PCP analysis for RHD.
Different from the nonrelativistic case, there are no explicit expressions for either the fluxes \({\boldsymbol{F}}_i\) or the primitive quantities in terms of the conservative variables \({\boldsymbol{U}}\) for RHD. In the computation, we have to first recover the primitive variables from the conservative ones before evaluating the fluxes. For a given conservative vector \(\boldsymbol{U}=(D,\boldsymbol{m},E)^\top\in\mathcal{G}\), we recover primitive variables \((\rho,\boldsymbol{v},p)^\top\) for the ideal EOS 4 by solving a nonlinear algebraic equation [5] \[\label{RHDCon2Pri} \Phi_{\boldsymbol{U}}(p) := \frac{p}{\Gamma-1}-E+\frac{\|{\boldsymbol{m}}\|^2}{E+p}+D\sqrt{1-\frac{\|{\boldsymbol{m}}\|^2}{(E+p)^2}} = 0 \quad \text{for}\;\;p>0.\tag{8}\] Once \(p\) is determined from 8 , the velocity vector \({\boldsymbol{v}}\) and rest-mass density \(\rho\) are computed via: \[\boldsymbol{v}=\frac{\boldsymbol{m}}{E+p},\qquad \rho=D\sqrt{1-\|{\boldsymbol{v}}\|^2}.\] To solve 8 robustly, we suggest the provably convergent iterative algorithms for RHD primitive-variable recovery in [37], [56].
The proposed GQL-based limiting framework is applicable to general high-order finite-difference and finite-volume schemes. Since WENO methods are particularly popular, our numerical experiments use a high-order finite-difference classical WENO-JS scheme [57] with \(\epsilon = 10^{-6}\) as a representative example to demonstrate the effectiveness of the framework; however, the same framework can be applied directly to other high-order discretizations as well, such as WENO-Z [58] and monotonicity-preserving [59] schemes. For completeness, we briefly recall the standard finite-difference WENO discretization for one-dimensional systems of conservation laws. Consider the \(d=1\) case of 1 , \[\label{eq:RHD1D} {\boldsymbol{U}}_t + {\boldsymbol{F}}({\boldsymbol{U}})_x = {\boldsymbol{0}},\tag{9}\] on a uniform grid \(x_i=i\Delta x\). A conservative flux-differencing semi-discretization takes the form \[\label{eq:semiWENO} \frac{d{\boldsymbol{U}}_i}{dt} = -\frac{1}{\Delta x}\Bigl(\widehat{\boldsymbol{F}}_{i+1/2}-\widehat{\boldsymbol{F}}_{i-1/2}\Bigr),\tag{10}\] where \(\widehat{\boldsymbol{F}}_{i+1/2}\) is a high-order accurate numerical flux at the interface \(x_{i+1/2}=(x_i+x_{i+1})/2\).
We employ the global Lax–Friedrichs (LF) splitting \[\label{eq:LFsplit} {\boldsymbol{F}}^{\pm}({\boldsymbol{U}})=\frac{1}{2}\Bigl({\boldsymbol{F}}({\boldsymbol{U}}) \pm \alpha{\boldsymbol{U}} \Bigr),\tag{11}\] where \(\alpha\) is the globally defined maximum wave speed, that is, the spectral radius of the Jacobian \({\boldsymbol{A}}({\boldsymbol{U}})=\partial{\boldsymbol{F}}/\partial{\boldsymbol{U}}\) over all grid points, i.e., \(\alpha = \max_j \rho\bigl({\boldsymbol{A}}({\boldsymbol{U}}_j)\bigr)\). Then \({\boldsymbol{F}}({\boldsymbol{U}})={\boldsymbol{F}}^{+}({\boldsymbol{U}})+{\boldsymbol{F}}^{-}({\boldsymbol{U}})\), and the positive/negative parts can be reconstructed using upwind-biased stencils.
Let \({\boldsymbol{L}}_{i+1/2}\) and \({\boldsymbol{R}}_{i+1/2}={\boldsymbol{L}}_{i+1/2}^{-1}\) be the left/right eigenvector matrices of \({\boldsymbol{A}}({\boldsymbol{U}})\) evaluated at a suitable interface state (e.g., a local average of \(\{{\boldsymbol{U}}_j\}\)). Define the characteristic split fluxes \[{\boldsymbol{W}}_{j}^{\pm} := {\boldsymbol{L}}_{i+1/2}\,{\boldsymbol{F}}^{\pm}({\boldsymbol{U}}_j).\] For each component of \({\boldsymbol{W}}_j^{+}\), apply the standard fifth-order WENO reconstruction [57], [60] with a left-biased stencil to obtain the interface value \(\widehat{\boldsymbol{W}}^{+}_{i+1/2}\). Similarly, reconstruct \({\boldsymbol{W}}_j^{-}\) with a right-biased stencil to obtain \(\widehat{\boldsymbol{W}}^{-}_{i+1/2}\). Transform back to physical space, \[\widehat{\boldsymbol{F}}^{\pm}_{i+1/2} := {\boldsymbol{R}}_{i+1/2}\,\widehat{\boldsymbol{W}}^{\pm}_{i+1/2}, \qquad \widehat{\boldsymbol{F}}_{i+1/2} := \widehat{\boldsymbol{F}}^{+}_{i+1/2}+\widehat{\boldsymbol{F}}^{-}_{i+1/2}.\] In multiple spatial dimensions, the above procedure is applied dimension-by-dimension to each directional flux.
The semi-discrete system 10 is advanced in time by the third-order SSP Runge–Kutta method. The PCP flux limiting procedure developed in Section 4 is applied at each Runge–Kutta stage.
In this section, we will discuss the PCP high-order schemes for one-, two-, and three-dimensional RHD with the ideal EOS 4 . The PCP property is achieved through our novel flux limiter, which is motivated by Zalesak’s limiter in Flux-Corrected Transport (FCT) schemes for scalar partial differential equations [23], [24], [35].
Recently, Wu and Shu proposed the Geometric Quasi Linearization (GQL) framework for PCP analysis, providing new insights into dealing with nonlinear hyperbolic systems, such as RHD 1 . The GQL theory reformulates the nonlinear constraints into equivalent linear ones by introducing additional free parameters. As observed and verified in 7 , we can judge whether the solution lies in \(\mathcal{G}\) by the sign of the scalar \({\boldsymbol{U}} \cdot {\boldsymbol{n}}_*\), which can be integrated with Zalesak’s limiter in scalar equations for RHD, without transforming the system into its local characteristic space or seeking a technical convex decomposition for a sufficient PCP condition.
We consider the following finite difference FCT scheme for the case \(d = 1\) in 1 .
In what follows, we denote:
\(\widehat{\mathcal{F}}_{i+1/2}^L\): first-order low-order numerical flux (see 14 for the detailed definition).
\(\widehat{\mathcal{F}}_{i+1/2}^H\): fifth-order characteristic WENO flux described in Section 3.
\(\widehat{\mathcal{F}}_{i+1/2}^A := \widehat{\mathcal{F}}_{i+1/2}^H - \widehat{\mathcal{F}}_{i+1/2}^L\): anti-diffusive numerical flux.
For convenience, we omit the subscript of \(x_1\): \[\label{uLF1DRHD} {\boldsymbol{U}}_i^L := {\boldsymbol{U}}_i^n - \frac{\Delta t}{\Delta x}\left(\widehat{\mathcal{F}}_{i+{1}/{2}}^L-\widehat{\mathcal{F}}_{i-{1}/{2}}^L\right),\tag{12}\] \[\label{uPCP1D} {\boldsymbol{U}}_i^{n+1} = {\boldsymbol{U}}_i^L - \frac{\Delta t}{\Delta x}\left(\theta_{i+{1}/{2}}\widehat{\mathcal{F}}_{i+{1}/{2}}^A-\theta_{i-{1}/{2}}\widehat{\mathcal{F}}_{i-{1}/{2}}^A\right).\tag{13}\] In our implementation, the low-order flux is chosen as the first-order global LF (Rusanov) flux \[\label{eq:LF95loworder} \widehat{\mathcal{F}}_{i+{1}/{2}}^L=\frac{1}{2}\Bigl({\boldsymbol{F}}({\boldsymbol{U}}_i^n)+{\boldsymbol{F}}({\boldsymbol{U}}_{i+1}^n)-\alpha\,({\boldsymbol{U}}_{i+1}^n-{\boldsymbol{U}}_i^n)\Bigr)\tag{14}\] with the same LF parameter \(\alpha\) as in 11 . (At each SSP-RK stage, \({\boldsymbol{U}}^n\) is replaced by the corresponding stage solution.) The LF scheme 12 with flux 14 is known to preserve the admissible set for the RHD system under a suitable CFL condition; see, e.g., [5], [46]. Our goal is to find the explicit formula for the coefficients \(\theta_{i+{1}/{2}}\).
At each SSP-RK stage, we enforce the following \(\epsilon\)-admissible set in conservative variables: \[\label{eq:1219} \mathcal{G}_\epsilon^{(1)}=\left\{{\boldsymbol{U}}\in\mathbb{R}^3 \;\big|\;D({\boldsymbol{U}})\geq\epsilon,\;q({\boldsymbol{U}})=E-\sqrt{D^2+m^2}\geq\epsilon\right\}.\tag{15}\] We fix a small parameter \(\epsilon>0\) such that \({\boldsymbol{U}}_i^L\in \mathcal{G}_\epsilon^{(1)}\) for all \(i\). In computation, we choose it stage-by-stage as \(\epsilon=\min\bigl\{10^{-13},\;D_i^L\bigr\}\) or \(\epsilon=\min\bigl\{10^{-13},\;q({\boldsymbol{U}}_i^L)\bigr\}\) for each cell within the computational domain.
The \(q\)-constraint in 15 is nonlinear with respect to \({\boldsymbol{U}}\), which makes it difficult for the PCP analysis. We first find an equivalent linear form following the GQL framework [5], [55].
Proposition 1 (Equivalent GQL representation of \(\mathcal{G}_\epsilon^{(1)}\)). The \(\epsilon\)-admissible set 15 can be equivalently written as an intersection of half-spaces: \[\label{1DRHDGQLeps} \mathcal{G}_\epsilon^{(2)}=\left\{{\boldsymbol{U}}\in\mathbb{R}^3 \;\big|\;D({\boldsymbol{U}})\geq\epsilon,\;{\boldsymbol{U}}\cdot{\boldsymbol{n}}_*(v_*)\geq \epsilon,\; {\boldsymbol{n}}_*(v_*):=\left(-\sqrt{1-{ v}_*^2},\;-{v}_*,\;1\right)^\top,\;\forall\;{ v}_*\in (-1,1)\right\}.\qquad{(1)}\]
Proof. Let \(\phi({\boldsymbol{U}}, v_*):= {\boldsymbol{U}}\cdot{\boldsymbol{n}}_*(v_*)-\epsilon = E-mv_*-D\sqrt{1-v_*^2}-\epsilon\). By the Cauchy-Schwarz inequality, we obtain \[\phi({\boldsymbol{U}}, v_*) \geq E - \sqrt{D^2+m^2}\sqrt{v_*^2+\left(\sqrt{1-v_*^2}\right)^2} = q({\boldsymbol{U}})-\epsilon.\] Since the equality holds when \(v_* = \frac{m}{\sqrt{D^2+m^2}}\in(-1,1)\), we have \(\min\limits_{v_*\in(-1,1)}\phi({\boldsymbol{U}},v_*)=q({\boldsymbol{U}})-\epsilon\). This completes the proof. ◻
For the exact GQL characterization with zero lower bound, normalization of the normal vector is immaterial because the half-space inequality is homogeneous under positive rescaling. Proposition 1 states that, for the same \(\epsilon\), \(q({\boldsymbol{U}}) \ge \epsilon\) is exactly equivalent to \({\boldsymbol{U}}\cdot{\boldsymbol{n}}_*(v_*)\geq \epsilon\) for all \({ v}_*\in (-1,1)\) with the specific unnormalized normal \({\boldsymbol{n}}_*(v_*)\) in ?? , we thus do not rescale it; consequently the same lower bound \(\epsilon\) is used consistently in all projected inequalities. If one chooses to normalize \({\boldsymbol{n}}_*(v_*)\) to unit Euclidean length \((\widehat{\boldsymbol{n}}_* = {\boldsymbol{n}}_* / \sqrt{2})\), the equivalent constraint becomes \({\boldsymbol{U}}\cdot\widehat{\boldsymbol{n}}_*\geq\epsilon/\sqrt{2}\). The equivalence is preserved only if the constraint parameter is scaled by the reciprocal of the norm. Our choice of the unnormalized normal vector is purely for notational convenience, as it avoids the introduction of arbitrary scaling factors in the subsequent flux limiter derivation. This normalization property holds generally for the GQL framework in all spatial dimensions. Therefore, it suffices to apply the scalar lower-bound operation in Zalesak’s FCT limiter to the two linear constraints associated with \({\boldsymbol{n}}_D:=(1,0,0)^\top\) and \({\boldsymbol{n}}_*(v_*)\) in ?? . To make the description convenient and clear, we follow Zalesak’s notation [24] and redefine the related quantities for any fixed vector \({\boldsymbol{n}}\). \[\begin{align} P^{-}_{i} &= \min\left(0, -\widehat{\mathcal{F}}^{A}_{i+{1}/{2}}\cdot{\boldsymbol{n}}\right) + \min\left(0, \widehat{\mathcal{F}}^{A}_{i-{1}/{2}}\cdot{\boldsymbol{n}}\right).\\ Q^{-}_{i} &= \frac{\Delta x}{\Delta t}\left(\epsilon - {\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}\right),\quad {\boldsymbol{U}}^{L}_{i}\;\text{is defined in }\eqref{uLF1DRHD}.\\ R^{-}_{i} &= \begin{cases} \min\left(1, \frac{Q^{-}_{i}}{P^{-}_{i}}\right), & \text{if}\quad P^{-}_{i} < 0,\\ 1,& \text{otherwise}. \end{cases} \end{align}\]
Step 1: Enforce \(D({\boldsymbol{U}})\geq\epsilon\). This step is identical to the scalar FCT lower-bound limiting. We take \({\boldsymbol{n}} = {\boldsymbol{n}}_D\) (so that \({\boldsymbol{U}}\cdot{\boldsymbol{n}}_D=D({\boldsymbol{U}})\)) and use the parameter \(\epsilon=\min\bigl\{10^{-13},\;D_i^L\bigr\}\). The coefficients of the density flux limiter are computed by \[\label{alphaD1D} \theta_{i+\frac{1}{2}}^D = \begin{cases} R_{i}^- & \text{if}\quad \widehat{\mathcal{F}}_{i+{1}/{2}}^{A}\cdot{\boldsymbol{n}}_D \geq 0, \\ R_{i+1}^- & \text{if}\quad \widehat{\mathcal{F}}_{i+{1}/{2}}^{A}\cdot{\boldsymbol{n}}_D < 0. \end{cases}\tag{16}\] The density flux limiter \(\theta_{i+{1}/{2}}^D\) can be exactly computed in each interface because \(\widehat{\mathcal{F}}_{i+{1}/{2}}^{A,D}\), representing the first component of the anti-diffusive numerical flux in the \(x\) direction, is a scalar.
Step 2: Enforce \({\boldsymbol{U}}\cdot{\boldsymbol{n}_*}\geq \epsilon\iff q({\boldsymbol{U}})=E-\sqrt{D^2+m^2}\geq\epsilon\). Similar to Step 1, we obtain the formulations of the flux limiter for \(q({\boldsymbol{U}})\) \[\label{1DRHDPressure} \theta_{i+\frac{1}{2}}^q = \begin{cases} R_{i}^- & \text{if}\quad \widehat{\mathcal{F}}_{i+{1}/{2}}^{A}\cdot{\boldsymbol{n}}_* \geq 0, \\ R_{i+1}^- & \text{if}\quad \widehat{\mathcal{F}}_{i+{1}/{2}}^{A}\cdot{\boldsymbol{n}}_* < 0. \end{cases}\tag{17}\] In this step, \({\boldsymbol{n}} = {\boldsymbol{n}}_*(v_*)=\left(-\sqrt{1-{ v}_*^2},\;-{v}_*,\;1\right)^\top\) with \({v}_*\in (-1,1)\), and \(\epsilon=\min\bigl\{10^{-13},\;q({\boldsymbol{U}}_i^L)\bigr\}\) is used. The main difference from Step 1 is the presence of the free parameter \({v}_*\). Since \(\widehat{\mathcal{F}}_{i+{1}/{2}}^{A}\cdot{\boldsymbol{n}}_*\) in Step 2 depends on \({v}_*\), its sign cannot be determined once and for all at a fixed interface; hence the sign-based coefficient in 17 cannot be used directly as a uniform limiter for all GQL half-spaces. We therefore solve the following worst-case optimization problem \[\begin{align} (P_1): \mathcal{L}_{i} &= \min\limits_{{v}_*\in (-1,1)}\frac{\frac{\Delta x}{\Delta t}\left({\epsilon} - {\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}_*\right)}{\min\left(0, -\widehat{\mathcal{F}}^{A}_{i+{1}/{2}}\cdot{\boldsymbol{n}}_*\right) + \min\left(0, \widehat{\mathcal{F}}^{A}_{i-{1}/{2}}\cdot{\boldsymbol{n}}_*\right)} \nonumber \\ &= \min\limits_{{v}_*\in (-1,1)}\frac{\frac{\Delta x}{\Delta t}\left({\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}_*-{\epsilon}\right)}{\max\left(0, \widehat{\mathcal{F}}^{A}_{i+{1}/{2}}\cdot{\boldsymbol{n}}_*\right) + \max\left(0, -\widehat{\mathcal{F}}^{A}_{i-{1}/{2}}\cdot{\boldsymbol{n}}_*\right)} \nonumber \\ &= \frac{\Delta x}{\Delta t}\left(\max\limits_{{ v}_*\in (-1,1)} \frac{\max\left(0, \widehat{\mathcal{F}}^{A}_{i+{1}/{2}}\cdot{\boldsymbol{n}}_*\right) + \max\left(0, -\widehat{\mathcal{F}}^{A}_{i-{1}/{2}}\cdot{\boldsymbol{n}}_*\right)}{{\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}_*-{\epsilon}}\right)^{-1}. \label{1DbeforeQuadForm} \end{align}\tag{18}\] As in the scalar FCT coefficient \(R_i^-\), the actual cell-wise coefficient is capped at one. Equivalently, if \(M_i\) denotes the denominator maximum in the last line of 18 , then \(\mathcal{L}_i=1\) when \(M_i=0\), and otherwise \[\mathcal{L}_i=\min\left\{1,\frac{\Delta x}{\Delta t\,M_i}\right\}.\] The uncapped denominator ratio is introduced below only for deriving the quadratic maximization. \[\label{1Doptfun} \mathcal{L}_i({\boldsymbol{n}}_*) := \frac{\max\left(0, \widehat{\mathcal{F}}^{A}_{i+{1}/{2}}\cdot{\boldsymbol{n}}_*\right) + \max\left(0, -\widehat{\mathcal{F}}^{A}_{i-{1}/{2}}\cdot{\boldsymbol{n}}_*\right)}{{\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}_*-{\epsilon}}.\tag{19}\]
| \((a,b,c)^\top\) | \((d^{\pm},e^{\pm},f^{\pm})^\top\) | |
|---|---|---|
| \(|{u}_*|<1\) | \({\bf M}{\bf U}_i^L-{\bf S}\) | \({\bf M}\widehat{\mathcal{F}}^{A}_{i\pm1/2}\) |
Since the normal vector \({\boldsymbol{n}}_*(v_*)\) contains the irrational term \(\sqrt{1-|v_{*}|^{2}}\), the minimization problem 18 is algebraically cumbersome to handle directly. To rigorously transform this into a quadratic form, we introduce a stereographic-type rational parameterization of the unit interval. Let \(u_*\) be an auxiliary variable; we define the mapping: \[\label{1Dvstar95para} v_{*} := \frac{2u_{*}}{1+u_{*}^{2}} {~~ withu_* \in (-1,1) \quad \implies \quad {\boldsymbol{n}}_*(u_*) = \left(-\frac{1-u_{*}^{2}}{1+u_{*}^{2}}, -\frac{2u_{*}}{1+u_{*}^{2}}, 1\right)^\top.}\tag{20}\] For the open admissible range, the restriction \(|u_*|<1\) is in one-to-one correspondence for \(v_*\in(-1,1)\), with inverse \(u_*={v_*}/(1+\sqrt{1-v_*^2})\). To simplify the notation and make our presentation clearer, we introduce the following matrix and vector: \[\mathbf{M} = \begin{pmatrix} 1 & 0 & 1 \\ 0 & 2 & 0 \\ -1 & 0 & 1 \end{pmatrix}, \quad \mathbf{S} = \begin{pmatrix} \epsilon \\ 0 \\ \epsilon \end{pmatrix}.\] Then we obtain \[{\boldsymbol{U}}_{i}^L\cdot{\boldsymbol{n}}_*-\epsilon:=\frac{au_{*}^2-bu_{*}+c}{1+u_{*}^2}, \qquad \widehat{\mathcal{F}}_{i\pm{1}/{2}}^A\cdot{\boldsymbol{n}}_*:=\frac{d^{\pm}u_{*}^2-e^{\pm}u_{*}+f^{\pm}}{1+u_{*}^2}, \label{1DUFcdotn}\tag{21}\] where the definitions of the quantities \(a\), \(b\), \(c\), \(d^{\pm}\), \(e^{\pm}\), and \(f^{\pm}\) are listed in Table 1.
Using 21 , we can solve \((P_1)\) by explicitly expressing the optimization function \({\mathcal{L}}_{i}({\boldsymbol{n}}_*)\) as the quadratic form with an extra constraint \(|{ u}_*|<1\). We first introduce some matrix notations, transforming 19 into the matrix-vector formulation. Let \(\star \in \{+,-\}\) and define the sign function \[\tt{sign}(\star) := \begin{cases} 1 & \text{if}\;\star = +,\\ -1 & \text{if}\;\star = -. \end{cases}\] Then we define \[A^{\star}:= {\tt sign}(\star) \begin{pmatrix} d^{\star} & -\frac{e^{\star}}{2} \\ -\frac{e^{\star}}{2} & f^{\star} \end{pmatrix},\qquad B:= \begin{pmatrix} a & -\frac{b}{2} \\ -\frac{b}{2} & c \end{pmatrix},\qquad {\boldsymbol{w}}:= \begin{pmatrix} u_* \\ 1 \end{pmatrix}.\] Since \({\boldsymbol{w}}^\top B{\boldsymbol{w}}={\boldsymbol{U}}^{L}_{i}\cdot{\boldsymbol{n}}_*-\epsilon\geq 0\), the matrix \(B\) is symmetrically positive definite except for the case \({b}^2=4ac\iff q({\boldsymbol{U}}_{i}^L)=\epsilon\). In this borderline case, any anti-diffusive correction may immediately violate \(q({\boldsymbol{U}})\ge\epsilon\), and we simply take \(\mathcal{L}_{i}=0\) (i.e., keep the low-order update). Otherwise, we rewrite \[B = R^\top R,\qquad R = \begin{pmatrix} \sqrt{a} & -\frac{b}{2\sqrt{a}} \\ 0 & \sqrt{c-\frac{{b}^2}{4a}} \end{pmatrix}.\] We can then derive the explicit formulae for matrices \(\widehat{A}^{\star}:=R^{-\top}A^{\star}R^{-1}\): \[\label{Astar} \widehat{A}^{\star} = {\tt sign}(\star) \begin{pmatrix} \frac{d^{\star}}{a} & \frac{bd^{\star}-ae^{\star}}{a\sqrt{4ac-{b}^2}} \\ \frac{bd^{\star}-ae^{\star}}{a\sqrt{4ac-{b}^2}} & \frac{4a^2f^{\star}-2a{b}{e^{\star}}+d^{\star}{b}^2}{a\left(4ac-{b}^2\right)} \end{pmatrix}.\tag{22}\] Based on the above matrix-vector notations, we continue to solve \((P_1)\).
\[\begin{align} {\mathcal{L}}_{i}&=\frac{\Delta x}{\Delta t}\left(\max\limits_{{\boldsymbol{w}}:=({u}_*,1)^\top\in\mathbb{R}^2 \atop {|{ u}_{*}|<1}} \frac{\max\left(0,{\boldsymbol{w}}^\top A^+{\boldsymbol{w}}\right)+\max\left(0,{\boldsymbol{w}}^\top A^-{\boldsymbol{w}}\right)}{{\boldsymbol{w}}^\top B{\boldsymbol{w}}}\right)^{-1}\\ &=\frac{\Delta x}{\Delta t}\left(\max\limits_{{\boldsymbol{z}}:=R{\boldsymbol{w}}\;\in\;\mathbb{R}^2 \atop {|{ u}_{*}|<1}} \frac{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}^+{\boldsymbol{z}}\right)+\max\left(0,{\boldsymbol{z}}^\top \widehat{A}^-{\boldsymbol{z}}\right)}{{\boldsymbol{z}}^\top {\boldsymbol{z}}}\right)^{-1}\\ &=\frac{\Delta x}{\Delta t}\left(\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {|{ u}_{*}|<1}} \max\left(0,{\boldsymbol{z}}^\top \widehat{A}^+{\boldsymbol{z}}\right)+\max\left(0,{\boldsymbol{z}}^\top \widehat{A}^-{\boldsymbol{z}}\right)\right)^{-1}. \end{align}\] The solution to the Rayleigh quotient \(\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1}{\boldsymbol{z}}^\top\widehat{A}^{\star}{\boldsymbol{z}}\) is the maximal eigenvalue of the matrix \(\widehat{A}^{\star}\). However, this is not a standard Rayleigh quotient, and there are two main differences. On the one hand, we need an extra check for the feasibility of the associated optimizer \({\boldsymbol{w}}=({u}_*,1)^\top\), i.e., \(|{u}_{*}|<1\) or not. On the other hand, for the case \(d = 1\) in 1 , the optimization function 19 is a sum of two quotients composed of the maximum operation, which is clearly different. We adopt the following lemma to simplify the maximum operation.
Lemma 1. Let \(p_1,\dots,p_K\in\mathbb{R}\), and \({\boldsymbol{s}} = (s_1, s_2, \dots, s_K)^\top \in \{0,1\}^K\), where \(s_k\) is the k-th element of the binary vector \({\boldsymbol{s}}\). Then \[\sum_{k=1}^K \max(0,p_k) = \max_{S\subseteq\{1,\dots,K\}} \sum_{k\in S} p_k = \max_{\boldsymbol{s}\in\{0,1\}^K} \sum_{k=1}^K s_k p_k.\]
Proof. Let \(S_+:=\{k\in\{1,\dots,K\}\,:\,p_k>0\}\). Then \(\sum_{k=1}^K\max(0,p_k)=\sum_{k\in S_+}p_k\). For any subset \(S\), we have \(\sum_{k\in S}p_k\le \sum_{k\in S_+}p_k\), because adding any index with \(p_k\le 0\) cannot increase the sum. Therefore the maximum is attained by \(S=S_+\), which proves the identities. ◻
We can apply Lemma 1 to the Rayleigh quotient to solve \({\mathcal{L}}_{i}\) immediately by taking \(K=2\). \[{\mathcal{L}}_{i} =\frac{\Delta x}{\Delta t}\left( \max\left\{0,\; \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {|{ u}_{*}|<1}}{\boldsymbol{z}}^\top \widehat{A}^+{\boldsymbol{z}},\;\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {|{ u}_{*}|<1}}{\boldsymbol{z}}^\top \widehat{A}^-{\boldsymbol{z}},\; \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {|{ u}_{*}|<1}}{\boldsymbol{z}}^\top \left(\widehat{A}^++\widehat{A}^-\right){\boldsymbol{z}}\right\} \right)^{-1}.\] The remaining step is to solve the Rayleigh quotient with the additional constraint \(|{u}_{*}|<1\): \[\widetilde{\mathcal{L}}_{i}:=\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^2,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {|{ u}_{*}|<1}}{\boldsymbol{z}}^\top \widehat{A}\;{\boldsymbol{z}},\] which is the same as the standard Rayleigh quotient except for a further validation of the associated optimizer \({\boldsymbol{w}}=({u}_*,1)^\top\). If the optimizer \({\boldsymbol{w}}\) associated with the maximal eigenvalue satisfies \(|{u}_{*}|<1\), then the solution is consistent with the standard Rayleigh quotient. Otherwise, we compare the remaining feasible eigenvalues with the boundary values. Let \(\widehat{\lambda}_1\) and \(\widehat{\lambda}_2\) be the eigenvalues of the model matrix \(\widehat{A}\), and \(\widehat{\lambda}_1 > \widehat{\lambda}_2\). Then we have \[\widetilde{\mathcal{L}}_{i}= \begin{cases} \max\left\{0,\;\widehat{\lambda}_1\right\} & \text{if}\;\left|{u}_{*,1}\right|<1\\ \max\left\{0,\;\widehat{\lambda}_2,\;\frac{d}{a},\;\frac{f}{c}\right\} & \text{if}\;\left|{u}_{*,1}\right|\geq 1\;\text{and}\;\left|{u}_{*,2}\right|<1\\ \max\left\{0,\;\frac{d}{a},\;\frac{f}{c}\right\} & \text{otherwise} \end{cases},\] where \(u_{*,1}\) and \(u_{*,2}\) are the first component of the optimizers corresponding to \(\widehat{\lambda}_1\) and \(\widehat{\lambda}_2\), respectively. The definitions of \(d\), \(e\), and \(f\) are consistent with \(\widehat{A}\). The eigenvalues of the matrices \(\widehat{A}^{\star}\) (\(\star\in\{+,-\}\)) and \(\widehat{A}^+ + \widehat{A}^-\) are listed below, denoted by \(\widehat{\lambda}_{k}^{\star}\) and \(\widehat{\lambda}_{k}^{*}\) (\(k = 1,2\)): \[\begin{align} \widehat{\lambda}_k^{\star} &= \frac{(-1)^{k-1}\sigma^{\star}+{\tt sign}(\star)(2af^{\star}-{b}{e^{\star}}+2cd^{\star})}{4ac-{b}^2},\tag{23}\\ \widehat{\lambda}_k^{*} &= \frac{(-1)^{k-1}\sigma^{*}+2af^{*}-{b}{e^{*}}+2cd^{*}}{4ac-{b}^2},\tag{24} \end{align}\] where \[\begin{align} d^{*}&:=d^+-d^-,\qquad e^{*}:=e^+ - e^-,\qquad f^{*}:=f^+-f^-,\nonumber\\ \sigma^{\widehat{\star}}&:=2\sqrt{(af^{\widehat{\star}}-cd^{\widehat{\star}})^2-(af^{\widehat{\star}}+cd^{\widehat{\star}}){b}{e^{\widehat{\star}}}+ac{\left(e^{\widehat{\star}}\right)}^2+{b}^2d^{\widehat{\star}} f^{\widehat{\star}}},\quad {\widehat{\star}\in\{\star, *\}}.\label{sigma1D} \end{align}\tag{25}\] The non-negativity of the radicand in 25 is a fundamental prerequisite for the well-posedness of \(\sigma^{\widehat{\star}}\). If \(b=0\), the radicand reduces to \((af^{\widehat{\star}}-cd^{\widehat{\star}})^2+ac\big(e^{\widehat{\star}}\big)^2\ge0\). Thus, in the quadratic-form representation below, we only need to consider \(b\ne0\). We rewrite it as a symmetric quadratic form to reveal its underlying mathematical structure: \[\sigma^{\widehat{\star}} = \sqrt{\mathbf{r}^\top \mathbf{Q} \mathbf{r}}, \quad \text{where} \quad \mathbf{r} = \left( \frac{d^{\widehat{\star}}}{a}, \frac{e^{\widehat{\star}}}{b}, \frac{f^{\widehat{\star}}}{c} \right)^\top,\] and the symmetric matrix \(\mathbf{Q}\) is defined as \[\mathbf{Q} = 2ac \begin{pmatrix} 2ac & -b^2 & b^2-2ac \\ -b^2 & 2b^2 & -b^2 \\ b^2-2ac & -b^2 & 2ac \end{pmatrix}.\] We prove that \(\mathbf{Q}\) is symmetric positive semi-definite for all admissible states by verifying that all the eigenvalues of \({\boldsymbol{Q}}\) are non-negative. The three eigenvalues of \({\boldsymbol{Q}}\) \[\lambda_{\boldsymbol{Q}}^{(1)} = 0,\qquad \lambda_{\boldsymbol{Q}}^{(2)} = 6ab^2c,\qquad \lambda_{\boldsymbol{Q}}^{(3)} = 2ac(4ac-b^2)\] are all non-negative, following the definitions of \(a,b,c\) and the admissible state \({\boldsymbol{U}}_i^L\in\mathcal{G}_{\epsilon}^{(1)}\). Therefore, the quadratic form \(\langle \mathbf{r}, \mathbf{Q} \mathbf{r} \rangle\) is non-negative for all \(\mathbf{r}\), and \(\sigma^{\widehat{\star}}\) is well-defined.
The key components in computing the \(q\)-limiting factor are the eigenvalues of matrices \(\widehat{A}^{\star}\), defined in 22 . It is necessary to explicitly clarify the situation where \(\widehat{A}^{\star}\) is positive definite, positive semi-definite, or indefinite. We summarize it in the following proposition to improve the readability and rigor.
Proposition 2 (One-dimensional classification of the matrix \(\widehat{A}^{\star}\)). Assume that the low-order state \({\boldsymbol{U}}_i^L\) produced by 12 satisfies \({\boldsymbol{U}}_i^L\in \mathcal{G}_\epsilon^{(1)}\) for all \(i\), where \(\epsilon>0\). Then \(\widehat{A}^{\star}\) in 22 is
positive definite \(\iff\) sign\((\star)(2af^{\star}+2cd^{\star}-be^{\star})>0\;\) and \(\;4d^{\star}f^{\star}-(e^{\star})^2>0\),
positive semi-definite \(\iff\) sign\((\star)(2af^{\star}+2cd^{\star}-be^{\star})\geq0\;\) and \(\;4d^{\star}f^{\star}-(e^{\star})^2\geq0\),
indefinite \(\iff\) \(4d^{\star}f^{\star}-(e^{\star})^2<0\).
Proof. Since \({\boldsymbol{U}}_i^L\in \mathcal{G}_\epsilon^{(1)}\) for all \(i\), we have \(a>0\), \(c>0\), and \(4ac-b^2\geq0\). A matrix is positive definite if and only if its trace and determinant are both positive, which are consistent with sign\((\star)(2af^{\star}+2cd^{\star}-be^{\star})>0\;\) and \(\;4d^{\star}f^{\star}-(e^{\star})^2>0\) for \(\widehat{A}^{\star}\). Similar arguments can be
applied to the other two cases. ◻
Remark 1 (Two branches in the rational parameterization). The rational map 20 is two-to-one: \(u_*\) and \(1/u_*\) generate the same \(v_*\in(-1,1)\) and hence the same normal vector \({\boldsymbol{n}}_*(v_*)\). Consequently, the optimization may be restricted to either branch, \(|u_*| < 1\) or \(|u_*| > 1\), as they yield the same final result.
Remark 2 (Conservative enforcement of GQL constraints). For any fixed parameter \(v_*\in(-1,1)\), the inequality \({\boldsymbol{U}}\cdot{\boldsymbol{n}}_*(v_*) \ge \epsilon\) defines a single linear half-space. In a scalar setting, this would admit a parameter-dependent Zalesak coefficient, denoted here as \(R_i^-(v_*)\), which depends on the sign of the projected anti-diffusive flux \(\widehat{\mathcal{F}}_{i+1/2}^A\cdot{\boldsymbol{n}}_*(v_*)\). However, the admissible set \(G\) is the intersection of all such half-spaces. To guarantee that the updated solution \({\boldsymbol{U}}_i^{n+1}\) resides in \(G\), we require a single limiting coefficient that enforces the constraint uniformly* for all \(v_*\). Since the flux sign may vary with \(v_*\), we compute a cell-wise constant \(\mathcal{L}_i\) via the worst-case minimization problem 18 , ensuring that \(\mathcal{L}_i \le R_i^-(v_*)\) for all \(v_* \in (-1,1)\). We then define the (uniform) interface limiting factor as \[\label{alphaq1D} \widehat{\theta}_{i+1/2}^q := \min\{\mathcal{L}_i,\;\mathcal{L}_{i+1}\}.\tag{26}\] This construction guarantees that \({\boldsymbol{U}}_i^{n+1}\cdot{\boldsymbol{n}}_*(v_*)\ge\epsilon\) holds for all \(v_*\), which is sufficient to prove the PCP property in Theorem 1.*
Before ending this subsection, we summarize the one-dimensional PCP property.
Theorem 1 (One-dimensional PCP flux limiter). Assume that, at a given SSP-RK stage, the low-order state \({\boldsymbol{U}}_i^L\) produced by 12 satisfies \({\boldsymbol{U}}_i^L\in \mathcal{G}_\epsilon^{(1)}\) for all \(i\), where \(\epsilon>0\). Let the density limiting factors \(\theta_{i+1/2}^D\) be defined by 16 , and let the \(q\)-limiting factors \(\widehat{\theta}_{i+1/2}^q\) be defined by 26 . Define the final interface limiter by \[\label{eq:theta95final951d} \theta_{i+1/2}:=\min\bigl\{\theta_{i+1/2}^D,\;\widehat{\theta}_{i+1/2}^q\bigr\}.\tag{27}\] Then the flux-corrected update 13 satisfies \({\boldsymbol{U}}_i^{n+1}\in \mathcal{G}_\epsilon^{(1)}\) for all \(i\).
Moreover, if \({\boldsymbol{U}}_i^n\in\mathcal{G}_\epsilon^{(1)}\) and the time step satisfies the standard LF CFL condition \(\alpha\,\Delta t/\Delta x\le 1/2\), then the low-order update 12 –14 yields \({\boldsymbol{U}}_i^L\in\mathcal{G}_\epsilon^{(1)}\), and hence the overall limited high-order scheme is PCP.
Proof. The set \(\mathcal{G}_\epsilon^{(2)}\) in ?? is an intersection of half-spaces defined by the linear functionals \[\ell_D({\boldsymbol{U}}) := D({\boldsymbol{U}}) = {\boldsymbol{U}}\cdot{\boldsymbol{n}}_D,\qquad {\boldsymbol{n}}_D=(1,0,0)^\top,\] and \[\ell_{v_*}({\boldsymbol{U}}) := {\boldsymbol{U}}\cdot{\boldsymbol{n}}_*(v_*),\qquad {\boldsymbol{n}}_*(v_*):=\bigl(-\sqrt{1-v_*^2},\,-v_*,\,1\bigr)^\top,\quad v_*\in(-1,1).\] Since \(\ell_D\) and \(\ell_{v_*}\) are linear in \({\boldsymbol{U}}\), taking the dot product of 13 with a fixed \({\boldsymbol{n}}\) yields a scalar flux-corrected transport (FCT) update for the scalar quantity \(\ell_{\boldsymbol{n}}({\boldsymbol{U}}_i)\), with anti-diffusive flux \(\widehat{\mathcal{F}}_{i+1/2}^A\cdot{\boldsymbol{n}}\).
(i) Density constraint. With \({\boldsymbol{n}}={\boldsymbol{n}}_D\), the scalar FCT lower-bound limiting (Zalesak limiter) shows that choosing \(\theta_{i+1/2}\le \theta_{i+1/2}^D\) guarantees \(D({\boldsymbol{U}}_i^{n+1})={\boldsymbol{U}}_i^{n+1}\cdot{\boldsymbol{n}}_D\ge \epsilon\) for all \(i\).
(ii) GQL constraints. Fix any \(v_*\in(-1,1)\) and take \({\boldsymbol{n}}={\boldsymbol{n}}_*(v_*)\). The same scalar FCT argument shows that if the interface factors satisfy \(\theta_{i+1/2}\le \theta_{i+1/2}(v_*)\) for all interfaces, where \(\theta_{i+1/2}(v_*)\) is the Zalesak coefficient associated with \(\ell_{v_*}\), then \({\boldsymbol{U}}_i^{n+1}\cdot{\boldsymbol{n}}_*(v_*)\ge \epsilon\) for all \(i\). Our construction computes cell-wise constants \(\mathcal{L}_i\) such that \(\mathcal{L}_i\le R_i^-(v_*)\) for all \(v_*\in(-1,1)\), and then sets \(\widehat{\theta}_{i+1/2}^q=\min\{\mathcal{L}_i,\mathcal{L}_{i+1}\}\); see 26 –18 . Therefore \(\theta_{i+1/2}\le \widehat{\theta}_{i+1/2}^q\le \theta_{i+1/2}(v_*)\) for all \(v_*\), implying \({\boldsymbol{U}}_i^{n+1}\cdot{\boldsymbol{n}}_*(v_*)\ge \epsilon\) for all \(v_*\).
Combining (i)–(ii) and ?? yields \({\boldsymbol{U}}_i^{n+1}\in\mathcal{G}_\epsilon^{(2)}\) for all \(i\). By the equivalence 15 –?? , this implies \({\boldsymbol{U}}_i^{n+1}\in\mathcal{G}_\epsilon^{(1)}\). ◻
The discussions about the case \(d = 1\) in 1 can be easily generalized to \(d = 2\) and \(d = 3\). This is because the GQL tools conveniently transform the dimension of computational variables \({\boldsymbol{U}}\) and \({\widehat{\mathcal{F}}}\) into that of the introduced auxiliary ones. For uniform rectangular cells, we only need to apply the one-dimensional flux limiter in each spatial dimension separately in the finite difference framework. To make the notation clear, we use \(y\) and \(z\) to represent the other two spatial dimensions, rather than \(x_2\) and \(x_3\) in 1 . We analyze the two-dimensional case and provide a brief summary of the three-dimensional case.
The finite difference FCT scheme for the two-dimensional RHD \[{\boldsymbol{U}}_t+{\boldsymbol{F}}({\boldsymbol{U}})_x+{\boldsymbol{G}}({\boldsymbol{U}})_y = 0,\] \[{\boldsymbol{U}} = \begin{pmatrix} D \\ m_x \\ m_y \\ E \end{pmatrix}, \qquad {\boldsymbol{F}}({\boldsymbol{U}}) = \begin{pmatrix} D v_x \\ m_xv_x+p \\ m_yv_x \\ m_x \end{pmatrix}, \qquad {\boldsymbol{G}}({\boldsymbol{U}}) = \begin{pmatrix} D v_y \\ m_xv_y \\ m_yv_y+p \\ m_y \end{pmatrix}\] can be formulated as \[\label{uLF2DRHD} {\boldsymbol{U}}_{ij}^{L} := {\boldsymbol{U}}_{ij}^n -\frac{\Delta t}{\Delta x}\left(\widehat{\mathcal{F}}_{i+\frac{1}{2},j}^L-\widehat{\mathcal{F}}_{i-\frac{1}{2},j}^L\right) -\frac{\Delta t}{\Delta y}\left(\widehat{\mathcal{G}}_{i,j+\frac{1}{2}}^L-\widehat{\mathcal{G}}_{i,j-\frac{1}{2}}^L\right),\tag{28}\] \[\label{2DFE} {\boldsymbol{U}}_{ij}^{n+1} = {\boldsymbol{U}}_{ij}^L -\frac{\Delta t}{\Delta x}\left(\theta_{i+\frac{1}{2},j}\widehat{\mathcal{F}}_{i+\frac{1}{2},j}^A-\theta_{i-\frac{1}{2},j}\widehat{\mathcal{F}}_{i-\frac{1}{2},j}^A\right) -\frac{\Delta t}{\Delta y}\left(\theta_{i,j+\frac{1}{2}}\widehat{\mathcal{G}}_{i,j+\frac{1}{2}}^A-\theta_{i,j-\frac{1}{2}}\widehat{\mathcal{G}}_{i,j-\frac{1}{2}}^A\right).\tag{29}\]
The density limiter is similar to the one-dimensional case, but it requires computation in both the \(x\) and \(y\) directions. Following Zalesak’s notation [24], for a fixed vector \({\boldsymbol{n}}\), we define \[\begin{align} P^{-}_{ij} &= \Delta y\left[\min\left(0, -\widehat{\mathcal{F}}^{A}_{i+\frac{1}{2},j}\cdot{\boldsymbol{n}}\right) + \min\left(0, \widehat{\mathcal{F}}^{A}_{i-\frac{1}{2},j}\cdot{\boldsymbol{n}}\right)\right] +\Delta x\left[\min\left(0, -\widehat{\mathcal{G}}^{A}_{i,j+\frac{1}{2}}\cdot{\boldsymbol{n}}\right) + \min\left(0, \widehat{\mathcal{G}}^{A}_{i,j-\frac{1}{2}}\cdot{\boldsymbol{n}}\right)\right].\\ Q^{-}_{ij} &= \frac{\Delta x\Delta y}{\Delta t}\left(\epsilon - {\boldsymbol{U}}^{L}_{ij}\cdot{\boldsymbol{n}}\right),\quad {\boldsymbol{U}}^{L}_{ij}\;\text{is defined in }\eqref{uLF2DRHD}.\\ R^{-}_{ij} &= \begin{cases} \min\left(1, \frac{Q^{-}_{ij}}{P^{-}_{ij}}\right), & \text{if}\quad P^{-}_{ij} < 0,\\ 1,& \text{otherwise}. \end{cases} \end{align}\] Taking \({\boldsymbol{n}} = {\boldsymbol{n}}_D=(1,0,0,0)^\top\) (so that \({\boldsymbol{U}}\cdot{\boldsymbol{n}}_D=D({\boldsymbol{U}})\)) and using \(\epsilon = \min\bigl\{10^{-13},D({\boldsymbol{U}}_{ij}^L)\bigr\}\), the coefficients of the density flux limiter are \[\begin{align} \theta_{i+\frac{1}{2},j}^D = \begin{cases} R_{ij}^- & \text{if}\;\widehat{\mathcal{F}}_{i+\frac{1}{2},j}^{A}\cdot{\boldsymbol{n}}_D \geq 0, \\ R_{i+1,j}^- & \text{if}\;\widehat{\mathcal{F}}_{i+\frac{1}{2},j}^{A}\cdot{\boldsymbol{n}}_D < 0. \end{cases}, \qquad\qquad \theta_{i,j+\frac{1}{2}}^D = \begin{cases} R_{ij}^- & \text{if}\;\widehat{\mathcal{G}}_{i,j+\frac{1}{2}}^{A}\cdot{\boldsymbol{n}}_D \geq 0, \\ R_{i,j+1}^- & \text{if}\;\widehat{\mathcal{G}}_{i,j+\frac{1}{2}}^{A}\cdot{\boldsymbol{n}}_D < 0. \end{cases}, \end{align}\] where \({\boldsymbol{n}}_D:=(1,0,0,0)^\top\) here.
The limiter for \(q({\boldsymbol{U}})=E-\sqrt{D^2+|{\boldsymbol{m}}|^2}\geq\epsilon\) is a little different. The main difference lies in the dimension of the GQL auxiliary variable \({\boldsymbol{v}}_*\in\mathbb{B}_1({\boldsymbol{0}})\subseteq\mathbb{R}^2\). The GQL representation of the admissible state set in the two-dimensional case is \[\mathcal{G}_\epsilon^{\tt 2D}=\left\{{\boldsymbol{U}}\in\mathbb{R}^4 \mid D({\boldsymbol{U}})\geq\epsilon,\;{\boldsymbol{U}}\cdot{\boldsymbol{n}_*}\geq \epsilon,\;{\boldsymbol{n}_*}=\left(-\sqrt{1-|{\boldsymbol{v}}_*|^2},\;-{\boldsymbol{v}}_*^\top,\;1\right)^\top,\;\forall\;{\boldsymbol{v}}_*\in\mathbb{B}_1({\boldsymbol{0}})\subseteq\mathbb{R}^2\right\}.\] As in the one-dimensional case, we fix a small parameter \(\epsilon>0\) such that the low-order update satisfies \({\boldsymbol{U}}_{ij}^L\in \mathcal{G}_\epsilon^{\tt 2D}\) for all cells. In computation, at each SSP-RK stage we set \(\epsilon=\min\bigl\{10^{-13},\;q({\boldsymbol{U}}_{ij}^L)\bigr\}\). We generalize the stereographic-type transformation in 20 to higher dimensions (a rational parameterization of the unit ball) and obtain \[\label{2Dvstar95para} {\boldsymbol{v}}_*:=\frac{2{\boldsymbol{u}}_{*}}{1+\|{\boldsymbol{u}}_*\|_2^2} {~~ with\|{\boldsymbol{u}}_*\|_2<1 \quad \implies \quad {\boldsymbol{n}}_*({\boldsymbol{u}}_*)=\left(-\frac{1-\|{\boldsymbol{u}}_*\|_2^2}{1+\|{\boldsymbol{u}}_*\|_2^2},\;-\frac{2{\boldsymbol{u}}_{*}^\top}{1+\|{\boldsymbol{u}}_*\|_2^2},\;1\right)^\top,}\tag{30}\] which has the same form as the one-dimensional case because we apply the same parameterization for all velocity components. Therefore, it is also applicable to the three-dimensional RHD. Next comes the key step. We need to solve the following optimization problem \[(P_2): \mathcal{L}_{ij} = \min\limits_{{\boldsymbol{v}}_*\in\mathbb{B}_1({\boldsymbol{0}})\subseteq\mathbb{R}^2} \frac{Q^{-}_{ij}}{P^{-}_{ij}}.\]
Let \({\boldsymbol{w}}:=({\boldsymbol{u}}_*^\top,1)^\top\in\mathbb{R}^3\). Define \(\widehat{A}_x^{\star}:=\Delta y\widetilde{A}_x^{\star}\), \(\widehat{A}_y^{\star}:=\Delta x\widetilde{A}_y^{\star}\), and the matrix \[\label{2DQuadCoeff} \widetilde{A}_s^{\star}:=R^{-\top}A_s^{\star} R^{-1} = {\tt sign}(\star) \begin{pmatrix} \frac{d_s^{\star}}{a}\mathcal{I}_{2\times2} & \frac{d_s^{\star}{\boldsymbol{b}}-a{\boldsymbol{e}}_s^{\star}}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ \frac{d_s^{\star}{\boldsymbol{b}}^\top-a({\boldsymbol{e}}_s^{\star})^\top}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{4a^2f_s^{\star}-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}_s^{\star}+d_s^{\star}|{\boldsymbol{b}}|^2}{a\left(4ac-|{\boldsymbol{b}}|^2\right)} \end{pmatrix},\qquad s = x,y,\quad \star\in\{+,-\}\tag{31}\] with the coefficients listed in Table 2. To simplify the notation and make our presentation clearer, we introduce the following matrix and vector: \[\mathbf{M}_d = \begin{pmatrix} 1 & {\boldsymbol{0}}_d^\top & 1 \\ {\boldsymbol{0}}_d & 2\mathcal{I}_{d\times d} & {\boldsymbol{0}}_d \\ -1 & {\boldsymbol{0}}_d^\top & 1 \end{pmatrix}, \quad \mathbf{S}_d = \begin{pmatrix} \epsilon \\ {\boldsymbol{0}}_d \\ \epsilon \end{pmatrix},\] where \(d\) is consistent with the space dimension. Following the idea in the one-dimensional case and applying Lemma 1 for \(K = 4\), we have
\[\begin{align} \widehat{\mathcal{L}}_{ij}:&=\max\limits_{{\boldsymbol{w}}\in\mathbb{R}^3 \atop {\|{\boldsymbol{u}}_*\|_2<1} } \frac{\Delta y\left[\max\left(0,{\boldsymbol{w}}^\top A_x^+{\boldsymbol{w}}\right)+\max\left(0,{\boldsymbol{w}}^\top A_x^-{\boldsymbol{w}}\right)\right] +\Delta x\left[\max\left(0,{\boldsymbol{w}}^\top A_y^+{\boldsymbol{w}}\right)+\max\left(0,{\boldsymbol{w}}^\top A_y^-{\boldsymbol{w}}\right)\right]}{{\boldsymbol{w}}^\top B{\boldsymbol{w}}}\nonumber \\ &=\max\limits_{{\boldsymbol{z}}:=R{\boldsymbol{w}}\;\in\;\mathbb{R}^3 \atop {\|{\boldsymbol{u}}_*\|_2<1} } \frac{\Delta y\left[\max\left(0,{\boldsymbol{z}}^\top \widetilde{A}_x^+{\boldsymbol{z}}\right)+\max\left(0,{\boldsymbol{z}}^\top \widetilde{A}_x^-{\boldsymbol{z}}\right)\right] +\Delta x\left[\max\left(0,{\boldsymbol{z}}^\top \widetilde{A}_y^+{\boldsymbol{z}}\right)+\max\left(0,{\boldsymbol{z}}^\top \widetilde{A}_y^-{\boldsymbol{z}}\right)\right]}{{\boldsymbol{z}}^\top {\boldsymbol{z}}} \nonumber \\ &=\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1,\;{\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^-{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^-{\boldsymbol{z}}\right)\Big\},\nonumber \\ &=\max\Big\{0,\; \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1,\;{\|{\boldsymbol{u}}_*\|_2<1} }{\boldsymbol{z}}^\top \widehat{A}_x^+{\boldsymbol{z}},\;\ldots,\; \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1,\;{\|{\boldsymbol{u}}_*\|_2<1} }{\boldsymbol{z}}^\top \big(\widehat{A}_x^++\widehat{A}_x^-+\widehat{A}_y^++\widehat{A}_y^-\big) {\boldsymbol{z}}\Big\}.\label{16mat2D} \end{align}\tag{32}\]
| \(\left(a,{\bm b}^\top,c\right)^\top\) | \(\left(d_x^{\pm},({\bm e}_x^{\pm})^\top,f_x^{\pm}\right)^\top\) | \(\left(d_y^{\pm},({\bm e}_y^{\pm})^\top,f_y^{\pm}\right)^\top\) | |
|---|---|---|---|
| \(\|{\bm u}_*\|_2<1\) | \({\bf M}_2{\bf U}_{ij}^L-{\bf S}_2\) | \({\bf M}_2\widehat{\mathcal{F}}_{i\pm{1}/{2},j}^{A}\) | \({\bf M}_2\widehat{\mathcal{G}}_{i,j\pm{1}/{2}}^{A}\) |
Remark 3 (On restricting to \(\|{\boldsymbol{u}}_*\|_2<1\)). The multi-dimensional mapping 30 (and its 3D analogue) is also two-to-one: \({\boldsymbol{u}}_*\) and \({\boldsymbol{u}}_*/\|{\boldsymbol{u}}_*\|_2^2\) generate the same \({\boldsymbol{v}}_*\in\mathbb{B}_1(0)\) and hence the same normal vector \({\boldsymbol{n}}_*( {\boldsymbol{v}}_*)\). Therefore the cases \(\|{\boldsymbol{u}}_*\|_2<1\) and \(\|{\boldsymbol{u}}_*\|_2>1\) are equivalent. In practice we restrict the optimization to \(\|{\boldsymbol{u}}_*\|_2<1\); the other branch can be treated analogously.
From 32 , we see that the solution to \(\widehat{\mathcal{L}}_{ij}\) is the maximum of \(2^4=16\) maximal eigenvalues of associated matrices. Let \({\boldsymbol{s}}:=(s_1,s_2,s_3,s_4)\in\{0,1\}^4\) be an index vector, and \(\widehat{A}_{\boldsymbol{s}}:=s_1\widehat{A}_x^++s_2\widehat{A}_x^-+s_3\widehat{A}_y^++s_4\widehat{A}_y^-\) contains all 16 possible combinations that make a difference in solving 32 . The basic model of \(\widehat{A}_{\boldsymbol{s}}\) can be expressed as \[\label{basicmodel} \widehat{A}_{\boldsymbol{s}}= \begin{pmatrix} \frac{d}{a}\mathcal{I}_{2\times2} & \frac{d{\boldsymbol{b}}-a{\boldsymbol{e}}}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ \frac{d{\boldsymbol{b}}^\top-a{\boldsymbol{e}}^\top}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a(4ac-|{\boldsymbol{b}}|^2)} \end{pmatrix} = \begin{pmatrix} \frac{d}{a} & 0 & \frac{b_1d-ae_1}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ 0 & \frac{d}{a} & \frac{b_2d-ae_2}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ \frac{b_1d-ae_1}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{b_2d-ae_2}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a(4ac-|{\boldsymbol{b}}|^2)} \end{pmatrix},\tag{33}\] where \({\boldsymbol{b}}=(b_1,b_2)^\top,\;{\boldsymbol{e}}=(e_1,e_2)^\top.\) Three eigenvalues of \(\widehat{A}_{\boldsymbol{s}}\) are \[\label{basicmodel:evalue} \widehat{\lambda}_{\boldsymbol{s}}^{(k)} = \frac{(-1)^{k-1}\sigma_{\boldsymbol{s}}+2af-{\boldsymbol{b}}\cdot{\boldsymbol{e}}+2cd}{4ac-|{\boldsymbol{b}}|^2}\;\;(k=1,2),\quad \widehat{\lambda}_{\boldsymbol{s}}^{(3)} = \frac{d}{a},\tag{34}\] where \[\label{sigma2D} \sigma_{\boldsymbol{s}}:=\sqrt{4\Big((af-cd)^2-(af+cd)({\boldsymbol{b}}\cdot{\boldsymbol{e}})+ac|{\boldsymbol{e}}|^2+|{\boldsymbol{b}}|^2df\Big)-(b_1e_2-b_2e_1)^2}.\tag{35}\] The non-negativity of the radicand in 35 follows directly from the symmetric block structure of 33 . Let \[\Delta:=4ac-|{\boldsymbol{b}}|^2>0,\qquad {\boldsymbol{h}}:=\frac{d{\boldsymbol{b}}-a{\boldsymbol{e}}}{a\sqrt{\Delta}},\qquad g:=\frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a\Delta}.\] Then 33 has the eigenvalue \(d/a\) in the subspace orthogonal to \({\boldsymbol{h}}\) (with the obvious multiplicity-two degeneracy if \({\boldsymbol{h}}={\boldsymbol{0}}\)), and its two remaining eigenvalues are those of the real symmetric \(2\times2\) matrix \[\begin{pmatrix} d/a & \|{\boldsymbol{h}}\|_2 \\ \|{\boldsymbol{h}}\|_2 & g \end{pmatrix}.\] Consequently, \[\sigma_{\boldsymbol{s}}^2=\frac{\Delta^2}{4}\left(\left(g-\frac{d}{a}\right)^2+4\|{\boldsymbol{h}}\|_2^2\right)\ge0,\] which is algebraically equivalent to the radicand in 35 . Hence \(\sigma_{\boldsymbol{s}}\) is real and the eigenvalue formula 34 is well-defined for all admissible states. Since \(\sigma_{\boldsymbol{s}}\geq0\), the maximal eigenvalue of \(\widehat{A}_{\boldsymbol{s}}\) is \[\widehat{\lambda}_{\boldsymbol{s}}:=\max\left\{\widehat{\lambda}_{\boldsymbol{s}}^{(1)},\;\widehat{\lambda}_{\boldsymbol{s}}^{(3)}\right\}.\] We are also interested in the optimizer \({\boldsymbol{w}} = ({\boldsymbol{u}}_*^\top, 1)^\top\in\mathbb{R}^3\) when dealing with the additional constraint \(\|{\boldsymbol{u}}_*\|_2<1\). It can be found by multiplying the eigenvector \({\boldsymbol{z}}\) associated with the maximal eigenvalue of \(\widehat{A}_{\boldsymbol{s}}\) since we apply the substitution \({\boldsymbol{z}}=R{\boldsymbol{w}}\) to express \(\widehat{\mathcal{L}}_{ij}\) as a Rayleigh quotient. \[\begin{align} {\boldsymbol{w}}_{\boldsymbol{s}}^{(1)} &= \frac{1}{\sqrt{c-\frac{|{\boldsymbol{b}}|^2}{4a}}}\left(\frac{{\boldsymbol{b}}^\top}{2a}+\frac{(d{\boldsymbol{b}}^\top-a{\boldsymbol{e}}^\top)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2},\;1\right)^\top,\tag{36}\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(2)} &= \frac{1}{\sqrt{c-\frac{|{\boldsymbol{b}}|^2}{4a}}}\left(\frac{{\boldsymbol{b}}^\top}{2a}-\frac{(d{\boldsymbol{b}}^\top-a{\boldsymbol{e}}^\top)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2},\;1\right)^\top,\tag{37}\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(3)} &= \frac{1}{\sqrt{a}}\left(-\frac{b_2d-ae_2}{b_1d-ae_1},\;1,\;0\right)^\top,\tag{38} \end{align}\] where \[\label{basicemodel:evec95sig} \widetilde{\sigma}_{\boldsymbol{s}}^{(k)} = a\sigma_{\boldsymbol{s}}+(-1)^k\left(|{\boldsymbol{b}}|^2d+2a^2f-2acd-a{\boldsymbol{b}}\cdot{\boldsymbol{e}}\right),\quad k = 1,2.\tag{39}\] The maximal eigenvalue may not be a feasible optimal solution if its corresponding eigenvector \({\boldsymbol{w}} = ({\boldsymbol{u}}_*^\top, 1)^\top\) does not satisfy \(\|{\boldsymbol{u}}_*\|_2<1\). We list this quantity for feasibility judgment for 36 , 37 , and 38 : \[\begin{align} \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(1)}\right|^2&=\left(\frac{b_1}{2a}+\frac{(b_1d-ae_1)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}\right)^2+\left(\frac{b_2}{2a}+\frac{(b_2d-ae_2)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}\right)^2,\tag{40}\\ \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(2)}\right|^2&=\left(\frac{b_1}{2a}-\frac{(b_1d-ae_1)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}\right)^2+\left(\frac{b_2}{2a}-\frac{(b_2d-ae_2)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}\right)^2,\tag{41}\\ \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(3)}\right|^2&=\left(-\frac{b_2d-ae_2}{b_1d-ae_1}\right)^2+1^2\geq1,\;\text{and the last component of {\boldsymbol{w}}_{\boldsymbol{s}}^{(3)} is not 1}.\tag{42} \end{align}\] All the above formulations correspond to the basic model of \(\widehat{A}_{\boldsymbol{s}}\). For a given index vector \({\boldsymbol{s}}_0:=(s_1,s_2,s_3,s_4)^\top\), we can obtain \(\widehat{A}_{{\boldsymbol{s}}_0}\) by the corresponding choices of \(d\), \(e_1\), \(e_2\), and \(f\). To simplify the notation and make our presentation clearer, we introduce the base coefficient vectors: \[{\boldsymbol{V}}_d:= \begin{pmatrix} \Delta y\;d_x^+\\ -\Delta y\;d_x^-\\ \Delta x\;d_y^+\\ -\Delta x\;d_y^- \end{pmatrix}, \quad {\boldsymbol{V}}_{e_1}:= \begin{pmatrix} \Delta y\;e_x^{+,1}\\ -\Delta y\;e_x^{-,1}\\ \Delta x\;e_y^{+,1}\\ -\Delta x\;e_y^{-,1} \end{pmatrix}, \quad {\boldsymbol{V}}_{e_2}:= \begin{pmatrix} \Delta y\;e_x^{+,2}\\ -\Delta y\;e_x^{-,2}\\ \Delta x\;e_y^{+,2}\\ -\Delta x\;e_y^{-,2} \end{pmatrix}, \quad {\boldsymbol{V}}_f:= \begin{pmatrix} \Delta y\;f_x^+\\ -\Delta y\;f_x^-\\ \Delta x\;f_y^+\\ -\Delta x\;f_y^- \end{pmatrix}.\] Then the coefficients \(d,e_1,e_2,f\) associated with the index vector \({\boldsymbol{s}}_0\) are given by \[c_{\star} = {\boldsymbol{s}}_0\cdot{\boldsymbol{V}}_{c_{\star}} = \sum\limits_{i=1}^4s_i\;({\boldsymbol{V}}_{c_{\star}})_i,\qquad c_{\star}\in\{d,e_1,e_2,f\}.\] This compact representation unifies all 16 possible sign combinations.
Before the end, a special case should be verified. If the eigenvectors 36 and 37 are not well defined, i.e., \(a{\boldsymbol{e}}-d{\boldsymbol{b}}={\boldsymbol{0}}\), we should check whether it is consistent with the general formulation. In this special case, the basic model \(\widehat{A}_{\boldsymbol{s}}\) degenerates into \[\label{basicmodel:special} \widehat{A}_{\boldsymbol{s}}= \begin{pmatrix} \frac{d}{a} & 0 & 0 \\ 0 & \frac{d}{a} & 0 \\ 0 & 0 & \frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a(4ac-|{\boldsymbol{b}}|^2)} \end{pmatrix}.\tag{43}\] Three eigenvalues of \(\widehat{A}_{\boldsymbol{s}}\) are \[\label{basicmodel:specialevalue} \widehat{\lambda}_{\boldsymbol{s}}^{(1)} = \frac{4af-{\boldsymbol{b}}\cdot{\boldsymbol{e}}}{4ac-|{\boldsymbol{b}}|^2},\quad \widehat{\lambda}_{\boldsymbol{s}}^{(2)} = \frac{d}{a},\quad \widehat{\lambda}_{\boldsymbol{s}}^{(3)} = \frac{d}{a},\tag{44}\] and the maximal eigenvalue is given by \[\widehat{\lambda}_{\boldsymbol{s}} = \begin{cases} \widehat{\lambda}_{\boldsymbol{s}}^{(1)} = \frac{4af-{\boldsymbol{b}}\cdot{\boldsymbol{e}}}{4ac-|{\boldsymbol{b}}|^2} & \text{if}\;af>cd\\ \widehat{\lambda}_{\boldsymbol{s}}^{(2)} = \widehat{\lambda}_{\boldsymbol{s}}^{(3)} = \frac{d}{a} & \text{otherwise} \end{cases}.\] The associated (scaled) eigenvectors are \[\begin{align} {\boldsymbol{w}}_{\boldsymbol{s}}^{(1)} &= \frac{1}{\sqrt{c-\frac{|{\boldsymbol{b}}|^2}{4a}}}\left(\frac{{\boldsymbol{b}}^\top}{2a},\;1\right)^\top,\tag{45}\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(2)} &= \frac{1}{\sqrt{a}}\left(0,\;1,\;0\right)^\top,\tag{46}\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(3)} &= \frac{1}{\sqrt{a}}\left(1,\;0,\;0\right)^\top.\tag{47} \end{align}\] We also list the quantity for feasibility judgment for 45 , 46 , and 47 : \[\begin{align} \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(1)}\right|^2 &= \left(\frac{b_1}{2a}\right)^2+\left(\frac{b_2}{2a}\right)^2=\frac{|{\boldsymbol{b}}|^2}{4a^2},\tag{48}\\ \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(2)}\right|^2 &= 1 \geq 1 \;\text{and the last component of {\boldsymbol{w}}_{\boldsymbol{s}}^{(2)} is not 1},\tag{49}\\ \left|{\boldsymbol{u}}_{\boldsymbol{s}}^{(3)}\right|^2 &= 1 \geq 1 \;\text{and the last component of {\boldsymbol{w}}_{\boldsymbol{s}}^{(3)} is not 1}.\tag{50} \end{align}\] However, computing 16 eigenvalues may be too expensive and complex, and there exist \(2^6=64\) cases if we extend 32 to the three-dimensional case, which are impractical in application. One relaxation approach is to divide \(\widehat{\mathcal{L}}_{ij}\) into two parts, corresponding to two one-dimensional cases that we have already solved. Note that \[\begin{align} \widehat{\mathcal{L}}_{ij}&=\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^-{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^-{\boldsymbol{z}}\right)\Big\}\\ &\leq \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^-{\boldsymbol{z}}\right)\Big\}+ \max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1 \atop {\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^-{\boldsymbol{z}}\right)\Big\}. \end{align}\] For convenience, we denote \[\widehat{\mathcal{L}}_{ij}^{x}:=\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1,\;{\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_x^-{\boldsymbol{z}}\right)\Big\} =\max\left\{0,\;\widehat{\lambda}_x^+,\;\widehat{\lambda}_x^-,\;\widehat{\lambda}_x^*\right\},\] \[\widehat{\mathcal{L}}_{ij}^{y}:=\max\limits_{{\boldsymbol{z}}\in\mathbb{R}^3,\;\Vert {\boldsymbol{z}} \Vert_2=1,\;{\|{\boldsymbol{u}}_*\|_2<1} } \Big\{\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^+{\boldsymbol{z}}\right) +\max\left(0,{\boldsymbol{z}}^\top \widehat{A}_y^-{\boldsymbol{z}}\right)\Big\} =\max\left\{0,\;\widehat{\lambda}_y^+,\;\widehat{\lambda}_y^-,\;\widehat{\lambda}_y^*\right\},\] where \(\lambda_s^+\), \(\lambda_s^-\), and \(\lambda_s^*\) represent the maximal eigenvalues of \(\widehat{A}_s^+\), \(\widehat{A}_s^-\), and \(\widehat{A}_s^++\widehat{A}_s^-\) (\(s=x\) or \(y\)), respectively. We then obtain the final relaxation formulation \[\label{relax2D} \widehat{\mathcal{L}}_{ij}^{\mathcal{R}}:=\widehat{\mathcal{L}}_{ij}^{x}+\widehat{\mathcal{L}}_{ij}^{y}= \max\left\{0,\;\widehat{\lambda}_x^+,\;\widehat{\lambda}_x^-,\;\widehat{\lambda}_x^*\right\}+\max\left\{0,\;\widehat{\lambda}_y^+,\;\widehat{\lambda}_y^-,\;\widehat{\lambda}_y^*\right\},\tag{51}\] which is significantly more efficient than 32 . Here \(\widehat{\mathcal{L}}\) denotes the maximal denominator ratio in the optimization problem, not the limiter coefficient itself. Thus, for the relaxed 2D estimator, the corresponding cell-wise \(q\)-limiting factor is \[\mathcal{L}_{ij}^{q,\mathcal{R}}:= \begin{cases} 1, & \widehat{\mathcal{L}}_{ij}^{\mathcal{R}}=0,\\[1mm] \min\left\{1,\dfrac{\Delta x\Delta y}{\Delta t}\left(\widehat{\mathcal{L}}_{ij}^{\mathcal{R}}\right)^{-1}\right\}, & \widehat{\mathcal{L}}_{ij}^{\mathcal{R}}>0, \end{cases}\] with the exact estimator obtained by replacing \(\widehat{\mathcal{L}}_{ij}^{\mathcal{R}}\) by the full 16-matrix maximum in 32 . The interface factors are then assigned by the usual adjacent-cell minimum, e.g., \(\theta^q_{i+1/2,j}=\min\{\mathcal{L}_{ij}^{q},\mathcal{L}_{i+1,j}^{q}\}\) and analogously in the \(y\) direction.
Remark 4 (On the relaxed multi-dimensional estimators). The relaxed estimators 51 and 54 are sufficient* for PCP enforcement. Indeed, they replace the exact maximization over all sign combinations by a sum of directional upper bounds, which yields a conservative underestimate of the exact admissible factor (and hence a more restrictive limiter). As a result, the PCP proof remains valid, while the number of eigenvalue evaluations is substantially reduced; see Section 4.3 for the trade-off analysis of computational cost and numerical dissipation.*
Finally, we briefly explain how to implement our flux limiter in the three-dimensional RHD, which is very similar to the two-dimensional case, and only the different parts will be listed. The FCT finite difference scheme for three-dimensional uniform rectangular meshes can be formulated by \[\label{uLF3DRHD} {\boldsymbol{U}}_{ijk}^{L} := {\boldsymbol{U}}_{ijk}^n -\frac{\Delta t}{\Delta x}\left(\widehat{\mathcal{F}}_{i+\frac{1}{2},j,k}^L-\widehat{\mathcal{F}}_{i-\frac{1}{2},j,k}^L\right) -\frac{\Delta t}{\Delta y}\left(\widehat{\mathcal{G}}_{i,j+\frac{1}{2},k}^L-\widehat{\mathcal{G}}_{i,j-\frac{1}{2},k}^L\right) -\frac{\Delta t}{\Delta z}\left(\widehat{\mathcal{H}}_{i,j,k+\frac{1}{2}}^L-\widehat{\mathcal{H}}_{i,j,k-\frac{1}{2}}^L\right),\tag{52}\] \[\begin{align} {\boldsymbol{U}}_{ijk}^{n+1} = {\boldsymbol{U}}_{ijk}^L &-\frac{\Delta t}{\Delta x}\left(\theta_{i+\frac{1}{2},j,k}\widehat{\mathcal{F}}_{i+\frac{1}{2},j,k}^A-\theta_{i-\frac{1}{2},j,k}\widehat{\mathcal{F}}_{i-\frac{1}{2},j,k}^A\right)\\ &-\frac{\Delta t}{\Delta y}\left(\theta_{i,j+\frac{1}{2},k}\widehat{\mathcal{G}}_{i,j+\frac{1}{2},k}^A-\theta_{i,j-\frac{1}{2},k}\widehat{\mathcal{G}}_{i,j-\frac{1}{2},k}^A\right) -\frac{\Delta t}{\Delta z}\left(\theta_{i,j,k+\frac{1}{2}}\widehat{\mathcal{H}}_{i,j,k+\frac{1}{2}}^A-\theta_{i,j,k-\frac{1}{2}}\widehat{\mathcal{H}}_{i,j,k-\frac{1}{2}}^A\right), \end{align}\] where \({\widehat{\mathcal{F}}}\), \({\widehat{\mathcal{G}}}\), and \({\widehat{\mathcal{H}}}\) represent the numerical fluxes in \(x\), \(y\), and \(z\) direction, respectively. The three-dimensional case can share the same framework as the two-dimensional one, except for the definitions of the following quantities related to the spatial dimension \[\begin{align} P^{-}_{ijk} &= \Delta y\Delta z\left[\min\left(0, -\widehat{\mathcal{F}}^{A}_{i+\frac{1}{2},j,k}\cdot{\boldsymbol{n}}_*\right) + \min\left(0, \widehat{\mathcal{F}}^{A}_{i-\frac{1}{2},j,k}\cdot{\boldsymbol{n}}_*\right)\right]\\ &+\Delta x\Delta z\left[\min\left(0, -\widehat{\mathcal{G}}^{A}_{i,j+\frac{1}{2},k}\cdot{\boldsymbol{n}}_*\right) + \min\left(0, \widehat{\mathcal{G}}^{A}_{i,j-\frac{1}{2},k}\cdot{\boldsymbol{n}}_*\right)\right]\\ &+\Delta x\Delta y\left[\min\left(0, -\widehat{\mathcal{H}}^{A}_{i,j,k+\frac{1}{2}}\cdot{\boldsymbol{n}}_*\right) + \min\left(0, \widehat{\mathcal{H}}^{A}_{i,j,k-\frac{1}{2}}\cdot{\boldsymbol{n}}_*\right)\right].\\ Q^{-}_{ijk} &= \frac{\Delta x\Delta y\Delta z}{\Delta t}\left(\epsilon - {\boldsymbol{U}}^{L}_{ijk}\cdot{\boldsymbol{n}}_*\right),\quad {\boldsymbol{U}}^{L}_{ijk}\;\text{is defined in }\eqref{uLF3DRHD}.\\ R^{-}_{ijk} &= \begin{cases} \min\left(1, \frac{Q^{-}_{ijk}}{P^{-}_{ijk}}\right), & \text{if}\quad P^{-}_{ijk} < 0,\\ 1,& \text{otherwise}. \end{cases} \end{align}\]
The formulations of the model matrix \(\widehat{A}_{\boldsymbol{s}}\) and its associated eigenpairs share the same form as 33 , 34 , 36 , 37 , and 38 but only differ in the size of \({\boldsymbol{b}}\) and \({\boldsymbol{e}}\). \[\widehat{A}_{\boldsymbol{s}}= \begin{pmatrix} \frac{d}{a}\mathcal{I}_{3\times 3} & \frac{d{\boldsymbol{b}}-a{\boldsymbol{e}}}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ \frac{d{\boldsymbol{b}}^\top-a{\boldsymbol{e}}^\top}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a(4ac-|{\boldsymbol{b}}|^2)} \end{pmatrix} = \begin{pmatrix} \frac{d}{a} & 0 & 0 & \frac{b_1d-ae_1}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ 0 & \frac{d}{a} & 0 & \frac{b_2d-ae_2}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ 0 & 0 & \frac{d}{a} & \frac{b_3d-ae_3}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} \\ \frac{b_1d-ae_1}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{b_2d-ae_2}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{b_3d-ae_3}{a\sqrt{4ac-|{\boldsymbol{b}}|^2}} & \frac{4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d}{a(4ac-|{\boldsymbol{b}}|^2)} \end{pmatrix},\] where \({\boldsymbol{b}}=(b_1,b_2,b_3)^\top,\;{\boldsymbol{e}}=(e_1,e_2,e_3)^\top.\)
| Dimension | matrix size | # eigenproblems (exact) | # eigenproblems (relaxed) |
|---|---|---|---|
| 1D | \(2\times2\) | \(3\) | – |
| 2D | \(3\times3\) | \(16\) | \(6\) |
| 3D | \(4\times4\) | \(64\) | \(9\) |
There is one more repeated eigenvalue compared with 34 : \[\widehat{\lambda}_{\boldsymbol{s}}^{(k)} = \frac{(-1)^{k-1}\sigma_{\boldsymbol{s}}+2af-{\boldsymbol{b}}\cdot{\boldsymbol{e}}+2cd}{4ac-|{\boldsymbol{b}}|^2}\;\;(k=1,2),\quad \widehat{\lambda}_{\boldsymbol{s}}^{(3)} = \widehat{\lambda}_{\boldsymbol{s}}^{(4)} = \frac{d}{a},\] where \[\begin{align} &\sigma_{\boldsymbol{s}}:=\sqrt{4\Big((af-cd)^2-(af+cd)({\boldsymbol{b}}\cdot{\boldsymbol{e}})+ac|{\boldsymbol{e}}|^2+|{\boldsymbol{b}}|^2df\Big)-{|{\boldsymbol{b}}\times{\boldsymbol{e}}|^2}},\label{sigma3D}\\ &{{\boldsymbol{b}}\times{\boldsymbol{e}}=\left(b_2e_3-b_3e_2,\;b_3e_1-b_1e_3,\;b_1e_2-b_2e_1\right)^\top.\nonumber} \end{align}\tag{53}\] Similarly, the radicand of \(\sigma_{\boldsymbol{s}}\) in 53 is non-negative by the same block-structure argument. With \(\Delta:=4ac-|{\boldsymbol{b}}|^2>0\), \({\boldsymbol{h}}:=(d{\boldsymbol{b}}-a{\boldsymbol{e}})/(a\sqrt{\Delta})\), and \(g:=(4a^2f-2a{\boldsymbol{b}}\cdot{\boldsymbol{e}}+|{\boldsymbol{b}}|^2d)/(a\Delta)\), the \(4\times4\) matrix above has the repeated eigenvalue \(d/a\) on the two-dimensional subspace orthogonal to \({\boldsymbol{h}}\), while the two non-repeated eigenvalues are determined by the same real symmetric \(2\times2\) block with entries \(d/a\), \(\|{\boldsymbol{h}}\|_2\), and \(g\). Thus \[\sigma_{\boldsymbol{s}}^2=\frac{\Delta^2}{4}\left(\left(g-\frac{d}{a}\right)^2+4\|{\boldsymbol{h}}\|_2^2\right)\ge0,\] which is equivalent to the radicand in 53 . This guarantees the well-posedness of the 3D eigenvalue formulas. The associated eigenvectors are \[\begin{align} {\boldsymbol{w}}_{\boldsymbol{s}}^{(1)} &= \frac{1}{\sqrt{c-\frac{|{\boldsymbol{b}}|^2}{4a}}}\left( \frac{b_1}{2a}+\frac{(b_1d-ae_1)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, \frac{b_2}{2a}+\frac{(b_2d-ae_2)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, \frac{b_3}{2a}+\frac{(b_3d-ae_3)\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, 1\right)^\top,\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(2)} &= \frac{1}{\sqrt{c-\frac{|{\boldsymbol{b}}|^2}{4a}}}\left( \frac{b_1}{2a}-\frac{(b_1d-ae_1)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, \frac{b_2}{2a}-\frac{(b_2d-ae_2)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, \frac{b_3}{2a}-\frac{(b_3d-ae_3)\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}}{2a\|a{\boldsymbol{e}}-d{\boldsymbol{b}}\|_2^2}, 1\right)^\top,\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(3)} &= \frac{1}{\sqrt{a}}\left(-\frac{b_2d-ae_2}{b_1d-ae_1},1,0,0\right)^\top,\\ {\boldsymbol{w}}_{\boldsymbol{s}}^{(4)} &= \frac{1}{\sqrt{a}}\left(-\frac{b_3d-ae_3}{b_1d-ae_1},0,1,0\right)^\top, \end{align}\] where \(\widetilde{\sigma}_{\boldsymbol{s}}^{(1)}\) and \(\widetilde{\sigma}_{\boldsymbol{s}}^{(2)}\) share the same definition in 39 . The judgment for the feasibility of eigenvectors and the special case of \(\widehat{A}_{\boldsymbol{s}}\) are very similar to the two-dimensional case, and hence we omit them here.
Since solving \(2^6=64\) Rayleigh quotients is impractical, we suggest using the relaxation approach similar to 51 , which is also adopted and shown in the numerical results. \[\label{relax3D} \widehat{\mathcal{L}}_{ijk}^{\mathcal{R}}:= \sum_{s\in\{x,y,z\}}\max\Bigl\{0,\;\widehat{\lambda}_{\boldsymbol{s}}^{+},\;\widehat{\lambda}_{\boldsymbol{s}}^{-},\;\widehat{\lambda}_{\boldsymbol{s}}^{*}\Bigr\},\tag{54}\] where \(\widehat{\lambda}_{\boldsymbol{s}}^{+}\), \(\widehat{\lambda}_{\boldsymbol{s}}^{-}\) and \(\widehat{\lambda}_{\boldsymbol{s}}^{*}\) denote the maximal eigenvalues of \(\widehat{A}_{\boldsymbol{s}}^{+}\), \(\widehat{A}_{\boldsymbol{s}}^{-}\) and \(\widehat{A}_{\boldsymbol{s}}^{+}+\widehat{A}_{\boldsymbol{s}}^{-}\), respectively. The relaxed estimator 54 reduces the number of eigenvalue evaluations from \(2^6=64\) to \(3\times 3=9\) per cell, and the corresponding 3D cell-wise factor is obtained analogously as \(\mathcal{L}_{ijk}^{q,\mathcal{R}}=1\) when \(\widehat{\mathcal{L}}_{ijk}^{\mathcal{R}}=0\), and otherwise \(\mathcal{L}_{ijk}^{q,\mathcal{R}}=\min\{1,(\Delta x\Delta y\Delta z)/(\Delta t\,\widehat{\mathcal{L}}_{ijk}^{\mathcal{R}})\}\).
The new estimator reduces the determination of the \(q\)-limiting factor to a small number of symmetric eigenvalue problems of size \((d{+}1)\times(d{+}1)\). In 1D, the maximization is reduced to three \(2\times2\) eigenvalue problems, and in 2D and 3D, the exact estimators require \(2^4=16\) and \(2^6=64\) eigenvalue evaluations per cell, respectively. The relaxed variants 51 and 54 significantly reduce this number (see Table 3 for details) while remaining robust in all tests reported in Section 5.
In addition, the symmetric matrices arising from the GQL parameterization have a special low-rank structure, and their maximal eigenvalues (and eigenvectors when needed) can be evaluated by closed-form formulas; see 23 –24 in 1D and 34 and 36 in 2D/3D. This avoids iterative root finding and makes the limiter well suited for large-scale simulations.
As noted in Remark 4, the relaxed estimators are conservative lower bounds on the exact limiting factor, which introduces a small amount of additional numerical dissipation in theory. However, extensive numerical benchmarks in Section 5 demonstrate that this dissipation is negligible or acceptable in practice. This minimal accuracy loss is more than offset by the dramatic reduction in computational cost.
This completes the description of our PCP flux limiting framework. To facilitate reproducibility, 7 provides complete pseudocode, and Section 5 lists all computational parameters, including grids, CFL numbers, final times, etc., used in the experiments.
| Flux limiter | \(N_x\times N_y\) | \(L^1\) norm | \(L^2\) norm | |||
|---|---|---|---|---|---|---|
| 3-4 (r)5-6 | error | order | error | order | ||
| Without relaxation [16mat2D] | \(8\times8\) | 1.7455e-02 | – | 1.8592e-02 | – | |
| \(16\times16\) | 8.6992e-04 | 4.3266 | 1.0609e-03 | 4.1313 | ||
| \(32\times32\) | 2.8496e-05 | 4.9320 | 3.3626e-05 | 4.9795 | ||
| \(64\times64\) | 8.6622e-07 | 5.0399 | 1.0034e-06 | 5.0667 | ||
| \(128\times128\) | 2.6647e-08 | 5.0227 | 3.0419e-08 | 5.0437 | ||
| \(256\times256\) | 8.3183e-10 | 5.0015 | 9.3642e-10 | 5.0217 | ||
| With relaxation [relax2D] | \(8\times8\) | 1.7455e-02 | – | 1.8592e-02 | – | |
| \(16\times16\) | 8.6992e-04 | 4.3266 | 1.0609e-03 | 4.1313 | ||
| \(32\times32\) | 2.8496e-05 | 4.9320 | 3.3626e-05 | 4.9795 | ||
| \(64\times64\) | 8.6622e-07 | 5.0399 | 1.0034e-06 | 5.0667 | ||
| \(128\times128\) | 2.6647e-08 | 5.0227 | 3.0419e-08 | 5.0437 | ||
| \(256\times256\) | 8.3183e-10 | 5.0015 | 9.3642e-10 | 5.0217 | ||
In this section, we present a series of numerical experiments to validate the performance of the proposed flux-limited high-order accurate method for the one-dimensional (1D), two-dimensional (2D), and three-dimensional (3D) RHD. The primary objective
is to verify that the implemented flux limiter preserves the designed spatial accuracy when coupled with the classical fifth-order WENO (WENO5) reconstruction. This is examined using smooth problems where the formal convergence order can be measured. A key
focus of the tests is to demonstrate the robustness granted by the flux limiter’s ability to enforce the admissible states of the relativistic system. Several challenging benchmark problems, including strong shocks, ultra-relativistic Riemann problems, and
multi-dimensional jets, are simulated. Without the limiting procedure, the standard WENO5 would break down due to the generation of nonphysical solutions. Furthermore, comparison results will be shown between our novel flux limiter and the
Wu-Tang limiter [5]. These experiments, therefore, underscore the necessity of the PCP mechanism and simultaneously assess the resolution
in capturing complex wave structures. For time integration, we employ the third-order strong-stability-preserving Runge–Kutta method. The CFL number is set to 0.4, and the ideal equation of state 4 is used in all cases, with the
adiabatic index set to \(\Gamma=5/3\), unless otherwise specified.


Figure 1: Example 1: The numerical results obtained using WENO5 with the proposed PCP flux limiter. Left: 10 iso-surfaces of \(\rho\) equally spaced from 0 to 2; right: \(l^1\), \(l^2\), and \(l^{\infty}\) errors in \(\rho\) at different grid resolutions..
Example 1 (Accuracy test). This example tests a smooth sine wave propagating periodically in the domain \([0,1]^k\), \(k=2,3\), aiming to investigate the accuracy of our proposed scheme in two and three dimensions. In the algorithm implementation, we explore two strategies for handling the flux limiter parameters: a non-relaxed version 32 and a relaxed version 51 . In all smooth-solution convergence tests, we follow the standard WENO accuracy-verification strategy of Jiang and Shu [57], also used in [5], [12]. Although the SSP-RK3 time discretization is third-order accurate, the time step is deliberately reduced according to \[\Delta t=C\left(\sum_{\ell=1}^k \frac{1}{\Delta x_\ell}\right)^{-p/q},\qquad p=5,\quad q=3,\] with \(C=0.4\) and \(k\) the space dimension of the smooth test. Therefore \(O(\Delta t^3)=O(h^5)\) on uniform grids, so the temporal error does not mask the fifth-order spatial convergence being measured. For the 2D case, the initial conditions are given by \[\boldsymbol{V}(x,y,0) = \left(1+0.999\;{\rm sin}(2\pi(x+y)),\;0.99/\sqrt{2},\;0.99/\sqrt{2},\;0.001\right)^\top,\] with the exact solution of the rest-mass density \[\label{exact2D} \rho(x,y,t) = 1+0.999\;{\rm sin}\left(2\pi(x+y-0.99\sqrt{2}t)\right).\tag{55}\] Uniform grids are used with mesh size \(\Delta x=\Delta y = \frac{1}{N}\), where \(N \in \{8,16,32,64,128,256\}\). The time step-size is chosen to match the spatial accuracy: \(\Delta t = {0.4}\left({\frac{1}{\Delta x}+\frac{1}{\Delta y}}\right)^{-\frac{5}{3}}\). We report the \(L^1\) and \(L^2\) errors at \(t = 0.1\) for the rest-mass density and corresponding orders obtained by the WENO5 scheme combined with flux limiters 32 and 51 in Table 4. The results show that the proposed scheme achieves fifth-order accuracy, consistent with its theoretical order. In this smooth setting the physical constraints are not active, and the computed limiting factors stay very close to one, so the limiter does not degrade the design accuracy. For the 3D case, the initial data are \[\boldsymbol{V}(x,y,z,0) = \left(1+0.999\;{\rm sin}(2\pi(x+y+z)),\;0.99/\sqrt{3},\;0.99/\sqrt{3},\;0.99/\sqrt{3},\;0.001\right)^\top.\] The exact solution of the rest-mass density is \[\rho(x,y,z,t) = 1+0.999\;{\rm sin}\left(2\pi(x+y+z-0.99\sqrt{3}t)\right).\] Due to the complexity of directly computing and comparing 64 eigenvalues in 3D, only the relaxed version of the flux limiter is employed here. To investigate the spatial accuracy, we set the mesh size as \(\Delta x=\Delta y=\Delta z = \frac{1}{N}\) with varying \(N \in \{10,20,40,80,160\}\). The time step is set as \(\Delta t = {0.4}\left({\frac{1}{\Delta x}+\frac{1}{\Delta y}+\frac{1}{\Delta z}}\right)^{-\frac{5}{3}}\). In Fig. 1, we present a 3D iso-surface plot of the rest-mass density using the numerical solution on a \(160\times160\times160\) grid, and show the log-log graphs of the \(L^1\), \(L^2\), and \(L^\infty\) errors versus \(N\) at \(t = 0.1\). The slopes of all error lines are close to -5, indicating that the proposed scheme exhibits fifth-order spatial convergence in 3D case, which aligns with theoretical expectations.
Figure 2: Example 2: Numerical results for \(\rho,\;v_1,\;p\) obtained using WENO5 with the relaxed PCP flux limiter at \(t = 0.45\).. a — \(\rho\), b — Close-up of \(\rho\), c — \(v_1\), d — \(p\)
For discontinuous solutions such as Riemann problems, formal convergence order does not apply, and the error is concentrated in a narrow region around shocks and contact discontinuities. The primary goal of numerical methods for such problems is to produce sharp, non-oscillatory shock profiles while preserving physical constraints.
Figure 3: Spatiotemporal distribution of the proposed flux limiter coefficient \(\theta(x,t)\) computed with WENO5. Activation regions align with shock discontinuities and track wave trajectories. The color scale represents the value of \(\theta_{i+1/2}\), ranging from 0 to 1.. a — Example 2, b — Example 3
Example 2. (1D Riemann problem) We simulate a demanding Riemann problem within the domain \([0,1]\). The initial conditions are as follows: \[\boldsymbol{V}(x,0)= \begin{cases}
(1,0,10^{4})^\top,& x<0.5,\\ (1,0,10^{-8})^\top,& x>0.5. \end{cases}\] The outflow boundary conditions are applied. The solution at final time \(t=0.45\) develops a strong leftward rarefaction, a
rightward contact discontinuity, and a rightward shock. The latter two waves propagate at velocities exceedingly close to the speed of light (approximately 0.986956 and 0.9963757), rendering the simulation highly challenging. A key difficulty lies in
resolving the extremely narrow region between the contact discontinuity and the shock front, which has a theoretical width of about \(4.2\times10^{-3}\) at \(t = 0.45\). Fig. 2 compares the numerical solutions obtained using our proposed GQL-based flux limiter against the iterative limiter of Wu and Tang [5]. While both methods preserve positivity, the proposed scheme (circles) exhibits visibly sharper resolution of the contact discontinuity and the shock front compared to the Wu-Tang limiter (squares). This
improvement is attributed to the exact determination of the locally optimal limiting parameter, avoiding the over-dissipation. To further quantify the performance of the proposed flux limiter and analyze its activation behavior, Fig. 3 (a) shows the spatiotemporal distribution of the flux limiter coefficient \(\theta(x,t)\), which is consistent with the wave structure.
Figure 4: Example 3: Numerical results for \(\rho,\;v_1,\;p\) obtained using WENO5 or AiWENO5-Z with the proposed PCP flux limiter at \(t = 2\).. a — \(\rho\), b — Close-up of \(\rho\), c — \(v_1\), d — \(p\)
Example 3. (Shock heating problem)We consider a shock heating test in this example. The initial data are prescribed as \[\boldsymbol{V}(x,0)= (1,1-10^{-10},{10^{-4}}/{3})^\top,\quad 0<x<1.\] At \(x = 1\), a reflective boundary condition is imposed, while the left boundary \(x=0\) allows free inflow. Physically, this setup describes a cold, ultra-relativistic gas stream moving to the right toward a fixed wall. Upon impact, the kinetic energy is converted into thermal energy, resulting in strong compression and the formation of a left-propagating shock. The shock speed can be derived analytically as \(v_s=\frac{(\Gamma-1)W_0|v_0|}{W_0+1}\), where \(\Gamma=4/3\), \(v_0=1-10^{-10}\), and \(W_0=(1-v_0^2)^{-1/2}\approx70710.675\). Behind the shock, the gas is at rest and attains a specific internal energy of \(W_0-1\).
To demonstrate the generality of the proposed limiter, we also incorporate our GQL-based flux limiter into the fifth-order Ai-WENO-Z scheme (AiWENO5-Z) [61]. Fig. 4 presents the profiles of rest-mass density \(\rho\), velocity \(v_1\), and pressure \(p\) at \(t=2\) computed by either WENO5 or AiWENO5-Z with our flux limiter on a mesh of 200 uniform cells. The exact solution is provided for reference. It is noteworthy that without the flux limiter, both the finite difference WENO5 and AiWENO5-Z scheme would produce non-physical solutions and break down during the simulation. The AiWENO5-Z solution exhibits higher resolution near the shock as expected. We also provide pointwise error plots in Fig. 5, which implies that the error is concentrated in a narrow region around the shock, consistent with WENO’s accuracy behavior. The tiny oscillations are visible immediately behind the reflected shock, which are also observed in [5]. Critically, this behavior is not unique to our flux limiter, but rather a general property of high-order shock-capturing methods. Although a slight wall-heating phenomenon persists near the reflective boundary \(x=1\), the overall solution exhibits excellent stability and high resolution. Fig. 3 (b) presents the spatiotemporal distribution of \(\theta(x,t)\) for the shock heating problem. In this problem, the flux limiter \(\theta\) takes values of 0 or 1 in nearly the entire domain, and intermediate values only exist in an extremely narrow band right at the shock front. The activation region forms a straight line that exactly coincides with the trajectory of the left-propagating reflected shock wave, demonstrating the limiter’s precise shock-tracking capability.
Figure 5: Example 3: Plots of error between numerical and exact solution \(u-u_{\tt ex}\) at \(t = 2\) obtained by WENO5 or AiWENO5-Z with the proposed PCP flux limiter.. a — Error plot for \(\rho\), b — Error plot for \(p\)
Example 4. (2D Riemann problems).In this example, we simulate two challenging 2D Riemann problems to verify the robustness and bound-preserving property of our flux limiter. The computational domain is set to \([0,1]^2\) with outflow boundary conditions imposed on all boundaries. The maximum fluid velocity in both problems is close to the speed of light, presenting significant challenges for numerical simulation. We employ a uniform mesh with \(400\times400\) cells to assess the performance of WENO5, using the PCP limiter with the estimator 32 and its relaxed variant 51 .
The initial conditions for the two 2D Riemann problems are given by \[\boldsymbol{V}(x,y,0) = \begin{cases} (0.1, 0, 0, 20)^\top, & x>0.5,\;y>0.5,\\ (0.00414329639576, 0.9946418833556542, 0, 0.05)^\top, &
x<0.5,\;y>0.5,\\ (0.01, 0, 0, 0.05)^\top, & x<0.5,\;y<0.5,\\ (0.00414329639576, 0, 0.9946418833556542, 0.05)^\top, & \text{otherwise}, \end{cases}\] and \[\boldsymbol{V}(x,y,0) = \begin{cases} (0.1, 0,
0, 0.01)^\top & x>0.5,\;y>0.5,\\ (0.1, 0.99, 0, 1)^\top & x<0.5,\;y>0.5,\\ (0.5, 0, 0, 1)^\top & x<0.5,\;y<0.5,\\ (0.1, 0, 0.99, 1)^\top &\text{otherwise}. \end{cases}\] Fig. 6 and
Fig. 8 display the logarithmic rest-mass density \(\ln\rho\) at \(t = 0.4\) for the first and second Riemann problems, respectively. The proposed scheme
captures the intricate structures, including the sharp jet-like spike, the curved shocks, and the finely resolved mushroom cloud with high resolution. In both simulations, the solution remains strictly within the physical bounds, demonstrating that the
present method maintains high resolution while preserving stability and physical constraints. To see the advantages in the resolution of complex wave structures, we further show the results of the rest-mass density, obtained by WENO5 with both proposed PCP
flux limiters and the Wu-Tang one, over several 1D lines (see Fig. 7), or plot the global minimum of \(\theta_{i,j}\) in each step over time (see Fig. 9). These plots validate the high resolution of our proposed PCP flux limiter. The mild oscillations visible near the shock in Fig. 7 (a) are inherent to the WENO5 reconstruction
on this coarse grid and remain bounded; crucially, they do not violate any physical admissibility constraint.
To quantify the difference between the exact and relaxed implementations of the proposed flux limiter, Fig. 10 shows the natural logarithm of the absolute pointwise density difference, i.e., the logarithm \(\log(|\rho_{\text{\tt ex}}-\rho_{\text{\tt re}}|)\), where \(\rho_{\text{\tt ex}}\) and \(\rho_{\text{\tt re}}\) denote the results obtained with the exact limiter 32 and the relaxed limiter 51 , respectively. The comparison demonstrates that the differences are extremely small:
For the first 2D Riemann problem, the maximum pointwise difference is approximately \(3.3290 \times 10^{-5}\), and the average difference is approximately \(2.5839 \times 10^{-8}\).
For the second 2D Riemann problem, the maximum pointwise difference is approximately \(4.4900 \times 10^{-5}\), and the average difference is approximately \(3.0354 \times 10^{-8}\).
These differences are orders of magnitude smaller than the solution amplitude, confirming that the relaxed flux limiter does not introduce excessive or unnecessary numerical dissipation, while providing dramatic computational savings.
Figure 6: First 2D Riemann problem in Example 4: The contours of \(\log\rho\) at \(t = 0.4\)
obtained by WENO5 with different flux limiters. 25 equally spaced contour lines from -8 to -2.3 are displayed.. a — \(\log \rho\), flux limiter 32 ., b — \(\log
\rho\), flux limiter 51 ., c — \(\log \rho\), Wu-Tang flux limiter.
Figure 7: Same as Fig. 6 except for \(\rho\) along different lines.. a — \(\rho\) along \(x+y=0.6\)., b — \(\rho\) along \(x+y=0.67\)., c — \(\rho\) along \(x=y\)., d — \(\rho\) along \(y=0.2\).
Figure 8: Second 2D Riemann problem in Example 4: The contours of \(\log\rho\) at \(t = 0.4\)
obtained by WENO5 with different flux limiters. 25 equally spaced contour lines from -6 to 1.9 are displayed.. a — \(\log \rho\), flux limiter 32 ., b — \(\log
\rho\), flux limiter 51 ., c — \(\log \rho\), Wu-Tang flux limiter.
Figure 9: Example 4: Comparison of \(\min\limits_{i,j}\left\{\theta_{i+1/2,j},\;\theta_{i,j+1/2}\right\}\) between different flux limiters over time.. a — First 2D Riemann problem., b — Second 2D Riemann problem.
Figure 10: Example 4: Contours of the logarithm \(\log(|\rho_{\text{\tt ex}}-\rho_{\text{\tt re}}|)\) at \(t=0.4\) obtained by WENO5, where \(\rho_{\text{\tt ex}}\) and \(\rho_{\text{\tt re}}\) denote the density computed with the exact and relaxed flux limiters, respectively. 25 equally spaced contour levels are displayed.. a — Error logarithm for first 2D Riemann problem., b — Error logarithm for second 2D Riemann problem.
Example 5. (Shock-Vortex interaction problem) This example examines the interaction between a shock wave and a vortex, a problem previously studied in [37], [62]. The initial condition is given by \[\begin{gather} \mathbf{V}(x,y,0) = \begin{cases} \mathbf{V}_{\rm L}, & x < -6, \\[5pt] \mathbf{V}_{\rm vortex}, & x \ge -6, \end{cases} \qquad{\rm with}\\ \mathbf{V}_{\rm L}=\Big(4.891497310766981,-0.388882958251919,0,11.894863258311670\Big)^\top,\\ \mathbf{V}_{\rm vortex}=\left( \left(\hat{\theta}(x,y)\right)^\frac{1}{\Gamma-1}, \frac{w_1(x,y)-v_c}{1-v_c \, w_1(x,y)}, \frac{\sqrt{1-v_c^2}\;w_2(x,y)}{1-v_c \, w_1(x,y)}, \left(\hat{\theta}(x,y)\right)^\frac{\Gamma}{\Gamma-1} \right)^\top, \end{gather}\] where the functions \(\hat{\theta}\), \(w_1\), and \(w_2\) are given by \[\hat{\theta}(x,y) = 1-\frac{{\varepsilon_{\rm vtx}^2}}{28\pi^2} \, \mathrm{e}^{1-\frac{x^2}{1-v_c^2}-y^2}, ~ w_1(x,y) = -y \hat{f}(x,y), ~ w_2(x,y) = \frac{x}{\sqrt{1-v_c^2}}\hat{f}(x,y),\] with \[\hat{f}(x,y) = \sqrt{\frac{\beta}{1+\beta\left(\frac{x^2}{1-v_c^2}+y^2\right)}},\quad \beta = \frac{\frac{{\varepsilon_{\rm vtx}^2}}{10\pi^2}\;\mathrm{e}^{1-\frac{x^2}{1-v_c^2}-y^2}}{1.8-\frac{{\varepsilon_{\rm vtx}^2}}{20\pi^2}\;\mathrm{e}^{1-\frac{x^2}{1-v_c^2}-y^2}}.\] This setup ensures that \[\lim_{x\rightarrow -6^-} \mathbf{V}(x,y,0) = \mathbf{V}_{\rm L}, \quad \lim_{x\rightarrow -6^+} \mathbf{V}(x,y,0) \approx \left(1,-0.9, 0, 1\right)^\top,\] which represents a stationary shock at \(x = -6\). On the right side of the shock, an initially centered vortex at \((0,0)\) moves leftward with a speed of \(v_c=0.9\). To demonstrate the robustness of our flux limiter, we investigate a challenging case with a vortex strength set to \({\varepsilon_{\rm vtx}=10.0828}\). The computational domain is \([-17,3] \times [-5,5]\) with reflective boundary conditions at \(y = \pm5\), inflow at \(x=3\), and outflow at \(x=-17\). We solve this problem up to \(t = 19\) using WENO5 with both versions of our flux limiter 32 and 51 on a uniform grid with \(\Delta x = \Delta y = 1/40\). The contour plots of \(\log_{10}(1+|\nabla \rho|)\) are presented in Fig. 11. As the vortex interacts with the stationary shock wave, intricate wave structures emerge. The WENO5 scheme, incorporating either our flux limiter 32 or 51 , effectively captures these wave patterns. The difference between the two implementations of our flux limiter, approximately \(6.77\times10^{-4}\) in \(l^{\infty}\) norm, is much smaller than the solution amplitude, demonstrating the accuracy of the relaxed limiter 51 .
Figure 11: Example 5: Contour plots of \({\rm log}_{10}(1+|\nabla \rho|)\) at \(t = 19\), obtained using WENO5.. a — With flux limiter 32 ., b — With flux limiter 51 .
Example 6. (2D Relativistic jets) Relativistic jets are frequently observed in astrophysical phenomena such as active galactic nuclei. Due to the potential development of complex flow features, including strong relativistic shocks, shear layers, and interface instabilities, numerical simulations for relativistic jets are extremely challenging.
We examine three configurations of the pressure-matched, highly supersonic jet model with increasingly extreme relativistic characteristics. The initial states of the ambient flow are defined as: \[\begin{align} {\boldsymbol{V}}_1(x,y,0) &= \left(1,0,0,2.3536240721718810\times10^{-5}\right)^\top,\tag{56}\\ {\boldsymbol{V}}_2(x,y,0) &= \left(1,0,0,2.3966375079777595\times10^{-5}\right)^\top,\tag{57}\\ {\boldsymbol{V}}_3(x,y,0) &= \left(1,0,0,2.3995344183272123\times10^{-7}\right)^\top.\tag{58} \end{align}\] A jet beam with rest-mass density \(\rho^b=0.1\) is injected through the bottom boundary inlet \(\{y=0,\;|x|\leq0.5\}\). The jet moves in the \(y\)-direction with velocity \(v^b\) while its pressure matches the ambient value. The specific settings for the jet beams corresponding to the ambient flows 56 , 57 , and 58 are:
(i) \(v^b = 0.99\), \(M_b = 50\) (\(\gamma^b\approx7.09\), \(M_r\approx354.37\));
(ii) \(v^b = 0.999\), \(M_b = 50\) (\(\gamma^b\approx22.37\), \(M_r\approx1118.09\));
(iii) \(v^b = 0.9999\), \(M_b = 500\) (\(\gamma^b\approx70.71\), \(M_r\approx35356.15\)).
Here, the classical beam Mach number is \(M_b=v^b/c_s\), and the relativistic Mach number is \(M_r=M_b\gamma^b/\gamma^s\), where \(\gamma^b\) and \(\gamma^s\) are the Lorentz factors for the jet speed and local sound speed, respectively. The computational domain \([0,12]\times[0,25]\) is discretized into \(240\times500\) uniform cells. Reflective boundary conditions are enforced at \(x=0\), a fixed jet beam inflow is imposed on the nozzle \(\{y=0,\;0\leq x\leq0.5\}\), and outflow conditions are applied elsewhere.
Figs. 12 and 13 present schlieren images of the logarithmic rest-mass density and pressure for the three configurations, computed using both the exact flux limiter 32 (top rows), and the pointwise logarithmic absolute difference between the exact 32 and relaxed 51 limiters (bottom rows). The solutions obtained with the two limiters are visually indistinguishable, with the average pointwise density and pressure differences both below \(10^{-5}\) across all three configurations. These regimes, particularly the third case with \(\gamma^b \approx 70.71\), are notoriously prone to numerical breakdown due to the rapid generation of negative pressure or density during transient evolution. We observe that the standard finite difference WENO5 scheme fails almost immediately without the PCP limiting procedure. In contrast, our GQL-based limiter successfully stabilizes the simulation even at \(M_b=500\). All computed solutions exhibit well-resolved flow structures, with the leading Mach shock and the Kelvin-Helmholtz instabilities along the shear layer captured with high resolution. These results confirm that the proposed scheme combines strict physical robustness with excellent shock-capturing capabilities in handling complex, ultra-relativistic jet dynamics.






Figure 12: Example 6: Top: Schlieren images of \(\ln\rho\) obtained using WENO5 with our flux limiter 32 ; bottom: contours of the logarithm \(\log(|\rho_{\text{\tt ex}}-\rho_{\text{\tt re}}|)\), where \(\rho_{\text{\tt ex}}\) and \(\rho_{\text{\tt re}}\) denote the density computed with the exact and relaxed flux limiters, respectively. 25 equally spaced contour levels from -11.5 to -0.5 are displayed. From left to right: configurations (i) at \(t=30\), (ii) at \(t=25\), and (iii) at \(t=23\)..






Figure 13: Example 6: Top: Schlieren images of \(\ln p\) obtained using WENO5 with our flux limiter 32 ; bottom: contours of the logarithm \(\log(|p_{\text{\tt ex}}-p_{\text{\tt re}}|)\), where \(p_{\text{\tt ex}}\) and \(p_{\text{\tt re}}\) denote the pressure computed with the exact and relaxed flux limiters, respectively. 25 equally spaced contour levels from -11.5 to -1.2 are displayed. From left to right: configurations (i) at \(t=30\), (ii) at \(t=25\), and (iii) at \(t=23\)..
Example 7. (2D Axisymmetric relativistic jets) This test considers an axisymmetric relativistic jet simulation in cylindrical coordinates \((r,z)\). Compared with the rectangular coordinates \((x,y)\), the RHD equations in \((r,z)\) coordinates \[\frac{\partial{\boldsymbol{U}}}{\partial t}+\frac{\partial{\boldsymbol{F}}_1({\boldsymbol{U}})}{\partial r}+\frac{\partial {\boldsymbol{F}}_2({\boldsymbol{U}})}{\partial z} = {\boldsymbol{S}}({\boldsymbol{U}}, r),\] are different by the source term \[{\boldsymbol{S}}({\boldsymbol{U}}, r) = -\frac{1}{r}\left(Dv_1,m_1v_1,m_2v_1,m_1\right)^\top.\] In the case of rectangular coordinates, we have \({\boldsymbol{U}}_{ij}+\Delta t\mathscr{L}({\boldsymbol{U}}_{ij})\in\mathcal{G}\) by enforcing our flux limiter. When transforming into cylindrical coordinates, we should update \({\boldsymbol{U}}_{ij}+\Delta t\left(\mathscr{L}({\boldsymbol{U}}_{ij})+{\boldsymbol{S}}({\boldsymbol{U}}_{ij}, r_i)\right)\) in each time step. To analyze the possible extra PCP condition caused by the source term, we rewrite \[{\boldsymbol{U}}_{ij}+\Delta t\left(\mathscr{L}({\boldsymbol{U}}_{ij})+{\boldsymbol{S}}({\boldsymbol{U}}_{ij}, r_i)\right) = (1-\beta)\left({\boldsymbol{U}}_{ij}+\frac{\Delta t}{1-\beta}\mathscr{L}({\boldsymbol{U}}_{ij})\right) + \beta \left({\boldsymbol{U}}_{ij}+\frac{\Delta t}{\beta}{\boldsymbol{S}}({\boldsymbol{U}}_{ij}, r_i)\right),\quad \beta \in (0,1).\] It is sufficient to ensure that \({\boldsymbol{U}}_{ij}+\frac{\Delta t}{1-\beta}\mathscr{L}({\boldsymbol{U}}_{ij})\in\mathcal{G}\) and \({\boldsymbol{U}}_{ij}+\frac{\Delta t}{\beta}{\boldsymbol{S}}({\boldsymbol{U}}_{ij}, r_i)\in\mathcal{G}\) when \({\boldsymbol{U}}_{ij}\in\mathcal{G}\) for all \(i,j\). The first part \({\boldsymbol{U}}_{ij}+\frac{\Delta t}{1-\beta}\mathscr{L}({\boldsymbol{U}}_{ij})\in\mathcal{G}\) can be achieved by enforcing our flux limiter after replacing \(\Delta t\) in \({Q}_{ij}^-:=\frac{\Delta x\Delta y}{\Delta t}\) by \(\frac{\Delta t}{1-\beta}\). The second part is true if \[\label{source:beta} \Delta t \leq \beta A_s,\quad A_s:=\min\limits_{\{i,j\}\in\mathcal{P}_v}\left\{\frac{i\Delta r\;q({\boldsymbol{U}}_{ij})}{\left(p({\boldsymbol{U}}_{ij})+q({\boldsymbol{U}}_{ij})\right)\left|v_1({\boldsymbol{U}}_{ij})\right|}\right\},\tag{59}\] where \(\mathcal{P}_v=\{(i,j):\;i,j\in\mathbb{Z},\;v_1({\boldsymbol{U}}_{ij}) > 0\}\).
We adopt the pressure-matched, highly supersonic C2 jet model, also referred to as the cold jet. Initially, the computational domain \([0,15]\times[0,45]\) is filled with the ambient medium, whose state is set as \[{\boldsymbol{V}}(r,z,0) = \left(1,0,0,1.70304823218172071\times10^{-4}\right)^\top.\] The settings of boundary conditions are the same as those in Example 6 except for two minor differences. The rest-mass density and the injected velocity of the jet beam are \(\rho^b=0.01\) and \(v^b=0.99\) in this cold jet model, and the nozzle on the bottom boundary \(y=0\) is changed into \(\{z=0,\;r\leq1\}\). The beam Mach number is \(M_b=6\), corresponding to a relativistic Mach number \(M_r\approx41.95\).
The left panel of Fig. 14 shows the schlieren images of the logarithmic rest-mass density obtained with exact flux limiter 32 within the symmetric domain \([-15,15]\times[0,45]\) at \(t = 100\) on a uniform \(360\times1080\) mesh. The simulation employs WENO5 coupled with both versions of our flux limiter 32 and 51 , in which the source terms are specially treated by setting \(\beta = 0.1\) in 59 to maintain solution admissibility. The results clearly show the bow shock at the jet head, large-scale vortex structures generated by Kelvin–Helmholtz instabilities, and the resulting turbulent mixing region. These morphological features align well with results reported in [5], [8], [37], which were obtained using adaptive mesh refinement RHD codes or high-order positivity-preserving WENO methods. The right panel of Fig. 14 shows the pointwise logarithmic absolute difference between the exact 32 and relaxed 51 limiters. Quantitatively, the maximum absolute difference of rest-mass density between the exact and relaxed limiters reaches 1.727, occurring on the symmetry axis \(x=0\), where the leading bow shock is located; the corresponding density values from the exact and relaxed schemes are 2.6583 and 4.3853, respectively. For pressure, the maximum absolute difference is 0.1284, also concentrated on the symmetry axis, with the exact and relaxed values being 0.1454 and 0.0169 at the peak point. This deviation pattern is physically reasonable: the relaxed limiter introduces a small amount of extra dissipation as a conservative guarantee of the PCP property, and this effect accumulates most prominently in the high-gradient bow shock region where the limiter is activated most frequently. The average absolute differences are approximately \(7.861\times10^{-3}\) for density and \(2.321\times10^{-4}\) for pressure, both orders of magnitude smaller than the local peak. Therefore, the minor accuracy loss is overall acceptable when both limiters strictly enforce the physical admissibility constraints across the entire domain.
Fig. 15 presents the limiter activation frequency maps at two representative time instants, \(t=20\) and \(t=100\). For comparison, we adopt a higher-contrast colormap and unify the colorbar range for both subfigures. The color scale represents the proportion of time steps during which the limiter was activated at each cell, i.e., the fraction of time steps where one of the four limiter coefficients \(\theta_{i\pm1/2,j}\) and \(\theta_{i,j\pm1/2}\) is strictly less than \(1\). Temporally, the maximum activation frequency decreases from 27.5% at the early stage to 19.95% at \(t=100\), with denser contours in the early phase. This arises as transient sharp shocks during initial jet penetration challenge WENO5 reconstruction, while mature turbulent structures are better resolved with fewer spurious oscillations. Spatially, the activation pattern matches the flow structures well: the highest frequency concentrates on the symmetry axis where flow conditions are most demanding, and periodic stripes correspond to the Kelvin–Helmholtz vortices along the shear layer. This confirms that the limiter activates locally and adaptively with strong flow features.


Figure 14: Example 7: Left: Schlieren images of \(\ln\rho\) obtained using WENO5 with our flux limiter 32 at \(t = 100\); bottom: Schlieren images of the logarithm \(\log(|\rho_{\text{\tt ex}}-\rho_{\text{\tt re}}|)\) at \(t = 100\), where \(\rho_{\text{\tt ex}}\) and \(\rho_{\text{\tt re}}\) denote the density computed with the exact and relaxed flux limiters, respectively..


Figure 15: Example 7: Limiter activation frequency maps. Left: \(t=20\); right: \(t=100\). Both subfigures share a unified color scale for cross-time comparison, and activation patterns align with the key flow structures. The color scale represents the proportion of time steps during which the limiter was activated at each cell (zero means that the limiter is not activated)..
Example 8 (3D Shock-bubble interaction problems). The next 3D example simulates the shock-bubble interaction problem within the computational domain \([0,325]\times[0,90]\times[0,90]\). Reflective boundary conditions are applied at \(y=0\), \(y=90\), \(z=0\), and \(z=90\), inflow boundary conditions at \(x=325\), and outflow boundary conditions at \(x=0\). The left and right states of the shock are initialized as follows: \[\mathbf{V}(x,y,z,0) = \begin{cases} {(1, 0, 0, 0, 0.05)^\top}& x<265,\\ {(1.865225080631180,-0.196781107378299, 0, 0, 0.15)^\top}& x>265. \end{cases}\] The state of the bubble differs from that in the numerical RHD study [63]: \[\boldsymbol{V}(x,y,z,0) = {(0.01358, 0, 0, 0, 0.05)^\top},\quad\quad\quad\sqrt{(x-215)^2+(y-45)^2+(z-45)^2}\leq 25.\] The density of the bubble is specifically adjusted to construct a demanding scenario, which imposes strict requirements on the numerical scheme, making the adoption of our proposed flux limiter indispensable for achieving stable and accurate simulations.


Figure 16: Example 8: Schlieren images of \(\rho\) at \(t=90,180,270,360,450\) (from top to bottom). Left: on the slice \(z=45\); right: on the slice \(y=45\). The two orthogonal slices jointly demonstrate the rotational symmetry of the 3D flow field..
Figure 17: Example 8: 10 iso-surfaces of \(\rho\) equally spaced from 0.55 to 1.75, obtained using WENO5 with the relaxed PCP flux limiter 54 .. a — \(t = 270\)., b — \(t = 360\)., c — \(t = 450\).
To comprehensively visualize the interaction between the shock and the bubble, Fig. 16 presents the schlieren images of the rest-mass density \(\rho\) at \(t=90,180,270,360,450\) on the mid-plane slices \(y=45\) and \(z=45\). The two orthogonal mid-plane slices complement each other: they capture the shock-bubble interaction dynamics from different viewing angles and provide intuitive evidence that the numerical scheme well preserves the rotational symmetry of the initial configuration. Meanwhile, Fig. 17 displays the 3D iso-surfaces of \(\rho\) at three later time instants (\(t = 270,\;360,\;450\)), consisting of 10 equally spaced iso-values ranging from 0.55 to 1.75. The 3D visualization intuitively depicts the complete three-dimensional dynamic process of the shock-bubble interaction, capturing the spatial morphology of the bubble deformation, shock propagation, and mutual interaction with high fidelity. All numerical solutions are obtained using WENO5 with our flux limiter on \(325\times90\times90\) uniform grids. As demonstrated by both the 2D schlieren images and 3D iso-surface plots, our scheme effectively captures the dynamics of the interaction between the left-moving shock and the bubble.
Example 9. (3D Axisymmetric relativistic jets)This 3D example is based on the pressure-matched hot A1 model in the 2D case. The adiabatic index \(\Gamma = 4/3\). The computational domain is \([0,7]\times[0,7]\times[0,50]\), which is initially filled with uniform static gas with the state \[{\boldsymbol{V}}(x,y,z,0) = \left(1,0,0,0,0.40611878453038897\right)^\top.\] Through the bottom boundary circular region \(\{z=0,\;\sqrt{x^2+y^2}\leq1\}\), a light jet beam with the state \[(\rho^b,v_1^b,v_2^b,v_3^b,p^b) = (0.01,0,0,0.99,0.40611878453038897)\] is injected parallel to the \(z\)-axis. The boundary conditions are specified in a manner very similar to the 2D case. The fixed jet beam inflow is imposed on \(\{z=0,\;\sqrt{x^2+y^2}\leq1\}\), reflective conditions are applied on planes \(x = 0\) and \(y = 0\), and outflow conditions are specified on the remaining boundaries.
Note that the computational domain for this simulation is \([0,7]\times[0,7]\times[0,50]\), which covers one quadrant of the full axisymmetric domain. For the visualization in Fig. 18, we mirror the computed solution exactly across the \(x=0\) symmetry plane to display the symmetric half-domain \([-7,7]\times[0,7]\times[0,50]\); this post-processing does not alter the numerical solution. Fig. 18 (a), 18 (b), and 18 (c) present 15 iso-surfaces of \(\ln\rho\) in the symmetric region \([-7,7]\times[0,7]\times[0,50]\) at \(t = 20,\;40\), and 60, using a uniform \(70\times70\times500\) mesh. The corresponding velocity fields are visualized in Fig. 18 (d), 18 (e), and 18 (f), where the arrow direction indicates velocity direction and the arrow scale is proportional to velocity magnitude. The results demonstrate the accurate capture of the time evolution of a light, relativistic jet with high internal energy, and confirm the PCP capability of the proposed flux limiter.
Figure 18: Example 9: Numerical results obtained using WENO5 with the relaxed PCP flux limiter 54 . Left three subfigures: 15 iso-surfaces of \(\ln\rho\) equally spaced from -5 to 1; right three subfigures: Slope field visualization of the velocity \({\boldsymbol{v}}\).. a — \(t=20\)., b — \(t=40\)., c — \(t=60\)., d — \(t=20\)., e — \(t=40\)., f — \(t=60\).
We have developed a robust and efficient physical-constraint-preserving (PCP) flux-limiting framework for high-order schemes, exemplified by finite-difference WENO methods, for special relativistic hydrodynamics. The admissible state set in conservative variables is strictly enforced through the equivalent conditions \(D>0\) and \(q({\boldsymbol{U}})=E-\sqrt{D^2+|{\boldsymbol{m}}|^2}>0\), corresponding to positive rest-mass density, positive pressure, and subluminal velocity.
The central idea is to leverage the geometric quasilinearization (GQL) characterization, which represents the nonlinear constraint \(q({\boldsymbol{U}})>0\) exactly as the intersection of linear half-space inequalities \({\boldsymbol{U}}\cdot{\boldsymbol{n}}_*({\boldsymbol{v}}_*)>0\) for all auxiliary variables \({\boldsymbol{v}}_*\in \mathbb{B}_1({\boldsymbol{0}})\). This formulation allows us to embed the RHD constraints into a scalar-style Zalesak-type FCT limiter: by projecting the flux-corrected update onto the relevant normals, the constraint enforcement reduces to lower-bound limiting of scalar quantities while the limiter operates directly on conservative variables.
A critical innovation is the explicit, non-iterative determination of the limiting parameters via a rational stereographic parameterization of the GQL normal vector. This technique transforms the required worst-case minimization over auxiliary variables into a generalized Rayleigh-quotient formulation, allowing the optimal parameters to be obtained by solving small symmetric eigenvalue problems (\(2\times2\) in 1D; \((d+1)\times(d+1)\) in \(d\) dimensions). In multidimensions, relaxed variants further reduce the number of eigenvalue evaluations while preserving a rigorous PCP guarantee. Consequently, the proposed parameter estimator avoids expensive iterative searches over \({\boldsymbol{v}}_*\) and replaces them with closed-form eigenvalue evaluations, resulting in a lightweight limiter suitable for large-scale multidimensional simulations.
Extensive numerical experiments in one to three space dimensions confirm that the resulting schemes robustly enforce physical admissibility, retain fifth-order accuracy for smooth solutions, and sharply resolve strong discontinuities. Future work will focus on less restrictive (yet still explicit) estimators for the \(q\)-limiting factor, extensions to curvilinear or unstructured meshes and more general equations of state, and applications of the GQL–FCT strategy to other hyperbolic systems with nonlinear invariant domains.
The data and code that support the findings of this study are available from the corresponding author upon reasonable request.
The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.
This work was partially supported by Science Challenge Project (No. TZ2025007) and the Shenzhen Science and Technology Program (Grant Nos. JCYJ20250604144300001 and RCJC20221008092757098).
In this appendix, we provide complete pseudocode for our physical-constraint-preserving flux-limiting framework. All notation matches the main text.
\({\boldsymbol{U}}^n\): Conservative state at time \(t^n\)
\(\widehat{\mathcal{F}}^H\): High-order WENO5 numerical flux
\(\widehat{\mathcal{F}}^L\): Low-order global Lax-Friedrichs (Rusanov) flux
\(\widehat{\mathcal{F}}^A = \widehat{\mathcal{F}}^H - \widehat{\mathcal{F}}^L\): Anti-diffusive flux
\(\Delta x, \Delta y, \Delta z, \Delta t\): Mesh size and time step
\(\alpha\): Global maximum wave speed
Algorithm A.1 GQL-Based PCP Flux-Limiting Framework (1D/2D/3D)
Input: Conservative state \({\boldsymbol{U}}^n\), high-order flux \(\widehat{\mathcal{F}}^H\), low-order flux \(\widehat{\mathcal{F}}^L\), mesh parameters \(\Delta x, \Delta y, \Delta z\), time step \(\Delta t\), CFL number
Output: Updated state \({\boldsymbol{U}}^{n+1}\) satisfying \({\boldsymbol{U}}^{n+1} \in \mathcal{G}_\epsilon\)
Step 1: Compute low-order update (guaranteed to be admissible)
Compute low-order state \({\boldsymbol{U}}^L\) using first-order LF flux: \[{\boldsymbol{U}}^L = {\boldsymbol{U}}^n - \frac{\Delta t}{\Delta x} \left( \widehat{\mathcal{F}}^L_{i+1/2,j,k} - \widehat{\mathcal{F}}^L_{i-1/2,j,k} \right) - \frac{\Delta t}{\Delta y} \left( \widehat{\mathcal{G}}^L_{i,j+1/2,k} - \widehat{\mathcal{G}}^L_{i,j-1/2,k} \right) - \frac{\Delta t}{\Delta z} \left( \widehat{\mathcal{H}}^L_{i,j,k+1/2} - \widehat{\mathcal{H}}^L_{i,j,k-1/2} \right)\] (For 1D, omit \(y,z\) terms; for 2D, omit \(z\) term.)
Step 2: Compute anti-diffusive flux
\(\widehat{\mathcal{F}}^A_{i+1/2} \leftarrow \widehat{\mathcal{F}}^H_{i+1/2} - \widehat{\mathcal{F}}^L_{i+1/2}\)
(Similarly for \(\widehat{\mathcal{G}}^A, \widehat{\mathcal{H}}^A\) in 2D/3D.)
Step 3: Compute density limiter \(\theta^D\) (enforces \(D \geq \epsilon\))
For each cell \(i\) (and \(j,k\) in 2D/3D):
\(\epsilon_D \leftarrow \min(10^{-13}, D({\boldsymbol{U}}^L_i))\)
Compute \(P^-_i, Q^-_i, R^-_i\) using Zalesak’s notation with \({\boldsymbol{n}}_D = (1, 0, \dots, 0)^\top\)
For each interface \(i+1/2\):
If \(\widehat{\mathcal{F}}^A_{i+1/2} \cdot {\boldsymbol{n}}_D \geq 0\): \(\theta^D_{i+1/2} \leftarrow R^-_i\)
Else: \(\theta^D_{i+1/2} \leftarrow R^-_{i+1}\)
(Similarly for \(y,z\) directions in 2D/3D.)
Step 4: Compute q-limiter \(\theta^q\) (enforces \(q(U) \geq \epsilon\))
If dimension == 1: \(\theta^q \leftarrow \texttt{Compute1DLimiter}({\boldsymbol{U}}^L, \widehat{\mathcal{F}}^A, \Delta x, \Delta t)\)
Else: \(\theta^q \leftarrow \texttt{ComputeRelaxedLimiter}({\boldsymbol{U}}^L, \widehat{\mathcal{F}}^A, \widehat{\mathcal{G}}^A, \widehat{\mathcal{H}}^A, \Delta x, \Delta y, \Delta z, \Delta t)\)
Step 5: Apply final limiter and update state
For each interface: \(\theta_{i+1/2} \leftarrow \min(\theta^D_{i+1/2}, \theta^q_{i+1/2})\)
Compute flux-corrected update: \[{\boldsymbol{U}}^{n+1} = {\boldsymbol{U}}^L - \frac{\Delta t}{\Delta x} \left( \theta_{i+1/2} \widehat{\mathcal{F}}^A_{i+1/2} - \theta_{i-1/2} \widehat{\mathcal{F}}^A_{i-1/2} \right)\]
Return: \({\boldsymbol{U}}^{n+1}\)
Algorithm A.2 Compute1DLimiter(\({\boldsymbol{U}}^L, \widehat{\mathcal{F}}^A, \Delta x, \Delta t\))
Input: Low-order state \({\boldsymbol{U}}^L\), anti-diffusive flux \(\widehat{\mathcal{F}}^A\), mesh parameters
Output: q-limiter \(\theta^q\)
For each cell \(i\):
Step 1: Extract coefficients
\({\boldsymbol{U}}^L_i = (D^L, m^L, E^L)^\top\)
\(\epsilon_q \leftarrow \min(10^{-13}, q({\boldsymbol{U}}^L_i))\)
\(a \leftarrow E^L + D^L - \epsilon_q\), \(b \leftarrow 2m^L\), \(c \leftarrow E^L - D^L - \epsilon_q\)
\(d^\pm \leftarrow \widehat{\mathcal{F}}^A_{i\pm1/2} \cdot (1, 0, 1)^\top\), \(e^\pm \leftarrow 2\widehat{\mathcal{F}}^A_{i\pm1/2} \cdot (0, 1, 0)^\top\), \(f^\pm \leftarrow \widehat{\mathcal{F}}^A_{i\pm1/2} \cdot (-1, 0, 1)^\top\)
Step 2: Rational stereographic parameterization and Rayleigh quotient
Define symmetric matrices: \[B = \begin{pmatrix} a & -b/2 \\ -b/2 & c \end{pmatrix}, \quad {A^\star={\tt sign}(\star)\begin{pmatrix} d^\star & -e^\star/2 \\ -e^\star/2 & f^\star \end{pmatrix},\quad \star\in\{+,-\}}\] Here \({\tt sign}(+)=1\) and \({\tt sign}(-)=-1\).
Compute Cholesky decomposition \(B = R^\top R\)
\({\widetilde{A}^\star \leftarrow R^{-\top} A^\star R^{-1},\quad \star\in\{+,-\}}\)
Step 3: Compute maximal eigenvalues
\(\lambda^+_{\text{max}} \leftarrow \texttt{MaxEigenvalue}(\widetilde{A}^+)\)
\(\lambda^-_{\text{max}} \leftarrow \texttt{MaxEigenvalue}(\widetilde{A}^-)\)
\(\lambda^*_{\text{max}} \leftarrow \texttt{MaxEigenvalue}(\widetilde{A}^+ + \widetilde{A}^-)\)
Step 4: Check feasibility of eigenvectors (\(|u_*| < 1\))
For each eigenvalue \(\lambda\):
Compute the corresponding eigenvector \(z\)
\({\boldsymbol{w}} \leftarrow R^{-1} {\boldsymbol{z}}\)
If the last component of \({\boldsymbol{w}}\) is nonzero, set \(u_* \leftarrow w_1/w_2\); otherwise mark this eigenvector as infeasible
If \(|u_*| \geq 1\): Reject this eigenvalue (infeasible)
Step 5: Compute cell-wise limiting factor
\(M_i \leftarrow \max(0, \lambda^+_{\text{max, feasible}}, \lambda^-_{\text{max, feasible}}, \lambda^*_{\text{max, feasible}},\text{ boundary candidates})\)
\(\mathcal{L}_i \leftarrow 1\) if \(M_i=0\); otherwise \(\mathcal{L}_i\leftarrow \min\left\{1,\dfrac{\Delta x}{\Delta t\,M_i}\right\}\).
Step 6: Compute interface limiting factors
For each interface \(i+1/2\): \(\theta^q_{i+1/2} \leftarrow \min(\mathcal{L}_i, \mathcal{L}_{i+1})\)
Return: \(\theta^q\)
Algorithm A.3 ComputeRelaxedLimiter(\({\boldsymbol{U}}^L, \widehat{\mathcal{F}}^A, \widehat{\mathcal{G}}^A, \widehat{\mathcal{H}}^A, \Delta x, \Delta y, \Delta z, \Delta t\))
Input: Low-order state \({\boldsymbol{U}}^L\), anti-diffusive fluxes in all directions, mesh parameters
Output: Relaxed q-limiter \(\theta^q\)
Note: ComputeDirectionalDenominator returns the weighted maximal denominator estimate in 51 or 54 ; the conversion to the actual limiter coefficient is performed only
after summing the directional denominator estimates.
For each cell \(i,j,k\):
Step 1: Extract coefficients for each spatial direction
Extract \((a, {\boldsymbol{b}}, c)\) from \({\boldsymbol{U}}^L_{ijk}\) (vector \({\boldsymbol{b}}\) for momentum)
Extract \((d^\pm_x, {\boldsymbol{e}}^\pm_x, f^\pm_x)\) from \(\widehat{\mathcal{F}}^A_{i\pm1/2,j,k}\)
Extract \((d^\pm_y, {\boldsymbol{e}}^\pm_y, f^\pm_y)\) from \(\widehat{\mathcal{G}}^A_{i,j\pm1/2,k}\)
If dimension == 3:
Extract \((d^\pm_z, {\boldsymbol{e}}^\pm_z, f^\pm_z)\) from \(\widehat{\mathcal{H}}^A_{i,j,k\pm1/2}\)
\(M^x_{ijk} \leftarrow \texttt{ComputeDirectionalDenominator}(a, {\boldsymbol{b}}, c, d^\pm_x, {\boldsymbol{e}}^\pm_x, f^\pm_x, \Delta y \Delta z)\)
\(M^y_{ijk} \leftarrow \texttt{ComputeDirectionalDenominator}(a, {\boldsymbol{b}}, c, d^\pm_y, {\boldsymbol{e}}^\pm_y, f^\pm_y, \Delta x \Delta z)\)
\(M^z_{ijk} \leftarrow \texttt{ComputeDirectionalDenominator}(a, {\boldsymbol{b}}, c, d^\pm_z, {\boldsymbol{e}}^\pm_z, f^\pm_z, \Delta x \Delta y)\)
\(M_{ijk} \leftarrow M^x_{ijk} + M^y_{ijk} + M^z_{ijk}\)
\(\mathcal{L}_{ijk}\leftarrow 1\) if \(M_{ijk}=0\); otherwise \(\mathcal{L}_{ijk}\leftarrow\min\left\{1,\dfrac{\Delta x\Delta y\Delta z}{\Delta t\,M_{ijk}}\right\}\)
Else:
\(M^x_{ij} \leftarrow \texttt{ComputeDirectionalDenominator}(a, {\boldsymbol{b}}, c, d^\pm_x, {\boldsymbol{e}}^\pm_x, f^\pm_x, \Delta y)\)
\(M^y_{ij} \leftarrow \texttt{ComputeDirectionalDenominator}(a, {\boldsymbol{b}}, c, d^\pm_y, {\boldsymbol{e}}^\pm_y, f^\pm_y, \Delta x)\)
\(M_{ij} \leftarrow M^x_{ij} + M^y_{ij}\)
\(\mathcal{L}_{ij}\leftarrow 1\) if \(M_{ij}=0\); otherwise \(\mathcal{L}_{ij}\leftarrow\min\left\{1,\dfrac{\Delta x\Delta y}{\Delta t\,M_{ij}}\right\}\)
Step 2: Compute interface limiting factors
For each interface: \(\theta^q \leftarrow \min(\mathcal{L}_{\text{left}}, \mathcal{L}_{\text{right}})\)
Return: \(\theta^q\)
Algorithm A.4 MaxEigenvalue(\(A\))
Input: Symmetric matrix \(A\) (size 2x2, 3x3, or 4x4)
Output: Maximal eigenvalue \(\lambda_{\text{max}}\)
Compute eigenvalues using the explicit formulae from the main text
\(\lambda_{\text{max}} \leftarrow \text{maximum of all eigenvalues}\)
Return: \(\lambda_{\text{max}}\)