<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article article-type="methods-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Energy Res.</journal-id>
<journal-title>Frontiers in Energy Research</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Energy Res.</abbrev-journal-title>
<issn pub-type="epub">2296-598X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1203801</article-id>
<article-id pub-id-type="doi">10.3389/fenrg.2023.1203801</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Energy Research</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A total energy-based adaptive mesh refinement technique for the simulation of compressible flow</article-title>
<alt-title alt-title-type="left-running-head">Xu et al.</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fenrg.2023.1203801">10.3389/fenrg.2023.1203801</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Xu</surname>
<given-names>Xian</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2273887/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Chen</surname>
<given-names>Yingchun</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Han</surname>
<given-names>Zhirong</given-names>
</name>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Zhou</surname>
<given-names>Feng</given-names>
</name>
</contrib>
</contrib-group>
<aff>
<institution>Shanghai Aircraft Design and Research Institute</institution>, <addr-line>Shanghai</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1999678/overview">Yang Yang</ext-link>, Yangzhou University, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2150067/overview">Wei Zhao</ext-link>, Northwest University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1933089/overview">Shuang-Xi Guo</ext-link>, Chinese Academy of Sciences (CAS), China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2284228/overview">Bo Chen</ext-link>, Zhejiang Sci-Tech University, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Xian Xu, <email>xuxian@comac.cc</email>
</corresp>
</author-notes>
<pub-date pub-type="epub">
<day>18</day>
<month>05</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1203801</elocation-id>
<history>
<date date-type="received">
<day>11</day>
<month>04</month>
<year>2023</year>
</date>
<date date-type="accepted">
<day>04</day>
<month>05</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Xu, Chen, Han and Zhou.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Xu, Chen, Han and Zhou</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>In this paper, an adaptive mesh refinement technique is presented for simulation of compressible flows, which can effectively refine the mesh in the regions with shock waves and vortices. The present approach uses the total energy per unit volume as an indicator to capture the shock waves and vortical structures. In the approach, an h-refinement strategy is adopted. To save the computational effort, the flow variables on the new mesh are obtained from the previous step by interpolation, which ensures that the problem is always solved on the refined mesh. Both inviscid and viscous compressible flows are considered in this work. Their governing equations are, respectively, Euler equations and Navier&#x2013;Stokes equations associated with the implementation of the Spalart&#x2013;Allmaras turbulence model. The cell-centered finite volume method and Jameson scheme are chosen to carry out spatial discretization, and the five-stage Runge&#x2013;Kutta scheme is applied to discretize the temporal derivative. The present approach is applied to simulate three test problems for its validation. Numerical results show that it can effectively capture the shock waves and vortices with improvement in solution accuracy.</p>
</abstract>
<kwd-group>
<kwd>adaptive technique</kwd>
<kwd>total energy per unit volume</kwd>
<kwd>shock wave</kwd>
<kwd>vortical structure</kwd>
<kwd>finite volume method</kwd>
</kwd-group>
<custom-meta-wrap>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Process and Energy Systems Engineering</meta-value>
</custom-meta>
</custom-meta-wrap>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>To analyze the fluid characteristics, accurate simulation of the flow field is one of the main tasks in computational fluid dynamics (CFD). A high-quality mesh plays an important role in solution accuracy of the flow field. Generation of a good mesh usually requires some prior knowledge of the flow behavior in order to match the mesh point distribution to the essential features of the flow field. However, this prior knowledge may not always be available in advance. On the other hand, if the mesh is refined in the whole domain to guarantee the desired solution accuracy, the amount of computational time, effort, and resources may become excessive. How to balance the high-quality mesh and the computational effort is a critical issue. It seems that the solution-adaptive mesh refinement technique is an answer to this problem. It can effectively refine the mesh only in pivotal regions to improve the solution accuracy. In fact, research on this aspect is currently a hot topic in CFD (<xref ref-type="bibr" rid="B8">Harvey et al., 1992</xref>; <xref ref-type="bibr" rid="B13">Murayama et al., 2001</xref>; <xref ref-type="bibr" rid="B26">Yamazaki et al., 2007</xref>; <xref ref-type="bibr" rid="B6">Fossati et al., 2010</xref>).</p>
<p>One of the key issues in the solution-adaptive mesh refinement process is the identification of cells for refinement. Much effort has been devoted to this part (<xref ref-type="bibr" rid="B13">Murayama et al., 2001</xref>; <xref ref-type="bibr" rid="B1">Aftosmis and Berger, 2002</xref>; <xref ref-type="bibr" rid="B11">Jones et al., 2006</xref>; <xref ref-type="bibr" rid="B26">Yamazaki et al., 2007</xref>). The parameter used to identify the mesh refinement is generally called an adaptation function or indicator. Usually, the adaptation function is associated with some key physical variables such as density, entropy, kinetic energy, or a combination of them (<xref ref-type="bibr" rid="B18">Peraire et al., 1987</xref>). Some physical variables, such as helicity density and turbulent kinetic viscosity, are not always easy to derive, and the form of adaptation function may be complicated (<xref ref-type="bibr" rid="B6">Fossati et al., 2010</xref>). Under the premise of compressible flows, most adaptation functions are designed to resolve either shock waves or vortices (<xref ref-type="bibr" rid="B20">Pirzadeh, 1999</xref>; <xref ref-type="bibr" rid="B9">Ito et al., 2009</xref>). As the features of shock waves (high gradients for pressure and density) are quite different from those of vortices (high velocity gradients), a single adaptation function for compressible flows can usually only detect one feature of them. <xref ref-type="bibr" rid="B25">Wang et al. (2020</xref>) utilized adaptive mesh refinement (AMR) to capture vortices for improving the accuracy and efficiency of numerical simulation of the cavitation&#x2013;vortex interaction. <xref ref-type="bibr" rid="B24">Steinthorsson et al. (1994</xref>) introduced a methodology based on the AMR algorithm of <xref ref-type="bibr" rid="B3">Berger and Colella (1989</xref>) for the accurate and efficient simulation of unsteady, compressible flows. <xref ref-type="bibr" rid="B7">Gou et al. (2018</xref>) introduced an accurate and robust AMR system suitable for turbomachinery applications and widely studied shock wave and tip leakage using the AMR method. <xref ref-type="bibr" rid="B15">Pantano et al. (2007</xref>) presented a methodology for the large-eddy simulation of compressible flows with a low-numerical dissipation scheme and structured adaptive mesh refinement (SAMR) used in turbulent flow regions while employing weighted essentially non-oscillatory order (WENO) to capture shocks. <xref ref-type="bibr" rid="B16">Papoutsakis et al. (2018</xref>) presented an adaptive mesh refinement (AMR) method suitable for hybrid unstructured meshes that allows for local refinement and de-refinement of the computational grid during the evolution of the flow to increase the order of accuracy in the region of shear layers and vortices. This paper takes this challenging issue and aims to present an indicator which can well detect both the shock waves and vortices in the compressible flow using h-type AMR.</p>
<p>This paper is organized as follows: in <xref ref-type="sec" rid="s2">Section 2</xref>, the governing equations and methodologies for numerical discretization are briefly described. <xref ref-type="sec" rid="s3">Section 3</xref> depicts the solution-adaptive mesh refinement approach which involves the selection of the adaptation function and the h-refinement strategy (<xref ref-type="bibr" rid="B17">Pepper and Wang, 2007</xref>) based on body-fitted quadrilateral/hexahedral mesh. <xref ref-type="sec" rid="s4">Section 4</xref> presents three numerical examples to validate the present approach. We report conclusion in Section 5.</p>
</sec>
<sec id="s2">
<title>2 Governing equations and numerical discretization</title>
<p>The viscous, compressible flow of a perfect gas is governed by Navier&#x2013;Stokes (N&#x2013;S) equations (<xref ref-type="bibr" rid="B4">Blazek, 2001a</xref>). In a three-dimensional domain of volume <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> with boundary S, the integral form of the equations is expressed as<disp-formula id="e1">
<mml:math id="m2">
<mml:mrow>
<mml:mfrac>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mo>&#x222b;</mml:mo>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mo>&#x222e;</mml:mo>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>v</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>Here, <inline-formula id="inf2">
<mml:math id="m3">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the vector of conservative variables which can be written in the three-dimensional form as<disp-formula id="e2">
<mml:math id="m4">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mi>&#x3c1;</mml:mi>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>u</mml:mi>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>w</mml:mi>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>T</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>where <inline-formula id="inf3">
<mml:math id="m5">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the density of fluid; <inline-formula id="inf4">
<mml:math id="m6">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mi>w</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
</inline-formula> are the velocity components in <italic>x</italic>-, <italic>y</italic>-, and <italic>z</italic>-direction, respectively; and <inline-formula id="inf5">
<mml:math id="m7">
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the energy. <inline-formula id="inf6">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the vector of convective fluxes, which can be expressed as<disp-formula id="e3">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>u</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>v</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>w</mml:mi>
<mml:mi>V</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>H</mml:mi>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <inline-formula id="inf7">
<mml:math id="m10">
<mml:mrow>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the pressure and <inline-formula id="inf8">
<mml:math id="m11">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the velocity normal to the surface element <inline-formula id="inf9">
<mml:math id="m12">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, which is defined as the scalar product of the velocity vector and unit normal vector as follows:<disp-formula id="e4">
<mml:math id="m13">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x2261;</mml:mo>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mo>&#xb7;</mml:mo>
<mml:mover accent="true">
<mml:mi>n</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mi>u</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mi>v</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mi>w</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>The total enthalpy <inline-formula id="inf10">
<mml:math id="m14">
<mml:mrow>
<mml:mi>H</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is given by <inline-formula id="inf11">
<mml:math id="m15">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>/</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. For the vector of viscous fluxes <inline-formula id="inf12">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>v</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, we have<disp-formula id="e5">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>v</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mn>0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>where<disp-formula id="e6">
<mml:math id="m18">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>v</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>w</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>v</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>w</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>v</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>w</mml:mi>
<mml:msub>
<mml:mi>&#x3c4;</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>k</mml:mi>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>z</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>are the terms describing the work of viscous stresses and the heat conduction in the fluid. <inline-formula id="inf13">
<mml:math id="m19">
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the temperature. The thermal conductivity coefficient <inline-formula id="inf14">
<mml:math id="m20">
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is evaluated by<disp-formula id="e7">
<mml:math id="m21">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>c</mml:mi>
<mml:mi>p</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>Here, <italic>c</italic>
<sub>
<italic>p</italic>
</sub> is the specific heat coefficient at constant pressure, <inline-formula id="inf15">
<mml:math id="m22">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf16">
<mml:math id="m23">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the laminar and turbulent Prandtl numbers, respectively; <inline-formula id="inf17">
<mml:math id="m24">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the laminar viscosity; and <inline-formula id="inf18">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the turbulent eddy viscosity.</p>
<p>Generally, both <inline-formula id="inf19">
<mml:math id="m26">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf20">
<mml:math id="m27">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are assumed to be constant, i.e., <inline-formula id="inf21">
<mml:math id="m28">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.72</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf22">
<mml:math id="m29">
<mml:mrow>
<mml:mi>P</mml:mi>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.9</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. At the same time, the laminar viscosity can be calculated using the Sutherland formula: <inline-formula id="inf23">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mn>10</mml:mn>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#xd7;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mn>1.45</mml:mn>
<mml:msup>
<mml:mi>T</mml:mi>
<mml:mn>1.5</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>110</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where the temperature <inline-formula id="inf24">
<mml:math id="m31">
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is in Kelvin degree. For the turbulent eddy viscosity, it can be determined with the aid of the turbulence model (<xref ref-type="bibr" rid="B5">Blazek, 2001b</xref>).</p>
<p>In this work, the Spalart&#x2013;Allmaras (S&#x2013;A) one-equation turbulence model (<xref ref-type="bibr" rid="B22">Spalart and Allmaras, 1992</xref>) is adopted. In this model, a transport equation is employed to calculate an eddy-viscosity variable <inline-formula id="inf25">
<mml:math id="m32">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, and then the turbulent eddy viscosity <inline-formula id="inf26">
<mml:math id="m33">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>T</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is obtained from <inline-formula id="inf27">
<mml:math id="m34">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>.The S&#x2013;A turbulence model allows for reasonably accurate predictions of turbulent flows with adverse pressure gradients. In this model, the solution at one point does not depend on the solution at other points. Therefore, it can be readily implemented on unstructured grids. It is also robust, converges fast to steady-state, and requires only moderate grid resolution in the near-wall region. The S&#x2013;A model (<xref ref-type="bibr" rid="B22">Spalart and Allmaras, 1992</xref>) reads as follows:<disp-formula id="e8">
<mml:math id="m35">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mo>&#x2202;</mml:mo>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bd;</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>Here, <inline-formula id="inf28">
<mml:math id="m36">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bc;</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the laminar kinematic viscosity and <inline-formula id="inf29">
<mml:math id="m37">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>The terms controlling the destruction of the eddy viscosity read<disp-formula id="e9">
<mml:math id="m38">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>&#x3c9;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>g</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mi>g</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
<mml:mn>6</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mi>r</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mi>&#x3ba;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>and the production term <inline-formula id="inf30">
<mml:math id="m39">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is evaluated using the following formulae:<disp-formula id="e10">
<mml:math id="m40">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>S</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3ba;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mi>&#x3c7;</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c7;</mml:mi>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:msup>
<mml:mi>&#x3c7;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mrow>
<mml:msup>
<mml:mi>&#x3c7;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mn>3</mml:mn>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>Here, <inline-formula id="inf31">
<mml:math id="m41">
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the distance to the closet wall and <inline-formula id="inf32">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> stands for the magnitude of the mean rotation rate, <italic>i.e.</italic>,<disp-formula id="e11">
<mml:math id="m43">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mi>S</mml:mi>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>u</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2202;</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Finally, the constants in Eqs <xref ref-type="disp-formula" rid="e8">8</xref>&#x2013;<xref ref-type="disp-formula" rid="e10">10</xref> are defined as<disp-formula id="e12">
<mml:math id="m44">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.1355</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.622</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>7.1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>7.1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3ba;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.41</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>/</mml:mo>
<mml:msup>
<mml:mi>&#x3ba;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>b</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.3</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>In current simulation, <inline-formula id="inf33">
<mml:math id="m45">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.1</mml:mn>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>L</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is set as the initial value of <inline-formula id="inf34">
<mml:math id="m46">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> as well as the inflow boundary conditions. At outflow boundaries, <inline-formula id="inf35">
<mml:math id="m47">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is simply extrapolated from the interior of the computational domain. At solid walls, it is appropriate to set <inline-formula id="inf36">
<mml:math id="m48">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>v</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>When the ideal gas is considered, we can simply neglect the viscous effect and get rid of <inline-formula id="inf37">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>F</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>v</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>; therefore, the N&#x2013;S equations can be simplified to Euler equations.</p>
<p>To spatially discretize the governing equations, the finite volume method (FVM) is used in this study. FVM first divides the physical space into a number of control volumes and then integrates the governing equation (Eq. <xref ref-type="disp-formula" rid="e1">1</xref>) over each control volume. In this work, the Jameson cell-centered scheme (<xref ref-type="bibr" rid="B10">Jameson et al., 1981</xref>) is used to define the location and shape of the control volume. The mean theorem is applied to approximate both the volume integral and the surface integral. The surface integral involves evaluation of fluxes at the interface between two neighboring control volumes. The flow quantities are stored at the centroids of each control volume which coincides with the grid cell. Note that with the mean theorem, the convective and the viscous fluxes are only evaluated at the center of each control surface using the flow information adjacent to two sides of the interface.</p>
<p>Two-dimensional grid is taken as an example. Using the cell-centered finite volume approach, in which the conserved variables <inline-formula id="inf38">
<mml:math id="m50">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> are located at the center of cells, the flux across the edge <inline-formula id="inf39">
<mml:math id="m51">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is calculated using the simple average of variables at the left cell center <inline-formula id="inf40">
<mml:math id="m52">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and right cell center <inline-formula id="inf41">
<mml:math id="m53">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (shown in <xref ref-type="fig" rid="F1">Figure 1</xref>), e.g.,<disp-formula id="e13">
<mml:math id="m54">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
<disp-formula id="e14">
<mml:math id="m55">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Cell-centered scheme of Jameson.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g001.tif"/>
</fig>
<p>Cell-centered schemes such as the one described previously would lead to odd&#x2013;even decoupling of the solution, so that any errors are not damped and oscillations will be presented in the steady-state solution. Artificial dissipation terms <inline-formula id="inf42">
<mml:math id="m56">
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can eliminate these oscillations. Terms <inline-formula id="inf43">
<mml:math id="m57">
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are usually added to the convective fluxes in Eq. <xref ref-type="disp-formula" rid="e8">8</xref> and constructed as a blending of the second-order differences <inline-formula id="inf44">
<mml:math id="m58">
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and the fourth-order differences <inline-formula id="inf45">
<mml:math id="m59">
<mml:mrow>
<mml:msup>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of the conserved variables <inline-formula id="inf46">
<mml:math id="m60">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>.<disp-formula id="e15">
<mml:math id="m61">
<mml:mrow>
<mml:mi>D</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:msubsup>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msubsup>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>
<disp-formula id="e16">
<mml:math id="m62">
<mml:mrow>
<mml:msubsup>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m63">
<mml:mrow>
<mml:msubsup>
<mml:mi>d</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msup>
<mml:mo>&#x2207;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mo>&#x2207;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>where the index <inline-formula id="inf47">
<mml:math id="m64">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> denotes the edges/faces delimiting the control volumes. <inline-formula id="inf48">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>/<inline-formula id="inf49">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes left/right cell conserved variables of the <inline-formula id="inf50">
<mml:math id="m67">
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> edge/face. <inline-formula id="inf51">
<mml:math id="m68">
<mml:mrow>
<mml:msup>
<mml:mo>&#x2207;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is defined for cell <inline-formula id="inf52">
<mml:math id="m69">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> as<disp-formula id="e18">
<mml:math id="m70">
<mml:mrow>
<mml:msup>
<mml:mo>&#x2207;</mml:mo>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>s</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>where <inline-formula id="inf53">
<mml:math id="m71">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> stands for the cells around the cell <inline-formula id="inf54">
<mml:math id="m72">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>Adaptive coefficients <inline-formula id="inf55">
<mml:math id="m73">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf56">
<mml:math id="m74">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> are defined as<disp-formula id="e19">
<mml:math id="m75">
<mml:mrow>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mi>&#x3bd;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>
<disp-formula id="e20">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bd;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi mathvariant="italic">left</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mi mathvariant="italic">left</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>i</mml:mi>
<mml:mi>g</mml:mi>
<mml:mi>h</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>where <inline-formula id="inf57">
<mml:math id="m77">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf58">
<mml:math id="m78">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are two empirical constants, which typically have values ranging between <inline-formula id="inf59">
<mml:math id="m79">
<mml:mrow>
<mml:mn>0.5</mml:mn>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3c;</mml:mo>
<mml:mn>1.0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf60">
<mml:math id="m80">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>k</mml:mi>
<mml:msup>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>/</mml:mo>
<mml:mn>32.0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. <inline-formula id="inf61">
<mml:math id="m81">
<mml:mrow>
<mml:msub>
<mml:mi>p</mml:mi>
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>f</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in the shock sensor <inline-formula id="inf62">
<mml:math id="m82">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3bd;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the left cell pressure of the <inline-formula id="inf63">
<mml:math id="m83">
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> edge/face. The scaling factor <inline-formula id="inf64">
<mml:math id="m84">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is defined as<disp-formula id="e21">
<mml:math id="m85">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>S</mml:mi>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>where <italic>c</italic> and <inline-formula id="inf65">
<mml:math id="m86">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>S</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the local speed of sound and the length of the edge/face, respectively.</p>
<p>After spatial discretization, the resultant ordinary differential equations can be solved using the explicit five-stage Runge&#x2013;Kutta scheme of Jameson et al. (1981).<disp-formula id="e22">
<mml:math id="m87">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mfrac>
<mml:msup>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mfrac>
<mml:msup>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mfrac>
<mml:msup>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mfrac>
<mml:msup>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mfrac>
<mml:msup>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mi>n</mml:mi>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msup>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>where <inline-formula id="inf66">
<mml:math id="m88">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the conservative variable in Eq. <xref ref-type="disp-formula" rid="e1">1</xref> and <inline-formula id="inf67">
<mml:math id="m89">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>R</mml:mi>
<mml:mo>&#x2192;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the corresponding residual. <inline-formula id="inf68">
<mml:math id="m90">
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the time step, and <inline-formula id="inf69">
<mml:math id="m91">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a9;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the area of the cell. <inline-formula id="inf70">
<mml:math id="m92">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the current time level, <inline-formula id="inf71">
<mml:math id="m93">
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is the new time level, and coefficients are taken as<disp-formula id="e23">
<mml:math id="m94">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>6</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>3</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mn>3</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>8</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>4</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3b1;</mml:mi>
<mml:mn>5</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>
</p>
</sec>
<sec id="s3">
<title>3 Total energy-based adaptive mesh refinement approach</title>
<sec id="s3-1">
<title>3.1 Selection of total energy per unit volume as the refinement indicator</title>
<p>After obtaining the basic solution of governing equations in the flow field, two important steps in any solution-adaptive mesh refinement technique must be followed. The first one requires an indicator to detect and locate the flow structures of interest, where the mesh refinement is needed. From a practical point of view, the adaptation function should indicate where the mesh must be refined to improve the accuracy. The adaptation function is usually selected from flow variables such as density, entropy, and turbulent kinetic energy. The flow considered in this paper is at high Reynolds number, and the Mach number ranges from low-compressible regime (Mach number &#x3c; 0.3) to supersonic regime (Mach number &#x3e; 1.0). In some cases, the viscous effect is very important. Thus, there is a practical demanding to select an adaptation function which can well capture both the features of shock waves and viscous effect.</p>
<p>It is known that any perturbation of flow must be followed by the perturbation of total energy per unit volume (<inline-formula id="inf72">
<mml:math id="m95">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>) in the flow field. For instance, when the air passes through the Mach wave, a perturbation of total energy per unit volume happens before and after the shock wave. <inline-formula id="inf73">
<mml:math id="m96">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> in the region with vortices is lower than that in other regions due to the effect of dissipation, and this is also a perturbation of total energy per unit volume. In this sense, <inline-formula id="inf74">
<mml:math id="m97">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> can be considered a universal adaptation variable. In this work, the adaptation function is constructed by the adaptation variable <inline-formula id="inf75">
<mml:math id="m98">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> as<disp-formula id="e24">
<mml:math id="m99">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:mo>&#x394;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">u</mml:mi>
<mml:mi mathvariant="normal">l</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
<mml:mi mathvariant="normal">r</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="normal">N</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="normal">S</mml:mi>
<mml:mtext>&#x2009;</mml:mtext>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mi mathvariant="normal">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>where subscripts <inline-formula id="inf76">
<mml:math id="m100">
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf77">
<mml:math id="m101">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf78">
<mml:math id="m102">
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> stand for the free stream, the <inline-formula id="inf79">
<mml:math id="m103">
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> grid cell, and the cells adjacent to cell <inline-formula id="inf80">
<mml:math id="m104">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, respectively. <inline-formula id="inf81">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is used to normalize <inline-formula id="inf82">
<mml:math id="m106">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf83">
<mml:math id="m107">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. Since there is a perturbation near the shock wave and in the region with vortices, <inline-formula id="inf84">
<mml:math id="m108">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is supposed to capture the shock waves and vortical structures. Furthermore, <inline-formula id="inf85">
<mml:math id="m109">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> mainly contributes to locate the vortical structure when <inline-formula id="inf86">
<mml:math id="m110">
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is taken as 1 in the viscous flow. The standard deviations (<xref ref-type="bibr" rid="B27">Zhang et al., 2001</xref>) of <inline-formula id="inf87">
<mml:math id="m111">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf88">
<mml:math id="m112">
<mml:mrow>
<mml:mi>&#x3c6;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are taken as<disp-formula id="e25">
<mml:math id="m113">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3d5;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:msup>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3c6;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:munderover>
</mml:mstyle>
<mml:mrow>
<mml:msup>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>The summation is only performed for cells which satisfy <inline-formula id="inf89">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf90">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3e;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>max</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf91">
<mml:math id="m116">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is an empirical threshold and is equal to 0.05 in this paper.</p>
<p>In the refinement process, the value of <inline-formula id="inf92">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> for each cell depends on the value of <inline-formula id="inf93">
<mml:math id="m118">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3c6;</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3d5;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. When <inline-formula id="inf94">
<mml:math id="m119">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is greater than or equal to <inline-formula id="inf95">
<mml:math id="m120">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3c6;</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c3;</mml:mi>
<mml:mi>&#x3d5;</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, the corresponding <inline-formula id="inf96">
<mml:math id="m121">
<mml:mrow>
<mml:msup>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> grid cell is flagged for refinement. <inline-formula id="inf97">
<mml:math id="m122">
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, the last component of vector <inline-formula id="inf98">
<mml:math id="m123">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>W</mml:mi>
<mml:mo>&#x21c0;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> in Eq. <xref ref-type="disp-formula" rid="e2">2</xref>, is easy to be obtained from either N&#x2013;S equations or Euler equations. From Eq. <xref ref-type="disp-formula" rid="e24">24</xref>, we know that <inline-formula id="inf99">
<mml:math id="m124">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> has no effect on mesh configuration and is a non-dimensional number. Therefore, it is very convenient to set the threshold for mesh refinement.</p>
</sec>
<sec id="s3-2">
<title>3.2 Mesh refinement process</title>
<p>After determining the indicator, the process of mesh refinement, as the second step in adaptive technique, can be executed. In general, adaptive methods can be roughly classified into three categories (<xref ref-type="bibr" rid="B19">Pirzadeh, 2000</xref>; <xref ref-type="bibr" rid="B17">Pepper and Wang, 2007</xref>): grid movement (r-refinement), grid enrichment (h-refinement), and local solution enhancement (p-refinement). Each method has its own merits and shortcomings (<xref ref-type="bibr" rid="B17">Pepper and Wang, 2007</xref>; <xref ref-type="bibr" rid="B12">Li et al., 2010</xref>).</p>
<p>In the r-refinement method, the value of the adaptation function directly determines the mesh spacing. As described previously, the values of adaptation function in this work do not represent the magnitudes of estimated errors. Instead, they only indicate the location of dominant flow features. Therefore, r-refinement is not appropriate for this work. At the same time, although the p-refinement approach can obtain a solution with high order of accuracy in smooth flow regions, it is not effective in regions with discontinuity of flow variables. In addition, the coding of p-refinement is very complicated. In the methods based on h-refinement, however, an adaptation function only serves as a means to locate the regions which can be refined without considering the mesh spacing. Additionally, the h-refinement approach can be effectively applied in both the smooth flow and discontinuous flow regions. Due to these advantages, the h-refinement process is adopted in this work.</p>
<p>To reduce the number of cells, and in the meantime, to well capture the thin boundary layer, the structured mesh is taken as the background mesh. Grid cells are quadrilaterals for two-dimensional cases and hexahedra for three-dimensional cases. It should be indicated that as refinement process goes on, the overall unstructured mesh is formed.</p>
<p>During refinement, each quadrilateral/hexahedron is divided into four/eight sub-cells by joining the midpoints of opposite faces, as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. For the two-dimensional case, to the initial coarse grid cell, a parent face is replaced by the current parent face and a new child face. This may form a hanging node (<xref ref-type="bibr" rid="B23">Spragle et al., 1995</xref>) between the initial coarse cell and the refined cells.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Refinement strategies.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g002.tif"/>
</fig>
<p>A node is a hanging node if it is not a vertex of all cells sharing one face. The hanging node grid adaptive scheme has the ability to efficiently operate on grids with a variety of cell shapes, including hybrid grids. However, the hanging node adaption scheme makes some solvers unusable, especially for the structured solvers. In contrast, the face-based unstructured solver presented by <xref ref-type="bibr" rid="B12">Li et al. (2010)</xref> provides an ideal environment for dealing with a hanging node adaption scheme. For the cell-centered scheme used in this work, as shown in <xref ref-type="fig" rid="F1">Figure 1</xref>, the solver simply visits each face and then uses flow variables on its left and right grid cell to evaluate the face flux, and the contribution of the face flux is then sent to the two neighboring cells sharing the interface.<disp-formula id="e26">
<mml:math id="m125">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mi>R</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>u</mml:mi>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
<p>Once the integration loop is performed along all face indexes, spatial discretization of the governing equations is completed.</p>
<p>To maintain a smooth variation of cell volume, additional cells are refined based on the relative position of neighboring cells or boundary conditions. There are three cases shown in <xref ref-type="fig" rid="F3">Figure 3</xref> in which cell M must be refined. One is that a cell has only one neighboring cell which is refined but its opposing neighboring cell is the solid wall (<xref ref-type="fig" rid="F3">Figures 3A, D</xref>). The second is that a cell has two opposing neighboring cells (<xref ref-type="fig" rid="F3">Figures 3B, E</xref>) or more than two neighboring cells are refined. If the initial grid needs more than one adaptation, then the third case (<xref ref-type="fig" rid="F3">Figure 3C</xref>) arises: a cell has a neighboring cell which has two or more levels. For these cases, additional refinement is needed.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Unsmooth cells. <bold>(A)</bold> A two-dimensional cell has only one adaptive neighboring cell and its opposing neighboring cell is the wall. <bold>(B)</bold> A two-dimensional cell has two opposing adaptive neighboring cells. <bold>(C)</bold> A two-dimensional cell has a neighboring cell which has two or more adaptive levels. <bold>(D)</bold> A three-dimensional cell has only one adaptive neighboring cell and its opposing neighboring cell is the wall. <bold>(E)</bold> A three-dimensional cell has two opposing adaptive neighboring cells.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g003.tif"/>
</fig>
<p>The flow field variables of new children cells can be interpolated from their parent cells. To carry out that, there are several different techniques. The simplest way, which is employed in this work, is to directly copy all physical variables of parent cells to their children cells. Such kind of implementation can improve the computational efficiency.</p>
<p>The process of the refinement strategy is summarized in the flowchart as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. On the other hand, it should be noted that the coarsening process, which is not required in this paper, can be easily implemented based on the obtained information during the refinement process.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Flowchart of the process of the refinement strategy.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g004.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Numerical examples</title>
<p>To validate the present approach and demonstrate its capability for effective simulation of inviscid/viscous compressible flows, three typical problems are selected. The first problem is a two-dimensional inviscid flow in a channel with a 15&#xb0; ramp with the typical multi-channel shock wave and expansion wave, to demonstrate the capability to capture shock waves. The second problem is the three-dimensional inviscid flow around the ONERA M6 wing at a transonic speed resulting in a &#x3bb; shock wave on the upper surface of the wing, to show the capability of the algorithm to capture shock waves in a transonic flow. In the third problem, we hope to show the capability of the algorithm on simulating a detached vortex of a delta wing, especially the vortex core fragmentation, which is important in calculating the lift and drag coefficients.</p>
<sec id="s4-1">
<title>4.1 Two-dimensional inviscid flow in a channel with a ramp</title>
<p>By solving Euler equations, the results for supersonic flow at a Mach number of 2 in a channel with a <inline-formula id="inf100">
<mml:math id="m126">
<mml:mrow>
<mml:msup>
<mml:mn>15</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> ramp ranging from <inline-formula id="inf101">
<mml:math id="m127">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.5</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf102">
<mml:math id="m128">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.0</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> can be obtained. The upper and bottom boundaries are solid walls, and the left and right boundaries are the inlet and outlet of the flow field, respectively.</p>
<p>The initial mesh is a uniform mesh containing <inline-formula id="inf103">
<mml:math id="m129">
<mml:mrow>
<mml:mn>89</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>29</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> quadrilateral cells as shown in <xref ref-type="fig" rid="F5">Figure 5A</xref>. <xref ref-type="fig" rid="F6">Figure 6A</xref> shows the Mach number contour lines for the entire flow field based on the initial mesh. The shock wave emanating from the leading ramp and its reflection as well as the expansion wave can be clearly captured. After two levels of adaptation are implemented, the final refined mesh, as depicted in <xref ref-type="fig" rid="F5">Figure 5E</xref>, contains 5,116 quadrilateral cells. The Mach contours on the final refined mesh are displayed in <xref ref-type="fig" rid="F6">Figure 6E</xref>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Uniform meshes and final refined mesh after two levels of adaptation. <bold>(A)</bold> Initial mesh <inline-formula id="inf104">
<mml:math id="m130">
<mml:mrow>
<mml:mn>89</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>29</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> for the refinement case. <bold>(B)</bold> Uniform mesh with 5,120 cells (without refinement). <bold>(C)</bold> Uniform mesh <inline-formula id="inf105">
<mml:math id="m131">
<mml:mrow>
<mml:mn>178</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>58</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (without refinement). <bold>(D)</bold> Uniform mesh <inline-formula id="inf106">
<mml:math id="m132">
<mml:mrow>
<mml:mn>356</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>116</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> (without refinement). <bold>(E)</bold> Final refined mesh with 5,116 cells (refinement case).</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g005.tif"/>
</fig>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Mach number contours in the contracted channel based on uniform meshes and final refined mesh. <bold>(A)</bold> Mach number contours based on the initial mesh of <inline-formula id="inf107">
<mml:math id="m133">
<mml:mrow>
<mml:mn>89</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>29</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. <bold>(B)</bold> Mach number contours based on the uniform mesh with 5,120 cells. <bold>(C)</bold> Mach number contours based on the uniform mesh of <inline-formula id="inf108">
<mml:math id="m134">
<mml:mrow>
<mml:mn>178</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>58</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. <bold>(D)</bold> Mach number contours based on the uniform mesh of <inline-formula id="inf109">
<mml:math id="m135">
<mml:mrow>
<mml:mn>356</mml:mn>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>116</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. <bold>(E)</bold> Mach number contours based on the final refined mesh of the refinement case.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g006.tif"/>
</fig>
<p>To compare the computational cost (cells and seconds) between cases with refinement and without refinement, numerical simulation of the same problem on the three uniform meshes without refinement is carried out. The three uniform meshes without refinement are shown in <xref ref-type="fig" rid="F5">Figures 5B&#x2013;D</xref>. The mesh in <xref ref-type="fig" rid="F5">Figure 5B</xref> has 5,120 cells. The number of cells for this mesh is the same as the final refined mesh of the refinement case. The mesh in <xref ref-type="fig" rid="F5">Figure 5C</xref> has 10,324 cells which are approximately two times the cells in the final refined mesh of the refinement case. The mesh spacing for this case is the same as the minimum mesh spacing of the refinement case when the initial mesh shown in <xref ref-type="fig" rid="F5">Figure 5A</xref> is refined by one adaption level. The mesh in <xref ref-type="fig" rid="F5">Figure 5D</xref> has 41,296 cells which are approximately eight times the cells in the final refined mesh of the refinement case. The mesh spacing for this case is the same as the minimum mesh spacing of the refinement case when the initial mesh in <xref ref-type="fig" rid="F5">Figure 5A</xref> is refined by two adaption levels. All the results (Mach number contour) are demonstrated in <xref ref-type="fig" rid="F6">Figure 6</xref>. The minimum and maximum levels of contours are 1.0 and 1.8 respectively, and the number of levels is 14. <xref ref-type="fig" rid="F6">Figures 6A&#x2013;D</xref> show that the shock wave becomes thinner and thinner with the increase in cell numbers. It is seen clear from the figure that the results of the uniform mesh of 41,296 cells are very close to those of the final refined mesh where two adaption levels are used to refine the mesh. This can be well understood as both cases have the same mesh spacing in the vicinity of the shock wave. The computational time required on the meshes shown in <xref ref-type="fig" rid="F5">Figure 5</xref> is listed in <xref ref-type="table" rid="T1">Table 1</xref>. It can be observed from <xref ref-type="table" rid="T1">Table 1</xref> that the refinement case with two adaption levels only takes approximately 10% of the computational time of the uniform mesh case (without refinement) when the mesh spacing near the shock wave is kept the same. This well demonstrates high computational efficiency of the solution-adaptive approach.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Comparison of computational cost among different meshes.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center"/>
<th align="center">Initial mesh cell number</th>
<th align="left">Final mesh cell number</th>
<th align="center">Time/s</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td rowspan="2" align="center">Refinement (two adaption levels)</td>
<td align="center">2,581</td>
<td align="center">5,116</td>
<td align="center">113</td>
</tr>
<tr>
<td align="center">5,120</td>
<td align="center">5,120</td>
<td align="center">37</td>
</tr>
<tr>
<td rowspan="2" align="center">Without refinement</td>
<td align="center">10,324</td>
<td align="center">10,324</td>
<td align="center">104</td>
</tr>
<tr>
<td align="center">41,296</td>
<td align="center">41,296</td>
<td align="center">1,106</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4-2">
<title>4.2 Three-dimensional inviscid flow around the ONERA M6 wing</title>
<p>To further demonstrate the capability of the present solution-adaptive mesh refinement approach for capturing the shock wave, the inviscid flow around the ONERA M6 wing is considered. The Mach number is 0.84, and the incidence is 3.06&#xb0;. Same as the case in <xref ref-type="sec" rid="s4-1">Section 4.1</xref>, the governing equations are Euler equations.</p>
<p>A background mesh with a nearly uniform grid distribution is generated as shown in <xref ref-type="fig" rid="F7">Figure 7A</xref>. The initial mesh contains 294,912 hexahedral cells. <xref ref-type="fig" rid="F7">Figure 7B</xref> shows the final refined mesh which contains 440,365 hexahedral cells. Obviously, the majority of mesh refinement occurs in the shock wave regions, and the refined cells clearly outline the <inline-formula id="inf110">
<mml:math id="m136">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> shock waves.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Initial and refined mesh for the ONERA M6 wing. <bold>(A)</bold> Initial mesh. <bold>(B)</bold> Refined mesh.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g007.tif"/>
</fig>
<p>The surface pressure coefficient distributions at 0.65 and 0.8 spanwise locations obtained on the initial coarse mesh and the final refined mesh are compared in <xref ref-type="fig" rid="F8">Figure 8</xref> with the experimental data (<xref ref-type="bibr" rid="B21">Schmitt and Charpin, 1979</xref>). The comparison indicates that the shock wave is diffused due to the coarse mesh. The high resolution of shock waves by the refined mesh is evident as revealed by sharp discontinuity of the pressure distribution. There are some deviations between the numerical results and the experimental data. The reason may be due to the fact that the inviscid flow is assumed in the numerical computation, while the real flow always involves viscous effect.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Pressure coefficient distributions at 0.65 and 0.8 spanwise locations for the ONERA M6 wing. <bold>(A)</bold> 0.65 spanwise. <bold>(B)</bold> 0.8 spanwise.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g008.tif"/>
</fig>
<p>Numerical simulations for two-dimensional inviscid flows in a channel with a ramp and three-dimensional inviscid flows around the ONERA M6 wing well demonstrate the capability of the present solution-adaptive mesh refinement approach for capturing shock waves and expansion waves. To illustrate the ability of the present approach for capturing vortices, numerical simulation of three-dimensional compressible viscous flows around a delta wing is considered in the following example. The prediction of leading-edge vortex breakdown on a delta wing at high angles of attack is made.</p>
</sec>
<sec id="s4-3">
<title>4.3 Three-dimensional viscous flow around a delta wing</title>
<p>The geometry chosen for this case is a flat-plate semispan delta wing with a leading-edge sweep of <inline-formula id="inf111">
<mml:math id="m137">
<mml:mrow>
<mml:msup>
<mml:mn>70</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> and a <inline-formula id="inf112">
<mml:math id="m138">
<mml:mrow>
<mml:msup>
<mml:mn>25</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> bevel on the lower surface along the leading and trailing edges (<xref ref-type="bibr" rid="B2">Agrawal et al., 1992</xref>) as shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. For this problem, N&#x2013;S equations with the S&#x2013;A turbulent model are taken as governing equations. Numerical simulation is carried out at a Mach number of 0.3 and an incidence of <inline-formula id="inf113">
<mml:math id="m139">
<mml:mrow>
<mml:msup>
<mml:mn>30</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>. The Reynolds number based on the root chord is taken as one million.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>Flat-plate semispan delta wing model.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g009.tif"/>
</fig>
<p>The initial mesh and the adaptive refined mesh are displayed in <xref ref-type="fig" rid="F10">Figure 10</xref>. The corresponding adaptation function is shown in <xref ref-type="fig" rid="F11">Figure 11</xref>. The initial mesh contains 320,624 hexahedral cells. After refinement, the final mesh contains 503,317 hexahedral cells.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Initial mesh and refined mesh for the delta wing. <bold>(A)</bold> Initial mesh. <bold>(B)</bold> Refined mesh.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g010.tif"/>
</fig>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Contours of <inline-formula id="inf114">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3d5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>&#x3c6;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at different cross sections.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g011.tif"/>
</fig>
<p>
<xref ref-type="fig" rid="F12">Figure 12</xref> shows some numerical results for this problem. The solution presented in <xref ref-type="fig" rid="F12">Figure 12A</xref> shows the vortex core line without vortex breakdown, which is different from the solution based on the refined mesh presented in <xref ref-type="fig" rid="F12">Figure 12B</xref>.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>Vortex breakdown position indicated by the core line, <inline-formula id="inf115">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">a</mml:mi>
</mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.3</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mn>30</mml:mn>
<mml:mn>0</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">R</mml:mi>
<mml:mi mathvariant="normal">e</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1.0</mml:mn>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mn>6</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>. A vortex breakdown at approximately 0.6 root chord observed from the adaptive solution is supported by both experimental data and other numerical results (<xref ref-type="bibr" rid="B2">Agrawal et al., 1992</xref>; <xref ref-type="bibr" rid="B14">O&#x27;Neil et al., 1989</xref>). <bold>(A)</bold> Initial mesh. <bold>(B)</bold> Refined mesh.</p>
</caption>
<graphic xlink:href="fenrg-11-1203801-g012.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<title>5 Conclusion</title>
<p>A solution-adaptive mesh refinement technique, which is based on the total energy per unit volume as the refinement indicator, is presented in this work. Different from previous adaptation indicator used, the present indicator can well detect both the shock waves and vortices. The technique is validated by applying it to simulate two-dimensional and three-dimensional steady compressible inviscid/viscous flows. The h-refinement approach by subdivision is adopted to perform the mesh refinement process.</p>
<p>The capability of the present solver is verified by applying it to handle three test problems. For inviscid/viscous flows, the Euler/Navier&#x2013;Stokes (with the Spalart&#x2013;Allmaras one-equation turbulence model) equations are employed. The cell-centered finite volume method is applied for spatial discretization, and an explicit five-stage Runge&#x2013;Kutta scheme is used to implement time integration. Numerical results show that the proposed adaptation function can well capture the shock waves, expansion waves, and vortices in the flow field. As a consequence, a high-resolution solution of important flow features such as shock waves and vortices is obtained.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material; further inquiries can be directed to the corresponding author.</p>
</sec>
<sec id="s7">
<title>Author contributions</title>
<p>Conceptualization and methodology, XX; methodology, YC; resources and data curation, ZH; writing&#x2014;original draft preparation, XX; writing&#x2014;review and editing, ZH; supervision, FZ; project administration, XX; funding acquisition, YC. All authors listed have made a substantial, direct, and intellectual contribution to the work and approved it for publication.</p>
</sec>
<sec id="s8">
<title>Funding</title>
<p>This research was funded by the National Key R&#x26;D Program of China (Project No. 2020YFA0712000).</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s10">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Aftosmis</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Berger</surname>
<given-names>M. J.</given-names>
</name>
</person-group> &#x201c;<article-title>Multilevel error estimation and adaptive h-refinement for Cartesian meshes with embedded boundaries</article-title>,&#x201d; in <conf-name>Proceedings of the 40th AIAA Aerospace Sciences Meeting &#x26; Exhibit</conf-name>, <conf-loc>Reno, NV, USA</conf-loc>, <conf-date>January 2002</conf-date>. <pub-id pub-id-type="doi">10.2514/6.2002-863</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Agrawal</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Barnett</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Robinson</surname>
<given-names>B. A.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Numerical investigation of vortex breakdown on a delta wing</article-title>. <source>AIAA J.</source> <volume>30</volume> (<issue>3</issue>), <fpage>584</fpage>&#x2013;<lpage>591</lpage>. <pub-id pub-id-type="doi">10.2514/3.10960</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Berger</surname>
<given-names>M. J.</given-names>
</name>
<name>
<surname>Colella</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>1989</year>). <article-title>Local adaptive mesh refinement for shock hydrodynamics</article-title>. <source>J. Comput. Phys.</source> <volume>82</volume> (<issue>1</issue>), <fpage>64</fpage>&#x2013;<lpage>84</lpage>. <pub-id pub-id-type="doi">10.1016/0021-9991(89)90035-1</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Blazek</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2001</year>). <source>Computational fluid dynamics: Principles and applications</source>. <publisher-loc>Kidlington, England</publisher-loc>: <publisher-name>Elsevier Science Ltd</publisher-name>, <fpage>5</fpage>&#x2013;<lpage>22</lpage>.</citation>
</ref>
<ref id="B5">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Blazek</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2001</year>). <source>Computational fluid dynamics: Principles and applications</source>. <publisher-loc>Kidlington, England</publisher-loc>: <publisher-name>Elsevier Science Ltd</publisher-name>, <fpage>225</fpage>&#x2013;<lpage>265</lpage>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Fossati</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Guardone</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Vigevano</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>A node-pair finite element/finite volume mesh adaptation technique for compressible flows</article-title>. <source>Int. J. Numer. Methods Fluids</source> <volume>70</volume>. <pub-id pub-id-type="doi">10.1002/fld.2728</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gou</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yuan</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Adaptive mesh refinement method based investigation of the interaction between shock wave, boundary layer, and tip vortex in a transonic compressor</article-title>. <source>Proc. Institution Mech. Eng. Part G J. Aerosp. Eng.</source> <volume>232</volume> (<issue>4</issue>), <fpage>694</fpage>&#x2013;<lpage>715</lpage>. <pub-id pub-id-type="doi">10.1177/0954410016687142</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Harvey</surname>
<given-names>A. D.</given-names>
</name>
<name>
<surname>Acharya</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lawrence</surname>
<given-names>S. L.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Solution-adaptive grid procedure for the parabolized Navier-Stokes equations</article-title>. <source>AIAA J.</source> <volume>30</volume> (<issue>4</issue>), <fpage>953</fpage>&#x2013;<lpage>962</lpage>. <pub-id pub-id-type="doi">10.2514/3.11014</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ito</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Shih</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Koomullil</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Kasmai</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Jankun-Kelly</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Thompson</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>Solution adaptive mesh generation using feature-aligned embedded surface meshes</article-title>. <source>AIAA J.</source> <volume>47</volume> (<issue>8</issue>), <fpage>1879</fpage>&#x2013;<lpage>1888</lpage>. <pub-id pub-id-type="doi">10.2514/1.39378</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Jameson</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Schmidt</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Turkel</surname>
<given-names>E.</given-names>
</name>
</person-group> &#x201c;<article-title>Numerical solutions of the Euler equations by finite volume methods using Runge-Kutta time-stepping schemes</article-title>,&#x201d; in <conf-name>Proceedings of the 14th Fluid and Plasma Dynamics Conference</conf-name>, <conf-loc>Palo Alto, CA, USA</conf-loc>, <conf-date>June 1981</conf-date>. <pub-id pub-id-type="doi">10.2514/6.1981-1259</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Jones</surname>
<given-names>W. T.</given-names>
</name>
<name>
<surname>Nielsen</surname>
<given-names>E. J.</given-names>
</name>
<name>
<surname>Park</surname>
<given-names>M. A.</given-names>
</name>
</person-group> &#x201c;<article-title>Validation of 3D adjoint based error estimation and mesh adaptation for sonic boom prediction</article-title>,&#x201d; in <conf-name>Proceedings of the 44th AIAA Aerospace Sciences Meeting and Exhibit</conf-name>, <conf-loc>Reno, NV, USA</conf-loc>, <conf-date>January 2006</conf-date>. <pub-id pub-id-type="doi">10.2514/6.2006-1150</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Premasuthan</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Jameson</surname>
<given-names>A.</given-names>
</name>
</person-group> &#x201c;<article-title>Comparison of h- and p-adaptations for spectral difference methods</article-title>,&#x201d; in <conf-name>Proceedings of the 40th Fluid Dynamics Conference and Exhibit</conf-name>, <conf-loc>Chicago, IL, USA</conf-loc>, <conf-date>June 2010</conf-date>.</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Murayama</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Nakahashi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Sawada</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>Simulation of vortex breakdown using adaptive grid refinement with vortex-center identification</article-title>. <source>AIAA J.</source> <volume>39</volume> (<issue>7</issue>), <fpage>1305</fpage>&#x2013;<lpage>1312</lpage>. <pub-id pub-id-type="doi">10.2514/2.1448</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>O&#x27;Neil</surname>
<given-names>P. J.</given-names>
</name>
<name>
<surname>Roos</surname>
<given-names>F. W.</given-names>
</name>
<name>
<surname>Kegelman</surname>
<given-names>J. T.</given-names>
</name>
<name>
<surname>Barnett</surname>
<given-names>R. M.</given-names>
</name>
<name>
<surname>Hawk</surname>
<given-names>J. D.</given-names>
</name>
</person-group> (<year>1989</year>) <comment>NADC-89114-60</comment>. <publisher-loc>Canada</publisher-loc>: <publisher-name>NRC</publisher-name>.<article-title>Investigation of flow characteristics of a developed vortex</article-title>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pantano</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Deiterding</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Hill</surname>
<given-names>D. J.</given-names>
</name>
<name>
<surname>Pullin</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>A low numerical dissipation patch-based adaptive mesh refinement method for large-eddy simulation of compressible flows</article-title>. <source>J. Comput. Phys.</source> <volume>221</volume> (<issue>1</issue>), <fpage>63</fpage>&#x2013;<lpage>87</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2006.06.011</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Papoutsakis</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sazhin</surname>
<given-names>S. S.</given-names>
</name>
<name>
<surname>Begg</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Danaila</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Luddens</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>An efficient Adaptive Mesh Refinement (AMR) algorithm for the Discontinuous Galerkin method: Applications for the computation of compressible two-phase flows</article-title>. <source>J. Comput. Phys.</source> <volume>363</volume>, <fpage>399</fpage>&#x2013;<lpage>427</lpage>. <pub-id pub-id-type="doi">10.1016/j.jcp.2018.02.048</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pepper</surname>
<given-names>D. W.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Application of an h-adaptive finite element model for wind energy assessment in Nevada</article-title>. <source>Renew. Energy</source> <volume>32</volume>, <fpage>1705</fpage>&#x2013;<lpage>1722</lpage>. <pub-id pub-id-type="doi">10.1016/j.renene.2006.08.011</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peraire</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Vadhati</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Morgan</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Zienkiewicz</surname>
<given-names>O. C.</given-names>
</name>
</person-group> (<year>1987</year>). <article-title>Adaptive remeshing for compressible flow computations</article-title>. <source>J. Comput. Phys.</source> <volume>72</volume>, <fpage>449</fpage>&#x2013;<lpage>466</lpage>. <pub-id pub-id-type="doi">10.1016/0021-9991(87)90093-3</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pirzadeh</surname>
<given-names>S. Z.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>A solution-adaptive unstructured grid method by grid subdivision and local remeshing</article-title>. <source>J. Aircr.</source> <volume>37</volume> (<issue>5</issue>), <fpage>818</fpage>&#x2013;<lpage>824</lpage>. <pub-id pub-id-type="doi">10.2514/2.2675</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Pirzadeh</surname>
<given-names>S. Z.</given-names>
</name>
</person-group> &#x201c;<article-title>An adaptive unstructured grid method by grid subdivision, local remeshing, and grid movement</article-title>,&#x201d; in <conf-name>Proceedings of the 14th Computational Fluid Dynamics Conference</conf-name>, <conf-loc>Norfolk, VA, USA</conf-loc>, <conf-date>November 1999</conf-date>. <pub-id pub-id-type="doi">10.2514/6.1999-3255</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Schmitt</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Charpin</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>1979</year>). <article-title>Pressure distributions on the ONERA M6-wing at transonic mach numbers</article-title>. <source>AGARD Ar.</source> <volume>138</volume>.</citation>
</ref>
<ref id="B22">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Spalart</surname>
<given-names>S. R.</given-names>
</name>
<name>
<surname>Allmaras</surname>
<given-names>S. A.</given-names>
</name>
</person-group> &#x201c;<article-title>A one-equation turbulence model for aerodynamic flows</article-title>,&#x201d; in <conf-name>Proceedings of the 30th Aerospace Sciences Meeting and Exhibit</conf-name>, <conf-loc>Reno, NV, USA</conf-loc>, <conf-date>January 1992</conf-date>. <pub-id pub-id-type="doi">10.2514/6.1992-439</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Spragle</surname>
<given-names>G. S.</given-names>
</name>
<name>
<surname>Smith</surname>
<given-names>W. A.</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>J. M.</given-names>
</name>
</person-group> &#x201c;<article-title>Hanging node solution adaption on unstructured grids</article-title>,&#x201d; in <conf-name>Proceedings of the 33rd Aerospace Sciences Meeting and Exhibit</conf-name>, <conf-loc>Reno, NV, USA</conf-loc>, <conf-date>January 1995</conf-date>. <pub-id pub-id-type="doi">10.2514/6.1995-216</pub-id>
</citation>
</ref>
<ref id="B24">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Steinthorsson</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Modiano</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Colella</surname>
<given-names>P.</given-names>
</name>
</person-group> &#x201c;<article-title>Computations of unsteady viscous compressible flows using adaptive mesh refinement in curvilinear body-fitted grid systems</article-title>,&#x201d; in <conf-name>Proceedings of the Fluid Dynamics Conference</conf-name>, <conf-loc>Colorado Springs, CO, USA</conf-loc>, <conf-date>June 1994</conf-date>. <pub-id pub-id-type="doi">10.2514/6.1994-2330</pub-id>
</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Ji</surname>
<given-names>B.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Numerical investigation of unsteady cloud cavitating flow around the Clark-Y hydrofoil with adaptive mesh refinement using OpenFOAM</article-title>. <source>Ocean. Eng.</source> <volume>206</volume>, <fpage>107349</fpage>. <pub-id pub-id-type="doi">10.1016/j.oceaneng.2020.107349</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yamazaki</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Matsushima</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Nakahashi</surname>
<given-names>K.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Drag decomposition-based adaptive mesh refinement</article-title>. <source>J. Aircr.</source> <volume>44</volume> (<issue>6</issue>), <fpage>1896</fpage>&#x2013;<lpage>1905</lpage>. <pub-id pub-id-type="doi">10.2514/1.31064</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Y. S.</given-names>
</name>
</person-group> &#x201c;<article-title>Adaptation for hybrid unstructured grid with hanging node method</article-title>,&#x201d; in <conf-name>Proceedings of the 15th AIAA Computational Fluid Dynamics Conference</conf-name>, <conf-loc>Anaheim,CA,U.S.A</conf-loc>, <conf-date>June 2001</conf-date>. <pub-id pub-id-type="doi">10.2514/6.2001-2657</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>