<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">ENG</journal-id><journal-title-group><journal-title>Engineering</journal-title></journal-title-group><issn pub-type="epub">1947-3931</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/eng.2021.136023</article-id><article-id pub-id-type="publisher-id">ENG-110271</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Engineering</subject></subj-group></article-categories><title-group><article-title>
 
 
  Numerical Analysis of Upwind Difference Schemes for Two-Dimensional First-Order Hyperbolic Equations with Variable Coefficients
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Yanmeng</surname><given-names>Sun</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Qing</surname><given-names>Yang</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref></contrib></contrib-group><aff id="aff1"><addr-line>School of Mathematics and Statistics, Shandong Normal University, Jinan, China</addr-line></aff><pub-date pub-type="epub"><day>10</day><month>06</month><year>2021</year></pub-date><volume>13</volume><issue>06</issue><fpage>306</fpage><lpage>329</lpage><history><date date-type="received"><day>18,</day>	<month>May</month>	<year>2021</year></date><date date-type="rev-recd"><day>27,</day>	<month>June</month>	<year>2021</year>	</date><date date-type="accepted"><day>30,</day>	<month>June</month>	<year>2021</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  In this paper, we consider the initial-boundary value problem of two-dimensional first-order linear hyperbolic equation with variable coefficients. By using the upwind difference method to discretize the spatial derivative term and the forward and backward Euler method to discretize the time derivative term, the explicit and implicit upwind difference schemes are obtained respectively. It is proved that the explicit upwind scheme is conditionally stable and the implicit upwind scheme is unconditionally stable. Then the convergence of the schemes is derived. Numerical examples verify the results of theoretical analysis.
 
</p></abstract><kwd-group><kwd>Two-Dimensional First-Order Hyperbolic Equation</kwd><kwd> Variable Coefficients</kwd><kwd> Upwind Difference Schemes</kwd><kwd> Fourier Method</kwd><kwd> Stability and Error Estimation</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>For the domain Ω = ( 0, L ) &#215; ( 0, L ) , let ∂ Ω be the boundary of Ω and Ω &#175; = Ω ∪ ∂ Ω . For a given vector c = ( a ( x , y ) ,   b ( x , y ) ) , we divide ∂ Ω into the following two parts [<xref ref-type="bibr" rid="scirp.110271-ref1">1</xref>]:</p><p>{ ( ∂ Ω ) − = { ( x , y ) ∈ ∂ Ω : c ⋅ n ≤ 0 }     ( flow   in ) , ( ∂ Ω ) + = { ( x , y ) ∈ ∂ Ω : c ⋅ n &gt; 0 }     ( flow   out ) , (1)</p><p>where n is the unit outer normal vector of ∂ Ω . Considering the following two-dimensional first-order hyperbolic equation on Ω :</p><p>( a )     ∂ u ∂ t + a ( x , y ) ∂ u ∂ x + b ( x , y ) ∂ u ∂ y = f ( x , y , t ) ,   ( x , y ) ∈ Ω \ ( ∂ Ω ) − ,   0 &lt; t ≤ T , ( b )     u ( x , y , 0 ) = u 0 ( x , y ) ,   ( x , y ) ∈ Ω &#175; , ( c )     u ( x , y , t ) = g ( x , y , t ) ,   ( x , y ) ∈ ( ∂ Ω ) − ,   0 ≤ t ≤ T , (2)</p><p>where c = ( a ( x , y ) ,   b ( x , y ) ) is the flow rate and a ( x , y ) , b ( x , y ) , f ( x , y , t ) , u 0 ( x , y ) , g ( x , y , t ) are known functions which are smooth enough.</p><p>Hyperbolic equations are widely used in natural sciences and engineering such as fluid mechanics, light propagation, gas dynamics, etc. This kind of equations admits solutions propagating along with the characteristics [<xref ref-type="bibr" rid="scirp.110271-ref2">2</xref>] and depending on the initial data locally. These properties must be taken into account in order to obtain a stable numerical solution. Many numerical methods have been applied to hyperbolic equations [<xref ref-type="bibr" rid="scirp.110271-ref3">3</xref>] - [<xref ref-type="bibr" rid="scirp.110271-ref10">10</xref>]. In [<xref ref-type="bibr" rid="scirp.110271-ref3">3</xref>] [<xref ref-type="bibr" rid="scirp.110271-ref4">4</xref>] upwind difference schemes were used to solve one-dimensional and two-dimensional hyperbolic equations with constant coefficient and stability analysis was conducted by Fourier method. Greg [<xref ref-type="bibr" rid="scirp.110271-ref5">5</xref>] studied the semi-discrete central upwind Rankine-Hugoniot schemes for hyperbolic systems of conservation laws. Zhao et al. [<xref ref-type="bibr" rid="scirp.110271-ref6">6</xref>] [<xref ref-type="bibr" rid="scirp.110271-ref7">7</xref>] proposed some hybrid WENO schemes for hyperbolic conservation laws. Kurganov et al. [<xref ref-type="bibr" rid="scirp.110271-ref8">8</xref>] [<xref ref-type="bibr" rid="scirp.110271-ref9">9</xref>] presented semi-discrete central upwind schemes for nonconvex hyperbolic conservation laws and shallow water equations, respectively. Discontinuous Galerkin schemes for hyperbolic laws were considered in [<xref ref-type="bibr" rid="scirp.110271-ref10">10</xref>]. Some high-order difference schemes were considered in [<xref ref-type="bibr" rid="scirp.110271-ref11">11</xref>] for first-order hyperbolic equations with variable coefficients, but the direction of flow rate was not taken into account. Chen et al. [<xref ref-type="bibr" rid="scirp.110271-ref12">12</xref>] proposed dissipative spectral element method for first-order linear hyperbolic equation with variable coefficients in two dimensions. Among the aforementioned methods, upwind difference methods are typical ones which depend on the direction of the flow rate to provide stable as well as easily implementable schemes. Especially in many practical applications, first-order hyperbolic equations with variable coefficients in two or three dimensions are needed to describe more complex problems. Upwind difference methods will be more efficient in such applications. However, there is little work about the detailed discussions of upwind difference schemes for two- or three-dimensional hyperbolic equations with variable coefficients. Therefore, in this paper, full-discrete explicit and implicit upwind difference schemes are formulated and analyzed for two-dimensional first-order hyperbolic equations with variable coefficients. The stability analysis of these schemes is conducted by using Fourier method and maximum technique, which shows that the explicit upwind difference scheme is conditionally stable and the implicit one is unconditionally stable. A convergence rate of O ( τ + h ) is proved for these schemes. Numerical examples are provided to verify the theoretical results.</p><p>The rest of the paper is arranged as follows. In Section 2 and Section 3 we formulate explicit and implicit upwind schemes for the two-dimensional first-order hyperbolic problem (2), and conduct the stability and convergence analysis. The implementation details of the method are given in Section 4 and numerical examples are given in Section 5. Conclusions and the future work plans are presented in Section 6.</p></sec><sec id="s2"><title>2. Explicit Upwind Scheme</title><p>In this section, we will develop and analyze an explicit upwind difference scheme for problem (2).</p><sec id="s2_1"><title>2.1. Formulation of Difference Scheme</title><p>Noticing that the flow rate c = ( a ( x , y ) ,   b ( x , y ) ) in (2) is a vector function of ( x , y ) , we need to consider the direction of it node by node in the spatial mesh in order to discrete the spatial derivative upwind. This will lead to four cases according to the sign of a ( x , y ) and b ( x , y ) at every node.</p><p>Taking two positive integers M and N, let the time step and space step be h = L M ,   τ = T N , respectively. Denote x j = j h , y k = k h , 0 ≤ j ,   k ≤ M , t n = n τ , 0 &lt; n ≤ N , and call ( x j , y k , t n ) a node.</p><p>Let Ω &#175; h = { ( x j , y k ) |   0 ≤ j ≤ M ,0 ≤ k ≤ M } , Ω &#175; τ = { t n |   0 ≤ n ≤ N } .</p><p>Considering Equation (2a) at ( x j , y k , t n ) , we have</p><p>∂ u ( x j , y k , t n ) ∂ t + a ( x j , y k ) ∂ u ( x j , y k , t n ) ∂ x + b ( x j , y k ) ∂ u ( x j , y k , t n ) ∂ y = f ( x j , y k , t n ) . (3)</p><p>For the first term on the left hand side of Equation (3), applying the forward Euler method and Taylor’s formula, we have</p><p>∂ u ( x j , y k , t n ) ∂ t = u ( x j , y k , t n + 1 ) − u ( x j , y k , t n ) τ − τ 2 ∂ 2 u ( x j , y k , t n + 1 ) ∂ t 2 + O ( τ 2 ) . (4)</p><p>The second and third terms on the left hand side of Equation (3) will be discretized by upwind difference method according to the sign of a ( x j , y k ) and b ( x j , y k ) . Let a j , k = a ( x j , y k ) , b j , k = b ( x j , y k ) , f j , k n = f ( x j , y k , t n ) and consider the following four cases.</p><p>Case 1. a j , k ≥ 0,   b j , k ≥ 0 .</p><p>When a j , k ≥ 0,   b j , k ≥ 0 , it is obtained by Taylor’s formula</p><p>∂ u ( x j , y k , t n ) ∂ x = u ( x j , y k , t n ) − u ( x j − 1 , y k , t n ) h + h 2 ∂ 2 u ( x j , y k , t n ) ∂ x 2 + O ( h 2 ) (5)</p><p>and</p><p>∂ u ( x j , y k , t n ) ∂ y = u ( x j , y k , t n ) − u ( x j , y k − 1 , t n ) h + h 2 ∂ 2 u ( x j , y k , t n ) ∂ y 2 + O ( h 2 ) . (6)</p><p>Substituting (4)-(6) into (3), we have</p><p>u ( x j , y k , t n + 1 ) − u ( x j , y k , t n ) τ + a j , k u ( x j , y k , t n ) − u ( x j − 1 , y k , t n ) h   + b j , k u ( x j , y k , t n ) − u ( x j , y k − 1 , t n ) h = f ( x j , y k , t n ) + R j , k n ( u ) , (7)</p><p>where</p><p>R j , k n ( u ) = − τ 2 ∂ 2 u ( x j , y k , t n ) ∂ t 2 + h 2 ∂ 2 u ( x j , y k , t n ) ∂ x 2     + h 2 ∂ 2 u ( x j , y k , t n ) ∂ y 2 + O ( h 2 + τ 2 ) (8)</p><p>is the local truncation error.</p><p>Omitting the truncation error and replacing the exact solution u ( x j , y k , t n ) by the numerical solution U j , k n in (7), we obtain the upwind difference scheme of (3)</p><p>U j , k n + 1 − U j , k n τ + a j , k U j , k n − U j − 1 , k n h + b j , k U j , k n − U j , k − 1 n h = f j , k n ,   1 ≤ j , k ≤ M ,   0 ≤ n ≤ N − 1. (9)</p><p>Similar to Case 1, we can derive the upwind difference schemes for other cases.</p><p>Case 2. a j , k ≤ 0,   b j , k ≤ 0 .</p><p>When a j , k ≤ 0,   b j , k ≤ 0 , the difference scheme of (3) is</p><p>U j , k n + 1 − U j , k n τ + a j , k U j + 1 , k n − U j , k n h + b j , k U j , k + 1 n − U j , k n h = f j , k n ,   0 ≤ j , k ≤ M − 1 ,   0 ≤ n ≤ N − 1. (10)</p><p>Case 3. a j , k ≥ 0,   b j , k ≤ 0 .</p><p>When a j , k ≥ 0,   b j , k ≤ 0 , the difference scheme of (3) is</p><p>U j , k n + 1 − U j , k n τ + a j , k U j , k n − U j − 1 , k n h + b j , k U j , k + 1 n − U j , k n h = f j , k n ,   1 ≤ j ≤ M ,   0 ≤ k ≤ M − 1 ,   0 ≤ n ≤ N − 1. (11)</p><p>Case 4. a j , k ≤ 0 ,   b j , k ≥ 0 .</p><p>When a j , k ≤ 0,   b j , k ≥ 0 , the difference scheme of (3) is</p><p>U j , k n + 1 − U j , k n τ + a j , k U j + 1 , k n − U j , k n h + b j , k U j , k n − U j , k − 1 n h = f j , k n ,   0 ≤ j ≤ M − 1 ,   1 ≤ k ≤ M ,   0 ≤ n ≤ N − 1. (12)</p><p>The initial condition and boundary condition (2b)-(2c) are discretized as follows</p><p>U j , k 0 = u 0 ( x j , y k ) ,     0 ≤ j , k ≤ M , U j , k n = g ( x j , y k , t n ) ,     ( x j , y k ) ∈ ( ∂ Ω ) − ,   0 ≤ n ≤ N . (13)</p><p>Combining (9)-(13), the explicit upwind difference scheme for problem (2) is formulated.</p></sec><sec id="s2_2"><title>2.2. Stability and Convergence Analysis</title><p>Since the coefficients in problem (2) are variable, we need first to apply the local fixed coefficient method or the apparent variable coefficient method to derive a stability condition and then prove that it is sufficient for the scheme (9)-(13) to be stable. The methods we use mainly include Fourier analysis and maximum technique.</p><p>Let U n = { U j , k n ,   0 ≤ j , k ≤ M } and ‖ U n ‖ ∞ = max 0 ≤ j , k ≤ M | U j , k n | .</p><p>Theorem 2.1. When τ h max 0 ≤ j h , k h ≤ L ( | a j , k | + | b j , k | ) ≤ 1 , the explicit upwind scheme (9)-(13) is stable with respect to the initial value U 0 and the source term f.</p><p>Proof. No loss of generality, we assume that a j , k ≠ 0 . Let r j , k = a j , k τ h , s j , k = b j , k τ h , c j , k = b j , k a j , k .</p><p>We first consider the Case 1, in which r j , k &gt; 0 ,   s j , k ≥ 0 ,   c j , k ≥ 0 . Let f = 0 and rewrite (9) as</p><p>U j , k n + 1 = ( 1 − r j , k − s j , k ) U j , k n + r j , k U j − 1 , k n + s j , k U j , k − 1 n . (14)</p><p>Letting U j , k n = v n e i α j h e i β k h ( i = − 1 , α = 2 p π L , β = 2 q π L , p and q are integers), and substituting it into (14), we have</p><p>v n + 1 = ( 1 − r j , k − s j , k + r j , k ( cos α h − i sin α h ) + s j , k ( cos β h − i sin β h ) ) v n .</p><p>Thus, the growth factor is</p><p>G ( α h , β h ) = 1 − r j , k − s j , k + r j , k ( cos α h − i sin α h ) + s j , k ( cos β h − i sin β h ) . (15)</p><p>Noticing that s j , k = c j , k r j , k , it can be obtained by calculation that</p><p>| G ( α h , β h ) | 2 = A r j , k 2 + B r j , k + 1 , (16)</p><p>where</p><p>A = 2 ( 1 + c j , k ) [ ( 1 − cos α h ) + c j , k ( 1 − cos β h ) ] + c j , k [ − 1 + cos ( α h + β h ) ] ,</p><p>B = − 2 [ ( 1 − cos α h ) + c j , k ( 1 − cos β h ) ] .</p><p>By Von Neumann condition, we let | G ( α h , β h ) | 2 ≤ 1 , i.e.</p><p>A r j , k 2 + B r j , k ≤ 0. (17)</p><p>Obviously, B ≤ 0 holds for any α ,   β . So when A ≤ 0 , (17) holds for any r j , k &gt; 0 . When A &gt; 0 , (17) is equavalent to 0 &lt; r j , k ≤ − B A . Because</p><p>− B A = ( 1 − cos α h ) + c j , k ( 1 − cos β h ) ( 1 + c j , k ) [ ( 1 − cos α h ) + c j , k ( 1 − cos β h ) ] + c j , k [ − 1 + cos ( α h + β h ) ] ,</p><p>− 1 + cos ( α h + β h ) ≤ 0 ,</p><p>we know that − B A ≥ 1 1 + c j , k &gt; 0 . So when</p><p>0 &lt; r j , k ≤ 1 1 + c j , k , (18)</p><p>(17) holds for any α ,   β .</p><p>Similarly, for Cases 2-4, the following conditions</p><p>− 1 1 + c j , k ≤ r j , k &lt; 0 ,     a j , k &lt; 0 ,   b j , k ≤ 0 , (19)</p><p>0 &lt; r j , k ≤ 1 1 − c j , k ,     a j , k &gt; 0 ,   b j , k ≤ 0 , (20)</p><p>− 1 1 − c j , k ≤ r j , k &lt; 0 ,     a j , k &lt; 0 ,   b j , k ≥ 0 (21)</p><p>are obtained respectively.</p><p>Summing up (18)-(21) gives that</p><p>| r j , k | ≤ 1 1 + | c j , k | . (22)</p><p>Condition (22) is obtained by taking the variable coefficients as constants. Considering that (2) admits variable coefficients and using the definition of r j , k and c j , k , we write (22) as</p><p>τ h max 0 ≤ j h , k h ≤ L ( | a j , k | + | b j , k | ) ≤ 1. (23)</p><p>Now we show that (23) is sufficient for the scheme (9)-(13) to be stable.</p><p>Using r i , k and s i , k , (9)-(12) can be rewritten as follows</p><p>U j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) U j , k n + | r j , k | U j − 1 , k n + | s j , k | U j , k − 1 n + τ f j , k n , (24)</p><p>U j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) U j , k n + | r j , k | U j + 1 , k n + | s j , k | U j , k + 1 n + τ f j , k n , (25)</p><p>U j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) U j , k n + | r j , k | U j − 1 , k n + | s j , k | U j , k + 1 n + τ f j , k n , (26)</p><p>U j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) U j , k n + | r j , k | U j + 1 , k n + | s j , k | U j , k − 1 n + τ f j , k n . (27)</p><p>From (23), we have | r j , k | + | s j , k | ≤ 1 . Therefore, we have</p><p>| U j , k n + 1 | ≤ ( 1 − | r j , k | − | s j , k | ) | U j , k n | + | r j , k | | U j − 1 , k n | + | s j , k | | U j , k − 1 n | + τ | f j , k n | ≤ ( 1 − | r j , k | − | s j , k | ) ‖ U n ‖ ∞ + | r j , k | ‖ U n ‖ ∞ + | s j , k | ‖ U n ‖ ∞ + τ | f j , k n | ≤ ‖ U n ‖ ∞ + τ ‖ f n ‖ ∞ (28)</p><p>for (24).</p><p>Similarly, we can obtain the following inequality</p><p>| U j , k n + 1 | ≤ ‖ U n ‖ ∞ + τ ‖ f n ‖ ∞ (29)</p><p>for (25)-(27). That is, we have the estimation</p><p>‖ U n + 1 ‖ ∞ ≤ ‖ U n ‖ ∞ + τ ‖ f n ‖ ∞ (30)</p><p>for Case 1-Case 4. It can be derived from (30) immediately that</p><p>‖ U n ‖ ∞ ≤ ‖ U 0 ‖ ∞ + n τ max 0 ≤ n ≤ N ‖ f n ‖ ∞ ≤ ‖ U 0 ‖ ∞ + T max 0 ≤ n ≤ N ‖ f n ‖ ∞ . (31)</p><p>So the scheme (9)-(13) is stable with respect to U 0 and f.</p><p>The proof is completed.</p><disp-formula id="scirp.110271-formula18"><graphic  xlink:href="//html.scirp.org/file/5-8103753x113.png"  xlink:type="simple"/></disp-formula><p>Remark 2.1. It can be seen that when a ( x , y ) ≡ a and b ( x , y ) ≡ b with constants a and b, the condition (23) reduces to</p><p>τ h ( | a | + | b | ) ≤ 1,</p><p>which is just the CFL condition of upwind difference scheme for two-dimensional hyperbolic equations with constant coefficients [<xref ref-type="bibr" rid="scirp.110271-ref3">3</xref>]. This indicates that the condition (23) is compatible with the constant coefficients case and is an appropriate one.</p><p>Now we derive the convergence rate of the scheme (9)-(13) based on the maximum technique and the condition (23).</p><p>Theorem 2.2. Suppose that u ( x , y , t ) ∈ C 2 ( Ω &#175; &#215; [ 0, T ] ) is the solution of (2), and { U j , k n |   0 ≤ j ,   k ≤ M ,   0 ≤ n ≤ N } is the solution of the upwind difference scheme (9)-(13). Then when the condition (23) is satisfied, there exists a constant C &gt; 0 independent of h and τ such that</p><p>max 0 ≤ n τ ≤ N ‖ u n − U n ‖ ∞ ≤ C ( τ + h ) .</p><p>Proof. Let E j , k n = u j , k n − U j , k n , 0 ≤ j , k ≤ M , 0 ≤ n ≤ N . We can easily obtain the error equations</p><p>E j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) E j , k n + | r j , k | E j − 1 , k n + | s j , k | E j , k − 1 n + τ R j , k 1 , n , E j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) E j , k n + | r j , k | E j + 1 , k n + | s j , k | E j , k + 1 n + τ R j , k 2 , n , E j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) E j , k n + | r j , k | E j − 1 , k n + | s j , k | E j , k + 1 n + τ R j , k 3 , n , E j , k n + 1 = ( 1 − | r j , k | − | s j , k | ) E j , k n + | r j , k | E j + 1 , k n + | s j , k | E j , k − 1 n + τ R j , k 4 , n , (32)</p><p>where E j , k 0 = 0 , R j , k 1 , n , R j , k 2 , n , R j , k 3 , n , R j , k 4 , n are the truncation errors for Case 1-Case 4, respectively, and | R j , k s , n | ≤ C ( τ + h ) ,   s = 1 , 2 , 3 , 4 .</p><p>Using the similar approach to get (31), we obtain</p><p>‖ E n ‖ ∞ ≤ C ( τ + h ) ,   0 ≤ n ≤ N .</p><p>The proof is completed.</p><disp-formula id="scirp.110271-formula19"><graphic  xlink:href="//html.scirp.org/file/5-8103753x113.png"  xlink:type="simple"/></disp-formula></sec></sec><sec id="s3"><title>3. Implicit Upwind Scheme</title><p>The explicit upwind difference scheme proposed in the previous section is easy to implement. But the conditional stability may limit the application of the scheme in practice. For example, when very small space step h is needed, the time step τ must be taken very small also in order to keep the stability condition. In this section we propose an implicit upwind difference scheme which is unconditionally stable for problem (2). Instead of the forward Euler method, the backward Euler method is used to the time derivative in (2a) and at the same time the upwind method is used to the space derivatives. The unconditional stability of the implicit scheme is obtained by using Fourier method and maximum technique. Since there is no restriction between the size of h and τ , large time step can be used when it is necessary. So the implicit upwind difference scheme is more universal.</p><sec id="s3_1"><title>3.1. Formulation of Difference Scheme</title><p>Now we consider Equation (2a) at the node ( x j , y k , t n + 1 )</p><p>∂ u ( x j , y k , t n + 1 ) ∂ t + a ( x j , y k ) ∂ u ( x j , y k , t n + 1 ) ∂ x + b ( x j , y k ) ∂ u ( x j , y k , t n + 1 ) ∂ y = f ( x j , y k , t n + 1 ) . (33)</p><p>For the first term on the left hand side of Equation (3), applying the backward Euler method and Taylor’s formula, we have</p><p>∂ u ( x j , y k , t n + 1 ) ∂ t = u ( x j , y k , t n + 1 ) − u ( x j , y k , t n ) τ − τ 2 ∂ 2 u ( x j , y k , t n + 1 ) ∂ t 2 + O ( τ 2 ) . (34)</p><p>Then by using the upwind approach we have used to derive the scheme (9)-(12), we obtain the following implicit upwind difference scheme for (2)</p><p>( a )     U j , k n + 1 − U j , k n τ + a j , k U j , k n + 1 − U j − 1 , k n + 1 h + b j , k U j , k n + 1 − U j , k − 1 n + 1 h = f j , k n + 1 ,             1 ≤ j , k ≤ M ,   0 ≤ n ≤ N − 1 ,   a j , k ≥ 0 ,   b j , k ≥ 0 , ( b )     U j , k n + 1 − U j , k n τ + a j , k U j + 1 , k n + 1 − U j , k n + 1 h + b j , k U j , k + 1 n + 1 − U j , k n + 1 h = f j , k n + 1 ,             0 ≤ j , k ≤ M − 1 ,   0 ≤ n ≤ N − 1 ,   a j , k ≤ 0 ,   b j , k ≤ 0 ,</p><p>( c )     U j , k n + 1 − U j , k n τ + a j , k U j , k n + 1 − U j − 1 , k n + 1 h + b j , k U j , k + 1 n + 1 − U j , k n + 1 h = f j , k n + 1 ,             1 ≤ j ≤ M ,   0 ≤ k ≤ M − 1 ,   0 ≤ n ≤ N − 1 ,   a j , k ≥ 0 ,   b j , k ≤ 0 , ( d )     U j , k n + 1 − U j , k n τ + a j , k U j + 1 , k n + 1 − U j , k n + 1 h + b j , k U j , k n + 1 − U j , k − 1 n + 1 h = f j , k n + 1 ,             0 ≤ j ≤ M − 1 ,   1 ≤ k ≤ M ,   0 ≤ n ≤ N − 1 ,   a j , k ≤ 0 ,   b j , k ≥ 0. (35)</p><p>The initial condition and boundary condition (2b)-(2c) are discretized as follows</p><p>U j , k 0 = u 0 ( x j , y k ) ,     0 ≤ j , k ≤ M , U j , k n = g ( x j , y k , t n ) ,     ( x j , y k ) ∈ ( ∂ Ω ) − ,   0 ≤ n ≤ N . (36)</p><p>Remark 3.1. Note that at the time level t n + 1 , only two nodes in addition to ( x j , y k ) are used in x-direction and y-direction in each formula of (35). This makes it possible that the scheme (35)-(36) can be implemented explicitly from the flow-in boundary node by node. We will explain it in detail in Section 4.</p></sec><sec id="s3_2"><title>3.2. Stability and Convergence Analysis</title><p>We present unconditional stability and convergence of the scheme (35)-(36) in Theorem 3.1 and Theorem 3.2, respectively.</p><p>Theorem 3.1. The implicit upwind scheme (35)-(36) is unconditionally stable with respect to the initial value U 0 and the source term f.</p><p>Proof. First consider the case in which a j , k ≥ 0,   b j , k ≥ 0 . Let f = 0 and rewrite (35a) as</p><p>U j , k n + 1 + r j , k ( U j , k n + 1 − U j − 1, k n + 1 ) + s j , k ( U j , k n + 1 − U j , k − 1 n + 1 ) = U j , k n . (37)</p><p>Letting U j , k n = v n e i α j h e i β k h ( i = − 1 , α = 2 p π L , β = 2 q π L , p and q are integers), and substituting it into (37), we have</p><p>v n + 1 + r j , k v n + 1 ( 1 − ( cos α h − i sin α h ) ) + s j , k v n + 1 ( 1 − ( cos β h − i sin β h ) ) = v n .</p><p>Thus, the growth factor is</p><p>G ( α h , β h ) = 1 1 + r j , k + s j , k − r j , k cos α h − s j , k cos β h + i ( r j , k sin α h + s j , k sin β h ) . (38)</p><p>Therefore</p><p>| G ( α h , β h ) | 2 = 1 ( 1 + r j , k + s j , k − r j , k cos α h − s j , k cos β h ) 2 + ( r j , k sin α h + s j , k sin β h ) 2 . (39)</p><p>Since r j , k ≥ 0,   s j , k ≥ 0 , we easily know that</p><p>1 + r j , k + s j , k − r j , k cos α h − s j , k cos β h = 1 + r j , k ( 1 − cos α h ) + s j , k ( 1 − cos β h ) ≥ 1.</p><p>So for any r j , k ≥ 0,   s j , k ≥ 0 , it holds that</p><p>| G ( α h , β h ) | 2 ≤ 1. (40)</p><p>Similarly, we can obtain (40) for (35b)-(35d). Therefore, the growth factor satisfies the Von Neumann condition.</p><p>Now we prove the unconditional stability of the scheme (35)-(36) with respect to U 0 and f. We write (35a) as follow</p><p>( 1 + r j , k + s j , k ) U j , k n + 1 − r j , k U j − 1 , k n + 1 − s j , k U j , k − 1 n + 1 = U j , k n + τ f j , k n + 1 . (41)</p><p>Assuming that | U j 0 , k 0 n + 1 | = ‖ U n + 1 ‖ ∞ and noticing that r j , k ≥ 0 and s j , k ≥ 0 , we have</p><p>‖ U n + 1 ‖ ∞ = ( 1 + r j 0 , k 0 + s j 0 , k 0 ) ‖ U n + 1 ‖ ∞ − r j 0 , k 0 ‖ U n + 1 ‖ ∞ − s j 0 , k 0 ‖ U n + 1 ‖ ∞ ≤ ( 1 + r j 0 , k 0 + s j 0 , k 0 ) | U j 0 , k 0 n + 1 | − r j 0 , k 0 | U j 0 − 1 , k 0 n + 1 | − s j 0 , k 0 | U j 0 , k 0 − 1 n + 1 | ≤ | ( 1 + r j 0 , k 0 + s j 0 , k 0 ) U j 0 , k 0 n + 1 − r j 0 , k 0 U j 0 − 1 , k 0 n + 1 − s j 0 , k 0 U j 0 , k 0 − 1 n + 1 | = | U j 0 , k 0 n + τ f j 0 , k 0 n + 1 | ≤ ‖ U n ‖ ∞ + τ ‖ f n + 1 ‖ ∞ . (42)</p><p>Thus, we obtain</p><p>‖ U n + 1 ‖ ∞ ≤ ‖ U n ‖ ∞ + τ ‖ f n + 1 ‖ ∞ . (43)</p><p>Similarly, we can obtain (43) for (35b)-(35d).</p><p>Then, for any n, 1 ≤ n ≤ N , we get</p><p>‖ U n ‖ ∞ ≤ ‖ U 0 ‖ ∞ + n τ max 0 ≤ n ≤ N ‖ f n ‖ ∞ ≤ ‖ U 0 ‖ ∞ + T max 0 ≤ n ≤ N ‖ f n ‖ ∞ . (44)</p><p>So the scheme (35)-(36) is unconditionally stable with respect to the initial value U 0 and the source term f.</p><p>The proof is completed.</p><disp-formula id="scirp.110271-formula20"><graphic  xlink:href="//html.scirp.org/file/5-8103753x113.png"  xlink:type="simple"/></disp-formula><p>Theorem 3.2. Suppose that u ( x , y , t ) ∈ C 2 ( Ω &#175; &#215; [ 0, T ] ) is the solution of (2), and { U j , k n |   0 ≤ j ,   k ≤ M ,   0 ≤ n ≤ N } is the solution of the upwind difference scheme (35)-(36). Then there exists a constant C &gt; 0 independent of h and τ , such that</p><p>max 0 ≤ n τ ≤ N ‖ u n − U n ‖ ∞ ≤ C ( τ + h ) .</p><p>Proof. Let E j , k n = u j , k n − U j , k n , 0 ≤ j , k ≤ M , 0 ≤ n ≤ N . We can easily obtain the error equations</p><p>( 1 + | r j , k | + | s j , k | ) E j , k n + 1 − | r j , k | E j − 1 , k n + 1 − | s j , k | E j , k − 1 n + 1 = E j , k n + τ R j , k 1 , n + 1 , ( 1 + | r j , k | + | s j , k | ) E j , k n + 1 − | r j , k | E j + 1 , k n + 1 − | s j , k | E j , k + 1 n + 1 = E j , k n + τ R j , k 1 , n + 1 , ( 1 + | r j , k | + | s j , k | ) E j , k n + 1 − | r j , k | E j − 1 , k n + 1 − | s j , k | E j , k + 1 n + 1 = E j , k n + τ R j , k 1 , n + 1 , ( 1 + | r j , k | + | s j , k | ) E j , k n + 1 − | r j , k | E j + 1 , k n + 1 − | s j , k | E j , k − 1 n + 1 = E j , k n + τ R j , k 1 , n + 1 , (45)</p><p>where E j , k 0 = 0 , R j , k 1 , n ,   R j , k 2 , n ,   R j , k 3 , n ,   R j , k 4 , n are the truncation errors for (35), respectively, and | R j , k s , n | ≤ C ( τ + h ) ,   s = 1 , 2 , 3 , 4 .</p><p>Using the similar approach to get (43), we obtain</p><p>‖ E n ‖ ∞ ≤ C ( τ + h ) ,   0 ≤ n ≤ N .</p><p>The proof is completed.</p><disp-formula id="scirp.110271-formula21"><graphic  xlink:href="//html.scirp.org/file/5-8103753x113.png"  xlink:type="simple"/></disp-formula></sec></sec><sec id="s4"><title>4. Implementation Details of the Method</title><p>In this section, we give details about how to implement the method of this work. In order to describe the algorithm for the explicit scheme (9)-(13) and the implicit scheme (35)-(36) simply and clearly, we assume that the flow-in boundary is { ( x , y ) : x = 0 ,   0 ≤ y ≤ L } and { ( x , y ) : y = 0 ,   0 ≤ x ≤ L } with no loss of generality. Thus we have both a ( x , y ) ≥ 0 and b ( x , y ) ≥ 0 .</p><p>We provide the algorithms for the explicit scheme (9)-(13) and the explicit scheme (35)-(36) in the following Algorithm 4.1 and Algorithm 4.2, respectively.</p><p>Algorithm 4.1. Algorithm for the explicit scheme (9)-(13):</p><p>1) Choose space step h = L / M and time step τ = T / N which satisfy the stability condition (23) and partition the time interval [ 0, T ] and space domain Ω .</p><p>2) Get initial data { U j , k 0 ,   0 ≤ j , k ≤ M } and flow-in boundary data { U 0 , k n ,   U j , 0 n ,   0 ≤ j , k ≤ M ,   n = 0 , 1 , ⋯ , N } by (13).</p><p>3) For n = 0 , 1 , ⋯ , N − 1 , suppose that { U j , k n ,   0 ≤ j , k ≤ M } has been known or obtained beforehand. Then for 1 ≤ j , k ≤ M , get U j , k n + 1 explicitly by using the formula (9) according to the sign of a j , k ≥ 0 and b j , k ≥ 0 (or by other formula in (10)-(12) corresponding to other cases of the sign of a j , k and b j , k ).</p><p>Algorithm 4.2. Algorithm for the implicit scheme (35)-(36):</p><p>1) Choose space step h = L / M and time step τ = T / N and partition the time interval [ 0, T ] and space domain Ω .</p><p>2) Get initial data { U j , k 0 ,   0 ≤ j , k ≤ M } and flow-in boundary data { U 0 , k n ,   U j , 0 n ,   0 ≤ j , k ≤ M ,   n = 0 , 1 , ⋯ , N } by (36).</p><p>3) For n = 0 , 1 , ⋯ , N − 1 , suppose that { U j , k n } has been known or obtained beforehand. For k = 1 , 2 , ⋯ , M , obtain U j , k n + 1 explicitly from { U j − 1, k n + 1 , U j , k − 1 n + 1 , U j , k n } by using (35a) for j = 1 , ⋯ , M . (Similarly, if the sign of a j , k and b j , k is one of other three cases, the corresponding formula in (35) is used.)</p><p>It can be seen that the upwind difference schemes we have proposed in this work are easy to be implemented as well as are efficient. Especially, the implicit scheme (35)-(36) does not require any restriction between h and τ and can be implemented actually explicitly. So they are suited for the simulation of waves propagation in real-world application.</p></sec><sec id="s5"><title>5. Numerical Experiment</title><p>In this section we give three numerical examples. In the first two examples, we consider two problems for which the exact solutions are given in order to verify the stability and convergence rate of the proposed schemes. In the third example, we consider a problem which is more realistic in sense that the initial data is nonsmooth and the exact solution is not given beforehand. The propagation performance of the wave is illustrated by using the proposed implicit upwind scheme.</p><p>Example 1. Consider the following initial-boundary value problem of two dimensional first-order hyperbolic problem:</p><p>( a )     ∂ u ∂ t + ∂ u ∂ x + ∂ u ∂ y = 0 ,     0 &lt; x ,   y ≤ 1 ,   0 &lt; t ≤ 1 , ( b )     u ( x , y , 0 ) = sin π x + sin π y ,     0 ≤ x ≤ 1 ,   0 ≤ y ≤ 1 , ( c )     u ( 0 , y , t ) = sin π ( − t ) + sin π ( y − t ) ,     0 ≤ y ≤ 1 ,   0 ≤ t ≤ 1 , ( d )     u ( x , 0 , t ) = sin π ( x − t ) + sin π ( − t ) ,     0 ≤ x ≤ 1 ,   0 ≤ t ≤ 1. (46)</p><p>The exact solution is u ( x , y , t ) = sin π ( x − t ) + sin π ( y − t ) .</p><p>Taking the space step h = 1 M and the time step τ = 1 N , the explicit and implicit upwind schemes proposed in this paper are respectively used to solve problem (46). The discrete l 2 norm is defined as ‖ U n ‖ = { ∑ j , k = 0 M     h 2 ( U j , k n ) 2 } 1 2 .</p><p>Firstly, we consider the explicit upwind scheme. According to the Theorem 2.1, the stability condition of the explicit upwind scheme for (46) is r = s = τ h ≤ 1 2 . The l ∞ -error and l 2 -error and the convergence order of the explicit upwind scheme when r = s = 1 3 and r = s = 1 2 are presented in <xref ref-type="table" rid="table1">Table 1</xref> and <xref ref-type="table" rid="table2">Table 2</xref>, respectively. It can be seen from the results that the scheme is stable when r = s ≤ 1 2 and the convergence rate of the scheme is first order.</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Errors and convergence order of explicit upwind scheme with r = s = 1 3 </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >1 3 ⋅ 2 5</td><td align="center" valign="middle" >0.1016</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0539</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >1 3 ⋅ 2 6</td><td align="center" valign="middle" >0.0535</td><td align="center" valign="middle" >0.9253</td><td align="center" valign="middle" >0.0276</td><td align="center" valign="middle" >0.9656</td></tr><tr><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >1 3 ⋅ 2 7</td><td align="center" valign="middle" >0.0277</td><td align="center" valign="middle" >0.9497</td><td align="center" valign="middle" >0.0140</td><td align="center" valign="middle" >0.9792</td></tr><tr><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >1 3 ⋅ 2 8</td><td align="center" valign="middle" >0.0142</td><td align="center" valign="middle" >0.9640</td><td align="center" valign="middle" >0.0071</td><td align="center" valign="middle" >0.9795</td></tr><tr><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >1 3 ⋅ 2 9</td><td align="center" valign="middle" >0.0072</td><td align="center" valign="middle" >0.9798</td><td align="center" valign="middle" >0.0035</td><td align="center" valign="middle" >1.0205</td></tr></tbody></table></table-wrap><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Errors and convergence order of explicit upwind scheme with r = s = 1 2 </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >1 2 ⋅ 2 5</td><td align="center" valign="middle" >0.0770</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0408</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >1 2 ⋅ 2 6</td><td align="center" valign="middle" >0.0404</td><td align="center" valign="middle" >0.9305</td><td align="center" valign="middle" >0.0208</td><td align="center" valign="middle" >0.9720</td></tr><tr><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >1 2 ⋅ 2 7</td><td align="center" valign="middle" >0.0208</td><td align="center" valign="middle" >0.9578</td><td align="center" valign="middle" >0.0105</td><td align="center" valign="middle" >0.9862</td></tr><tr><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >1 2 ⋅ 2 8</td><td align="center" valign="middle" >0.0106</td><td align="center" valign="middle" >0.9725</td><td align="center" valign="middle" >0.0053</td><td align="center" valign="middle" >0.9863</td></tr><tr><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >1 2 ⋅ 2 9</td><td align="center" valign="middle" >0.0054</td><td align="center" valign="middle" >0.9730</td><td align="center" valign="middle" >0.0027</td><td align="center" valign="middle" >0.9730</td></tr></tbody></table></table-wrap><p>The l ∞ -error and l 2 -error of the explicit upwind scheme when r = s = 1 are presented in <xref ref-type="table" rid="table3">Table 3</xref>. It can be seen from the results that the scheme is unstable for r = s = 1 &gt; 1 2 , which verifies that the explicit upwind scheme is conditionally stable. The plots of convergence order for the explicit upwind scheme with r = s = 1 3 and r = s = 1 2 are presented in <xref ref-type="fig" rid="fig1">Figure 1</xref>. Surface plots of the exact solution and the numerical solution with r = s = 1 3 are presented in <xref ref-type="fig" rid="fig2">Figure 2</xref> and <xref ref-type="fig" rid="fig3">Figure 3</xref>.</p><p>Next, we consider the implicit upwind scheme. The l ∞ -error and l 2 -error and the convergence order of the implicit scheme when r = s = 1 are shown in <xref ref-type="table" rid="table4">Table 4</xref>. The results show that the implicit upwind scheme is unconditional stable and converges at a rate of first order. The plots of convergence order of the implicit scheme are given in <xref ref-type="fig" rid="fig4">Figure 4</xref>. Surface plots of the exact solution and the numerical solution with r = s = 1 are presented in <xref ref-type="fig" rid="fig5">Figure 5</xref> and <xref ref-type="fig" rid="fig6">Figure 6</xref>.</p><p>Example 2. In this example, we consider the following initial-boundary value problem of two-dimensional first-order hyperbolic equation with variable coefficients:</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Errors of explicit upwind scheme with r = s = 1 </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >l 2 -error</th></tr></thead><tr><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >0.0120</td><td align="center" valign="middle" >0.0037</td></tr><tr><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >6.7589e+13</td><td align="center" valign="middle" >1.3648e+13</td></tr><tr><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >1.7817e+44</td><td align="center" valign="middle" >4.0098e+43</td></tr><tr><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >9.6767e+104</td><td align="center" valign="middle" >1.7518e+104</td></tr><tr><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >1.6796e+227</td><td align="center" valign="middle" >inf</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Errors and convergence order of implicit upwind scheme with r = s = 1 </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >0.1542</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0799</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >0.0814</td><td align="center" valign="middle" >0.9217</td><td align="center" valign="middle" >0.0413</td><td align="center" valign="middle" >0.9521</td></tr><tr><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >0.0421</td><td align="center" valign="middle" >0.9512</td><td align="center" valign="middle" >0.0210</td><td align="center" valign="middle" >0.9758</td></tr><tr><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >0.0215</td><td align="center" valign="middle" >0.9695</td><td align="center" valign="middle" >0.0106</td><td align="center" valign="middle" >0.9863</td></tr><tr><td align="center" valign="middle" >1 2 10</td><td align="center" valign="middle" >1 2 10</td><td align="center" valign="middle" >0.0109</td><td align="center" valign="middle" >0.9800</td><td align="center" valign="middle" >0.0053</td><td align="center" valign="middle" >1.0000</td></tr></tbody></table></table-wrap><p>( a ) ∂ u ∂ t + sin ( x ) ∂ u ∂ x + sin ( y ) ∂ u ∂ y = sin ( x ) sin ( y ) [ cos ( t ) + sin ( t ) cos ( x )             + sin ( t ) cos ( y ) ] ,     0 &lt; x , y ≤ π , 0 &lt; t ≤ 1 , ( b ) u ( x , y , 0 ) = 0 , 0 ≤ x ≤ π , 0 ≤ y ≤ π , ( c ) u ( 0 , y , t ) = 0 , 0 ≤ y ≤ π , 0 ≤ t ≤ 1 , ( d ) u ( x , 0 , t ) = 0 , 0 ≤ x ≤ π , 0 ≤ t ≤ 1 , (47)</p><p>where the exact solution is u ( x , y , t ) = sin ( t ) sin ( x ) sin ( y ) .</p><p>Taking the space step h = π M and the time step τ = 1 N , the explicit and implicit upwind schemes proposed in this paper are respectively used to solve problem (47).</p><p>Firstly, we consider the explicit upwind scheme. According to Theorem 2.1, the condition under which the explicit upwind scheme of (47) is stable is τ h ≤ 1 2 . The l ∞ -error and l 2 -error and the convergence order of the explicit upwind scheme when τ h = 1 2 π and τ h = 1 π are presented in <xref ref-type="table" rid="table5">Table 5</xref> and <xref ref-type="table" rid="table6">Table 6</xref>, respectively. It can be seen from the results that the scheme is stable when τ h ≤ 1 2 and the convergence rate of the scheme is first order. The l ∞ -error and l 2 -error of the explicit upwind scheme when τ h = 2 π are presented in <xref ref-type="table" rid="table7">Table 7</xref>. It can be seen from the results that the scheme is unstable for τ h = 2 π &gt; 1 2 , which verifies that the explicit</p><p>upwind scheme is conditionally stable. The plots of convergence order of the explicit scheme with τ h = 1 2 π and τ h = 1 π are displayed in <xref ref-type="fig" rid="fig7">Figure 7</xref>. Surface plots of the exact solution and the numerical solution with τ h = 1 2 π are presented in <xref ref-type="fig" rid="fig8">Figure 8</xref> and <xref ref-type="fig" rid="fig9">Figure 9</xref>.</p><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Errors and convergence order of explicit upwind scheme with τ h = 1 2 π </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >π 2 4</td><td align="center" valign="middle" >1 2 ⋅ 2 4</td><td align="center" valign="middle" >0.0688</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0942</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >π 2 5</td><td align="center" valign="middle" >1 2 ⋅ 2 5</td><td align="center" valign="middle" >0.0364</td><td align="center" valign="middle" >0.9185</td><td align="center" valign="middle" >0.0491</td><td align="center" valign="middle" >0.9400</td></tr><tr><td align="center" valign="middle" >π 2 6</td><td align="center" valign="middle" >1 2 ⋅ 2 6</td><td align="center" valign="middle" >0.0187</td><td align="center" valign="middle" >0.9609</td><td align="center" valign="middle" >0.0251</td><td align="center" valign="middle" >0.9680</td></tr><tr><td align="center" valign="middle" >π 2 7</td><td align="center" valign="middle" >1 2 ⋅ 2 7</td><td align="center" valign="middle" >0.0095</td><td align="center" valign="middle" >0.9770</td><td align="center" valign="middle" >0.0127</td><td align="center" valign="middle" >0.9829</td></tr><tr><td align="center" valign="middle" >π 2 8</td><td align="center" valign="middle" >1 2 ⋅ 2 8</td><td align="center" valign="middle" >0.0048</td><td align="center" valign="middle" >0.9849</td><td align="center" valign="middle" >0.0064</td><td align="center" valign="middle" >0.9887</td></tr></tbody></table></table-wrap><table-wrap id="table6" ><label><xref ref-type="table" rid="table6">Table 6</xref></label><caption><title> Errors and convergence order of explicit upwind scheme with τ h = 1 π </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >π 2 4</td><td align="center" valign="middle" >1 2 4</td><td align="center" valign="middle" >0.0612</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0823</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >π 2 5</td><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >0.0329</td><td align="center" valign="middle" >0.8954</td><td align="center" valign="middle" >0.0435</td><td align="center" valign="middle" >0.9199</td></tr><tr><td align="center" valign="middle" >π 2 6</td><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >0.0169</td><td align="center" valign="middle" >0.9611</td><td align="center" valign="middle" >0.0224</td><td align="center" valign="middle" >0.9575</td></tr><tr><td align="center" valign="middle" >π 2 7</td><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >0.0086</td><td align="center" valign="middle" >0.9746</td><td align="center" valign="middle" >0.0113</td><td align="center" valign="middle" >0.9872</td></tr><tr><td align="center" valign="middle" >π 2 8</td><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >0.0043</td><td align="center" valign="middle" >1.0000</td><td align="center" valign="middle" >0.0057</td><td align="center" valign="middle" >0.9873</td></tr></tbody></table></table-wrap><table-wrap id="table7" ><label><xref ref-type="table" rid="table7">Table 7</xref></label><caption><title> Errors of explicit upwind scheme with τ h = 2 π </title></caption><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >l 2 -error</th></tr></thead><tr><td align="center" valign="middle" >π 2 ⋅ 2 4</td><td align="center" valign="middle" >1 2 4</td><td align="center" valign="middle" >0.0256</td><td align="center" valign="middle" >0.0324</td></tr><tr><td align="center" valign="middle" >π 2 ⋅ 2 5</td><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >0.0134</td><td align="center" valign="middle" >0.0170</td></tr><tr><td align="center" valign="middle" >π 2 ⋅ 2 6</td><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >0.0069</td><td align="center" valign="middle" >0.0087</td></tr><tr><td align="center" valign="middle" >π 2 ⋅ 2 7</td><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >3.6428e+03</td><td align="center" valign="middle" >514.8929</td></tr><tr><td align="center" valign="middle" >π 2 ⋅ 2 8</td><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >4.0151e+25</td><td align="center" valign="middle" >4.2726e+24</td></tr></tbody></table></table-wrap><p>Next, we consider the implicit upwind scheme. The l ∞ -error and l 2 -error and the convergence order of the implicit upwind scheme when τ h = 1 π are shown in <xref ref-type="table" rid="table8">Table 8</xref>. The results show that the implicit upwind scheme is unconditional stable and converges at a rate of first order. The plots of convergence order of the implicit scheme are displayed in <xref ref-type="fig" rid="fig1">Figure 1</xref>0. Surface plots of the exact solution and the numerical solution with τ h = 1 π are presented in <xref ref-type="fig" rid="fig1">Figure 1</xref>1 and <xref ref-type="fig" rid="fig1">Figure 1</xref>2.</p><p>Example 3. We consider the following initial-boundary value problem of two-dimensional first-order hyperbolic equation with variable coefficients:</p><table-wrap-group id="8"><label><xref ref-type="table" rid="table8">Table 8</xref></label><caption><title> Errors and convergence order of implicit upwind scheme with τ h = 1 π </title></caption><table-wrap id="8_1"><table><tbody><thead><tr><th align="center" valign="middle" >h</th><th align="center" valign="middle" >τ</th><th align="center" valign="middle" >l ∞ -error</th><th align="center" valign="middle" >order</th><th align="center" valign="middle" >l 2 -error</th><th align="center" valign="middle" >order</th></tr></thead><tr><td align="center" valign="middle" >π 2 5</td><td align="center" valign="middle" >1 2 5</td><td align="center" valign="middle" >0.0471</td><td align="center" valign="middle" >-</td><td align="center" valign="middle" >0.0660</td><td align="center" valign="middle" >-</td></tr><tr><td align="center" valign="middle" >π 2 6</td><td align="center" valign="middle" >1 2 6</td><td align="center" valign="middle" >0.0239</td><td align="center" valign="middle" >0.9787</td><td align="center" valign="middle" >0.0333</td><td align="center" valign="middle" >0.9869</td></tr><tr><td align="center" valign="middle" >π 2 7</td><td align="center" valign="middle" >1 2 7</td><td align="center" valign="middle" >0.0120</td><td align="center" valign="middle" >0.9940</td><td align="center" valign="middle" >0.0167</td><td align="center" valign="middle" >0.9957</td></tr><tr><td align="center" valign="middle" >π 2 8</td><td align="center" valign="middle" >1 2 8</td><td align="center" valign="middle" >0.0060</td><td align="center" valign="middle" >1.0000</td><td align="center" valign="middle" >0.0084</td><td align="center" valign="middle" >0.9914</td></tr><tr><td align="center" valign="middle" >π 2 9</td><td align="center" valign="middle" >1 2 9</td><td align="center" valign="middle" >0.0030</td><td align="center" valign="middle" >1.0000</td><td align="center" valign="middle" >0.0042</td><td align="center" valign="middle" >1.0000</td></tr></tbody></table></table-wrap></table-wrap-group><p>Notice that in (48) the initial function is nonsmooth and the exact solution is not given beforehand. So it is more realistic. We study the wave propagation by using the implicit upwind scheme proposed in this paper.</p><p>Taking space step h = 1 M and time step τ = 1 N with M = 2 5 and N = M , we present the numerical solution at different times in <xref ref-type="fig" rid="fig1">Figure 1</xref>3. We can see from <xref ref-type="fig" rid="fig1">Figure 1</xref>3 that the wave propagates to left stably.</p></sec><sec id="s6"><title>6. Conclusions</title><p>The upwind difference method is based on the direction of the flow and so can provide efficient simulation of wave propagation in real world. In this paper, we applied this method to solve the two-dimensional first-order hyperbolic equation with variable coefficients, constructing full-discrete explicit and implicit upwind difference schemes, respectively. We illustrated that both schemes are easy to be implemented in practice. By using the local fixed coefficient method and maximum technique, we proved the conditional stability of the explicit scheme and the unconditional stability of the implicit scheme, respectively. In addition, we derived the optimal first-order convergence of these schemes both in space and time. The efficiency of our schemes is presented theoretically as well as numerically through a few examples.</p><p>Since the method of this work is of first order both in space and time, we can consider the high-order upwind difference method for two-dimensional first-order hyperbolic equations with variable coefficients in the future, such as the compact difference method. Also, the extension of the method of this work to three-dimensional problems is also under consideration.</p></sec><sec id="s7"><title>Acknowledgements</title><p>The authors would like to thank editors and referees for their valuable advice for the improvement of this article.</p></sec><sec id="s8"><title>Funding</title><p>The work is supported by Shandong Provincial Natural Science Foundation, China (ZR2017MA020).</p></sec><sec id="s9"><title>Conflicts of Interest</title><p>The authors declare no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s10"><title>Cite this paper</title><p>Sun, Y.M. and Yang, Q. (2021) Numerical Analysis of Upwind Difference Schemes for Two-Dimensional First-Order Hyperbolic Equations with Variable Coefficients. Engineering, 13, 306-329. https://doi.org/10.4236/eng.2021.136023</p></sec></body><back><ref-list><title>References</title><ref id="scirp.110271-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Li, R.H., Chen, Z.Y., Wu, W., et al. (2000) Generalized Difference Methods for Differential Equations. Marcel Dekker Inc., New York. https://doi.org/10.1201/9781482270211</mixed-citation></ref><ref id="scirp.110271-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Evans, L.C. (2010) Partial Differential Equations. American Mathematical Society, Providence, Rhode Island. https://doi.org/10.1090/gsm/019</mixed-citation></ref><ref id="scirp.110271-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Thomas, J.W. (1997) Numerical Partial Differential Equations: Finite Difference Methods. Springer-Verlag, Berlin.</mixed-citation></ref><ref id="scirp.110271-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Li, R.H. and Liu, B. (2009) Numerical Solution of Differential Equation. Higher Education Press, Beijing.</mixed-citation></ref><ref id="scirp.110271-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Garg, N.K., Kurganov, A., Liu, Y., et al. (2021) Semi-Discrete Central-Upwind Rankine-Hugoniot Schemes for Hyperbolic Systems of Conservation Laws. Journal of Computational Physics, 428, 110078. https://doi.org/10.1016/j.jcp.2020.110078</mixed-citation></ref><ref id="scirp.110271-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, Z., Zhu, J., Chen, Y.B., Qiu, J.X., et al. (2019) A New Hybrid WENO Scheme for Hyperbolic Conservation Laws. Computers and Fluids, 179, 422-436. https://doi.org/10.1016/j.compfluid.2018.10.024</mixed-citation></ref><ref id="scirp.110271-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Zhao, Z., Chen, Y.B., Qiu, J.X., et al. (2020) A Hybrid Hermite WENO Scheme for Hyperbolic Conservation Laws. Journal of Computational Physics, 405, 109175. https://doi.org/10.1016/j.jcp.2019.109175</mixed-citation></ref><ref id="scirp.110271-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Kurganov, A., Petrova, G., Popov, B., et al. (2007) Adaptive Semidiscrete Central-Upwind Schemes for Nonconvex Hyperbolic Conservation Laws. Siam Journal on Scientific Computing, 29, 2381-2401. https://doi.org/10.1137/040614189</mixed-citation></ref><ref id="scirp.110271-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Kurganov, A. and Petrova, G. (2009) Central-Upwind Schemes for Two-Layer Shallow Water Equations. Siam Journal on Scientific Computing, 31, 1742-1773. https://doi.org/10.1137/080719091</mixed-citation></ref><ref id="scirp.110271-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Schncke, G., Krais, N., Bolemann, T., Gassner, G.J., et al. (2020) Entropy Stable Discontinuous Galerkin Schemes on Moving Meshes for Hyperbolic Conservation Laws. Journal of Scientific Computing, 82, 69. https://doi.org/10.1007/s10915-020-01171-7</mixed-citation></ref><ref id="scirp.110271-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Fan, X.F. (2015) High-Order Difference Schemes for the First-Order Hyperbolic Equations with Variable Coefficients. Master’s Dissertation, Southeast University, Nanjing.</mixed-citation></ref><ref id="scirp.110271-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Chen, L. and Ma, H.P. (2013) Dissipative Spectral Element Method for First-Order Linear Hybperbolic Equation. Communication on Applied Mathematics and Computation, 27, 491-500.</mixed-citation></ref></ref-list></back></article>