﻿<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with MathML3 v1.2 20190208//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">UJPR</journal-id>
      <journal-title-group>
        <journal-title>Universal Journal of Physics Research</journal-title>
      </journal-title-group>
      <issn pub-type="epub"></issn>
      <issn pub-type="ppub"></issn>
      <publisher>
        <publisher-name>Trend Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.31586/ujpr.2022.155</article-id>
      <article-id pub-id-type="publisher-id">UJPR-155</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>
          Compact Difference Schemes Combined with Runge-Kutta Methods for Solving Unsteady Convection-Diffusion Problems
        </article-title>
      </title-group>
      <contrib-group>
<contrib contrib-type="author">
<name>
<surname>Zhu</surname>
<given-names>Zhenwei</given-names>
</name>
<xref rid="af1" ref-type="aff">1</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Junjie</given-names>
</name>
<xref rid="af1" ref-type="aff">1</xref>
<xref rid="cr1" ref-type="corresp">*</xref>
</contrib>
      </contrib-group>
<aff id="af1"><label>1</label>Department of Energy and Power Engineering, School of Mechanical and Power Engineering, Henan Polytechnic University, Jiaozuo, Henan, China</aff>
<author-notes>
<corresp id="c1">
<label>*</label>Corresponding author at: Department of Energy and Power Engineering, School of Mechanical and Power Engineering, Henan Polytechnic University, Jiaozuo, Henan, China
</corresp>
</author-notes>
      <pub-date pub-type="epub">
        <day>05</day>
        <month>11</month>
        <year>2021</year>
      </pub-date>
      <volume>1</volume>
      <issue>1</issue>
      <history>
        <date date-type="received">
          <day>05</day>
          <month>11</month>
          <year>2021</year>
        </date>
        <date date-type="rev-recd">
          <day>05</day>
          <month>11</month>
          <year>2021</year>
        </date>
        <date date-type="accepted">
          <day>05</day>
          <month>11</month>
          <year>2021</year>
        </date>
        <date date-type="pub">
          <day>05</day>
          <month>11</month>
          <year>2021</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>&#xa9; Copyright 2021 by authors and Trend Research Publishing Inc. </copyright-statement>
        <copyright-year>2021</copyright-year>
        <license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
          <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>
        The convection-diffusion equation is of primary importance in understanding transport phenomena within a physical system. However, the currently available methods for solving unsteady convection-diffusion problems are generally not able to offer excellent accuracy in both time and space variables. A procedure was given in detail to solve the one-dimensional unsteady convection-diffusion equation through a combination of Runge-Kutta methods and compact difference schemes. The combination method has fourth-order accuracy in both time and space variables. Numerical experiments were conducted and the results were compared with those obtained by the Crank-Nicolson method in order to check the accuracy of the combination method. The analysis results indicated that the combination method is numerically stable at low wave numbers and small CFL numbers. The combination method has higher accuracy than the Crank-Nicolson method.
      </abstract>
      <kwd-group>
        <kwd-group><kwd>Runge-Kutta methods; Compact finite difference schemes; Convection-diffusion equations; Stability analysis; High-order accuracy; Crank-Nicolson methods</kwd>
</kwd-group>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1">
<title>Introduction</title><p>The convection-diffusion equation is a combination of the diffusion convection and diffusion equations, and describes physical phenomena where particles, energy, or other physical quantities are transferred inside a physical system due to convection and diffusion processes [
<xref ref-type="bibr" rid="R1">1</xref>,<xref ref-type="bibr" rid="R2">2</xref>]. This equation is of primary importance in understanding transport phenomena within a physical system [
<xref ref-type="bibr" rid="R3">3</xref>,<xref ref-type="bibr" rid="R4">4</xref>].</p>
<p>For a transport variable <italic>u</italic>, the one-dimensional unsteady advection-diffusion equation is usually written as</p>

<disp-formula id="FD1"><label>(1)</label><math> <semantics>  <mrow>   <mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>&#x03B1;</mi><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mo>,</mo><mtext>&#x00A0;&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>L</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math></disp-formula><p>with the initial condition</p>
<math> <semantics>  <mrow>   <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mn>0</mn><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>&#x03D5;</mi><mo stretchy='false'>(</mo><mi>x</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>and the boundary conditions</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>&#x03B1;</mi><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mi>&#xFF0C;</mi><mtext>&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>L</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mi>&#xFF0C;</mi><mtext>&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>L</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>in which <italic>c</italic> is an arbitrary constant indicating the intensity of the convection, the diffusion coefficient <italic>&#x26;#x003b1;</italic> is positive constant, and <italic>g</italic><sub>0</sub> and<italic> g</italic><sub>1</sub> are assumed in this study to be smooth functions.</p>
<p>A variety of finite difference schemes have been presented to solve unsteady convection-diffusion problems approximately [
<xref ref-type="bibr" rid="R5">5</xref>]. These schemes usually have first-order or second-order accurate in space variables, but have fallen short of expectations for convection-dominated flows if the mesh is not sufficiently refined [
<xref ref-type="bibr" rid="R5">5</xref>]. Discretization with a higher order in space variables is usually associated with large stencils, thereby increasing the band-width of the resulting matrix [
<xref ref-type="bibr" rid="R5">5</xref>,<xref ref-type="bibr" rid="R6">6</xref>]. A class of compact finite difference approximations have been recently developed to solve convection-diffusion problems [
<xref ref-type="bibr" rid="R7">7</xref>,<xref ref-type="bibr" rid="R8">8</xref>,<xref ref-type="bibr" rid="R9">9</xref>]. These compact finite difference schemes have fourth-order accuracy in space variables, but fail when accuracy in time variables is most needed [
<xref ref-type="bibr" rid="R10">10</xref>,<xref ref-type="bibr" rid="R11">11</xref>]. Additionally, most of these schemes have to compute the inverse of the block matrix [
<xref ref-type="bibr" rid="R10">10</xref>,<xref ref-type="bibr" rid="R11">11</xref>]. It is therefore entirely necessary to develop an effective numerical scheme in order to obtain satisfactory results with a higher order accuracy in time variables and reasonable computational cost.</p>
<p>The primary focus of this study is on developing an effective method to achieve higher accuracy in time variables by a combination of Runge-Kutta methods and high-order compact finite difference discretization schemes. This combination method is then used to solve the one-dimensional unsteady convection-diffusion equation and has fourth-order accuracy in both time and space variables. The Runge-Kutta methods are introduced briefly in Section 2. A fourth-order compact finite difference approximation scheme is presented in Section 3 for the unsteady convection-diffusion equation. A stability analysis is performed on the fully discretized equation in Section 4 to check the stability of the combination method. Some numerical examples are presented in Section 5 and concluding remarks are finally given in Section 6.</p>
</sec><sec id="sec2">
<title>Runge-Kutta methods</title><p>In numerical analysis, Runge-Kutta methods are a family of implicit and explicit iterative methods [
<xref ref-type="bibr" rid="R12">12</xref>]. When Runge-Kutta methods are used to solve the convection-diffusion equation, time is treated as an independent variable in an ordinary differential equation, for example,</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <mi>d</mi><mi>Q</mi></mrow>    <mrow>     <mi>d</mi><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>R</mi><mo stretchy='false'>(</mo><mi>t</mi><mo>,</mo><mi>Q</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>in which <italic>Q</italic> is an unknown function of time, and <italic>R</italic> denotes the numerical approximation to the spatial derivatives. The Runge-Kutta method used in this study is given in the following form</p>
<math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mrow>     <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><mover accent='true'>    <mi>R</mi>    <mo>&#x005E;</mo>   </mover>   <mo stretchy='false'>(</mo><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mo>,</mo><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>in which &#x26;#x00394;<italic>t</italic> is the time increment. The increment function <math> <semantics>  <mrow>   <mover accent='true'>    <mi>R</mi>    <mo>&#x005E;</mo>   </mover>   <mo stretchy='false'>(</mo><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mo>,</mo><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>)</mo></mrow>   </semantics></math> is subdivided into <italic>N </italic>steps on the interval <math> <semantics>  <mrow>   <msup>    <mi>t</mi>    <mi>n</mi>   </msup>   <mo>&#x2264;</mo><mi>t</mi><mo>&#x2264;</mo><msup>    <mi>t</mi>    <mrow>     <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>   </msup>   </mrow>   </semantics></math></p>
<math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>1</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>(</mo><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>11</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mi>n</mi>   </msup>   <mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>2</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>(</mo><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>21</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>22</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mn>1</mn>   </msup>   <mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>3</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>(</mo><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>31</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>32</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mn>1</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>    <mi>&#x03B1;</mi>    <mrow>     <mn>33</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mn>2</mn>   </msup>   <mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mrow>     <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><mo stretchy='false'>(</mo><msub>    <mi>&#x03B1;</mi>    <mrow>     <mi>N</mi><mn>1</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>    <mi>&#x03B1;</mi>    <mrow>     <mi>N</mi><mn>2</mn></mrow>   </msub>   <msup>    <mi>R</mi>    <mn>1</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mo>&#x22EF;</mo><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>    <mi>&#x03B1;</mi>    <mrow>     <mi>N</mi><mi>N</mi></mrow>   </msub>   <msup>    <mi>R</mi>    <mrow>     <mi>N</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>1</mn></mrow>   </msup>   <mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>in which the superscript <italic>n</italic>, 1, 2, ..., and <italic>n</italic> <bold>+</bold> 1 denote the time steps on the time interval <math> <semantics>  <mrow>   <msup>    <mi>t</mi>    <mi>n</mi>   </msup>   <mo>&#x2264;</mo><msub>    <mi>t</mi>    <mn>1</mn>   </msub>   <mo>&#x2264;</mo><msub>    <mi>t</mi>    <mn>2</mn>   </msub>   <mo>&#x2264;</mo><mo>&#x22EF;</mo><mo>&#x2264;</mo><msub>    <mi>t</mi>    <mi>N</mi>   </msub>   <mo>&#x2264;</mo><msup>    <mi>t</mi>    <mrow>     <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>   </msup>   </mrow>   </semantics></math>, and <italic>&#x26;#x003b1;</italic><sub><italic>ij</italic></sub> is the weighting factor for the step <italic>i</italic> and term <italic>j</italic>.</p>
<p>A four-step algorithm is given by</p>
<math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>1</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <mi>&#x0394;</mi><mi>t</mi></mrow>    <mn>4</mn>   </mfrac>   <msup>    <mi>R</mi>    <mi>n</mi>   </msup>   <mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>2</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <mi>&#x0394;</mi><mi>t</mi></mrow>    <mn>3</mn>   </mfrac>   <msup>    <mi>R</mi>    <mn>1</mn>   </msup>   <mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mn>3</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <mi>&#x0394;</mi><mi>t</mi></mrow>    <mn>2</mn>   </mfrac>   <msup>    <mi>R</mi>    <mn>2</mn>   </msup>   <mtext>&#x00A0;,</mtext></mrow>   </semantics></math><math> <semantics>  <mrow>   <msup>    <mi>Q</mi>    <mrow>     <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>Q</mi>    <mi>n</mi>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>&#x0394;</mi><mi>t</mi><msup>    <mi>R</mi>    <mn>3</mn>   </msup>   <mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>This algorithm is convenient to program and no intermediate solution needs to be stored [
<xref ref-type="bibr" rid="R13">13</xref>].</p>
</sec><sec id="sec3">
<title>A fourth-order compact finite difference scheme</title><p>The differential equation considered here takes the form</p>
<math> <semantics>  <mrow>   <mi>&#x03B1;</mi><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mi>c</mi><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo stretchy='false'>)</mo></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>f</mi><mo stretchy='false'>(</mo><mi>x</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,&#x00A0;</mtext><mi>x</mi><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>L</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>with the boundary conditions</p>
<math> <semantics>  <mrow>   <mi>u</mi><mo stretchy='false'>(</mo><mn>0</mn><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msub>    <mi>g</mi>    <mn>0</mn>   </msub>   <mtext>&#x00A0;,&#x00A0;</mtext><mi>u</mi><mo stretchy='false'>(</mo><mi>L</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msub>    <mi>g</mi>    <mn>1</mn>   </msub>   <mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>A compact difference scheme with fourth-order accuracy can be obtained for Equation (14) as follows [
<xref ref-type="bibr" rid="R14">14</xref>]: the interval 0 <bold>&#x26;#x02264;</bold> <italic>x</italic> <bold>&#x26;#x02264;</bold> 1 is subdivided into <italic>n</italic> equal subintervals by the grid points <math> <semantics>  <mrow>   <msub>    <mi>x</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mi>i</mi><mi>h</mi></mrow>   </semantics></math>, in which <math> <semantics>  <mrow>   <mi>h</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mtext>1</mtext>    <mi>n</mi>   </mfrac>   </mrow>   </semantics></math>. The mesh function <italic>u</italic>(<italic>ih</italic>) is written as <italic>u</italic><sub><italic>i</italic></sub> at grid point <italic>x</italic><sub><italic>i</italic></sub>. The second-order central difference schemes for second and first derivatives of <italic>u</italic> can be written as <math> <semantics>  <mrow>   <msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <mi>u</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <mo stretchy='false'>(</mo><msub>      <mi>u</mi>      <mrow>       <mi>i</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>2</mn><msub>      <mi>u</mi>      <mi>i</mi>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><msub>      <mi>u</mi>      <mrow>       <mi>i</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>1</mn></mrow>     </msub>     <mo stretchy='false'>)</mo></mrow>    <mrow>     <msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   </mrow>   </semantics></math> and <math> <semantics>  <mrow>   <msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <mi>u</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <mo stretchy='false'>(</mo><msub>      <mi>u</mi>      <mrow>       <mi>i</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><msub>      <mi>u</mi>      <mrow>       <mi>i</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>1</mn></mrow>     </msub>     <mo stretchy='false'>)</mo></mrow>    <mrow>     <mn>2</mn><msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   </mrow>   </semantics></math>, respectively. The following relation can be derived for Equation (14) at point <italic>x</italic><sub><italic>i</italic></sub>:</p>
<math> <semantics>  <mrow>   <mi>&#x03B1;</mi><msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mi>c</mi><msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><msub>    <mi>&#x03C4;</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mtext>&#x00A0;,</mtext></mrow>   </semantics></math><p>in which</p>
<math> <semantics>  <mrow>   <msub>    <mi>&#x03C4;</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>    <mrow>     <mn>12</mn></mrow>   </mfrac>   <mrow><mo>(</mo>    <mrow>     <mi>&#x03B1;</mi><mfrac>      <mrow>       <msup>        <mi>d</mi>        <mn>4</mn>       </msup>       <mi>u</mi></mrow>      <mrow>       <mi>d</mi><msup>        <mi>x</mi>        <mn>4</mn>       </msup>       </mrow>     </mfrac>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>2</mn><mi>c</mi><mfrac>      <mrow>       <msup>        <mi>d</mi>        <mn>3</mn>       </msup>       <mi>u</mi></mrow>      <mrow>       <mi>d</mi><msup>        <mi>x</mi>        <mn>3</mn>       </msup>       </mrow>     </mfrac>     </mrow>   <mo>)</mo></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>4</mn>   </msup>   <mo stretchy='false'>)</mo><mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>The fourth and third derivatives of <italic>u</italic> in the above equation should be approximated in order to obtain a compact difference scheme with fourth-order accuracy.</p>
<p>Equation (14) gives:</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <msup>      <mi>d</mi>      <mn>3</mn>     </msup>     <mi>u</mi></mrow>    <mrow>     <mi>d</mi><msup>      <mi>x</mi>      <mn>3</mn>     </msup>     </mrow>   </mfrac>   <mrow><mo>|</mo><mrow>    <msub>     <mrow></mrow>     <mi>i</mi>    </msub>    </mrow></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mn>1</mn>    <mi>&#x03B1;</mi>   </mfrac>   <mrow><mo>(</mo>    <mrow>     <mfrac>      <mrow>       <mi>d</mi><mi>f</mi></mrow>      <mrow>       <mi>d</mi><mi>x</mi></mrow>     </mfrac>     <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><mfrac>      <mrow>       <msup>        <mi>d</mi>        <mn>2</mn>       </msup>       <mi>u</mi></mrow>      <mrow>       <mi>d</mi><msup>        <mi>x</mi>        <mn>2</mn>       </msup>       </mrow>     </mfrac>     </mrow>   <mo>)</mo></mrow><mrow><mo>|</mo><mrow>    <msub>     <mrow></mrow>     <mi>i</mi>    </msub>    </mrow></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mn>1</mn>    <mi>&#x03B1;</mi>   </mfrac>   <mo stretchy='false'>(</mo><msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>2</mn>   </msup>   <mo stretchy='false'>)</mo></mrow>   </semantics></math><p>From Equation (14) and Equation (18), it follows that</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <msup>      <mi>d</mi>      <mn>4</mn>     </msup>     <mi>u</mi></mrow>    <mrow>     <mi>d</mi><msup>      <mi>x</mi>      <mn>4</mn>     </msup>     </mrow>   </mfrac>   <mrow><mo>|</mo><mrow>    <msub>     <mrow></mrow>     <mi>i</mi>    </msub>    </mrow></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mn>1</mn>    <mi>&#x03B1;</mi>   </mfrac>   <mrow><mo>(</mo>    <mrow>     <mfrac>      <mrow>       <msup>        <mi>d</mi>        <mn>2</mn>       </msup>       <mi>f</mi></mrow>      <mrow>       <mi>d</mi><msup>        <mi>x</mi>        <mn>2</mn>       </msup>       </mrow>     </mfrac>     <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><mfrac>      <mrow>       <msup>        <mi>d</mi>        <mn>3</mn>       </msup>       <mi>u</mi></mrow>      <mrow>       <mi>d</mi><msup>        <mi>x</mi>        <mn>3</mn>       </msup>       </mrow>     </mfrac>     </mrow>   <mo>)</mo></mrow><mrow><mo>|</mo><mrow>    <msub>     <mrow></mrow>     <mi>i</mi>    </msub>    </mrow></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mn>1</mn>    <mi>&#x03B1;</mi>   </mfrac>   <msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mi>c</mi>    <mrow>     <msup>      <mi>&#x03B1;</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>c</mi>      <mn>2</mn>     </msup>     </mrow>    <mrow>     <msup>      <mi>&#x03B1;</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>2</mn>   </msup>   <mo stretchy='false'>)</mo></mrow>   </semantics></math><p>By substituting Equations (18) and (19) for the corresponding terms used in Equation (17), the solution is given by</p>
<math> <semantics>  <mrow>   <msub>    <mi>&#x03C4;</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mn>1</mn>    <mrow>     <mn>12</mn></mrow>   </mfrac>   <mrow><mo>(</mo>    <mrow>     <msubsup>      <mi>&#x03B4;</mi>      <mi>x</mi>      <mn>2</mn>     </msubsup>     <msub>      <mi>f</mi>      <mi>i</mi>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mfrac>      <mi>c</mi>      <mi>&#x03B1;</mi>     </mfrac>     <msub>      <mi>&#x03B4;</mi>      <mi>x</mi>     </msub>     <msub>      <mi>f</mi>      <mi>i</mi>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mfrac>      <mrow>       <msup>        <mi>c</mi>        <mn>2</mn>       </msup>       </mrow>      <mi>&#x03B1;</mi>     </mfrac>     <msubsup>      <mi>&#x03B4;</mi>      <mi>x</mi>      <mn>2</mn>     </msubsup>     <msub>      <mi>u</mi>      <mi>i</mi>     </msub>     </mrow>   <mo>)</mo></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>4</mn>   </msup>   <mo stretchy='false'>)</mo></mrow>   </semantics></math><p>A fourth-order compact finite difference scheme for Equation (14) can be obtained by substituting Equation (20) in Equation (16). This gives</p>
<math> <semantics>  <mrow>   <mrow><mo>(</mo>    <mrow>     <mi>&#x03B1;</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>      <mrow>       <msup>        <mi>c</mi>        <mn>2</mn>       </msup>       <msup>        <mi>h</mi>        <mn>2</mn>       </msup>       </mrow>      <mrow>       <mn>12</mn><mi>&#x03B1;</mi></mrow>     </mfrac>     </mrow>   <mo>)</mo></mrow><msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mi>c</mi><msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>    <mrow>     <mn>12</mn></mrow>   </mfrac>   <mrow><mo>(</mo>    <mrow>     <msubsup>      <mi>&#x03B4;</mi>      <mi>x</mi>      <mn>2</mn>     </msubsup>     <msub>      <mi>f</mi>      <mi>i</mi>     </msub>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mfrac>      <mi>c</mi>      <mi>&#x03B1;</mi>     </mfrac>     <msub>      <mi>&#x03B4;</mi>      <mi>x</mi>     </msub>     <msub>      <mi>f</mi>      <mi>i</mi>     </msub>     </mrow>   <mo>)</mo></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>4</mn>   </msup>   <mo stretchy='false'>)</mo></mrow>   </semantics></math><p>Here, two difference operators are defined as follows:</p>
<math> <semantics>  <mrow>   <msub>    <mi>L</mi>    <mi>x</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mn>1</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>    <mrow>     <mn>12</mn></mrow>   </mfrac>   <mo stretchy='false'>(</mo><msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mfrac>    <mi>c</mi>    <mi>&#x03B1;</mi>   </mfrac>   <msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <mo stretchy='false'>)</mo><mtext>&#x00A0;,&#x00A0;</mtext><msub>    <mi>A</mi>    <mi>x</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo><mo>-</mo></mstyle><mo stretchy='false'>(</mo><mi>&#x03B1;</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>c</mi>      <mn>2</mn>     </msup>     <msup>      <mi>h</mi>      <mn>2</mn>     </msup>     </mrow>    <mrow>     <mn>12</mn><mi>&#x03B1;</mi></mrow>   </mfrac>   <mo stretchy='false'>)</mo><msubsup>    <mi>&#x03B4;</mi>    <mi>x</mi>    <mn>2</mn>   </msubsup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>c</mi><msub>    <mi>&#x03B4;</mi>    <mi>x</mi>   </msub>   <mo stretchy='false'>)</mo><mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>Equation (21) can be formulated symbolically as</p>
<math> <semantics>  <mrow>   <msubsup>    <mi>L</mi>    <mi>x</mi>    <mrow>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>1</mn></mrow>   </msubsup>   <msub>    <mi>A</mi>    <mi>x</mi>   </msub>   <msub>    <mi>u</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msub>    <mi>f</mi>    <mi>i</mi>   </msub>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>O</mi><mo stretchy='false'>(</mo><msup>    <mi>h</mi>    <mn>4</mn>   </msup>   <mo stretchy='false'>)</mo></mrow>   </semantics></math><p>The above compact finite difference scheme is combined with the Runge-Kutta method described earlier to solve the one-dimensional advection-diffusion equation.</p>
</sec><sec id="sec4">
<title>Stability analysis</title><p>A von Neumann linear stability analysis is performed to check the stability of the combination method. Let <math> <semantics>  <mrow>   <msubsup>    <mi>u</mi>    <mi>i</mi>    <mi>n</mi>   </msubsup>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>b</mi>    <mi>n</mi>   </msup>   <msup>    <mi>e</mi>    <mrow>     <mi>I</mi><mi>k</mi><mi>h</mi><mi>i</mi></mrow>   </msup>   </mrow>   </semantics></math> to be the value of <math> <semantics>  <mrow>   <msubsup>    <mi>u</mi>    <mi>i</mi>    <mi>n</mi>   </msubsup>   </mrow>   </semantics></math> at <italic>x</italic><sub><italic>i</italic></sub> , in which <math> <semantics>  <mrow>   <mi>I</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msqrt>    <mrow>     <mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>1</mn></mrow>   </msqrt>   </mrow>   </semantics></math>, <italic>b</italic><sup><italic>n</italic></sup> is the amplitude at time level <italic>n</italic>, and <italic>k </italic>is the wave number. The amplification factor is defined as</p>
<math> <semantics>  <mrow>   <mi>g</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <msup>      <mi>b</mi>      <mrow>       <mi>n</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>1</mn></mrow>     </msup>     </mrow>    <mrow>     <msup>      <mi>b</mi>      <mi>n</mi>     </msup>     </mrow>   </mfrac>   </mrow>   </semantics></math><p>The amplification factor of Equation (13) discretized by the Runge-Kutta method can be obtained as follows [
<xref ref-type="bibr" rid="R13">13</xref>]:</p>
<math> <semantics>  <mrow>   <mi>g</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mn>1</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mi>Z</mi><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mn>1</mn>    <mn>2</mn>   </mfrac>   <msup>    <mi>Z</mi>    <mn>2</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mn>1</mn>    <mn>6</mn>   </mfrac>   <msup>    <mi>Z</mi>    <mn>3</mn>   </msup>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mfrac>    <mn>1</mn>    <mrow>     <mn>24</mn></mrow>   </mfrac>   <msup>    <mi>Z</mi>    <mn>4</mn>   </msup>   </mrow>   </semantics></math><p>The variable <italic>Z</italic> represents the spatial discretization applied to the convection-diffusion terms. The explicit, discretized form is given by</p>
<math> <semantics>  <mrow>   <mi>Z</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mrow><mo>[</mo> <mrow>    <mrow><mo>(</mo>     <mrow>      <mn>24</mn><mfrac>       <mi>F</mi>       <mrow>        <mi>P</mi><mi>e</mi></mrow>      </mfrac>      <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>2</mn><mi>F</mi><mo>&#x22C5;</mo><mi>P</mi><mi>e</mi></mrow>    <mo>)</mo></mrow><mo stretchy='false'>(</mo><mn>1</mn><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mi>cos</mi><mi>k</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mn>12</mn><mtext>I</mtext><mi>F</mi><mi>sin</mi><mi>k</mi></mrow> <mo>]</mo></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>/</mo></mstyle><mrow><mo>(</mo>    <mrow>     <mn>10</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>2</mn><mi>cos</mi><mi>k</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mtext>I</mtext><mi>P</mi><mi>e</mi><mi>sin</mi><mi>k</mi></mrow>   <mo>)</mo></mrow></mrow>   </semantics></math><p>in which <italic>F</italic> is the CFL number and is defined as</p>
<math> <semantics>  <mrow>   <mi>F</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <mi>c</mi><mi>&#x0394;</mi><mi>t</mi></mrow>    <mi>h</mi>   </mfrac>   </mrow>   </semantics></math><p>In Equation (26), <italic>Pe</italic> is the P&#x26;#x000e9;clet number and is defined as</p>
<math> <semantics>  <mrow>   <mi>P</mi><mi>e</mi><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mfrac>    <mrow>     <mi>c</mi><mi>h</mi></mrow>    <mi>&#x03B1;</mi>   </mfrac>   </mrow>   </semantics></math><p>When the P&#x26;#x000e9;clet number is high, the convection term dominates [
<xref ref-type="bibr" rid="R15">15</xref>,<xref ref-type="bibr" rid="R16">16</xref>]. When the P&#x26;#x000e9;clet number is low the diffusion term dominates [
<xref ref-type="bibr" rid="R15">15</xref>,<xref ref-type="bibr" rid="R16">16</xref>].</p>
<p>The amplification factor, as defined above, is rather complex. For stability, the amplification factor has to satisfy the relation <math> <semantics>  <mrow>   <mrow><mo>|</mo> <mi>g</mi> <mo>|</mo></mrow><mo>&#x2264;</mo><mn>1</mn></mrow>   </semantics></math>. When <math> <semantics>  <mrow>   <mrow><mo>|</mo> <mi>g</mi> <mo>|</mo></mrow><mstyle mathvariant='bold' mathsize='normal'><mo>&#x003E;</mo></mstyle><mn>1</mn></mrow>   </semantics></math>,  the combination method for solving the advection-diffusion equation is numerically unstable. Contours of the absolute value of the amplification factor are plotted in the <italic>k-F</italic> plane in Figures 1-4, respectively, with various P&#x26;#x000e9;clet numbers such as 1, 10, 100, and 1000. The results indicate that the combination method for solving the advection-diffusion equation is numerically stable at low wave numbers and small CFL numbers.</p>
<fig id="fig1">
<label>Figure 1</label>
<caption>
<p>Contours of the absolute value of the amplification factor in the <i>k-F</i> plane with a P&#x000e9;clet number of 1.</p>
</caption>
<graphic xlink:href="155.fig.001" />
</fig><fig id="fig2">
<label>Figure 2</label>
<caption>
<p>Contours of the absolute value of the amplification factor in the <i>k-F</i> plane with a P&#x000e9;clet number of 10.</p>
</caption>
<graphic xlink:href="155.fig.002" />
</fig><fig id="fig3">
<label>Figure 3</label>
<caption>
<p>Contours of the absolute value of the amplification factor in the <i>k-F</i> plane with a P&#x000e9;clet number of 100.</p>
</caption>
<graphic xlink:href="155.fig.003" />
</fig><fig id="fig4">
<label>Figure 4</label>
<caption>
<p>Contours of the absolute value of the amplification factor in the <i>k-F</i> plane with a P&#x000e9;clet number of 1000.</p>
</caption>
<graphic xlink:href="155.fig.004" />
</fig></sec><sec id="sec5">
<title>Numerical experiments</title><p>In numerical analysis, the Crank-Nicolson method is a finite difference method used for numerically solving the heat equation and similar partial differential equations [
<xref ref-type="bibr" rid="R17">17</xref>,<xref ref-type="bibr" rid="R18">18</xref>]. Some numerical results are presented in examples 5.1-5.3 to compare the present method, denoted by P.M, with the Crank-Nicolson method, denoted by C-N.M. It is assumed that all exact solutions of the convection-diffusion equations given below are known.</p>
<p>Example 5.1. Given a convection-diffusion equation</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.1</mn><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mn>0.01</mn><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mtext>&#x00A0;</mtext><mi>&#xFF0C;</mi><mtext>&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>the exact solution of the above equation is given by</p>
<math> <semantics>  <mrow>   <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>e</mi>    <mrow>     <mn>5</mn><mi>x</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mo stretchy='false'>(</mo><mn>0.25</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.01</mn><msup>      <mi>&#x03C0;</mi>      <mn>2</mn>     </msup>     <mo stretchy='false'>)</mo><mi>t</mi></mrow>   </msup>   <mi>sin</mi><mi>&#x03C0;</mi><mi>x</mi></mrow>   </semantics></math><p>The initial and boundary conditions are defined so that the results are agreed well with the exact solution of the problem. The accuracy of the present method is compared with that of the Crank-Nicolson method. The results are presented inTable <xref ref-type="table" rid="tab1">1</xref> for various values of <italic>t</italic>.Table <xref ref-type="table" rid="tab1">1</xref> gives the absolute error along the <italic>x</italic> direction of the domain, where <italic>h</italic> is 0.005 and &#x26;#x00394;<italic>t </italic>is 0.001.</p>
<table-wrap id="tab1">
<label>Table 1</label>
<caption>
<p><b>T</b><b>able 1</b><b>.</b> The absolute error for various values of <i>t</i>, where<i> h</i> is 0.005 and &#x00394;<i>t</i> is 0.001.</p>
</caption>

<table>
<thead>
<tr>
<th align="center">t</th>
<th align="center" colspan="2">x <bold>=</bold> 0.1</th>
<th align="center" colspan="2">x <bold>=</bold> 0.3</th>
<th align="center" colspan="2">x <bold>=</bold> 0.5</th>
<th align="center" colspan="2">x <bold>=</bold> 0.7</th>
<th align="center" colspan="2">x <bold>=</bold> 0.9</th>
<th align="center"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">&#x00026;nbsp;</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
<tr>
<td align="center">0.2</td>
<td align="center">6.579E-010</td>
<td align="center">1.897E-005</td>
<td align="center">1.623E-009</td>
<td align="center">3.636E-005</td>
<td align="center">2.108E-009</td>
<td align="center">1.409E-005</td>
<td align="center">2.725E-009</td>
<td align="center">2.066E-004</td>
<td align="center">5.991E-008</td>
<td align="center">1.645E-003</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.4</td>
<td align="center">1.134E-009</td>
<td align="center">3.239E-005</td>
<td align="center">3.028E-009</td>
<td align="center">6.781E-005</td>
<td align="center">3.932E-009</td>
<td align="center">2.630E-005</td>
<td align="center">5.146E-009</td>
<td align="center">3.854E-004</td>
<td align="center">2.455E-007</td>
<td align="center">1.645E-003</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.6</td>
<td align="center">1.474E-009</td>
<td align="center">4.170E-005</td>
<td align="center">4.232E-009</td>
<td align="center">9.472E-005</td>
<td align="center">5.501E-009</td>
<td align="center">3.679E-005</td>
<td align="center">8.038E-009</td>
<td align="center">5.380E-004</td>
<td align="center">5.145E-007</td>
<td align="center">2.105E-003</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.8</td>
<td align="center">1.720E-009</td>
<td align="center">4.820E-005</td>
<td align="center">5.248E-009</td>
<td align="center">1.173E-004</td>
<td align="center">6.838E-009</td>
<td align="center">4.576E-005</td>
<td align="center">1.294E-008</td>
<td align="center">6.654E-004</td>
<td align="center">8.263E-007</td>
<td align="center">2.418E-003</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">1</td>
<td align="center">1.896E-009</td>
<td align="center">5.268E-005</td>
<td align="center">6.088E-009</td>
<td align="center">1.357E-004</td>
<td align="center">7.951E-009</td>
<td align="center">5.335E-005</td>
<td align="center">2.11E-008</td>
<td align="center">7.685E-004</td>
<td align="center">1.158E-006</td>
<td align="center">2.628E-003</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>

</fn>
</table-wrap-foot>
</table-wrap><p>Example 5.2. Given a convection-diffusion equation</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.22</mn><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mn>0.5</mn><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mtext>&#x00A0;,&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>the exact solution is given by</p>
<math> <semantics>  <mrow>   <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>e</mi>    <mrow>     <mn>0.22</mn><mi>x</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mo stretchy='false'>(</mo><mn>0.0242</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.5</mn><msup>      <mi>&#x03C0;</mi>      <mn>2</mn>     </msup>     <mo stretchy='false'>)</mo><mi>t</mi></mrow>   </msup>   <mi>sin</mi><mi>&#x03C0;</mi><mi>x</mi></mrow>   </semantics></math><p>The initial and boundary conditions of the problem are defined so that the results are agreed well with the exact solution of the problem. The accuracy of the present method is compared with that of the Crank-Nicolson method. The results are presented inTable <xref ref-type="table" rid="tab2">2</xref> for various values of <italic>t</italic>.Table <xref ref-type="table" rid="tab2">2</xref> gives the absolute error along the <italic>x</italic> direction of the domain, where <italic>h</italic> is 0.01 and &#x26;#x00394;<italic>t</italic><italic> </italic>is 0.5<italic>h</italic><sup>2</sup>.</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<table-wrap id="tab2">
<label>Table 2</label>
<caption>
<p><b>T</b><b>able </b><b>2.</b> The absolute error for various values of <i>t</i>, where<i> </i><i>h</i> is 0.01 and &#x00394;<i>t</i><i> </i>is 0.5<i>h</i><sup>2</sup>.</p>
</caption>

<table>
<thead>
<tr>
<th align="center">t</th>
<th align="center" colspan="2">x <bold>=</bold> 0.1</th>
<th align="center" colspan="2">x <bold>=</bold> 0.3</th>
<th align="center" colspan="2">x <bold>=</bold> 0.5</th>
<th align="center" colspan="2">x <bold>=</bold> 0.7</th>
<th align="center" colspan="2">x <bold>=</bold> 0.9</th>
<th align="center"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">&#x00026;nbsp;</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
<tr>
<td align="center">0.2</td>
<td align="center">1.551E-009</td>
<td align="center">9.770E-006</td>
<td align="center">6.236E-009</td>
<td align="center">2.674E-005</td>
<td align="center">1.655E-008</td>
<td align="center">3.456E-005</td>
<td align="center">3.943E-008</td>
<td align="center">2.921E-005</td>
<td align="center">8.450E-008</td>
<td align="center">1.162E-005</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.4</td>
<td align="center">6.331E-009</td>
<td align="center">7.250E-006</td>
<td align="center">2.185E-008</td>
<td align="center">1.984E-005</td>
<td align="center">4.491E-008</td>
<td align="center">2.563E-005</td>
<td align="center">7.997E-008</td>
<td align="center">2.167E-005</td>
<td align="center">1.306E-007</td>
<td align="center">8.636E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.6</td>
<td align="center">1.052E-008</td>
<td align="center">4.034E-006</td>
<td align="center">3.432E-008</td>
<td align="center">1.104E-005</td>
<td align="center">6.418E-008</td>
<td align="center">1.426E-005</td>
<td align="center">1.025E-007</td>
<td align="center">1.205E-005</td>
<td align="center">1.507E-007</td>
<td align="center">4.807E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.8</td>
<td align="center">1.299E-008</td>
<td align="center">1.995E-006</td>
<td align="center">4.146E-008</td>
<td align="center">5.460E-006</td>
<td align="center">7.459E-008</td>
<td align="center">7.054E-006</td>
<td align="center">1.136E-007</td>
<td align="center">5.963E-006</td>
<td align="center">1.593E-007</td>
<td align="center">2.378E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">1</td>
<td align="center">1.425E-008</td>
<td align="center">9.253E-007</td>
<td align="center">4.504E-008</td>
<td align="center">2.531E-006</td>
<td align="center">7.965E-008</td>
<td align="center">3.270E-006</td>
<td align="center">&#x03000;1.18E-007</td>
<td align="center">2.765E-006</td>
<td align="center">1.629E-007</td>
<td align="center">1.102E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>

</fn>
</table-wrap-foot>
</table-wrap><p>Example 5.3. Given a convection-diffusion equation</p>
<math> <semantics>  <mrow>   <mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>t</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.1</mn><mfrac>    <mrow>     <mo>&#x2202;</mo><mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><mi>x</mi></mrow>   </mfrac>   <mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><mn>0.2</mn><mfrac>    <mrow>     <msup>      <mo>&#x2202;</mo>      <mn>2</mn>     </msup>     <mi>u</mi></mrow>    <mrow>     <mo>&#x2202;</mo><msup>      <mi>x</mi>      <mn>2</mn>     </msup>     </mrow>   </mfrac>   <mtext>&#x00A0;,&#x00A0;</mtext><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mo>&#x2208;</mo><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mn>1</mn><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>&#x00D7;</mo></mstyle><mo stretchy='false'>(</mo><mn>0</mn><mo>,</mo><mi>T</mi><mo stretchy='false'>)</mo><mtext>&#x00A0;</mtext><mtext>.</mtext></mrow>   </semantics></math><p>the exact solution is given by</p>
<math> <semantics>  <mrow>   <mi>u</mi><mo stretchy='false'>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo stretchy='false'>)</mo><mstyle mathvariant='bold' mathsize='normal'><mo>=</mo></mstyle><msup>    <mi>e</mi>    <mrow>     <mn>0.25</mn><mi>x</mi><mstyle mathvariant='bold' mathsize='normal'><mo>-</mo></mstyle><mo stretchy='false'>(</mo><mn>0.0125</mn><mstyle mathvariant='bold' mathsize='normal'><mo>+</mo></mstyle><mn>0.02</mn><msup>      <mi>&#x03C0;</mi>      <mn>2</mn>     </msup>     <mo stretchy='false'>)</mo><mi>t</mi></mrow>   </msup>   <mi>sin</mi><mi>&#x03C0;</mi><mi>x</mi></mrow>   </semantics></math><p>The initial and boundary conditions are defined so that the results are agreed well with the exact solution of the problem. The accuracy of the present method is compared with that of the Crank-Nicolson method. The results are presented inTable <xref ref-type="table" rid="tab3">3</xref> for various values of <italic>t</italic>.Table <xref ref-type="table" rid="tab3">3</xref> gives the absolute error along the <italic>x</italic> direction of the domain, where <italic>h</italic> is 0.01 and &#x26;#x00394;<italic>t </italic>is <italic>h</italic><sup>2</sup>.</p>
<table-wrap id="tab3">
<label>Table 3</label>
<caption>
<p><b>T</b><b>able </b><b>3.</b> The absolute error for various values of <i>t</i>, where<i> </i><i>h</i> is 0.01 and &#x00394;<i>t</i><i> </i>is <i>h</i><sup>2</sup>.</p>
</caption>

<table>
<thead>
<tr>
<th align="center">t</th>
<th align="center" colspan="2">x <bold>=</bold> 0.1</th>
<th align="center" colspan="2">x <bold>=</bold> 0.3</th>
<th align="center" colspan="2">x <bold>=</bold> 0.5</th>
<th align="center" colspan="2">x <bold>=</bold> 0.7</th>
<th align="center" colspan="2">x <bold>=</bold> 0.9</th>
<th align="center"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">&#x00026;nbsp;</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center">P.M</td>
<td align="center">CN.M</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
<tr>
<td align="center">0.2</td>
<td align="center">3.677E-010</td>
<td align="center">7.143E-006</td>
<td align="center">1.143E-009</td>
<td align="center">1.970E-005</td>
<td align="center">2.687E-009</td>
<td align="center">2.565E-005</td>
<td align="center">9.496E-009</td>
<td align="center">2.183E-005</td>
<td align="center">3.559E-008</td>
<td align="center">8.703E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.4</td>
<td align="center">9.510E-010</td>
<td align="center">9.617E-006</td>
<td align="center">3.896E-009</td>
<td align="center">2.650E-005</td>
<td align="center">1.115E-008</td>
<td align="center">3.447E-005</td>
<td align="center">2.988E-008</td>
<td align="center">2.933E-005</td>
<td align="center">7.205E-008</td>
<td align="center">1.173E-005</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.6</td>
<td align="center">2.363E-009</td>
<td align="center">9.702E-006</td>
<td align="center">9.198E-009</td>
<td align="center">2.672E-005</td>
<td align="center">2.285E-008</td>
<td align="center">3.475E-005</td>
<td align="center">5.017E-008</td>
<td align="center">2.956E-005</td>
<td align="center">9.962E-008</td>
<td align="center">1.184E-005</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">0.8</td>
<td align="center">4.306E-009</td>
<td align="center">8.698E-006</td>
<td align="center">1.565E-008</td>
<td align="center">2.395E-005</td>
<td align="center">3.480E-008</td>
<td align="center">3.114E-005</td>
<td align="center">6.758E-008</td>
<td align="center">2.649E-005</td>
<td align="center">1.197E-007</td>
<td align="center">1.062E-005</td>
<td align="center"></td>
</tr>
<tr>
<td align="center">1</td>
<td align="center">6.350E-009</td>
<td align="center">7.309E-006</td>
<td align="center">2.205E-008</td>
<td align="center">2.012E-005</td>
<td align="center">4.558E-008</td>
<td align="center">2.616E-005</td>
<td align="center">8.167E-008</td>
<td align="center">2.225E-005</td>
<td align="center">1.342E-007&#x03000; </td>
<td align="center">8.925E-006</td>
<td align="center"></td>
</tr>
<tr>
<td align="left" colspan="11">
<hr />
</td>
</tr>
</tbody>
</table>
</table-wrap><p>The comparison results presented inTable <xref ref-type="table" rid="tab1">1</xref>,Table <xref ref-type="table" rid="tab2">2</xref> andTable <xref ref-type="table" rid="tab3">3</xref> indicate that the present method has higher accuracy than the Crank-Nicolson method.</p>
</sec><sec id="sec6">
<title>Conclusions</title><p>The primary focus of this study is on developing an effective method to solve the one-dimensional unsteady convection-diffusion equation by a combination of Runge-Kutta methods and high-order compact finite difference discretization schemes. A high-order compact finite difference scheme is used to approximate the spatial derivatives, and Runge-Kutta methods are used to approximate the time derivative. This combination method has fourth-order accuracy in both time and space variables. The numerical results obtained by the combination method have been found to be in good agreement with the exact solutions. Additionally, the combination method has higher accuracy than the Crank-Nicolson method. The combination method has superiority over most of the other high-order compact finite difference schemes in terms of computational cost, and is highly efficient as there is no need to compute the inverse of the block matrix.</p>
</sec><sec id="sec7">
<title>Acknowledgement</title><p>This work was supported by the National Natural Science Foundation of China (No. 51506048).</p>
<p></p>
</sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      
<ref id="R1">
<label>[1]</label>
<mixed-citation publication-type="other">G. Peng, Z. Gao, and X. Feng. An extremum-preserving finite volume scheme for convection-diffusion equation on general meshes. Applied Mathematics and Computation, Volume 380, 2020, Article Number: 125301.
</mixed-citation>
</ref>
<ref id="R2">
<label>[2]</label>
<mixed-citation publication-type="other">L. Wang, X. Yang, H. Wang, Z. Chai, and Z. Wei. A modified regularized lattice Boltzmann model for convection-diffusion equation with a source term. Applied Mathematics Letters, Volume 112, 2021, Article Number: 106766.
</mixed-citation>
</ref>
<ref id="R3">
<label>[3]</label>
<mixed-citation publication-type="other">J.N. Reddy and M. Martinez. A dual mesh finite domain method for steady-state convection-diffusion problems. Computers &#x00026; Fluids, Volume 214, 2021, Article Number: 104760.
</mixed-citation>
</ref>
<ref id="R4">
<label>[4]</label>
<mixed-citation publication-type="other">Y. Liu, Y. Feng, and R. Zhang. A high order conservative flux optimization finite element method for steady convec-tion-diffusion equations. Journal of Computational Physics, Volume 425, 2021, Article Number: 109895.
</mixed-citation>
</ref>
<ref id="R5">
<label>[5]</label>
<mixed-citation publication-type="other">S. Karaa and J. Zhang. High order ADI method for solving unsteady convection-diffusion problems. Journal of Computational Physics, Volume 198, Issue 1, 2004, Pages 1-9.
</mixed-citation>
</ref>
<ref id="R6">
<label>[6]</label>
<mixed-citation publication-type="other">A. Mohebbi and M. Dehghan. High-order compact solution of the one-dimensional heat and advection-diffusion equations. Applied Mathematical Modelling, Volume 34, Issue 10, 2010, Pages 3071-3084.
</mixed-citation>
</ref>
<ref id="R7">
<label>[7]</label>
<mixed-citation publication-type="other">Y.-M. Wang and X. Wen. A compact exponential difference method for multi-term time-fractional convec-tion-reaction-diffusion problems with non-smooth solutions. Applied Mathematics and Computation, Volume 381, 2020, Article Number: 125316.
</mixed-citation>
</ref>
<ref id="R8">
<label>[8]</label>
<mixed-citation publication-type="other">F. Zhang, X. Gao, and Z. Xie. Difference numerical solutions for time-space fractional advection diffusion equation. Boundary Value Problems, Volume 2019, Issue 1, 2019, Article Number: 14.
</mixed-citation>
</ref>
<ref id="R9">
<label>[9]</label>
<mixed-citation publication-type="other">R. Zhang, Z. Wang, J. Liu, and L. Liu. A compact finite difference method for reaction-diffusion problems using compact in-tegration factor methods in high spatial dimensions. Advances in Difference Equations, Volume 2018, Issue 1, 2018, Article Number: 274.
</mixed-citation>
</ref>
<ref id="R10">
<label>[10]</label>
<mixed-citation publication-type="other">Y. Zhang and Y. Zhang. A new difference scheme with high accuracy and absolute stability for solving convection-diffusion equations. Journal of Computational and Applied Mathematics, Volume 230, Issue 2, 2009, Pages 600-606.
</mixed-citation>
</ref>
<ref id="R11">
<label>[11]</label>
<mixed-citation publication-type="other">M. Dehghan. Weighted finite difference techniques for the one-dimensional advection-diffusion equation. Applied Mathematics and Computation, Volume 147, Issue 2, 2004, Pages 307-319.
</mixed-citation>
</ref>
<ref id="R12">
<label>[12]</label>
<mixed-citation publication-type="other">I. Fried. Numerical Solution of Differential Equations. Academic Press, Inc., London, United Kingdom, 1979, ISBN: 978-0-12-267780-9.
</mixed-citation>
</ref>
<ref id="R13">
<label>[13]</label>
<mixed-citation publication-type="other">S.-T. Yu, K.-C. Hsieh, and Y.-L.P. Tsai. Simulating waves in flows by Runge-Kutta and compact difference schemes. AIAA Journal, Volume 33, Number 3, 1995, Pages 421-429.
</mixed-citation>
</ref>
<ref id="R14">
<label>[14]</label>
<mixed-citation publication-type="other">A.L. Pardhanani, W.F. Spotz, and G.F. Carey. A stable multigrid strategy for convection-diffusion using high order compact discretization. Electronic Transactions on Numerical Analysis, Volume 6, 1997, Pages 211-223.
</mixed-citation>
</ref>
<ref id="R15">
<label>[15]</label>
<mixed-citation publication-type="other">T. Han, J.A.C. Humphrey, and B.E. Launder. A comparison of hybrid and quadratic-upstream differencing in high Reynolds number elliptic flows. Computer Methods in Applied Mechanics and Engineering, Volume 29, Issue 1, 1981, Pages 81-95.
</mixed-citation>
</ref>
<ref id="R16">
<label>[16]</label>
<mixed-citation publication-type="other">P.P. Chinchapatnam, K. Djidjeli, and P.B. Nair. Unsymmetric and symmetric meshless schemes for the unsteady convec-tion-diffusion equation. Computer Methods in Applied Mechanics and Engineering, Volume 195, Issues 19-22, 2006, Pages 2432-2453.
</mixed-citation>
</ref>
<ref id="R17">
<label>[17]</label>
<mixed-citation publication-type="other">H. Fu, Y. Sun, H. Wang, and X. Zheng. Stability and convergence of a Crank-Nicolson finite volume method for space fractional diffusion equations. Applied Numerical Mathematics, Volume 139, 2019, Pages 38-51.
</mixed-citation>
</ref>
<ref id="R18">
<label>[18]</label>
<mixed-citation publication-type="other">P. Wang and P. Huang. Convergence of the Crank-Nicolson extrapolation scheme for the Korteweg-de Vries equation. Applied Numerical Mathematics, Volume 143, 2019, Pages 88-96.
</mixed-citation>
</ref>
    </ref-list>
  </back>
</article>