<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-19-7013-2026</article-id><title-group><article-title>Comparison of two Euler equation sets in a Discontinuous Galerkin solver for atmospheric modelling (BRIDGE v0.9)</article-title><alt-title>Comparison of two Euler equation sets in a DG solver</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Baldauf</surname><given-names>Michael</given-names></name>
          <email>michael.baldauf@dwd.de</email>
        <ext-link>https://orcid.org/0000-0001-7353-1118</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Prill</surname><given-names>Florian</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>Deutscher Wetterdienst, Frankfurter Str. 135, 63067 Offenbach, Germany</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Michael Baldauf (michael.baldauf@dwd.de)</corresp></author-notes><pub-date><day>31</day><month>July</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>14</issue>
      <fpage>7013</fpage><lpage>7040</lpage>
      <history>
        <date date-type="received"><day>23</day><month>December</month><year>2025</year></date>
           <date date-type="rev-request"><day>13</day><month>January</month><year>2026</year></date>
           <date date-type="rev-recd"><day>19</day><month>June</month><year>2026</year></date>
           <date date-type="accepted"><day>28</day><month>June</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Michael Baldauf</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026.html">This article is available from https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e87">The implementation of a “classical” Discontinuous Galerkin (DG) solver for atmospheric flows is presented that is designed for efficient use in numerical weather prediction, climate simulations, and meteorological research both on the whole sphere and for limited area modeling. To this purpose the horizontally explicit, vertically implicit (HEVI) approach is used together with implicit-explicit (IMEX)-Runge-Kutta (RK) time integration schemes and a moderate spatial approximation order (order 4 or 5). Two Euler equation sets using mass, momentum and either density weighted potential temperature <inline-formula><mml:math id="M1" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> or total energy <inline-formula><mml:math id="M2" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> as prognostic variables are compared by several idealised test cases. Details of the formulation of the Euler equations in covariant form using the Ricci tensor calculus, the linearisations needed for HEVI (especially for the total energy set), boundary conditions for an IMEX-RK scheme, and filtering for numerical stabilisation are given. Furthermore, the implementation of distributed memory parallelisation, the tensor product representation for prismatic grid cells, and optimisations for the HEVI formulation, are outlined. These developments lead to the so-called BRIDGE code, which will serve as a code base for a later DG extension of the well established ICON model. From the used idealised test cases, which are standard benchmarks for dynamical core development for the atmosphere, we conclude that the equation set using total energy <inline-formula><mml:math id="M3" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> has better well-balancing properties than the set using <inline-formula><mml:math id="M4" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>. This result can be confirmed by a normal mode stability analysis. However, in some tests the set using <inline-formula><mml:math id="M5" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> suffers more from non-linear instabilities that can only be partially solved by filtering.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Bundesministerium für Forschung und Technologie</funding-source>
<award-id>01LK2315C</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e134">Among the numerous different methods to numerically solve partial differential equations, the Discontinuous Galerkin (DG) method has attracted a certain attention in many disciplines (fluid mechanics, elastomechanics, acoustics, electrodynamics, …) during the last decades since its first invention at the beginning of the 1970's (for a historical overview see <xref ref-type="bibr" rid="bib1.bibx23" id="altparen.1"/>). The DG method allows to use quite arbitrary grid cells (triangles, prisms, hexagons, …) on arbitrary unstructured grids and runs efficiently on massively parallel computers due to very compact stencils. From a more numerical point of view DG methods can easily achieve higher order approximations, which highly increases accuracy for well resolved fields. However, in particular in fluid flows the fields are sometimes (or often) underresolved – here, another property of the DG method, namely its ability to treat every prognostic variable in a locally conserving manner (or better say: the flux divergence terms do not violate local conservation) helps in improving the physical consistency. Furthermore, DG methods in principle allow explicit time integration schemes, therefore one has a certain flexibility in the choice of an appropriate (explicit or implicit or combined) time discretisation.</p>
      <p id="d2e140">After a few preliminary studies at the Deutscher Wetterdienst (DWD) about the usability of the DG method for atmospheric models <xref ref-type="bibr" rid="bib1.bibx8 bib1.bibx41 bib1.bibx2 bib1.bibx3" id="paren.2"/> it was decided to start a new model development at DWD, called BRIDGE (Basic Research for ICON with DG Extension) <xref ref-type="bibr" rid="bib1.bibx4" id="paren.3"/>. The new implementation is intended to be part of a DG version of the established ICON model <xref ref-type="bibr" rid="bib1.bibx51" id="paren.4"/> later on. Therefore, its design aims to closely resemble and seamlessly integrate with ICON's Fortran codebase. The starting point for BRIDGE was the application of a DG scheme to solve the shallow water equations on a triangular grid on the sphere by <xref ref-type="bibr" rid="bib1.bibx2" id="text.5"/> (in the following denoted as B20), and the solution of the Euler equations in terrain-following coordinates via the horizontally explicit, vertically implicit (HEVI) approach in a DG solver using implicit-explicit (IMEX)-Runge-Kutta (RK) time integration schemes by <xref ref-type="bibr" rid="bib1.bibx3" id="text.6"/> (in the following denoted as B21). One result of these preliminary studies was that a spatial approximation order of about 4 seems to be adequate; grid irregularities don't play a role any more, but the cells are still small enough to benefit from local conservation. Additionally, the results showed that grid staggering is not necessary any more, a fact that simplifies coupling of parameterizations and coupling with geometrically separated subsystems like land, lake or ocean models.</p>
      <p id="d2e158">One question in the design of a new dynamical core for atmospheric models is the choice of the prognostic variables, here in particular for the non-hydrostatic, compressible Euler equations (also see the different versions proposed in <xref ref-type="bibr" rid="bib1.bibx19" id="altparen.7"/> or <xref ref-type="bibr" rid="bib1.bibx39" id="altparen.8"/>). Since a DG scheme in general allows a better separation between the equation formulation and the pure numerical implementation this question seems less serious and is less a basic design issue than for other discretisation schemes (as e.g. finite difference schemes). Of course, one wants to keep the local conservation properties of the finite volume part of a DG scheme, therefore a flux form of the equations using density like variables (mass density, momentum instead of velocity, …) is preferred. However, it turns out, at least for the “classical” DG formulation used in the following, that the choice in particular of the thermodynamic variable is less arbitrary than expected. In B21, the density weighted potential temperature <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> was used, a choice that is made by several atmospheric simulation models as ICON <xref ref-type="bibr" rid="bib1.bibx51" id="paren.9"/>. Here, the use of <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> will be compared with the use of total energy density <inline-formula><mml:math id="M8" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> (i.e. the sum of kinetic, potential and internal energy contributions), the latter is the preferred variable in computational fluid dynamics (CFD) simulation models.</p>
      <p id="d2e198">The motivation to use total energy <inline-formula><mml:math id="M9" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> of course stems from the fact that energy is one of the most fundamentally conserved variables in physics. Its conservation can be derived from time invariance of the physical laws (Noether's theorem), formulated as the <italic>first law</italic> in thermodynamics. Total energy further has the advantage to be quite unambiguously defined (there is no doubt about how to calculate kinetic, potential, internal, latent, … energy parts). On the other hand, if one restricts oneself to reversible processes and if the air does not change its constituents, the use of <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> implies local conservation of entropy (since in this case specific entropy <inline-formula><mml:math id="M11" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> is related to potential temperature via <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mi>log⁡</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the specific heat capacity at constant pressure). Interestingly, local conservation of <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> still holds in the presence of diffusion (see Eqs. <xref ref-type="disp-formula" rid="Ch1.E6"/>, <xref ref-type="disp-formula" rid="Ch1.E7"/>, below), although entropy is not conserved for an irreversible process. However, in the more interesting atmospheric processes with change of moisture constituents, <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> is no longer an exactly conserved quantity. Beyond this, the definition of <inline-formula><mml:math id="M16" display="inline"><mml:mi mathvariant="normal">Θ</mml:mi></mml:math></inline-formula> is no longer unique in a moist atmosphere due to several possibilities which thermodynamic coefficients (<inline-formula><mml:math id="M17" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) should be used (the dry values or the moist values? Existence of other chemical or aerosol components, …). Although this is not a fundamental problem, it can become a practical one, if several parameterisations are coupled with a dynamical core (see also <xref ref-type="bibr" rid="bib1.bibx39" id="altparen.10"/> for a few more properties of these two variable choices).</p>
      <p id="d2e313">Therefore the purpose of this article is twofold. First, a DG implementation of a solver for atmospheric flows (BRIDGE) is presented that is designed for efficient use in numerical weather prediction, climate simulations, and meteorological research both on the whole sphere and for limited area modeling. Second, the influence of the choice of the prognostic variable <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> or total energy <inline-formula><mml:math id="M20" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> in this framework will be investigated.</p>
      <p id="d2e333">The article is organized as follows: Sect. <xref ref-type="sec" rid="Ch1.S2"/> presents the two Euler equation sets in covariant (i.e. coordinate system independent) form and explains the concrete coordinate systems used in BRIDGE. Although there exist several attempts worldwide to develop DG based atmospheric models, our approach is different to most of them by using prismatic grid cells, to later on support the ICON user community. Our consistent usage of the covariant formalism allows to formulate the Euler equations on arbitrary manifolds while keeping basic DG properties, an aspect that might be of interest for other modelling communities, too. Section <xref ref-type="sec" rid="Ch1.S3"/> explains the HEVI approach and in particular gives the needed linearisations for the energy form of the Euler equations. Our determination of the linearisation coefficients is slightly different from some other HEVI methods by omitting several terms, which can lead to a slightly higher efficiency. Several implementation details about parallelisation, usage of tensor products, and optimisations of the HEVI scheme are presented, too. The treatment of boundary conditions in IMEX time integration schemes is explained in Sect. <xref ref-type="sec" rid="Ch1.S4"/>. Filtering is used to prevent (mostly non-linear) instabilities and is explained in Sect. <xref ref-type="sec" rid="Ch1.S5"/>. Finally, Sect. <xref ref-type="sec" rid="Ch1.S6"/> presents results from several atmospheric test cases.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Analytic formulations</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Two Euler equation sets</title>
      <p id="d2e361">In the following we write the Euler equations in covariant form, therefore valid in every arbitrary coordinate system. To this purpose we make extensive use of the Ricci tensor formalism (see B20, B21 and references therein), in particular we use the Einstein summation convention and sum over similar upper (contravariant) and lower (covariant) indices.  Mass conservation is expressed by the continuity equation

            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M21" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></disp-formula>

          with mass density <inline-formula><mml:math id="M22" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> and momentum density <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the covariant derivative; occasionally we use the denotation with a semicolon for it, e.g. <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:mo>≡</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e458">The momentum balance equation is expressed as follows:

            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M26" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>M</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></disp-formula>

          with the momentum flux tensor for inviscid flow

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M27" display="block"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:msup><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msup><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>/</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:math></inline-formula> denotes the velocity, <inline-formula><mml:math id="M29" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> the pressure, and with the momentum source term consisting of buoyancy and Coriolis force

            <disp-formula id="Ch1.Ex1"><mml:math id="M30" display="block"><mml:mrow><mml:msubsup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>M</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:msup><mml:mi>M</mml:mi><mml:mi>l</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Here, <inline-formula><mml:math id="M31" display="inline"><mml:mi mathvariant="normal">Φ</mml:mi></mml:math></inline-formula> is the gravitational potential, <inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> are the components of the angular velocity of the earth, <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> the contravariant components of the metric tensor, <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are the covariant components of the totally antisymmetric Levi-Civita tensor of rank 3 (analogous to the 2nd rank tensor given in B20).</p>
      <p id="d2e703">In case of diffusion due to (turbulent) viscosity we add

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M35" display="block"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mn mathvariant="normal">2</mml:mn><mml:msup><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:msup><mml:mi>v</mml:mi><mml:mi>l</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>

          to the above momentum flux <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> with the symmetric deformation tensor

            <disp-formula id="Ch1.Ex2"><mml:math id="M37" display="block"><mml:mrow><mml:msup><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:msup><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:msup><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          As in B21, we use <inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with the kinematic shear viscosity  <inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. In the test cases of Sect. <xref ref-type="sec" rid="Ch1.S6"/> we either set <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">const</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></inline-formula> or use a mixing length approach

            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M42" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>l</mml:mi><mml:mi mathvariant="normal">t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math></disp-formula>

          (note the typo in the definition of the scalar shear <inline-formula><mml:math id="M43" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> in B21). Here, <inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes a turbulent length scale (we specify one in Sect. <xref ref-type="sec" rid="Ch1.S6.SS3"/>).</p>
      <p id="d2e999">In the following we will consider two variants of the energy balance:</p>
<sec id="Ch1.S2.SS1.SSS1">
  <label>2.1.1</label><title>Equation set “<inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”</title>
      <p id="d2e1021">Equation set “<inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” uses the density weighted potential temperature <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> as the prognostic variable (this is the approach used in B21)

              <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M48" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            with the <inline-formula><mml:math id="M49" display="inline"><mml:mi mathvariant="italic">ϑ</mml:mi></mml:math></inline-formula>-flux for the pure Euler equations

              <disp-formula id="Ch1.Ex3"><mml:math id="M50" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In case of diffusion we add

              <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M51" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mi mathvariant="normal">Θ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            This expression is motivated by the fact that there is no turbulent heat flux in a neutrally stratified atmosphere. In this article we use the simple (but generally not correct) assumption that the diffusion coefficient for heat <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> has the same value as <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e1208">The pressure results from the equation of state for an ideal gas

              <disp-formula id="Ch1.Ex4"><mml:math id="M54" display="block"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">ϑ</mml:mi><mml:msub><mml:mi>R</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>/</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>

            with a reference pressure usually chosen as <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M56" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e1283">At the moment we only consider adiabatic processes (more specific: we have no energy sources/sinks due to latent heat release, chemical reactions, radioactive decay or radiation absorption/emission). Therefore, it holds <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS2">
  <label>2.1.2</label><title>Equation set “<inline-formula><mml:math id="M58" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”</title>
      <p id="d2e1322">As an alternative to Eq. (<xref ref-type="disp-formula" rid="Ch1.E6"/>) we use the balance equation for the total energy density <inline-formula><mml:math id="M59" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>

              <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M60" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>E</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            For adiabatic processes, we have no energy sources: <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e1405">The total energy is the sum of kinetic, potential and internal energy <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mi>E</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with components

              <disp-formula id="Ch1.Ex5"><mml:math id="M63" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:msup><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>T</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            For given prognostic variables we can first determine the internal energy <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and then calculate the temperature <inline-formula><mml:math id="M65" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>. The pressure follows from the ideal gas equation

              <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M66" display="block"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mi>R</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:math></disp-formula>

            with the individual gas constant <inline-formula><mml:math id="M67" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> for air. Pressure also has a simple relationship with the internal energy

              <disp-formula id="Ch1.Ex6"><mml:math id="M68" display="block"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

            and can be expressed by the prognostic variables via

              <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M69" display="block"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>E</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:msup><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Φ</mml:mi></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e1679">The energy flux for the Euler equations is expressed as

              <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M70" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mi>k</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>+</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            In case of viscosity and heat conduction we add two diffusive flux contributions

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M71" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E12"><mml:mtd><mml:mtext>12</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>T</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mfrac></mml:mstyle><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mi mathvariant="normal">Θ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The contribution <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> can be derived from the full momentum flux tensor <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> when considering the prognostic equation for the kinetic energy (see e.g. <xref ref-type="bibr" rid="bib1.bibx29" id="altparen.11"/>). Analogously, the contribution <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> can be derived from the prognostic equation of the internal energy <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> using Eq. (<xref ref-type="disp-formula" rid="Ch1.E7"/>), note that this form exactly agrees with those given in <xref ref-type="bibr" rid="bib1.bibx45" id="text.12"/>. In both these derivations, there occur source terms that contribute to changes of internal energy. However, the total energy is conserved. Written in the above given variables we can reformulate

              <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M76" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Use of a reference state</title>
      <p id="d2e2042">As in B21 we subtract a stationary, resting, and horizontally homogeneous reference state (denoted with subscript <inline-formula><mml:math id="M77" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula>) that is in hydrostatic balance, and write the above prognostic equations for the deviations (denoted with a tilde), e.g. <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. In general, this improves the well-balancing problem in numerical discretisations of the pressure gradient and the buoyancy term in the momentum balance. Note that this reference state is not used for the linearisation later on in the HEVI scheme. In particular, for equation set “<inline-formula><mml:math id="M79" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” we subtract the reference state energy

            <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M80" display="block"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow><mml:mi>R</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          One possible choice is the isothermal atmosphere

            <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M81" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">00</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">const</mml:mi><mml:mo>.</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mstyle scriptlevel="+1"><mml:mfrac><mml:mi>g</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">00</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>z</mml:mi></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          with the gravitational acceleration <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mo>∂</mml:mo><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>/</mml:mo><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> following from the ideal gas Eq. (<xref ref-type="disp-formula" rid="Ch1.E9"/>). However, if not otherwise noted, we use the reference state

            <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M84" display="block"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">ref</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mstyle scriptlevel="+1"><mml:mfrac><mml:mi>z</mml:mi><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:math></disp-formula>

          from <xref ref-type="bibr" rid="bib1.bibx50" id="text.13"/>, with <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">ref</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">300</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M86" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">75</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M88" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mn mathvariant="normal">000</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M90" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> and the pressure at bottom <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M92" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Coordinate systems</title>
      <p id="d2e2467">The above equations only use tensors (or products of two pseudo-tensors) and therefore are valid in every arbitrary coordinate system. As noted in B21, it is advantageous to rewrite these equations in the so-called strong-conservation form, because this reduces <italic>numerical</italic> violation of local conservation due to metric correction terms. This means that we now have two distinct coordinate systems <inline-formula><mml:math id="M93" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is “smoother” than <inline-formula><mml:math id="M96" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula>. For our purposes, <inline-formula><mml:math id="M97" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula> is a terrain-following coordinate system, whereas <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> just follows the sphere (or even a flat plane). By this we can identically reformulate the scalar Eqs. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), (<xref ref-type="disp-formula" rid="Ch1.E6"/>), or (<xref ref-type="disp-formula" rid="Ch1.E8"/>) as

            <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M99" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:mi mathvariant="italic">ϕ</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M100" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> is <inline-formula><mml:math id="M101" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M102" display="inline"><mml:mi mathvariant="italic">ϑ</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M103" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>, respectively, <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the related flux component, and <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the related source term, and the momentum Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) (or any other prognostic equation for a vector field) as

            <disp-formula id="Ch1.E19" content-type="numbered"><label>19</label><mml:math id="M106" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>M</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with the scalar metric density <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">det</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and the Christoffel symbol of second kind <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e2831">Apart from these two types of prognostic equations we also have to deal with derivative variables for the treatment of diffusion via the BR1 scheme (<xref ref-type="bibr" rid="bib1.bibx6" id="altparen.14"/>, also see <xref ref-type="bibr" rid="bib1.bibx16" id="altparen.15"/>). For these we use the form given in B21, Sect. 2.4, i.e. we consider the covariant derivative <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> of a scalar <inline-formula><mml:math id="M110" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> or the covariant derivative <inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>l</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> of a vector field (with <italic>terrain-following components</italic>) <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mi>l</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> where the derivation is done by the terrain-following coordinate <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e2903">Practically, we use the following sequence of coordinate systems and the related transformations<fn id="Ch1.Footn1"><p id="d2e2906">We use different numbers of primes to indicate which coordinate system is used for the coordinates and tensor components.</p></fn>: <list list-type="order"><list-item>
      <p id="d2e2912">For all input and output purposes, we use <italic>spherical coordinates</italic><disp-formula id="Ch1.Ex7"><mml:math id="M114" display="block"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">sphere</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>on a sphere with given radius <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">sphere</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The metric properties of these coordinates and their transformations from/to Cartesian coordinates <inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are given in B20, Appendix A.</p>
      <p id="d2e3051">Alternatively, for idealized tests we can use <italic>flat Cartesian coordinates</italic>. For convenience we also denote them as<disp-formula id="Ch1.Ex8"><mml:math id="M119" display="block"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>with the simple transformations from/to Cartesian coordinates<disp-formula id="Ch1.Ex9"><mml:math id="M120" display="block"><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>z</mml:mi><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">const</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p></list-item><list-item>
      <p id="d2e3156">On the sphere a triangulation is performed, i.e. all horizontal (2-dim.) grid cells are triangles. We map each of these spherical triangles onto unit triangles by a local gnomonial projection <xref ref-type="bibr" rid="bib1.bibx31" id="paren.16"/> and call the related coordinate the <italic>local</italic> or <italic>unit</italic>
<italic>coordinate</italic><fn id="Ch1.Footn2"><p id="d2e3170">The technical distinction between <italic>local</italic> and <italic>unit coordinates</italic> is justified as follows: In BRIDGE the unit coordinate can be a horizontally affine transformation of the local coordinate. In the current implementation this affine transformation is just the identity.</p></fn> <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> (note that there is no change in the vertical coordinate, i.e. <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>). Consequently every triangle uses its own mapping and has its own coordinate system and related base vectors (and is therefore an example of a differentiable manifold). This means that tensor components change from one triangle to another. The gnomonial projection has the important property that points (in particular quadrature points) of both common edges of neighbouring spherical triangles are mapped to the same distances along the unit triangle edges.</p>
      <p id="d2e3225">The metric properties of these coordinates and transformations between <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are given in B20, Appendix C (note that a slightly different notation of primes is used there).</p></list-item><list-item>
      <p id="d2e3262">To consider orography, we introduce <italic>terrain-following coordinates</italic> <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, as in B21. They are defined by<disp-formula id="Ch1.E20" content-type="numbered"><label>20</label><mml:math id="M126" display="block"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>The (user-defined) stretching function <inline-formula><mml:math id="M127" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> may also depend on the orography <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">oro</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and the model top height <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item></list></p>
      <p id="d2e3424">We use the usual transformation rules for (2nd rank) tensors to transform metric properties from one coordinate system to the next one,

            <disp-formula id="Ch1.Ex10"><mml:math id="M130" display="block"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and for the Christoffel symbols (which are not tensors)

            <disp-formula id="Ch1.Ex11"><mml:math id="M131" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e3737">Note that throughout the entire DG framework (i.e. apart from input/output) we only use the terrain-following coordinate <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> as the independent coordinate (e.g. for derivatives) and the unit coordinate <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for the momentum components. Therefore, the above denotation of coordinates matches with the strong conservation form Eqs. (<xref ref-type="disp-formula" rid="Ch1.E18"/>) and (<xref ref-type="disp-formula" rid="Ch1.E19"/>) given above.</p>
      <p id="d2e3770">Finally, a remark should be made about the <italic>shallow atmosphere approximation</italic> in contrast to the <italic>deep</italic> version. In the deep case, nothing else must be done in the above described approach. However, all test cases below on the sphere use the shallow atmosphere approximation, and this approximation is still used by many global forecast models worldwide due to slight efficiency reasons. This means that in all metric properties in the above coordinate system 1. the radial coordinate <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">sphere</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is replaced by the constant earth radius <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi mathvariant="normal">sphere</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Consequently, all partial derivatives of the metric tensor by the radial coordinate vanish: <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. This implies that those components of the Christoffel symbol vanish for which at least one index is equal to 3: <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Γ</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mi>k</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> if <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>. These metric properties are then transformed to the subsequent coordinate systems. This procedure automatically generates the right metric properties for a shallow atmosphere (in particular the right divergence and advection terms, see e.g. <xref ref-type="bibr" rid="bib1.bibx5" id="altparen.17"/>). The only thing left to do is to apply the so-called traditional approximation, i.e. to skip some Coriolis terms. This is done by setting the radial unit component of the earth rotation velocity vector only: <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">1</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">2</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M142" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">ϕ</mml:mi></mml:mrow></mml:math></inline-formula>, with the geographical latitude <inline-formula><mml:math id="M143" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> and the earth angular velocity <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">7.29212</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M145" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">rad</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The gravitational potential in the shallow case sounds <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> with either the radial direction <inline-formula><mml:math id="M147" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> in spherical coordinates or the vertical direction <inline-formula><mml:math id="M148" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> in Cartesian coordinates, and the gravitational acceleration <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">9.80665</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M150" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>The HEVI-DG discretisation</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>The HEVI approach and related  linearisations</title>
      <p id="d2e4135">In most meteorological model applications, the grid cells, at least near the ground, have a much smaller vertical than horizontal extent. Therefore, the time step restrictions related to the vertically expanding fast sound waves in particular are severe. We use the well-known HEVI approach to overcome this and again follow B21. To this purpose, the fluxes are split into an explicitly treated part  <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> that contains all horizontal and the nonlinear vertical contributions, and an implicitly treated vertical, linear part <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The source terms are analogously split into slow, explicitly treated and fast and linear, implicitly treated parts. In its most general form these equations (independently from its tensorial rank, i.e. either the scalar Eq. <xref ref-type="disp-formula" rid="Ch1.E18"/> or the vector Eq. <xref ref-type="disp-formula" rid="Ch1.E19"/>) can be written for any prognostic variable <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> as

            <disp-formula id="Ch1.E21" content-type="numbered"><label>21</label><mml:math id="M154" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The upper index <inline-formula><mml:math id="M155" display="inline"><mml:mi mathvariant="italic">σ</mml:mi></mml:math></inline-formula> enumerates the <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> prognostic variables. It should be noted that the sequence of coordinate systems described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/> always maps to <italic>unit</italic> cells (unit prisms in BRIDGE), therefore, we directly can identify the scalar metric density with the Jacobian <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>≡</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula>, as it is usually denoted in the finite element or DG/CG literature.</p>
      <p id="d2e4353">In the following sections we define the implicitly treated terms. To keep consistency, all remaining (mostly nonlinear) terms are treated explicitly (e.g. <xref ref-type="bibr" rid="bib1.bibx20" id="altparen.18"/>). Therefore, we have

            <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M158" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are the complete (nonlinear) flux and source terms, and with the vertical flux and source term <italic>linearisations</italic> of the implicit terms

            <disp-formula id="Ch1.E23" content-type="numbered"><label>23</label><mml:math id="M161" display="block"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.25em"/><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The linearisation coefficients <inline-formula><mml:math id="M162" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>/</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>/</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> can depend on the variables <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, which are generally taken from a previous time step. In these sums, <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> either can be the <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> prognostic variables (<inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>, …) or, in anticipation of possible diffusion terms, the <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> <italic>vertical</italic> derivative variables (<inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">6</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">7</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mn mathvariant="normal">1</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>, …). <xref ref-type="bibr" rid="bib1.bibx21" id="text.19"/> demonstrate that this linear HEVI approach (denoted as “LHEVI-PS” there) has superior efficiency properties (at similar numerical stability) compared to other HEVI schemes that treat <italic>all nonlinear</italic> terms in an implicit manner.</p>
<sec id="Ch1.S3.SS1.SSS1">
  <label>3.1.1</label><title>Linearisation for the equation set “<inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”</title>
      <p id="d2e5005">All the linearisations needed for equation set “<inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” are described in B21; see Sect. 2.5.1 therein for the pure Euler equations and Sect. 2.5.2 for the related diffusion terms. We notice that these linearisations are not done in a strict mathematical sense, but in a way that  the linear state is relatively close to the actual state of the atmosphere and keeps near hydrostatic balance as much as possible.</p>
</sec>
<sec id="Ch1.S3.SS1.SSS2">
  <label>3.1.2</label><title>Linearisation for the equation set “<inline-formula><mml:math id="M174" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”</title>
      <p id="d2e5034">The terms that are responsible for sound expansion are the pressure gradient in the momentum equation and the velocity divergence in the thermodynamic equation (here: the total energy equation). Additionally, an implicit treatment of the buoyancy term helps in stabilizing gravity wave expansion.</p>
      <p id="d2e5037">Therefore, we first have to look at the pressure deviation <inline-formula><mml:math id="M175" display="inline"><mml:mover accent="true"><mml:mi>p</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> in the momentum equation. From Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>) and the reference state energy, Eq. (<xref ref-type="disp-formula" rid="Ch1.E15"/>), we get

              <disp-formula id="Ch1.E24" content-type="numbered"><label>24</label><mml:math id="M176" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>p</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>p</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>M</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">Φ</mml:mi></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            Though this is an exact expression, <inline-formula><mml:math id="M177" display="inline"><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> arises only in a linear manner, the same holds for <inline-formula><mml:math id="M178" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> in the third term. This is the main reason why there is no problem with using the potential energy: any shift in the geopotential exactly cancels in the first and third term. At a first glance, a linearisation just in these two variables <inline-formula><mml:math id="M179" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M180" display="inline"><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> (i.e. without the kinetic energy term) should be sufficient for an implicit and therefore  stable treatment of the vertically expanding sound waves. However, since the full pressure gradient is important, it turns out that the kinetic energy term must be linearised, too, in the momentum derivatives of the momentum flux to get a stable behaviour.</p>
      <p id="d2e5171">So, for the pure Euler equations (set “<inline-formula><mml:math id="M181" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”) we express the fluxes (<xref ref-type="disp-formula" rid="Ch1.E3"/>), (<xref ref-type="disp-formula" rid="Ch1.E11"/>) by the prognostic variables <inline-formula><mml:math id="M182" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula>, <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M184" display="inline"><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> and can derive the following linearisations just by differentiation: for the mass flux

              <disp-formula id="Ch1.Ex12"><mml:math id="M185" display="block"><mml:mrow><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mstyle background="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-g01.png"/></mml:mrow></mml:math></disp-formula>

            for the momentum fluxes

              <disp-formula id="Ch1.E25" content-type="numbered"><label>25</label><mml:math id="M186" display="block"><mml:mrow><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mstyle background="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-g02.png"/></mml:mrow></mml:math></disp-formula>

            and for the energy flux

                  <disp-formula id="Ch1.Ex13"><mml:math id="M187" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mstyle background="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-g03.png"/></mml:mrow></mml:math></disp-formula>

            We want to emphasize that these linearisation coefficients depend on the actual or at least recent state <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>q</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mover accent="true"><mml:mi>q</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> of the atmosphere and not only on the reference state <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mn mathvariant="normal">0</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>. As discussed above not every term is necessary for a stable treatment of sound and gravity waves and in fact we only use the underlined terms. In particular, we neglect linearisations by <inline-formula><mml:math id="M190" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M191" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> in the energy flux and skip terms that are quadratic in the momentum variables in general. The omittance of these terms is mainly done by efficiency reasons; they also seem to have in general only a minor influence. We have found experimentally that one can even set <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> without detrimental effects, because this omission can slightly reduce a nonlinear instability when the vertical momentum <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> starts to oscillate. However we have seen (e.g. by the simple 1D test case in Sect. 6.1 <italic>with</italic> a horizontal base flow), that the following two terms need a special treatment, which otherwise would lead to strong overshooting of vertical velocity near the top and bottom boundaries. First, the underlined term denoted as “factor <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>” stems from the kinetic energy (by the pressure term in the momentum flux) and, as a quadratic term in the velocity, it is taken only with a factor <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>. Second, the term <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E25"/>) should be omitted, too. These particular choices are motivated by the fact that the implicit momentum flux then exactly results in the pressure perturbation (use Eq. <xref ref-type="disp-formula" rid="Ch1.E24"/>)

              <disp-formula id="Ch1.Ex14"><mml:math id="M197" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mi>p</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            which helps to improve hydrostatic well-balancing in the implicit part. We want to remark that this is a slightly different linearisation strategy as e.g. used in <xref ref-type="bibr" rid="bib1.bibx43" id="text.20"/> or <xref ref-type="bibr" rid="bib1.bibx21" id="text.21"/>.</p>
      <p id="d2e5654">Apart from these flux term linearisations we only have one source term to linearise, namely the buoyancy term in the momentum equation with

              <disp-formula id="Ch1.Ex15"><mml:math id="M198" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>S</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>M</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            All other implicit source term coefficients in Eq. (<xref ref-type="disp-formula" rid="Ch1.E23"/>) are set to zero.</p>
      <p id="d2e5722">In case of <italic>diffusion</italic>, we get the linearisations as follows. There is no diffusion term in the continuity equations. The diffusive term in the momentum equation does not depend on the thermodynamic variable, therefore we use the same as for equation set “<inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”. The diffusive energy flux <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula>, Eq. (<xref ref-type="disp-formula" rid="Ch1.E14"/>), can be linearised by the prognostic and vertical derivative variables to give

              <disp-formula id="Ch1.Ex16"><mml:math id="M201" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">lin</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

            with the linearisation coefficients

                  <disp-formula specific-use="gather"><mml:math id="M202" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mfenced close="" open="["><mml:mrow><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open=""><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>E</mml:mi><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi>g</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>j</mml:mi></mml:mrow></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>M</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            
            Note that we skip all linearisations related to the inherently quadratic diffusive momentum flux contribution <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Up to now, we have not seen stability problems by not treating <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> implicitly.</p>
      <p id="d2e6736">All these linearisation coefficients are calculated (“updated”) only after every 50 timesteps, to reduce the effort of performing the expensive LU decomposition. This is supported by the fact that we only use SDIRK IMEX-RK schemes, where the diagonal RK coefficients of the implicit part are all the same. Therefore, we can use the same matrices for the implicit back-substitution, matrix-vector multiplications for all RK stages during 50 time steps. However, for the baroclinic instability test, Sect. <xref ref-type="sec" rid="Ch1.S6.SS6"/>, and the <xref ref-type="bibr" rid="bib1.bibx22" id="text.22"/> test, Sect. <xref ref-type="sec" rid="Ch1.S6.SS7"/>, the time steps are so large, that a higher frequency of every 10 timesteps is partly necessary for numerical stability.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>The DG scheme</title>
      <p id="d2e6755">In this section, we describe the basic steps towards a “classical” DG-scheme <xref ref-type="bibr" rid="bib1.bibx12 bib1.bibx13 bib1.bibx14 bib1.bibx23" id="paren.23"/> for the Euler equations in strong conservation form. Here, we only present the basic formulation, details about the HEVI formulation can be found in B21. The 3D domain is divided into <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">hc</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">vc</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> non-overlapping prismatic cells <inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, where the index <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">hc</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> enumerates the cells in the horizontal directions. and <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">vc</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> enumerates in the vertical direction. This means that the BRIDGE code makes the common assumption of an <italic>unstructured columnar mesh</italic>  (prismatic cells): each grid cell of the horizontal mesh corresponds to a vertical column extending radially upward. As mentioned in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>, we assume that the coordinate transformation already maps onto unit cells in the system <inline-formula><mml:math id="M209" display="inline"><mml:mi>K</mml:mi></mml:math></inline-formula>. Therefore, the vertical interval is the unit interval <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and in the horizontal we have unit triangles <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo><mml:mo>|</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>≤</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e6965">The weak form is achieved by multiplication of the general Eq. (<xref ref-type="disp-formula" rid="Ch1.E21"/>) with a test function <inline-formula><mml:math id="M212" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> over the cell <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and integration by parts

            <disp-formula id="Ch1.E26" content-type="numbered"><label>26</label><mml:math id="M214" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="normal">d</mml:mi><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mi>v</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:mi>v</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">num</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:mi>v</mml:mi><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>u</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">ex</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mi>v</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">im</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mi>v</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M215" display="inline"><mml:mi mathvariant="bold-italic">n</mml:mi></mml:math></inline-formula> denotes the surface unit normal vector that is directed outwards of cell <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:math></inline-formula> is the volume element, and <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:math></inline-formula> the surface element.</p>
      <p id="d2e7380">As mentioned earlier, the classical BR1 scheme is used to handle the second-order diffusive terms. Therefore, the original set of equations is reformulated into a system of coupled first-order equations and <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> auxiliary variables representing gradients are introduced.</p>
      <p id="d2e7396">For the numerical flux of the variable <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in direction <inline-formula><mml:math id="M221" display="inline"><mml:mi mathvariant="bold-italic">n</mml:mi></mml:math></inline-formula> (which directs from “<sub>L</sub>” to “<sub>R</sub>”) we use the local Lax-Friedrichs (LF) flux (also known as Rusanov flux)

            <disp-formula id="Ch1.E27" content-type="numbered"><label>27</label><mml:math id="M224" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">num</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>≡</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">num</mml:mi></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mi mathvariant="normal">L</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced><mml:msub><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">λ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>(</mml:mo><mml:msubsup><mml:mi>q</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>q</mml:mi><mml:mi mathvariant="normal">L</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          Note that the LF-flux has the usual antisymmetry property <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">num</mml:mi></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">num</mml:mi></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, which guarantees local conservation on a cell-wise level. This flux is used both for the hyperbolic explicit part and for the implicit part with suitable “diffusion velocities” <inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, respectively <xref ref-type="bibr" rid="bib1.bibx7" id="paren.24"/>. The diffusion velocity for the Euler equations at the edge with unit normal vector <inline-formula><mml:math id="M228" display="inline"><mml:mi mathvariant="bold-italic">n</mml:mi></mml:math></inline-formula> is known to be the sum of the speed of sound and the absolute value of the advective velocity

            <disp-formula id="Ch1.Ex21"><mml:math id="M229" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">snd</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:mo>|</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">snd</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>p</mml:mi><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>n</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The derivation in particular of the metric factors is done analogous to those in B20 (Appendix D) for the shallow-water equations. According to <xref ref-type="bibr" rid="bib1.bibx7" id="text.25"/>, <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is split into explicit and implicit contributions

            <disp-formula id="Ch1.Ex22"><mml:math id="M231" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">snd</mml:mi></mml:msub><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">hor</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:mo>|</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">hor</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denotes the horizontal part of <inline-formula><mml:math id="M233" display="inline"><mml:mi mathvariant="bold-italic">n</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e7955">As mentioned in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>, every triangle uses its own coordinate base vectors, therefore we have to transform the horizontal, physical flux components <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> and the diffusion velocity <inline-formula><mml:math id="M236" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> at the horizontal edges of two neighbouring prisms, so that each cell can calculate its own numerical flux, as is described in B20, Sect. 3. Note that such a transformation does not interfere at all with the purely vertical implicit treatment of the HEVI approach. Furthermore, this symmetric flux transformation does not violate the local conservation property (see the proof in B20, Appendix E). In contrast, in the application of the BR1 scheme for diffusion, we exchange the derivative variables instead of the related “pseudo fluxes”. The reason for this different treatment is that the flux calculations of the Euler equations (in particular the additional diffusion terms) is relatively expensive, therefore it is efficient to calculate them only once and then transform to the neighbouring cell face. A flux has one tensorial rank more than its related prognostic variable, therefore the transformation is a bit costlier than it would be for the variable itself. Conversely in case of the derivative variables, the “pseudo flux” calculation is computationally cheap and it is therefore better to perform the flux calculation twice without the transformation.</p>
      <p id="d2e7989">The linear system of equations (LSE) resulting from the implicit part of the HEVI equations is given in B21, Sect. 3. This LSE defines one stage for an IMEX-RK time integration scheme. In contrast to the SSP3(4,3,3) scheme that was preferably used in B21, here we will mostly use the SSP3(3,3,2) scheme <xref ref-type="bibr" rid="bib1.bibx37" id="paren.26"/>, whose implicit part is L-stable and whose explicit part is a strong stability preserving (SSP) 3rd order RK scheme, too (although we don't really benefit from the SSP property at the moment, since an Euler forward step is not stable by itself). Although its overall accuracy is only second order, we use it in BRIDGE due to higher efficiency because, firstly, this 3-stage scheme saves one implicit solve per timestep compared to the 4-stage SSP3(4,3,3) scheme, and secondly it allows a larger Courant number of about 0.12 for the linear advection equation with two velocities compared to about 0.08 for SSP3(4,3,3) (see B21, Table 1).</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Remarks about the numerical implementation</title>
<sec id="Ch1.S3.SS3.SSS1">
  <label>3.3.1</label><title>Remarks about parallelization</title>
      <p id="d2e8010">One advantage of DG methods is their high computational intensity because of their high-order polynomial approximations and the large number of degrees of freedom in each element. Additionally, the locality of DG – requiring only face-neighbour data – allows for excellent weak and strong scaling on distributed-memory systems via domain decomposition. MPI (Message Passing Interface) enables DG parallelization with ghost exchanges for faces in two different forms:</p>
      <p id="d2e8013">In the first variant, one process calculates the numerical flux from the double-valued surface states and communicates the fluxes back to the neighbouring process <xref ref-type="bibr" rid="bib1.bibx26" id="paren.27"/>. This parallelization strategy does not offer performance advantages for BRIDGE, as the fluxes for one side are not uniform due to the mapping: Since we use local coordinates on the sphere,  we get different numerical fluxes for the right and the left cell.</p>
      <p id="d2e8019">Therefore, the BRIDGE code implementation employs the second variant, where only the trace of the solution has to be sent to the neighbouring partition while the partition boundary fluxes are evaluated twice <xref ref-type="bibr" rid="bib1.bibx28 bib1.bibx30" id="paren.28"/>. Note that this is not related to the previous remark about process-local flux recalculation in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. We use non-blocking MPI communication calls to overlap communication and computation. </p>
</sec>
<sec id="Ch1.S3.SS3.SSS2">
  <label>3.3.2</label><title>Sum factorization techniques</title>
      <p id="d2e8036">As mentioned in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>, the BRIDGE code makes use of a two-dimensional (2D) spatial mesh and a (transformed) vertical axis. This approach is common in geophysical PDE simulations, as it avoids the high computational cost of full 3D. Consequently, the discrete finite element space of the BRIDGE code is a product space built from horizontal finite elements with polynomial expansion <inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Π</mml:mi><mml:mi>m</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and vertical finite elements with polynomial expansion <inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> (potentially differently chosen for each variable <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:msup><mml:mi>q</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>). In each cell the solution is represented as a linear combination of an <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>-tensor product base by <inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> horizontal base functions <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="normal">Π</mml:mi><mml:mi>m</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> vertical base functions <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msubsup><mml:mi>P</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> with <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>

              <disp-formula id="Ch1.E28" content-type="numbered"><label>28</label><mml:math id="M247" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munderover><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munderover><mml:msubsup><mml:mi>Q</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:msubsup><mml:mi mathvariant="normal">Π</mml:mi><mml:mi>m</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msubsup><mml:mi>P</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
      <p id="d2e8508">For the sake of readability, we omit the superscript index <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> in the following where it is not explicitly needed, and restrict ourselves to a single component of the vector-valued FE space.</p>
      <p id="d2e8523">The matrix representation of this construction is with Kronecker products. Albeit triangles do not utilize the full potential of tensor product representations, this product form enables the BRIDGE code to make extensive use of sum factorization techniques, which are widely used in hp-FEM codes <xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx27 bib1.bibx28" id="paren.29"/>. For the application of derivative matrices we have, for example,

                  <disp-formula id="Ch1.Ex23"><mml:math id="M249" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub><mml:mo>⊗</mml:mo><mml:msubsup><mml:mi>D</mml:mi><mml:mrow><mml:mi mathvariant="normal">hrz</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi mathvariant="normal">co</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub><mml:mo>⊗</mml:mo><mml:msubsup><mml:mi>D</mml:mi><mml:mrow><mml:mi mathvariant="normal">hrz</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mi mathvariant="normal">co</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi><mml:mi mathvariant="normal">co</mml:mi></mml:msubsup><mml:mo>⊗</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mover accent="true"><mml:mi>I</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e8607">Here, <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denote the <inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> identity matrix, respectively. <inline-formula><mml:math id="M254" display="inline"><mml:mover accent="true"><mml:mi>I</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:math></inline-formula> denotes the interpolation from a finite element basis with nodes in the <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> quadrature points to an arbitrary (nodal) basis. The matrices <inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:msubsup><mml:mi>D</mml:mi><mml:mrow><mml:mi mathvariant="normal">hrz</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mi mathvariant="normal">co</mml:mi></mml:msubsup><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:msubsup><mml:mi>D</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi><mml:mi mathvariant="normal">co</mml:mi></mml:msubsup><mml:mo>∈</mml:mo><mml:msup><mml:mi mathvariant="double-struck">R</mml:mi><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are defined as the gradient of Lagrange polynomials with nodes in the quadrature points. In practice, the multiplication with the interpolation matrix <inline-formula><mml:math id="M258" display="inline"><mml:mover accent="true"><mml:mi>I</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula> does not count (it is shared with the calculation of the volume source term). Furthermore, the above equation describes derivative operations in a general finite element setup. Interpolation is trivial in the case of collocation, where the solution variables are stored at the nodes of the quadrature rule (often called <italic>Discontinuous Galerkin Spectral Element Method, DGSEM</italic>).</p>
      <p id="d2e8782">Similar formulations exist for other matrix-vector-multiply operations, e.g. integration. In terms of computational complexity, assuming <inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>:=</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the number of degrees of freedom and the number of quadrature points, the number of multiplications and additions is reduced to <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:msup><mml:mi>n</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:msup><mml:mi>n</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> in contrast to <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> for a naive implementation.</p>
</sec>
<sec id="Ch1.S3.SS3.SSS3">
  <label>3.3.3</label><title>Block-tridiagonal solve</title>
      <p id="d2e8862">The LSE has a block-tridiagonal structure and is directly solved with a generalized Thomas algorithm. At first, each such block is a <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> matrix. As can be seen both from the LSE coefficients (Sect. 3.1 in B21) and from the boundary conditions (Sect. 4.3 in B21), all these block matrices decouple in the horizontal directions if one uses <italic>collocation</italic>. We use Gauss-Legendre quadrature in the vertical and the Gauss-Legendre-like quadrature rules of <xref ref-type="bibr" rid="bib1.bibx49" id="text.30"/> on the triangle. Therefore, we consider <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> blocks consisting only of <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> matrices instead. For a 4th order scheme with <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> base functions on a triangle this reduces the effort for an LU decomposition by a factor of <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> and for the matrix-vector multiplication to calculate the new state in every RK stage by a factor of <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:msubsup><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula>. Since the number of equations increases by a factor of <inline-formula><mml:math id="M268" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula>, the overall efficiency gain by using collocation is about a factor of 10.</p>
</sec>
<sec id="Ch1.S3.SS3.SSS4">
  <label>3.3.4</label><title>“Sparse” Kronecker products</title>
      <p id="d2e9037">As an extension to the above Kronecker product implementation, both, the horizontal (explicit) and the HEVI-DG scheme in the BRIDGE code can exploit the fact that basis functions vanish on a cell face if the corresponding interpolation node does not reside on this face. Internal interpolation nodes in this case provide zero columns in the corresponding matrices.</p>
      <p id="d2e9040">In the horizontal discretisation not all polynomials have support on each face when the nodes are located on the boundary, for example, in a method with Gauß-Lobatto quadrature. This can be exploited to reduce the cost of face integration, which is otherwise the dominant cost of an explicit solver. There is, however, the disadvantage that in contrast to the Gauß-Legendre method numerical integration is only exact for polynomials of order up to <inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> when using a Gauß-Lobatto quadrature with <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> nodes. To align both approaches, mixed quadratures have been proposed in the literature <xref ref-type="bibr" rid="bib1.bibx10" id="paren.31"/>.</p>
      <p id="d2e9072">In the HEVI-DG scheme, there is another option to exploit the sparsity of the matrices in the Kronecker product: The HEVI formulation makes no assumptions on the vertical FE approximation, therefore we can use non-collocated finite elements in the vertical dimension. Choosing interpolation points suited for the evaluation of the surface integrals, the vertical FE basis is split into exterior functions <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> and interior functions <inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:mo mathvariant="italic">{</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula>. We have <inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> for exterior functions only in the coefficient matrices and may avoid calculation of zero entries during matrix assembly.  Algebraically, the numerical solution of the block tridiagonal system

                  <disp-formula id="Ch1.Ex24"><mml:math id="M274" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo mathsize="1.1em" mathvariant="italic">{</mml:mo><mml:msup><mml:mover accent="true"><mml:mi>A</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mover accent="true"><mml:mi>B</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mover accent="true"><mml:mi>C</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:msup><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mo mathsize="1.1em" mathvariant="italic">}</mml:mo></mml:mrow></mml:math></disp-formula>

            with <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> blocks of size <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be solved in a computationally efficient manner as follows, see, e.g. <xref ref-type="bibr" rid="bib1.bibx40" id="text.32"/> for a similar application:</p>
      <p id="d2e9234">Reordering rows and columns into <italic>exterior</italic> and <italic>interior</italic> indices yields a block matrix

                  <disp-formula id="Ch1.Ex25"><mml:math id="M277" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>B</mml:mi></mml:mtd><mml:mtd><mml:mi>C</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>D</mml:mi></mml:mtd><mml:mtd><mml:mi>E</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M278" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> (interior indices) is an easily invertible block diagonal matrix and <inline-formula><mml:math id="M279" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> (exterior indices) is a block tridiagonal matrix with blocks of size <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>:=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="italic">σ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. We then solve the system with the Schur complement <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mi>B</mml:mi><mml:mo>-</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi>D</mml:mi></mml:mrow></mml:math></inline-formula>:

                  <disp-formula id="Ch1.Ex26"><mml:math id="M282" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>B</mml:mi><mml:mo>-</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mi>D</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>D</mml:mi></mml:mtd><mml:mtd><mml:mi>E</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>-</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            This approach (<italic>static condensation</italic>) gets more efficient for higher order, i.e. where <inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is small.</p>
      <p id="d2e9477">The drawback of such a partly collocated FE discretisation is that interpolation operations and products with the <italic>mass matrix</italic> become slightly more expensive. We have

                  <disp-formula id="Ch1.Ex27"><mml:math id="M284" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mstyle background="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-g04.png"/></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denote the values of all horizontal and vertical basis functions evaluated in the quadrature points. The (inexact) mass matrix, which is diagonal for discretely orthogonal basis functions, now reads in the case of horizontal-only collocation, when the quadrature points coincide with the node locations (“partly trivial interpolation matrices”, we have <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>≡</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>):

                  <disp-formula id="Ch1.Ex28"><mml:math id="M288" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi>M</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi><mml:mi>T</mml:mi></mml:msubsup><mml:mo>⊗</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi>D</mml:mi><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">vrt</mml:mi></mml:msub><mml:mo>⊗</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi mathvariant="normal">hrz</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="Ch1.S3.SS3.SSS5">
  <label>3.3.5</label><title>Remarks on <inline-formula><mml:math id="M289" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-adaptivity</title>
      <p id="d2e9602">One of the notable advantages of the DG approach is its ability to undergo <inline-formula><mml:math id="M290" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-refinement or <inline-formula><mml:math id="M291" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-coarsening. In other words, it can increase the polynomial degree <inline-formula><mml:math id="M292" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> on elements to improve accuracy without altering the mesh. In this paragraph, we will briefly discuss the potential and limitations of the HEVI scheme in relation to <inline-formula><mml:math id="M293" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-adaptivity. Here, the focus is less on varying the polynomial order between different columns of prism elements. Instead, we consider discretizations in which different variables, or different layers within the same column, may be approximated by finite element components of different polynomial order.</p>
      <p id="d2e9633">Summarizing the above remarks, the evaluation of surface integrals is cheaper for DG with boundary-located nodes. However, apart from the issue of under-integration, this can be primarily exploited in the vertical direction: In the horizontal directions, the HEVI scheme requires collocated FE for computational efficiency. Besides, mass-matrix operations and interpolation are particularly cheap for collocated FE.</p>
      <p id="d2e9636">Decoupling of HEVI linear equation systems in the horizontal directions, i.e. collocation, implies an identical nodal finite element basis for the whole vertical column. This severe limitation for <inline-formula><mml:math id="M294" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-adaptivity is even further extended by the fact that individual low-order equation components (e.g. prognostic variables, auxiliary variables, tracer fields, etc.) would require additional interpolation. On the other hand, using the highest necessary quadrature order for different groups of equation components for all terms prohibits computational savings by low-order elements. Finally, heterogeneity between columns brings time-step restrictions for the explicit solver.</p>
      <p id="d2e9647">Consequently, a <inline-formula><mml:math id="M295" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula>-adaptive scheme is only computationally feasible in the vertical direction, where the HEVI-DG approach does not make assumptions about the finite element space. From a meteorological perspective, using a varying polynomial order in the vertical direction could be sensible, since the upper atmosphere contains much less water vapor than the troposphere below. Investigating this approach is left to future studies.</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Boundary conditions in HEVI schemes using IMEX-RK methods</title>
      <p id="d2e9667">At least for <italic>budget equations</italic> of the type Eq. (<xref ref-type="disp-formula" rid="Ch1.E18"/>) (scalar case) or Eq. (<xref ref-type="disp-formula" rid="Ch1.E19"/>) (vector case) the following general statement can be made: “Boundary conditions determine the fluxes at the boundary”. However, in a HEVI discretisation or more general in an IMEX time integration method every flux is split into <italic>two</italic> partial fluxes

          <disp-formula id="Ch1.E29" content-type="numbered"><label>29</label><mml:math id="M296" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mtext>div</mml:mtext><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mtext>div</mml:mtext><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>S</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Thus, boundary conditions (BCs) only hold for the sum of the two fluxes <inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">n</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e9762">In particular for free-slip conditions, where several boundary fluxes (for mass, heat, tangential momentum, …) should vanish, B21 proposed to apply this “flux<inline-formula><mml:math id="M298" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>0” condition for both flux parts (ex and im) independently and derived separate BCs for them. The motivation behind this was to have correct free slip conditions for <italic>every stage</italic> of an IMEX-RK scheme. This independent application seemed necessary, since the RK coefficients for a certain RK stage are different, in general, for the explicit and implicit part. This especially works fine for the (hyperbolic) Euler equations (i.e. without diffusion) since, by this procedure, the BCs for the explicit and implicit parts are identical. In contrast, the diffusive fluxes would in fact require different BCs for the explicit and implicit fluxes by this approach. Although it could be demonstrated in B21 that this leads to the desired vanishing of boundary fluxes, there are examples where the fields near the boundary show a non-physical spatially oscillating behaviour and the derivative variables do not approach the correct boundary values.</p>
      <p id="d2e9775">In fact it seems impossible to derive such BCs that produce the correct boundary condition for every RK stage in an IMEX-RK scheme. The only answer to this problem seems to abandon the requirement of getting the correct BCs for every stage: what is only required at the end of the day is the correct boundary behaviour for the <italic>final</italic> RK stage. This is much easier to fulfil: if the RK coefficients for the final IMEX-RK stage (the “corrector” step) are the same for the explicit and implicit part, <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">b</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> (we call this here the IMEX-RK “final stage condition”), then one can set the physically correct BCs separately both for the explicit and implicit fluxes, because in this case they will hold for the sum <inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">ex</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">f</mml:mi><mml:mi mathvariant="normal">im</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, too.</p>
      <p id="d2e9817">There exist several IMEX-RK schemes in the literature that fulfil this “final stage condition”: e.g. SSP3(3,3,2), SSP3(4,3,3), ARK2(2,3,2), ARS2(2,3,2) and ARS3(2,3,3) (here we mention only those schemes inspected in <xref ref-type="bibr" rid="bib1.bibx32" id="text.33"/>). However this property does not hold for the schemes Trap2(2,3,2), strong carryover UJ3(1,3,2), or ARS3(4,4,3). We note here, that this “final stage condition” is also mentioned in <xref ref-type="bibr" rid="bib1.bibx21" id="text.34"/>, where it is used to preserve linear invariants in IMEX-RK schemes.</p>
      <p id="d2e9827">The deeper reason why this works is the fundamental linear behaviour of the DG discretisation: the explicit and implicit flux parts (although they can be arbitrarily nonlinear) are included in the budget equation in a linear manner through the divergence term (Eq. <xref ref-type="disp-formula" rid="Ch1.E29"/>), the weak form essentially consists of linear scalar products, and all quadratures (together with the Jacobian) are linear operations of the function values and are done similarly for the explicit and implicit parts. Finally, in particular the Lax-Friedrichs flux combines the right hand and left hand physical (ex and im) fluxes in a linear manner.</p>
      <p id="d2e9832">Perhaps one additional remark: mostly BCs are set in a weak manner in a DG-scheme (as it is also done in B21), which treats the BC in the same approximation order as the solution of the PDE. Therefore, the variables do not immediately jump to their expected boundary values but relax towards them. Nevertheless, the BC itself (e.g. vanishing of certain numerical fluxes in a free-slip condition) is fulfilled in every time step with any of the above proposed IMEX-RK schemes that fulfil the “final stage condition”.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>“flux<inline-formula><mml:math id="M301" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>0” boundary conditions for the frictionless Euler equations (with energy)</title>
      <p id="d2e9850">The BCs for the free-slip (i.e. flux<inline-formula><mml:math id="M302" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>0) conditions for equation set “<inline-formula><mml:math id="M303" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” in the inviscid case are determined as in B21 (Sect. 4.1.1 there): the LF flux for mass density vanishes when the reflection condition (in this section “L” means outside and “R” inside of a boundary)

            <disp-formula id="Ch1.E30" content-type="numbered"><label>30</label><mml:math id="M304" display="block"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi mathvariant="normal">L</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></disp-formula>

          and the mirror condition

            <disp-formula id="Ch1.Ex29"><mml:math id="M305" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

          are fulfilled. Note that the latter also leads to vanishing numerical diffusion flux of the LF-numerical flux. Likewise the LF-flux momentum flux components <inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> vanish with the additional mirror conditions

            <disp-formula id="Ch1.Ex30"><mml:math id="M308" display="block"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          These conditions also lead to mirror conditions for kinetic energy <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">kin</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">kin</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and potential energy <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">pot</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">pot</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. Therefore, once we have finally prescribed the mirror condition for total energy

            <disp-formula id="Ch1.Ex31"><mml:math id="M311" display="block"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          the condition for the remaining internal energy <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">int</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi mathvariant="normal">int</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> follows directly. Since internal energy is only a function of pressure, the same applies to pressure, too, <inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">L</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, so that the LF-flux for total energy (with the physical energy flux (<xref ref-type="disp-formula" rid="Ch1.E11"/>)) vanishes. To summarize: the only physical BC is <inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> (discretised by the reflection condition (<xref ref-type="disp-formula" rid="Ch1.E30"/>)) and there are no BCs for <inline-formula><mml:math id="M315" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M318" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> (i.e. they are discretised by the above mirror conditions). Of course, we have to express these BCs by our prognostic variables (contravariant unit components of momentum and deviations from the base state for <inline-formula><mml:math id="M319" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M320" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>), which leads to a linear system of equations. This can easily be solved for the outside boundary values <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:msub><mml:mn mathvariant="normal">..</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as a function of the inside values <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:msub><mml:mn mathvariant="normal">..</mml:mn><mml:mi mathvariant="normal">R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (similar to B21).</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>“flux<inline-formula><mml:math id="M323" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula>0” boundary conditions for the viscous Euler equations</title>
      <p id="d2e10222">Free-slip conditions for a viscous and heat conducting medium seem to be a contradiction, however, they are sometimes used in idealized test cases like the <xref ref-type="bibr" rid="bib1.bibx45" id="text.35"/> test; also see a few remarks in B21 about this point.</p>
      <p id="d2e10228">Now, we derive the BCs for the derivative variables, needed for the diffusive fluxes. From the BCs for the prognostic variables, given in the previous section, we can immediately derive <italic>kinematic</italic> conditions for their two horizontal covariant derivatives, namely

            <disp-formula id="Ch1.E31" content-type="numbered"><label>31</label><mml:math id="M324" display="block"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mspace width="0.25em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and no conditions for  the variables <inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and furthermore no conditions for either <inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> for equation set “<inline-formula><mml:math id="M328" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” or “<inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, respectively.</p>
      <p id="d2e10413">In contrast to B21, we set no condition for <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, because the continuity equation does not contain a diffusive mass flux contribution, and since under influence of gravity the hydrostatic equilibrium dominates, which clearly induces <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>≠</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> at the ground. Nevertheless, we can conclude from Eqs. (<xref ref-type="disp-formula" rid="Ch1.E31"/>) and (<xref ref-type="disp-formula" rid="Ch1.E30"/>) that we also have

            <disp-formula id="Ch1.Ex32"><mml:math id="M332" display="block"><mml:mrow><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          From the diffusive momentum flux components, only the two horizontal components <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> must vanish. Since

            <disp-formula id="Ch1.Ex33"><mml:math id="M335" display="block"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>v</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:msubsup><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:msubsup><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>j</mml:mi></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          the terms <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> vanish for these two components, and with the above, we can directly conclude the two BCs

            <disp-formula id="Ch1.Ex34"><mml:math id="M337" display="block"><mml:mrow><mml:msubsup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msubsup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          or alternatively

            <disp-formula id="Ch1.Ex35"><mml:math id="M338" display="block"><mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msubsup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          There is only one remaining momentum derivative variable <inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> which obviously does not need to be set to fulfil any physical condition. In fact, a diffusion equation only allows setting one variable (here <inline-formula><mml:math id="M340" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) but not additionally its derivative.</p>
      <p id="d2e10758">For the Euler equation set “<inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, we can conclude from Eq. (<xref ref-type="disp-formula" rid="Ch1.E7"/>) that the vertical diffusive heat flux <inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> vanishes, if the BC

            <disp-formula id="Ch1.Ex36"><mml:math id="M343" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          holds.</p>
      <p id="d2e10822">For equation set “<inline-formula><mml:math id="M344" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” we still have to define a BC for <inline-formula><mml:math id="M345" display="inline"><mml:mrow><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> for a vanishing diffusive energy flux <inline-formula><mml:math id="M346" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>;</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> (Eqs. <xref ref-type="disp-formula" rid="Ch1.E12"/> and <xref ref-type="disp-formula" rid="Ch1.E13"/>). First, <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:msubsup><mml:mi>T</mml:mi><mml:mi>j</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup></mml:mrow></mml:math></inline-formula> already vanishes by the former BCs due to <inline-formula><mml:math id="M348" display="inline"><mml:mrow><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M349" display="inline"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:msubsup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>. Second, from the requirement <inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:msubsup><mml:mi>f</mml:mi><mml:mrow><mml:mi>E</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>h</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>, we can derive from its form Eq. (<xref ref-type="disp-formula" rid="Ch1.E14"/>) a BC for the vertical derivative of the inner energy

            <disp-formula id="Ch1.Ex37"><mml:math id="M351" display="block"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The boundary behaviour of the other two energy contributions <inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M353" display="inline"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> can be directly derived from the former BCs. We get from the fact that there are no BCs for <inline-formula><mml:math id="M354" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> that

            <disp-formula id="Ch1.Ex38"><mml:math id="M356" display="block"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>|</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>|</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          To derive the conditions for the kinetic energy derivative we have to express several co- and contravariant components and derivatives by the above BCs (e.g. <inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msup><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msup><mml:msub><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>) and finally get

            <disp-formula id="Ch1.Ex39"><mml:math id="M358" display="block"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          In total we get the BC

            <disp-formula id="Ch1.E32" content-type="numbered"><label>32</label><mml:math id="M359" display="block"><mml:mrow><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e11310">As in the previous section we formulate these BCs as reflection or mirror conditions, e.g. from Eq. (<xref ref-type="disp-formula" rid="Ch1.E32"/>) we get the reflection condition

            <disp-formula id="Ch1.E33" content-type="numbered"><label>33</label><mml:math id="M360" display="block"><mml:mrow><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">L</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">R</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mfenced open="[" close="]"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">kin</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mi mathvariant="normal">pot</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">R</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          This results in an  equation system between the inner (R) and outer (L) variables. In the free-slip case this equation system is linear and can be solved (at least numerically) easily for the outer variables.</p>
      <p id="d2e11420">A final remark: we have assumed in the previous derivation that the diffusion coefficients are set by a mirror condition <inline-formula><mml:math id="M361" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M362" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">L</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Linearisations of the BCs for the HEVI scheme</title>
      <p id="d2e11487">For the vertically implicit solver we still need a linearisation of these BCs. This is relatively easy for most of the variables, we just demonstrate it here for the most complicated variable, the vertical derivative of the energy. To this purpose we write its BC (Eq. <xref ref-type="disp-formula" rid="Ch1.E32"/>) in the BRIDGE variables leading to

            <disp-formula id="Ch1.Ex40"><mml:math id="M363" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mfenced close="" open="["><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="" close="]"><mml:mrow><mml:mo>+</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>E</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          The following are all derivatives by the prognostic variables (<inline-formula><mml:math id="M364" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M366" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>) and the covariant derivative variables:

                <disp-formula specific-use="gather"><mml:math id="M367" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="normal">Φ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>E</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup><mml:mi mathvariant="normal">Φ</mml:mi><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>E</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mrow><mml:msup><mml:mi>k</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi>E</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mo>;</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          In contrast to the flux and source term linearisations, for the BCs we found a linearisation only around the reference state to be sufficient.</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Filtering</title>
      <p id="d2e12073">In strongly nonlinear problems some sort of regularization is needed for higher order methods. This holds in particular for DG methods, as emphasized by “... DG methods tend to demonstrate remarkable instabilities, ...” <xref ref-type="bibr" rid="bib1.bibx34" id="paren.36"><named-content content-type="post">p. 407</named-content></xref>, and “Spectral element models typically use some kind of filtering because this method, like the spectral method, is not immune to aliasing errors that arise from the nonlinear terms” <xref ref-type="bibr" rid="bib1.bibx17" id="paren.37"/>. One widespread and computationally cheap method is filtering <xref ref-type="bibr" rid="bib1.bibx23" id="paren.38"><named-content content-type="post">Sect. 5.3</named-content></xref>, i.e. one tries to damp amplitudes for higher polynomial degrees (i.e. low pass filtering). This is done in a “postprocessing step” after each (IMEX-)RK step (as done e.g. in <xref ref-type="bibr" rid="bib1.bibx33" id="altparen.39"/>). Therefore filtering itself has no stability issue. Filtering works best, i.e. the low pass properties are fulfilled correctly, when an <italic>orthogonal</italic> modal base <inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mi>l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is used. This means to transform the amplitudes from the original polynomial (nodal or modal) base into this orthogonal modal base <inline-formula><mml:math id="M369" display="inline"><mml:mrow><mml:msubsup><mml:mi>Q</mml:mi><mml:mi>k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mo>∑</mml:mo><mml:mi>j</mml:mi></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>Q</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, to apply filter coefficients <inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:msubsup><mml:mi>Q</mml:mi><mml:mi>l</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="normal">filt</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mo>∑</mml:mo><mml:mi>k</mml:mi></mml:msub><mml:msubsup><mml:mi>F</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>Q</mml:mi><mml:mi>k</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, and to transform back, resulting in the final filter matrix <inline-formula><mml:math id="M371" display="inline"><mml:mrow><mml:mi mathvariant="bold">F</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">T</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold">F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold">T</mml:mi></mml:mrow></mml:math></inline-formula> (e.g. <xref ref-type="bibr" rid="bib1.bibx23" id="altparen.40"/>).</p>
      <p id="d2e12249">Of course, such a postprocessing filter step must not destroy the local conservation properties of the DG scheme. This is obviously the case, if the lowest modal base function <inline-formula><mml:math id="M372" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">const</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></inline-formula>, <italic>and</italic> the related filter coefficient <inline-formula><mml:math id="M373" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. The local conservation holds since due to the assumed orthogonality, all other base functions are “massless”. Orthogonality is always defined by a scalar product, and it is important to use just the scalar product that is induced by the weak form (Eq. <xref ref-type="disp-formula" rid="Ch1.E26"/>) of the DG method, i.e. that is induced by the metric density (or the Jacobian) <inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>≡</mml:mo><mml:msqrt><mml:mi>g</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula>, therefore

          <disp-formula id="Ch1.Ex43"><mml:math id="M375" display="block"><mml:mrow><mml:mo>(</mml:mo><mml:mi>f</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi>V</mml:mi></mml:munder><mml:mi mathvariant="normal">d</mml:mi><mml:mi>v</mml:mi><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">r</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

        or its discrete analogue using a quadrature rule. Since the metric density is spatially varying in general,  during the initialization phase of the simulation such an orthogonal base is determined independently for each grid cell by a Gram-Schmidt orthogonalisation procedure. Then the filter matrix <inline-formula><mml:math id="M376" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula> is determined for each grid cell, and the simulation can be started.</p>
      <p id="d2e12372">For practical reasons, we employ an exponential filter of the form

          <disp-formula id="Ch1.Ex44"><mml:math id="M377" display="block"><mml:mrow><mml:msubsup><mml:mi>F</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:msup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:mi mathvariant="italic">η</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow><mml:mi>N</mml:mi></mml:mfrac></mml:mstyle><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        to define the filter coefficients <inline-formula><mml:math id="M378" display="inline"><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in the orthogonal modal space; see, e.g., the classical reference on filters for spectral approximations <xref ref-type="bibr" rid="bib1.bibx47" id="text.41"/>  and <xref ref-type="bibr" rid="bib1.bibx23" id="text.42"/> for applications to DG methods.</p>
      <p id="d2e12460"><inline-formula><mml:math id="M379" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> denotes the spatial order of the DG scheme (i.e. maximum polynomial degree plus one). The other constants <inline-formula><mml:math id="M380" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M381" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M382" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> must be chosen depending on the problem. If one roughly relates a polynomial with a certain degree and a Fourier component with the same number of zeros, then in particular for <inline-formula><mml:math id="M383" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> one can derive a certain similarity between this exponential filter and a hyper-diffusion operator of the form <inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mi mathvariant="italic">α</mml:mi><mml:msup><mml:mi mathvariant="normal">∇</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e12528">It should be emphasized that <inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:msubsup><mml:mi>F</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> is not a spectral (idempotent) projector with sharp modal truncation. Its effect depends on the frequency with which the filter is applied, which makes a time-step-independent interpretation more difficult than for other stabilization approaches, such as hyper-diffusion. Nevertheless, this simple spectral filter preserves the relevant conservation property while selectively targeting the highest modes, and we consider it sufficient for the present purpose.</p>
      <p id="d2e12552">Another remark should be made about the order of the scheme. If a filter is used with <inline-formula><mml:math id="M386" display="inline"><mml:mrow><mml:msubsup><mml:mi>F</mml:mi><mml:mn mathvariant="normal">11</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn mathvariant="normal">22</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:msubsup><mml:mi>F</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> for <inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:mi>l</mml:mi><mml:mo>&gt;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula> then the whole DG scheme is limited to order <inline-formula><mml:math id="M389" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>. Therefore, formally an exponential filter does not retain high order. However, if the above requirement is not fulfilled, one could let converge all filter coefficient towards 1 according to <inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> in a suitable manner (analogous to the case of hyper-diffusion, where one can retain convergence by setting the numerical diffusion coefficient <inline-formula><mml:math id="M391" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> proportional to a suitable power of <inline-formula><mml:math id="M392" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>).</p>
      <p id="d2e12684">In the test cases of Sect. <xref ref-type="sec" rid="Ch1.S6.SS6"/> and <xref ref-type="sec" rid="Ch1.S6.SS7"/> (both using the inviscid Euler equations and mainly dealing with a baroclinic instability) it turns out that additionally to an exponential “base” filter, which is applied in every grid cell, one should use a stronger filter in selected grid cells that are “marked” by a so called oscillatory sensor, also called discontinuity sensor or smoothness indicator <xref ref-type="bibr" rid="bib1.bibx38 bib1.bibx9" id="paren.43"/>. This sensor is calculated as the ratio between the sum of the squares of those amplitudes related to the highest polynomial degree and the sum of the squares of all amplitudes (i.e. again one transforms to an orthogonal base, but for this sensor there is no need to consider the metrics). Therefore, unrealistic and suspicious oscillations deliver relatively high values of the sensor.</p>
      <p id="d2e12694">Finally we want to make a general remark about filtering in DG schemes for atmospheric flows. Since filtering is a post-processing step outside of the DG time step, it inevitably disturbs the highly important balancing between the buoyancy term and the pressure gradient. We have found that a too strong filtering is therefore not only detrimental for accuracy but also for numerical stability. To some extent this additional constraint limits the effectiveness of filtering in DG schemes for atmospheric flows compared to other fluid simulations where well-balancing is of less importance.</p>
</sec>
<sec id="Ch1.S6">
  <label>6</label><title>Numerical results</title>
      <p id="d2e12705">To demonstrate the applicability of the presented DG solver we will carry out a number of idealised test cases, which have been set as a certain standard in the validation of dynamical cores for atmospheric models. For some of these tests we additionally need upper and/or lateral damping layers to prevent non-physical wave reflection at artificial and therefore non-physical boundaries. Here we use the damping layer formulations given in B21. Some test cases use a vertical grid stretching. This is included in the terrain-following coordinate (<xref ref-type="disp-formula" rid="Ch1.E20"/>) and we use the quadratic stretching function <inline-formula><mml:math id="M393" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> described in B21, too. Although the BRIDGE code also allows Gauß-Lobatto quadratures (see Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>), for the following tests we only use Gauß-Legendre quadratures.</p>
<sec id="Ch1.S6.SS1">
  <label>6.1</label><title>Stationary 1D (vertical) flow</title>
      <p id="d2e12726">The first striking difference between the two variants of the Euler equations can be seen in one of the simplest test cases: the simulation of the Euler equations in an only 1D vertical column setup with constant grid spacing <inline-formula><mml:math id="M394" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> and very simple initial conditions. In the setup the model top lies at <inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M396" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M398" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>. The atmosphere is initialized isothermally (i.e. height independent temperature) with <inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">250</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M400" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula> and at rest (one can choose a non-vanishing horizonal base velocity <inline-formula><mml:math id="M401" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> just to check the correct behaviour of the free slip boundary condition, but this does not influence the otherwise purely vertical dynamics of this test). The reference state is also chosen isothermal with <inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M403" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula> (Eq. <xref ref-type="disp-formula" rid="Ch1.E16"/>) (it is only important that it is not identical with the initial state, of course, larger deviations between these two values will lead to larger signals). The matrices for the HEVI solver are updated every 50 time steps; related jumps in the solutions can be recognized in the time series in Fig. <xref ref-type="fig" rid="F2"/>. Using smaller values (down to 1) only has a small influence on <inline-formula><mml:math id="M404" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> and an almost negligible influence to <inline-formula><mml:math id="M405" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> (not shown). All simulations have been performed with the SSP3(3,3,2) IMEX-RK scheme and a quite small time step <inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M407" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e12876">Figure <xref ref-type="fig" rid="F1"/> shows snapshots of <inline-formula><mml:math id="M408" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M409" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> for the equation set “<inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” and for a 4th order DG scheme at several output times. One recognizes the increase in the amplitudes; the simulation crashed several hundred time steps later. To reduce this problem, <xref ref-type="bibr" rid="bib1.bibx7" id="text.44"/> and <xref ref-type="bibr" rid="bib1.bibx36" id="text.45"/> proposed the so-called source term filtering (STF) (see B21 for the implementation in the HEVI approach). Using STF avoids the linear instability: the vertical velocity <inline-formula><mml:math id="M411" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> does not grow exponentially any more; in fact, it remains at least at a constant perturbation level. However, STF still leads to an almost linear temporal growth in temperature perturbations that can lead to a model break (at least for 3rd and 4th order) after several 100 000 time steps due to a nonlinear instability mechanism. This can be seen in Fig. <xref ref-type="fig" rid="F2"/>, which shows the maximum absolute values of <inline-formula><mml:math id="M412" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> (top) and temperature <inline-formula><mml:math id="M413" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> (bottom) over time for both equation sets (“<inline-formula><mml:math id="M414" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” left, “<inline-formula><mml:math id="M415" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” right), different spatial approximation orders (<inline-formula><mml:math id="M416" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>) and with or without STF.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e12971">1D vertical Euler equations for Euler equation set “<inline-formula><mml:math id="M417" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” with 3rd degree polynomials and without source term filtering (STF). Solutions after 1, 10, and 100 time steps (top, middle, bottom row). Left: vertical velocity <inline-formula><mml:math id="M418" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula>, Right: temperature <inline-formula><mml:math id="M419" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>. The dots denote the solution on the cell quadrature points. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f01.png"/>

        </fig>

      <p id="d2e13005">In contrast, using the Euler equations with <inline-formula><mml:math id="M420" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> (again first without STF) leads to simulations where <inline-formula><mml:math id="M421" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> perturbations in fact tend towards 0 after several thousands of time steps. Consequently this does not lead to an increase in temperature perturbations and the simulation remains stable, at least for all considered orders 3, 4, and 5.</p>
      <p id="d2e13022">Running the Euler equations using <inline-formula><mml:math id="M422" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> <italic>with</italic> STF has no influence on stability, and leads to quite similar results after 100 000 time steps compared to the runs without STF. However, it can lead to slightly larger amplitudes in <inline-formula><mml:math id="M423" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M424" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> during the first time steps. In contrast, later on (after several 100 time steps) STF can lead to a quicker convergence of <inline-formula><mml:math id="M425" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> towards 0.</p>
      <p id="d2e13056">These simulation results are in good agreement with a normal mode stability analysis given in Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>. The linear instability arising in the “<inline-formula><mml:math id="M426" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” system in fact can be resolved by STF over a large range of temperature stratifications. However, the equation set “<inline-formula><mml:math id="M427" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” behaves closer to the physical stability/instability behaviour, whereas the “<inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” set does not.</p>
      <p id="d2e13088">We have checked (not shown) that proper convergence is, of course, achieved in the case of stable simulations (i.e. in the case of the Euler equations using <inline-formula><mml:math id="M429" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>), which means that the perturbations in <inline-formula><mml:math id="M430" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> and in <inline-formula><mml:math id="M431" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> are reduced by the appropriate order when reducing <inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M433" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula>, i.e. well-balancing problems do not violate convergence, as expected.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e13134">1D vertical Euler equations. Top: maximum absolute value of vertical velocity <inline-formula><mml:math id="M434" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> over timestep, bottom: maximum value of temperature <inline-formula><mml:math id="M435" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> over timestep. Left: Euler equation set “<inline-formula><mml:math id="M436" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M437" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. Shown are values for spatial DG order 3, 4, and 5 and with STF (lines denoted with “..._filt”) or without STF. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f02.png"/>

        </fig>

      <p id="d2e13175">If not mentioned otherwise, the following simulations with equation set “<inline-formula><mml:math id="M438" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” always use STF whereas no STF is used for equation set “<inline-formula><mml:math id="M439" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. Also we will use horizontally a 4th order (i.e. polynomial degree 3) DG spatial discretisation; this is the lowest order that reduces grid imprinting problems in shallow water equations to an acceptable level <xref ref-type="bibr" rid="bib1.bibx2" id="paren.46"/>. Vertically we will use a 5th order scheme (i.e. polynomial degree 4). This is motivated by the results of Fig. 2, where the overall well-balancing effects are acceptably small.</p>
</sec>
<sec id="Ch1.S6.SS2">
  <label>6.2</label><title>Flow over mountains – linear case</title>
      <p id="d2e13206">To demonstrate the correctness of the terrain-following coordinate formulation, we consider a 2D flow over very low mountains on a flat plane, for which a linearised analytic solution exists (<xref ref-type="bibr" rid="bib1.bibx42" id="altparen.47"/>, here we use the version from <xref ref-type="bibr" rid="bib1.bibx1" id="altparen.48"/>). The setup is analogous to B21 (see Sect. 5.2 for details): a couple of mountains with a maximum height of 10 <inline-formula><mml:math id="M440" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> are set in a stably stratified atmosphere with constant Brunt–Väisälä frequency <inline-formula><mml:math id="M441" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M442" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, with constant inflow velocity of <inline-formula><mml:math id="M443" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M444" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and without Coriolis force. We use <inline-formula><mml:math id="M445" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">140</mml:mn><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:math></inline-formula> grid cells (where one <inline-formula><mml:math id="M446" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>-interval comprises two triangles, i.e. we use the quasi-2D methodology for our triangle cell stripe of Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), horizontal grid spacing is <inline-formula><mml:math id="M447" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M448" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>, the vertical grid is stretched. Figure <xref ref-type="fig" rid="F3"/> shows that the simulation of both equation sets agree quite well with the analytic solution near the ground. As it can be expected, the damping layer reduces the simulated vertical velocity near the model top. We used a time step of <inline-formula><mml:math id="M449" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M450" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> for equation set “<inline-formula><mml:math id="M451" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, whereas equation set “<inline-formula><mml:math id="M452" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” tolerates a slightly larger time step of <inline-formula><mml:math id="M453" display="inline"><mml:mn mathvariant="normal">0.25</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M454" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> (to be more precise: set “<inline-formula><mml:math id="M455" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” runs stable for <inline-formula><mml:math id="M456" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> until <inline-formula><mml:math id="M457" display="inline"><mml:mn mathvariant="normal">0.23</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M458" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>, whereas set “<inline-formula><mml:math id="M459" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” runs stable until <inline-formula><mml:math id="M460" display="inline"><mml:mn mathvariant="normal">0.26</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M461" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>).</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e13454">Linear 2D flow over mountain test. Vertical velocity <inline-formula><mml:math id="M462" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> after <inline-formula><mml:math id="M463" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula> h. Black lines: analytic solution, shaded and grey, dashed lines: simulation. Left: Euler equation set “<inline-formula><mml:math id="M464" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M465" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f03.png"/>

        </fig>


</sec>
<sec id="Ch1.S6.SS3">
  <label>6.3</label><title>Flow over mountains – steep case</title>
      <p id="d2e13524">To demonstrate the quite stable behaviour of the DG method even over very steep terrain, we consider a similar test setup as in B21 (Sect. 5.5.1, see some further setup details there). A couple of mountains with a maximum height of <inline-formula><mml:math id="M466" display="inline"><mml:mn mathvariant="normal">8</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M467" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> and a very steep maximum slope angle of about <inline-formula><mml:math id="M468" display="inline"><mml:mrow><mml:mn mathvariant="normal">72</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula> is set into an atmosphere with inflow velocity <inline-formula><mml:math id="M469" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M470" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, a stable temperature stratification with a constant Brunt–Väisälä frequency of <inline-formula><mml:math id="M471" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M472" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and without Coriolis force (<inline-formula><mml:math id="M473" display="inline"><mml:mrow><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>). We again use the quasi-2D methodology for our triangle cell stripe of Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>, with a horizontal grid spacing <inline-formula><mml:math id="M474" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> km and a vertical grid stretching. Such steep and high mountains generate a non-stationary solution due to gravity wave breaking, see Fig. <xref ref-type="fig" rid="F4"/> after 23 and 24 h of simulation time. In reality this wave breaking generates turbulence that damps it. Therefore, a simple Prandtl mixing length turbulence model (<xref ref-type="disp-formula" rid="Ch1.E5"/>) is used with a height-dependent (more precisely, <inline-formula><mml:math id="M475" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> is the vertical distance from the bottom orography) turbulent length scale

            <disp-formula id="Ch1.Ex45"><mml:math id="M476" display="block"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>z</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where we have chosen a constant Blackadar length scale <inline-formula><mml:math id="M477" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mi mathvariant="normal">B</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M478" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> and the von-Kármán-constant <inline-formula><mml:math id="M479" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.4</mml:mn></mml:mrow></mml:math></inline-formula>. No additional filtering was applied. We note that B21 used a Smagorinsky model, whereas here we decided for the Prandtl model since it seems to generate slightly more realistic ranges for the diffusion coefficient <inline-formula><mml:math id="M480" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, see Fig. <xref ref-type="fig" rid="F4"/>, bottom row (negative values of <inline-formula><mml:math id="M481" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are an inter-/extrapolation artifact of the plotting tool, in the BRIDGE code any possible negative value is clipped away).</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e13757">2D flow over steep mountains. Top: horizontal velocity component <inline-formula><mml:math id="M482" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> (shaded) and potential temperature <inline-formula><mml:math id="M483" display="inline"><mml:mi mathvariant="normal">Θ</mml:mi></mml:math></inline-formula> (isolines) after <inline-formula><mml:math id="M484" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">23</mml:mn></mml:mrow></mml:math></inline-formula> h, middle: the same after <inline-formula><mml:math id="M485" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula> h, bottom: diffusion coefficient <inline-formula><mml:math id="M486" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (shaded) and potential temperature <inline-formula><mml:math id="M487" display="inline"><mml:mi mathvariant="normal">Θ</mml:mi></mml:math></inline-formula>(isolines) for <inline-formula><mml:math id="M488" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula> h. Left: Euler equation set “<inline-formula><mml:math id="M489" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M490" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f04.png"/>

        </fig>

      <p id="d2e13852">Both equation sets “<inline-formula><mml:math id="M491" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” and “<inline-formula><mml:math id="M492" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” roughly show a similar qualitative behaviour (Fig. <xref ref-type="fig" rid="F4"/>, left and right, respectively). The main difference is a more pronounced lee wave pattern in equation set “<inline-formula><mml:math id="M493" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. Note that a closer similarity between both solutions cannot be expected in such a chaotic flow regime.</p>
</sec>
<sec id="Ch1.S6.SS4">
  <label>6.4</label><title>Density current</title>
      <p id="d2e13890">A strongly nonlinear 2D test case simulating a falling cold bubble was defined by <xref ref-type="bibr" rid="bib1.bibx45" id="text.49"/>. When the bubble hits the ground and evolves in both horizontal directions, Kelvin-Helmholtz instability generates several vortices. The simulation is diffusion-limited by a constant diffusion coefficient <inline-formula><mml:math id="M494" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">H</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">75</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M495" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. The BRIDGE setup uses a grid spacing of <inline-formula><mml:math id="M496" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">400</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M497" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> (again we use the quasi-2D methodology of Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>), with a time step of 0.06 s using the SSP3(3,3,2) scheme for the Euler equations with diffusion terms. This results in horizontal and vertical Courant numbers of <inline-formula><mml:math id="M498" display="inline"><mml:mrow><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:mi>v</mml:mi><mml:mo>|</mml:mo><mml:mo>)</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn></mml:mrow></mml:math></inline-formula>. Otherwise, remarks given in B21, Sect. 5.4, about boundary conditions and details about the diffusion term also apply here. The reference state is given by Eq. (<xref ref-type="disp-formula" rid="Ch1.E17"/>). Figure <xref ref-type="fig" rid="F5"/> shows the potential temperature after 900 <inline-formula><mml:math id="M499" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>, which for both equation sets is in a good agreement with <xref ref-type="bibr" rid="bib1.bibx45" id="text.50"/>. Note, that our grid spacing is 16 times larger than the benchmark simulation and demonstrates the benefit of using higher order methods just for diffusion-limited flows. The total mass in the whole domain is neither increasing nor decreasing during the simulations, i.e. the jumps are below machine precision. Total energy (for the equation set “<inline-formula><mml:math id="M500" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”) in the domain is slightly increasing with a relative change of <inline-formula><mml:math id="M501" display="inline"><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">7</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">14</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> during the simulation (i.e. over 15 000 time steps). The relative changes in the domain integral of <inline-formula><mml:math id="M502" display="inline"><mml:mi mathvariant="italic">ϑ</mml:mi></mml:math></inline-formula> (for equation set “<inline-formula><mml:math id="M503" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”) are also below machine precision.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e14075">Density current, cold bubble test. Potential temperature <inline-formula><mml:math id="M504" display="inline"><mml:mi mathvariant="normal">Θ</mml:mi></mml:math></inline-formula> after 15 <inline-formula><mml:math id="M505" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula>. Left: Euler equation set “<inline-formula><mml:math id="M506" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M507" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. The contours are the same as in Fig. 1 of <xref ref-type="bibr" rid="bib1.bibx45" id="text.51"/>. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f05.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS5">
  <label>6.5</label><title>Linear sound and gravity wave expansion on the sphere</title>
      <p id="d2e14127">To demonstrate the proper convergence properties of the BRIDGE code, an analytical solution is needed. <xref ref-type="bibr" rid="bib1.bibx5" id="text.52"/> present a linearised analytic solution for the compressible, non-hydrostatic Euler equations for the expansion of sound and gravity waves in a spherical shell of thickness <inline-formula><mml:math id="M508" display="inline"><mml:mrow><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> km around a “small earth” with radius <inline-formula><mml:math id="M509" display="inline"><mml:mrow><mml:mn mathvariant="normal">6371.229</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M510" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>. These waves are excited by a weak warm bubble set at the north pole. The simulation is performed using various icosahedral grids with an average grid spacing of <inline-formula><mml:math id="M511" display="inline"><mml:mn mathvariant="normal">5.681</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M512" display="inline"><mml:mn mathvariant="normal">2.840</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M513" display="inline"><mml:mn mathvariant="normal">1.420</mml:mn></mml:math></inline-formula>, <inline-formula><mml:math id="M514" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.710</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula>, and 3, 6, 12, 24 vertical grid cells, respectively (in the ICON nomenclature: an R2B2L3, R2B3L6, R2B4L12, R2B5L24 grid, the grid spacing is identified as the average square root of all triangle areas on the sphere). The further setup is described in <xref ref-type="bibr" rid="bib1.bibx5" id="text.53"/> for test scenario (A) with one exception: here we use a temperature perturbation <inline-formula><mml:math id="M515" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.001</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M516" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi></mml:mrow></mml:math></inline-formula> that is smaller by a factor of 10. The reason for this is the strong reduction of errors in a 4th order DG scheme, which otherwise would exhibit visible deviations from the proper convergence due to non-linear contributions in the Euler equations. To calculate the error measures, the BRIDGE output is compared with the analytic solution on every quadrature point in the 3D spherical shell. The analytic solution itself was precalculated on a structured grid on a latitude-<inline-formula><mml:math id="M517" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>-plane and is then linearly interpolated to every quadrature point (this structured grid is so highly resolved that no detrimental effect on the convergence rate by this linear interpolation is visible). Figure <xref ref-type="fig" rid="F6"/> shows error measures for vertical velocity <inline-formula><mml:math id="M518" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">3</mml:mn><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and temperature <inline-formula><mml:math id="M519" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> after 75 <inline-formula><mml:math id="M520" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">min</mml:mi></mml:mrow></mml:math></inline-formula> of simulation time. In general, we expect 4th order convergence since we use horizontally 3rd order polynomials. Although for the time integration the only 3rd order SSP3(4,3,3) scheme was used here, we think that the time step is small enough that the overall convergence rate is determined by the spatial discretisation instead of the temporal discretization. For equation set “<inline-formula><mml:math id="M521" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” the <inline-formula><mml:math id="M522" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> error for <inline-formula><mml:math id="M523" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> in fact shows exact 4th order convergence, whereas <inline-formula><mml:math id="M524" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and even more <inline-formula><mml:math id="M525" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">∞</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are not yet in their convergent regime (note that these fully 3D simulations quickly become very time consuming for higher resolutions). In contrast, equation set “<inline-formula><mml:math id="M526" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” shows much higher errors for <inline-formula><mml:math id="M527" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> for coarse (vertical) resolutions than set “<inline-formula><mml:math id="M528" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”, as can be expected by the results of Sect. <xref ref-type="sec" rid="Ch1.S6.SS1"/>. This might be the reason why one seemingly sees a higher than 4th order convergence. The temperature even seems to converge in 5th order for both equation sets. We conclude that the vertical discretisation order dominates the convergence behaviour of the temperature field, in contrast to the vertical velocity field, which seems to be dominated by the horizontal convergence order.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e14346">Linear sound/gravity wave test on the sphere, <inline-formula><mml:math id="M529" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M530" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M531" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi mathvariant="normal">∞</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> of vertical velocity <inline-formula><mml:math id="M532" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> (top) and of temperature (bottom). Left: Euler equation set “<inline-formula><mml:math id="M533" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M534" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. The grey, straight lines denote 4th order convergence behaviour; dashed lines denote 5th order. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f06.png"/>

        </fig>

      <p id="d2e14413">Figure <xref ref-type="fig" rid="F7"/> shows a work precision diagram, i.e. the <inline-formula><mml:math id="M535" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> error of the vertical velocity against wall clock time, both for BRIDGE and for the ICON model <xref ref-type="bibr" rid="bib1.bibx51" id="paren.54"/>. All these runs have been performed on AMD EPYC 7502 32-Core Processors with 2.5 GHz (which are the current so-called login nodes at the DWD), BRIDGE mostly runs on 192 processors (384 processors for the highest resolution) and ICON on three different processor configurations for the grids R2B5L12, R2B6L24, R2B7L48. All wall clock times are converted as if running on 192 processors. In this test BRIDGE obviously outperforms ICON by far. However, this is of course due to the very smooth fields that only occur in this test case. In other words, higher order schemes necessarily must outperform the standard second order schemes in this test case.</p>

      <fig id="F7"><label>Figure 7</label><caption><p id="d2e14435">Work precision diagram for the linear sound and gravity wave test on the sphere: <inline-formula><mml:math id="M536" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> error of vertical velocity against the analytic solution vs. wall clock time. Blue line: equation set “<inline-formula><mml:math id="M537" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”, red: equation set “<inline-formula><mml:math id="M538" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, black: ICON.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f07.png"/>

        </fig>

</sec>
<sec id="Ch1.S6.SS6">
  <label>6.6</label><title>Baroclinic instability test</title>
<sec id="Ch1.S6.SS6.SSS1">
  <label>6.6.1</label><title>The Jablonowski, Williamson (2006) test setup</title>
      <p id="d2e14487">The baroclinic instability is one of the most important large-scale dynamical mechanisms in the atmosphere and to a large extent determines the weather in the mid-latitudes. Several idealized test setups have been proposed to test this phenomenon on the sphere; here we use the setup of <xref ref-type="bibr" rid="bib1.bibx24" id="text.55"/>: two purely zonal jet streams are analytically prescribed together with the temperature stratification in pressure coordinates (i.e. for a hydrostatic approximation of the Euler equations). To apply it for the compressible Euler equations we use the iteration procedure described in the appendix of <xref ref-type="bibr" rid="bib1.bibx24" id="text.56"/>. The baroclinic instability is triggered by a small perturbation in the zonal velocity component <inline-formula><mml:math id="M539" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e14503">One important goal in new dynamical core developments is the increase of both accuracy and efficiency (other goals are good numerical stability, and so-called mimetic properties like conservation). Therefore, as in the density current test before, one may ask, what is the coarsest possible grid spacing that is still in good agreement with the benchmark result. For a (horizontally) 4th order scheme one may expect that an about 4 times larger grid spacing can be used compared to standard second order solvers. Here, BRIDGE simulations are done for a horizontal grid with an average grid spacing of about 315 <inline-formula><mml:math id="M540" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> (R2B3 grid in the ICON nomenclature). Note that this is an about 5 times larger grid spacing (i.e. a bit larger than estimated) than used by the benchmark models in <xref ref-type="bibr" rid="bib1.bibx24" id="text.57"><named-content content-type="post">Fig. 7</named-content></xref>. 10 equidistant vertical levels are used until a model top of 40 km. A time step of <inline-formula><mml:math id="M541" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">80</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M542" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> was used, which is mainly determined by the horizontal grid spacing, resulting in a Courant number of <inline-formula><mml:math id="M543" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:mi>v</mml:mi><mml:mo>|</mml:mo><mml:mo>)</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula>. The linearisation coefficients of the implicit solver are updated every 10 time steps.</p>
      <p id="d2e14585">A first striking difference in the two Euler equation sets “<inline-formula><mml:math id="M544" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” and “<inline-formula><mml:math id="M545" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” can be seen if we apply the BRIDGE code without filtering. Figure <xref ref-type="fig" rid="F8"/> shows the meridional (north-south) velocity component <inline-formula><mml:math id="M546" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> after 30 <inline-formula><mml:math id="M547" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">h</mml:mi></mml:mrow></mml:math></inline-formula>. The simulation using equation set “<inline-formula><mml:math id="M548" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” (with STF) generates large perturbations in <inline-formula><mml:math id="M549" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> that grow exponentially until a model crash after about 2.7 <inline-formula><mml:math id="M550" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>. These mostly vertically oscillating perturbations seem to be an artifact of the above described well-balancing problem. In contrast, equation set “<inline-formula><mml:math id="M551" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” does not show such problems and remains stable over about 7.5 <inline-formula><mml:math id="M552" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e14666">Baroclinic instability test, no filtering. Meridional velocity component <inline-formula><mml:math id="M553" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> after <inline-formula><mml:math id="M554" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M555" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">h</mml:mi></mml:mrow></mml:math></inline-formula>. Left: Euler equation set “<inline-formula><mml:math id="M556" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, right: equation set “<inline-formula><mml:math id="M557" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f08.png"/>

          </fig>

      <p id="d2e14719">However, these results completely change if we apply filtering. We first apply a base filter with <inline-formula><mml:math id="M558" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> (horizontal) or <inline-formula><mml:math id="M559" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> (vertical), <inline-formula><mml:math id="M560" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M561" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula>; this damps the amplitudes for the  highest polynomial degree by about 5 % per timestep. Now the simulation using equation set “<inline-formula><mml:math id="M562" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” remains stable over more than 32 <inline-formula><mml:math id="M563" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula> and the results are quite close to what is shown in Fig. <xref ref-type="fig" rid="F10"/>, left, which is in good agreement with the benchmark results of <xref ref-type="bibr" rid="bib1.bibx24" id="text.58"><named-content content-type="post">Fig. 7</named-content></xref>. This demonstrates that this filter smoothing is acceptable and that the chosen grid is sufficiently fine. However, the runs with equation set “<inline-formula><mml:math id="M564" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” only gain one day more and then crash after about 8.5 <inline-formula><mml:math id="M565" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>. This larger sensitivity against instabilities for set “<inline-formula><mml:math id="M566" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” is also mentioned in <xref ref-type="bibr" rid="bib1.bibx39" id="text.59"/> and is explained there with its fundamental non-dissipativeness. The instability occurs at the ground where the horizontal velocity fields tend to increase in a non-physical manner.</p>
      <p id="d2e14827">Now we additionally apply the oscillatory sensor (based on density <inline-formula><mml:math id="M567" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:math></inline-formula>) with a relatively low threshold of 0.0005. If this threshold is exceeded in a grid cell, then the stronger filter with <inline-formula><mml:math id="M568" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> (horizontal) or <inline-formula><mml:math id="M569" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.4</mml:mn></mml:mrow></mml:math></inline-formula> (vertical), <inline-formula><mml:math id="M570" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M571" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> is applied there; this damps the amplitudes for the highest polynomial degree by about 15 % per timestep. With these filter values the simulations for both equation sets, Fig. <xref ref-type="fig" rid="F10"/>, agree quite well with the benchmark results of <xref ref-type="bibr" rid="bib1.bibx24" id="text.60"><named-content content-type="post">Fig. 7</named-content></xref> for both temperature in 850 <inline-formula><mml:math id="M572" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula> and surface pressure. However, whereas the run for equation set “<inline-formula><mml:math id="M573" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” remains stable over at least 40 d, the simulation for equation set “<inline-formula><mml:math id="M574" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” breaks after about 18 d. Better stability properties of this run would require stronger filtering and therefore would reduce the accuracy. This seems to be an indication that equation set “<inline-formula><mml:math id="M575" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” suffers more from nonlinear instabilities than set “<inline-formula><mml:math id="M576" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”.</p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e14946">Baroclinic instability test, global conservation properties of mass (red) and either <inline-formula><mml:math id="M577" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> or total energy (blue). Left: Euler equation set “<inline-formula><mml:math id="M578" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, with filtering. middle: set “<inline-formula><mml:math id="M579" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”, with filtering. right: equation set “<inline-formula><mml:math id="M580" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”, without filtering.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f09.png"/>

          </fig>

      <p id="d2e14989">Figure <xref ref-type="fig" rid="F9"/> shows the relative changes of globally integrated mass and either <inline-formula><mml:math id="M581" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> or total energy over time, i.e. the property <inline-formula><mml:math id="M582" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M583" display="inline"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the global integral of one of these properties at time <inline-formula><mml:math id="M584" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>. The relative total mass change in the whole domain is about  <inline-formula><mml:math id="M585" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">16</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> per simulation day. The relative changes of total energy or total <inline-formula><mml:math id="M586" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> are roughly in the same order of magnitude. These are quite small changes; e.g. in a 1000 year climate simulation it would mean a relative change of global mass of the order <inline-formula><mml:math id="M587" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, which is so small that it wouldn't be detectable by any observation in a real atmosphere. However, this result is in contradiction to the assumed local (and the resulting global) conservation property of a DG scheme mentioned in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. In the right panel in Fig. <xref ref-type="fig" rid="F9"/> the filter is disabled, and in fact now there is no linear trend anymore neither in total mass nor in total energy, but only statistical noise at the roundoff limit. Therefore, we conclude that these losses do not occur due to the DG solver itself but due to tiny conservation violations of the filtering. One can speculate that these may come from roundoff errors in the Gram-Schmidt orthogonalization procedure described in Sect. <xref ref-type="sec" rid="Ch1.S5"/>.</p>
      <p id="d2e15109">The simulation took about 623 <inline-formula><mml:math id="M588" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula> per simulated day for both equation sets on 32 processors (2 nodes with 16 processors each) on the computer mentioned in Sect. <xref ref-type="sec" rid="Ch1.S6.SS5"/>. The simulations used <inline-formula><mml:math id="M589" display="inline"><mml:mrow><mml:mn mathvariant="normal">5120</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mo>=</mml:mo><mml:mn mathvariant="normal">51</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> grid cells with <inline-formula><mml:math id="M590" display="inline"><mml:mrow><mml:mn mathvariant="normal">10</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">5</mml:mn><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> base functions for each grid cell. This means 50 quadrature points in the cell and <inline-formula><mml:math id="M591" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">5</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mo>=</mml:mo><mml:mn mathvariant="normal">80</mml:mn></mml:mrow></mml:math></inline-formula> quadrature points at all prism faces. For the 5 Euler variables this means in total <inline-formula><mml:math id="M592" display="inline"><mml:mrow><mml:mn mathvariant="normal">51200</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">50</mml:mn><mml:mo>⋅</mml:mo><mml:mn mathvariant="normal">5</mml:mn><mml:mo>=</mml:mo><mml:mn mathvariant="normal">12.8</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> degrees of freedom, calculated on <inline-formula><mml:math id="M593" display="inline"><mml:mrow><mml:mn mathvariant="normal">51</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">200</mml:mn><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">50</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">80</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">6.656</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> quadrature points. This wall clock time is comparable to those given for the “Finite-volume” model with comparable resolution given in Table 4 in <xref ref-type="bibr" rid="bib1.bibx24" id="text.61"/> on 32 processors on an IBM power 4 architecture. However, ICON runs on the same architecture as we used a factor of about 6 faster for a similar effective resolution (a R2B5L40 grid).</p>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e15253">Baroclinic instability test, with filtering. Top: temperature <inline-formula><mml:math id="M594" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> in 850 <inline-formula><mml:math id="M595" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M596" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">9</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M597" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>, bottom: surface pressure <inline-formula><mml:math id="M598" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Left: Euler equation set “<inline-formula><mml:math id="M599" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, right: equation set “<inline-formula><mml:math id="M600" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. The colors are similar to those used in <xref ref-type="bibr" rid="bib1.bibx24" id="text.62"><named-content content-type="post">Fig. 7</named-content></xref>. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f10.png"/>

          </fig>

</sec>
<sec id="Ch1.S6.SS6.SSS2">
  <label>6.6.2</label><title>The Ullrich et al. (2014) test setup</title>
      <p id="d2e15339"><xref ref-type="bibr" rid="bib1.bibx46" id="text.63"/> have proposed a slightly different setup for the baroclinic instability that is based on steady analytic solutions by <xref ref-type="bibr" rid="bib1.bibx44" id="text.64"/> for setting the initial state. Therefore, this setup is much easier to implement in non-hydrostatic, height based dynamical cores than the hydrostatic setup of <xref ref-type="bibr" rid="bib1.bibx24" id="text.65"/>. In particular, there is no need to set an orography. Therefore, we briefly show results for this test, too. The grid spacing, time step and numerical settings are the same as in Sect. <xref ref-type="sec" rid="Ch1.S6.SS6.SSS1"/>. In particular with these filter settings the run with equation set “<inline-formula><mml:math id="M601" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” remains again stable over at least 40 d, whereas the run with equation set “<inline-formula><mml:math id="M602" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” crashes after slightly more than 11 d. Nevertheless the comparison of temperature in 850 hPa and surface pressure in Fig. <xref ref-type="fig" rid="F11"/> agree well for both equations sets with the benchmark results shown in <xref ref-type="bibr" rid="bib1.bibx46" id="text.66"/>.</p>

      <fig id="F11" specific-use="star"><label>Figure 11</label><caption><p id="d2e15377">Baroclinic instability test by Ullrich et al. (2014), with filtering. Top: temperature <inline-formula><mml:math id="M603" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> in 850 <inline-formula><mml:math id="M604" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">hPa</mml:mi></mml:mrow></mml:math></inline-formula> at <inline-formula><mml:math id="M605" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M606" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">d</mml:mi></mml:mrow></mml:math></inline-formula>, bottom: surface pressure <inline-formula><mml:math id="M607" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Left: Euler equation set “<inline-formula><mml:math id="M608" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, right: equation set “<inline-formula><mml:math id="M609" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. The isolines and colors are similar to those used in <xref ref-type="bibr" rid="bib1.bibx46" id="text.67"><named-content content-type="post">Figs. 4, 5</named-content></xref>. </p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f11.png"/>

          </fig>

</sec>
</sec>
<sec id="Ch1.S6.SS7">
  <label>6.7</label><title>Simplified climate run</title>
      <p id="d2e15464">The <xref ref-type="bibr" rid="bib1.bibx22" id="text.68"/> simplified climate run only uses the inviscid Euler equations (without moisture and  without any other parameterization like turbulence or radiation) and just adds simple relaxation terms on the rhs of the equations. These terms relax towards a prescribed temperature field and the velocity back to steady state. Consequently, internal energy is supplied from outside and kinetic energy is constantly taken out in a way that resembles an averaged climate state of the earth (therefore no global energy conservation can be expected here).</p>
      <p id="d2e15470">Here an R2B2L8 grid, i.e. a triangle grid with about 630 <inline-formula><mml:math id="M610" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> grid spacing and vertically 8 grid layers has been used. Now a vertically quadratic grid stretching was applied so that the first quadrature point is in a height of only about 32.8 <inline-formula><mml:math id="M611" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> above ground (the thickness of the lowest grid cell is <inline-formula><mml:math id="M612" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1060</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M613" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>) and the highest quadrature point is 319.0 <inline-formula><mml:math id="M614" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> below the model top of 30 <inline-formula><mml:math id="M615" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula>. The time step is <inline-formula><mml:math id="M616" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M617" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math></inline-formula>, leading to Courant numbers horizontally of <inline-formula><mml:math id="M618" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mo>|</mml:mo><mml:mi>v</mml:mi><mml:mo>|</mml:mo><mml:mo>)</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.02</mml:mn></mml:mrow></mml:math></inline-formula> and vertically of <inline-formula><mml:math id="M619" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>|</mml:mo><mml:mi>w</mml:mi><mml:mo>|</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">30</mml:mn><mml:mn mathvariant="normal">1060</mml:mn></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> (for the explicit part of the HEVI solver). We expect this value for <inline-formula><mml:math id="M620" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> as stable with an SSP3(3,3,2) IMEX-RK scheme.</p>
      <p id="d2e15651">The filtering for equation set “<inline-formula><mml:math id="M621" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” is identically to what was used in Sect. <xref ref-type="sec" rid="Ch1.S6.SS6"/>. However, to run a stable simulation over 1200 d for equation set “<inline-formula><mml:math id="M622" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” a stronger base filter with values <inline-formula><mml:math id="M623" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.9</mml:mn></mml:mrow></mml:math></inline-formula> (horizontal) or <inline-formula><mml:math id="M624" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0</mml:mn></mml:mrow></mml:math></inline-formula> (vertical), <inline-formula><mml:math id="M625" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M626" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> had to be used. Additionally the update frequency of the linearisation coefficients had to be increased to every 10th time step (every 50th for equation set “<inline-formula><mml:math id="M627" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”).</p>
      <p id="d2e15737">Figure <xref ref-type="fig" rid="F12"/> shows the zonally and temporarily averaged zonal velocity, which can directly be compared with Fig. 2 of <xref ref-type="bibr" rid="bib1.bibx22" id="text.69"/>. The main structures, in particular the strengths and lateral and height positions of the two jets, are in a good agreement with this reference. However, the result for equation set “<inline-formula><mml:math id="M628" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” (right) even seems a bit closer to Fig. 5 of <xref ref-type="bibr" rid="bib1.bibx43" id="text.70"/>, who also used the Euler equations with total energy. Slight deviations from the north-south-symmetry possibly can be traced back to the sampling strategy (note that the initial state and the relaxation fields have the full north-south-symmetry): the simulation produced output every 6 <inline-formula><mml:math id="M629" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">h</mml:mi></mml:mrow></mml:math></inline-formula>, from which the temporary average was constructed. The relative total mass change is about <inline-formula><mml:math id="M630" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> yr<sup>−1</sup>.</p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e15799">Simplified climate run. Zonal mean and temporal mean (over days 200 to 1200) of zonal velocity (in <inline-formula><mml:math id="M632" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>). Left: Euler equation set “<inline-formula><mml:math id="M633" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M634" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. The contours are chosen as in Fig. 2 of <xref ref-type="bibr" rid="bib1.bibx22" id="text.71"/>. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f12.png"/>

        </fig>

</sec>
</sec>
<sec id="Ch1.S7" sec-type="conclusions">
  <label>7</label><title>Conclusions and outlook</title>
      <p id="d2e15854">The main goal of this article is the comparison of two Euler equation sets using density and momentum, and either density weighted potential temperature <inline-formula><mml:math id="M635" display="inline"><mml:mrow><mml:mi mathvariant="italic">ϑ</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula> or total energy <inline-formula><mml:math id="M636" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> as prognostic variables, both in a numerical framework of a classical DG scheme with the HEVI approach using IMEX-RK time integrators. Whereas the formulation with <inline-formula><mml:math id="M637" display="inline"><mml:mi mathvariant="italic">ϑ</mml:mi></mml:math></inline-formula> is mainly described in B21, here the details of a formulation with <inline-formula><mml:math id="M638" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> are explained, in particular for the use in an IMEX-RK scheme. Furthermore, the combination of the HEVI approach with the local and terrain-following coordinate to treat atmospheric flows on the whole sphere are described.</p>
      <p id="d2e15892">One important goal of the resulting BRIDGE code is to achieve local conservation of the prognostic variables. Consequently, the use of <inline-formula><mml:math id="M639" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula> seems to be favourable because it especially means to fulfil the first law of thermodynamics. In contrast, although <inline-formula><mml:math id="M640" display="inline"><mml:mi mathvariant="italic">ϑ</mml:mi></mml:math></inline-formula> is related to entropy just under the conditions of this article, it does not mean to fulfil the second law of thermodynamics under more general conditions e.g. using moisture. In fact, some of the test cases demonstrate superior well-balancing properties of the Euler equations using <inline-formula><mml:math id="M641" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>: in particular in the simple 1D vertical test, Sect. <xref ref-type="sec" rid="Ch1.S6.SS1"/>, together with the related normal mode analysis given in Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/> and in the linear sound and gravity wave expansion test, Sect. <xref ref-type="sec" rid="Ch1.S6.SS5"/>, demonstrating lower errors in particular for coarser resolutions. In particular, no accuracy reducing STF is needed for the equation set “<inline-formula><mml:math id="M642" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. Additionally, slight advantages could be seen in the flows over mountains – a slightly larger time step could be used in the linear flow over mountains, see Sect. <xref ref-type="sec" rid="Ch1.S6.SS2"/>, and perhaps a slightly more realistic flow pattern in the flow over steep mountains, Sect. <xref ref-type="sec" rid="Ch1.S6.SS3"/>, could be achieved (although the true solution is not known in this case).</p>
      <p id="d2e15934">On the other hand, the equation set “<inline-formula><mml:math id="M643" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” suffers more from non-linear instabilities than equation set “<inline-formula><mml:math id="M644" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, seen in the baroclinic instability test in Sect. <xref ref-type="sec" rid="Ch1.S6.SS6"/> and the simplified climate run in Sect. <xref ref-type="sec" rid="Ch1.S6.SS7"/>. This is probably a result of the non-dissipative property of an energy-conserving scheme <xref ref-type="bibr" rid="bib1.bibx39" id="paren.72"/>. In both cases it was harder to find a setup that runs stable for set “<inline-formula><mml:math id="M645" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”.</p>
      <p id="d2e15969">We want to emphasize that we only used filtering as a stabilization mechanism, mainly because this is a computationally quite cheap method. As one of its main drawbacks is the violation of well-balancing properties if applied to the atmosphere. For DG schemes there exist several other stabilizing or dealiasing techniques (for a survey see e.g. the book of <xref ref-type="bibr" rid="bib1.bibx18" id="altparen.73"/>). For example, the artificial viscosity method <xref ref-type="bibr" rid="bib1.bibx38" id="paren.74"/> is widespread. One rather technical reason for not applying it is that we did not want to use the more expensive BR1 scheme in these (essentially frictionless) test cases. Recently, hyper-diffusion has been proposed for element-based Galerkin schemes by <xref ref-type="bibr" rid="bib1.bibx21" id="text.75"/>, a method that is used in many atmospheric models (like ICON). In a DG scheme the hyper-diffusion term can be incorporated in two ways. One option is to extend a scheme such as BR1 by introducing auxiliary variables for the higher-order derivatives; this approach is accurate but computationally expensive. Alternatively, the term can be added solely as a source term, which is computationally cheap but sacrifices strict conservation because the inter-cell fluxes are omitted.</p>
      <p id="d2e15982">Despite the somewhat mixed results for the inspected two equation systems, we will in particular continue the work on equation set “<inline-formula><mml:math id="M646" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”, due to their other positive properties described above and in the introduction. One reason for our optimism concerning numerical stability is the fact that every realistic application of an atmospheric model has to use turbulence parameterizations, which in many cases (though not generally) just perform a stabilization of the above mentioned model breakdowns. The other, more important, reason are recent developments for DG schemes towards entropy stable or even entropy conserving schemes that just build on set “<inline-formula><mml:math id="M647" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” and which have achieved a certain maturity <xref ref-type="bibr" rid="bib1.bibx15 bib1.bibx48" id="paren.76"/>. So it could be demonstrated that the baroclinic instability test of Sect. <xref ref-type="sec" rid="Ch1.S6.SS6"/> can be run without any model breakdowns occurring and without any other stabilization measures <xref ref-type="bibr" rid="bib1.bibx48" id="paren.77"/>. Steps to extend these methods to triangles have been done by <xref ref-type="bibr" rid="bib1.bibx11" id="text.78"/>. However, at the moment it is less clear how to apply these new techniques to the combination of triangle grids, the HEVI approach, and the covariant formulation used in this article. In particular to the last point, recently <xref ref-type="bibr" rid="bib1.bibx35" id="text.79"/> developed an entropy stable DG scheme for the covariant formulation of the shallow water equations on the sphere. We plan to follow these new developments in the near future. Such provably stable approaches even could lead to a reduction of too excessive vertical velocities, which would allow to increase the time steps (see in particular the limitation given in Sect. <xref ref-type="sec" rid="Ch1.S6.SS7"/>). We further will inspect alternative IMEX-RK schemes (e.g. those given in <xref ref-type="bibr" rid="bib1.bibx21" id="altparen.80"/>) that might allow larger Courant numbers and therefore would lead to an improved efficiency of our BRIDGE code.</p>
</sec>

      
      </body>
    <back><app-group>

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Quadrature rules for x-z-slice models on unit triangles</title>
      <p id="d2e16030">A few test cases in this article use a 2-dimensional  “x-z-slice” model, i.e. we have only one horizontal direction. Since the BRIDGE code only can use triangle cells in the horizontal direction, practically, we use a stripe of squares, each square split into two triangles. Or, alternatively described, a stripe of two saw tooth rows (one upward and one downward oriented). Consequently, it is reasonable to use only 1D, <inline-formula><mml:math id="M648" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-dependent base functions in the horizontal direction for each triangle, and likewise only 1D quadrature rules. However, this requires definition of quadrature rules for only <inline-formula><mml:math id="M649" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-dependent polynomials not on a 1D interval, but on the 2D unit triangle <inline-formula><mml:math id="M650" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> (<inline-formula><mml:math id="M651" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:mi>x</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M652" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:mi>y</mml:mi><mml:mo>≤</mml:mo><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>). This results in a Gaussian quadrature rule of the form

          <disp-formula id="App1.Ch1.S1.E34" content-type="numbered"><label>A1</label><mml:math id="M653" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi>D</mml:mi></mml:munder><mml:msub><mml:mi>p</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>p</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        To this purpose, we generate <inline-formula><mml:math id="M654" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula> equations for the first <inline-formula><mml:math id="M655" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>N</mml:mi></mml:mrow></mml:math></inline-formula> monomials <inline-formula><mml:math id="M656" display="inline"><mml:mrow><mml:msub><mml:mi>p</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M657" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> by using

          <disp-formula id="App1.Ch1.S1.Ex1"><mml:math id="M658" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi>D</mml:mi></mml:munder><mml:msup><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mn mathvariant="normal">1</mml:mn></mml:munderover><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:munderover><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="left left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd><mml:mtd><mml:mrow><mml:mi>n</mml:mi><mml:mtext> even</mml:mtext><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>n</mml:mi><mml:mtext> odd</mml:mtext><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

        This highly nonlinear equation system for the quadrature nodes <inline-formula><mml:math id="M659" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and weights <inline-formula><mml:math id="M660" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is solved by a Newton iteration procedure. The resulting quadrature rules for different <inline-formula><mml:math id="M661" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> are given in Table <xref ref-type="table" rid="TA1"/>.</p>

<table-wrap id="TA1"><label>Table A1</label><caption><p id="d2e16384">Gaussian quadrature rules for only x-dependent base functions on the unit triangle. </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M662" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M663" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M664" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M665" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">2</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M666" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.6898979485566356</oasis:entry>
         <oasis:entry colname="col3">1.2721655269759087</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.2898979485566356</oasis:entry>
         <oasis:entry colname="col3">0.7278344730240913</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">3</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M667" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.8228240809745921</oasis:entry>
         <oasis:entry colname="col3">0.8037276549558386</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M668" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.1810662711185306</oasis:entry>
         <oasis:entry colname="col3">0.9169644254383448</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.5753189235216940</oasis:entry>
         <oasis:entry colname="col3">0.2793079196058166</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">4</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M669" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.8857916077709647</oasis:entry>
         <oasis:entry colname="col3">0.5420276537259517</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M670" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.4463139727237530</oasis:entry>
         <oasis:entry colname="col3">0.8138582720410854</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.1671808647378334</oasis:entry>
         <oasis:entry colname="col3">0.5193901904329305</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.7204802713124395</oasis:entry>
         <oasis:entry colname="col3">0.1247238838000324</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">5</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M671" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.920380285897063</oasis:entry>
         <oasis:entry colname="col3">0.387126360906606</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M672" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.603973164252785</oasis:entry>
         <oasis:entry colname="col3">0.668698552377479</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M673" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.124050379505225</oasis:entry>
         <oasis:entry colname="col3">0.585547948338684</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.390928546707274</oasis:entry>
         <oasis:entry colname="col3">0.295635480290463</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.802929828402348</oasis:entry>
         <oasis:entry colname="col3">0.062991658086768</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e16671">By an analogous procedure one can get Gauß-Lobatto rules for

          <disp-formula id="App1.Ch1.S1.Ex2"><mml:math id="M674" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi>D</mml:mi></mml:munder><mml:msub><mml:mi>p</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>p</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi>x</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Although we have not used these in this article, for completeness the first quadrature rules for different <inline-formula><mml:math id="M675" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> are given in Table <xref ref-type="table" rid="TA2"/>.</p>

<table-wrap id="TA2"><label>Table A2</label><caption><p id="d2e16783">Gauß-Lobatto quadrature rules for only <inline-formula><mml:math id="M676" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-dependent base functions on the unit triangle. </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M677" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M678" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M679" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M680" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col3">4/3</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">2/3</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">3</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M681" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col3">9/18</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M682" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1/5</oasis:entry>
         <oasis:entry colname="col3">25/18</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">2/18</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">4</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M683" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col3">8/30</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M684" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.5469181606780271</oasis:entry>
         <oasis:entry colname="col3">1.0857022603955158</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.2612038749637413</oasis:entry>
         <oasis:entry colname="col3">0.6142977396044842</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">1/30</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">5</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M685" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col3">25/150</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M686" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.7088201421143248</oasis:entry>
         <oasis:entry colname="col3">0.7943389359572047</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M687" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.1323008207773219</oasis:entry>
         <oasis:entry colname="col3">0.7360043694816333</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">0.5077876295583159</oasis:entry>
         <oasis:entry colname="col3">0.2896566945611620</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">2/150</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Normal mode analysis for the 1D (vertical) Euler equations</title>
      <p id="d2e17061">In this section the stability properties of the well-balancing issue are inspected. To this purpose we only consider one grid cell and restrict ourselves to the 1D vertical linearised Euler equations (i.e. using the linearisations in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS1"/> and <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>), without diffusion terms. So, for the equation set “<inline-formula><mml:math id="M688" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” we use

              <disp-formula id="App1.Ch1.S2.Ex1"><mml:math id="M689" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>g</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

        and for the equation set “<inline-formula><mml:math id="M690" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”

              <disp-formula id="App1.Ch1.S2.E35" content-type="numbered"><label>B1</label><mml:math id="M691" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mo>∂</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>R</mml:mi><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>=</mml:mo><mml:mfenced close=")" open="("><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>g</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mfenced open="(" close=")"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mi>E</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

        both with boundary conditions <inline-formula><mml:math id="M692" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M693" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>L</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>.</p>

      <fig id="FB1" specific-use="star"><label>Figure B1</label><caption><p id="d2e17568">Maximum amplification factor for the 1D vertical stability problem. Left: Euler equation set “<inline-formula><mml:math id="M694" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>”, Right: Euler equation set “<inline-formula><mml:math id="M695" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. Top: without STF, Bottom: with STF. </p></caption>
        <graphic xlink:href="https://gmd.copernicus.org/articles/19/7013/2026/gmd-19-7013-2026-f13.png"/>

      </fig>

      <p id="d2e17594">In contrast to a von-Neumann-stability analysis, a normal mode analysis can treat linear equations with non-constant coefficients, too, e.g. vertically varying density, pressure or temperature. Therefore we can also inspect different temperature stratifications that we prescribe by a polytropic atmosphere of the form <inline-formula><mml:math id="M696" display="inline"><mml:mrow><mml:mi>T</mml:mi><mml:mo>(</mml:mo><mml:mi>z</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula>. In Fig. <xref ref-type="fig" rid="FB1"/> the maximum amplification factors of both equation sets with or without source term filtering (STF) is shown over the stratification <inline-formula><mml:math id="M697" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:math></inline-formula> and over the time step. The maximum amplification factor is calculated as the maximum eigenvalue of the <inline-formula><mml:math id="M698" display="inline"><mml:mrow><mml:mn mathvariant="normal">12</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">12</mml:mn></mml:mrow></mml:math></inline-formula> amplification matrix for a 4th order DG scheme together with an SSP3(3,3,2) IMEX scheme (all above terms are treated with the implicit part) and a grid spacing of <inline-formula><mml:math id="M699" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M700" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>. Note that the atmosphere becomes <italic>physically</italic> unstable for <inline-formula><mml:math id="M701" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&lt;</mml:mo><mml:mo>-</mml:mo><mml:mi>g</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M702" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. We see that the equation set “<inline-formula><mml:math id="M703" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>” behaves in a reasonable way: it is stable (the maximum amplification factor is equal to one) for the physically stable range and unstable for the physically unstable range. This is quite independent on the use of STF, so we don't need STF for equation set “<inline-formula><mml:math id="M704" display="inline"><mml:mi>E</mml:mi></mml:math></inline-formula>”. In contrast, the equation set “<inline-formula><mml:math id="M705" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">Θ</mml:mi></mml:mrow></mml:math></inline-formula>” without STF is only stable in the physically unstable range and unstable in the physically stable range. Although the numerical instability is quite slow  for moderate time steps (amplification factors are only slightly larger than one), it can nevertheless produce a problematic behaviour in longer simulation runs. STF resolves the numerical instability, with the exception of a very weak instability for larger time steps and <inline-formula><mml:math id="M706" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>&lt;</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.005</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M707" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">K</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e17816">The BRIDGE code <xref ref-type="bibr" rid="bib1.bibx4" id="paren.81"/> together with all the scripts for running the test cases of this article is available under <ext-link xlink:href="https://doi.org/10.5281/zenodo.17977588" ext-link-type="DOI">10.5281/zenodo.17977588</ext-link>.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e17828">MB: implementation of equations, metrics, time integration; implementation, conducting, evaluation, and visualisation of test cases; numerical analysis; algorithmic concepts; preparing the manuscript. FP: software design; implementation; algorithmic concepts; preparing the manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e17834">The contact author has declared that neither of the authors has any competing interests.</p>
  </notes><notes notes-type="disclaimer"><title>Disclaimer</title>

      <p id="d2e17840">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e17847">We are grateful for several discussions about the topic with Gregor J. Gassner (Division of Mathematics, University of Cologne), Andrés M. Rueda-Ramírez (Universidad Politécnica de Madrid), Tristan Montoya (Institute for Aerospace Studies, University of Toronto), and Oswald Knoth (formerly at Leibniz Institute for tropospheric research, Leipzig). We would like to thank Francis X. Giraldo (Naval Postgraduate School) and another anonymous reviewer for their very thorough reviews and helpful hints and comments that definitely improved the article. We furthermore would like to thank Daniel Reinert (Deutscher Wetterdienst) for carrying out the ICON simulations for the linear wave expansion test case.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e17852">This work was partly supported by the German Federal Ministry for Research, Technology and Space (BMFTR) project “ICON-DG” (grant 01LK2315C) of the “WarmWorld Smarter” program.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e17858">This paper was edited by James Kelly and reviewed by Francis Giraldo and one anonymous referee.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Baldauf(2008)</label><mixed-citation>Baldauf, M.: A linear solution for flow over mountains and its comparison with the COSMO model, COSMO-Newsletter, 9, 19–24, <uri>https://www.cosmo-model.org/content/model/documentation/newsLetters/default.htm</uri> (last access: 20 July 2026), 2008.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Baldauf(2020)</label><mixed-citation>Baldauf, M.: Discontinuous Galerkin solver for the shallow-water equations in covariant form on the sphere and the ellipsoid, J. Comput. Phys., 410, 109384, 1–26, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2020.109384" ext-link-type="DOI">10.1016/j.jcp.2020.109384</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Baldauf(2021)</label><mixed-citation>Baldauf, M.: A horizontally explicit, vertically implicit (HEVI) discontinuous Galerkin scheme for the 2-dimensional Euler and Navier-Stokes equations using terrain-following coordinates, J. Comput. Phys., 446, 110635, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2021.110635" ext-link-type="DOI">10.1016/j.jcp.2021.110635</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Baldauf and Prill(2025)</label><mixed-citation>Baldauf, M. and Prill, F.: BRIDGE (Basic Research for ICON with Discontinuous Galerkin Extension), BRIDGE v0.9, source code, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.17977588" ext-link-type="DOI">10.5281/zenodo.17977588</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Baldauf et al.(2014)Baldauf, Reinert, and Zängl</label><mixed-citation>Baldauf, M., Reinert, D., and Zängl, G.: An analytical solution for linear gravity and sound waves on the sphere as a test for compressible, non-hydrostatic numerical models, Q. J. Roy. Meteor. Soc., 140, 1974–1985, <ext-link xlink:href="https://doi.org/10.1002/qj.2277" ext-link-type="DOI">10.1002/qj.2277</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Bassi and Rebay(1997)</label><mixed-citation> Bassi, F. and Rebay, S.: A High-Order Accurate Discontinuous Finite Element Method for the Numerical Solution of the Compressible Navier-Stokes Equations, J. Comput. Phys., 131, 267–279, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Blaise et al.(2016)Blaise, Lambrechts, and Deleersnijder</label><mixed-citation> Blaise, S., Lambrechts, J., and Deleersnijder, E.: A stabilization for three-dimensional discontinuous Galerkin discretizations applied to nonhydrostatic atmospheric simulations, Int. J. Numer. Meth. Fluids, 81, 558–585, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Brdar et al.(2012)Brdar, Baldauf, Dedner, and Klöfkorn</label><mixed-citation>Brdar, S., Baldauf, M., Dedner, A., and Klöfkorn, R.: Comparison of dynamical cores for NWP models: comparison of COSMO and Dune, Theor. Comput. Fluid Dyn., 27, 453–472, <ext-link xlink:href="https://doi.org/10.1007/s00162-012-0264-z" ext-link-type="DOI">10.1007/s00162-012-0264-z</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Cernetic et al.(2023)Cernetic, Springel, Guillet, and Pakmor</label><mixed-citation> Cernetic, M., Springel, V., Guillet, T., and Pakmor, R.: High-order discontinuous Galerkin hydrodynamics with sub-cell shock capturing on GPUs, Mon. Not. Roy. Astron. Soc., 522, 982–1008, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Chaillat et al.(2022)Chaillat, Cottereau, and Sevilla</label><mixed-citation>Chaillat, S., Cottereau, R., and Sevilla, R.: A high-order discontinuous Galerkin Method using a mixture of Gauss-Legendre and Gauss-Lobatto quadratures for improved efficiency, hal-03695573, <uri>https://hal.science/hal-03695573</uri> (last access: 20 July 2026), 2022.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Chan(2018)</label><mixed-citation> Chan: On discretely entropy conservative and entropy stable discontinuous Galerkin methods, J. Comput. Phys., 362, 346–374, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Cockburn and Shu(1989)</label><mixed-citation> Cockburn, B. and Shu, C.-W.: TVB Runge-Kutta Local Projection Discontinuous Galerkin Finite Element Method for Conservation Laws II: General Framework, Math. Comput., 52, 411–435, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Cockburn et al.(1989)Cockburn, Lin, and Shu</label><mixed-citation> Cockburn, B., Lin, S.-Y., and Shu, C.-W.: TVB Runge-Kutta Local Projection Discontinuous Galerkin Finite Element Method for Conservation Laws III: One-Dimensional Systems, J. Comput. Phys., 84, 90–113, 1989.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Cockburn et al.(1990)Cockburn, Hou, and Shu</label><mixed-citation> Cockburn, B., Hou, S., and Shu, C.-W.: The Runge-Kutta local projection Discontinuous Galerkin Finite Element Method for Conservation Laws IV: the multidimensional Case, Math. Comput., 54, 545–581, 1990.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Gassner and Winters(2021)</label><mixed-citation> Gassner, G. J. and Winters, A. R.: A Novel Robust Strategy for Discontinuous Galerkin Methods in Computational Fluid Mechanics: Why? When? What? Where?, Front. Phys., 8, 1–24, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Gassner et al.(2018)Gassner, Winters, Hindenlang, and Kopriva</label><mixed-citation> Gassner, G. J., Winters, A. R., Hindenlang, F. J., and Kopriva, D. A.: The BR1 Scheme is Stable for the Compressible Navier-Stokes Equations, J. Sci. Comp., 77, 154–200, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Giraldo(2001)</label><mixed-citation> Giraldo, F. X.: A spectral element shallow water model on spherical geodesic grids, Int. J. Num. Meth. Fluids, 35, 869–901, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Giraldo(2020)</label><mixed-citation>Giraldo, F. X.: An Introduction to Element-Based Galerkin Methods on Tensor-Product Bases, Springer, ISBN 978-3-030-55068-4, <ext-link xlink:href="https://doi.org/10.1007/978-3-030-55069-1" ext-link-type="DOI">10.1007/978-3-030-55069-1</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Giraldo et al.(2010)Giraldo, Restelli, and Läuter</label><mixed-citation> Giraldo, F. X., Restelli, M., and Läuter, M.: Semi-implicit formulations of the Navier-Stokes equations: aplications to nonhydrostatic atmospheric modeling, SIAM J. Sci. Comput., 32, 3394–3425, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Giraldo et al.(2013)Giraldo, Kelly, and Constantinescu</label><mixed-citation> Giraldo, F. X., Kelly, J., and Constantinescu, E. M.: Implicit-Explicit Formulations of a Three-Dimensional Nonhydrostatic Unified Model of the Atmosphere (NUMA), SIAM J. Sci. Comput., 35, B1162–B1194, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Giraldo et al.(2024)Giraldo, de Bragança Alves, Kelly, Kang, and Reinecke</label><mixed-citation>Giraldo, F. X., de Bragança Alves, F. A., Kelly, J. F., Kang, S., and Reinecke, P. A.: A performance study of horizontally explicit vertically implicit (HEVI) time-integrators for non-hydrostatic atmospheric models, J. Comput. Phys., 515, 113275, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2024.113275" ext-link-type="DOI">10.1016/j.jcp.2024.113275</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Held and Suarez(1994)</label><mixed-citation> Held, I. M. and Suarez, M. J.: A Proposal for the Intercomparison of the Dynamical Cores of Atmospheric General Circulation Models, B. Am. Meteorol. Soc., 75, 1825–1830, 1994.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Hesthaven and Warburton(2008)</label><mixed-citation>Hesthaven, J. S. and Warburton, T.: Nodal Discontinuous Galerkin Methods, Springer, ISBN 978-0-387-72065-4, <ext-link xlink:href="https://doi.org/10.1007/978-0-387-72067-8" ext-link-type="DOI">10.1007/978-0-387-72067-8</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Jablonowski and Williamson(2006)</label><mixed-citation> Jablonowski, C. and Williamson, D. L.: A baroclinic instability test case for atmospheric model dynamical cores, Q. J. Roy. Meteor. Soc., 132, 2943–2975, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Karniadakis and Sherwin(2005)</label><mixed-citation> Karniadakis, G. E. and Sherwin, S. J.: Spectral/hp Element Methods for Computational Fluid Dynamics, Oxford University Press, Oxford, ISBN 0198528698, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Krais et al.(2021)Krais, Beck, Bolemann, Frank, Flad, Gassner, Hindenlang, Hoffmann, Kuhn, Sonntag, and Munz</label><mixed-citation>Krais, N., Beck, A., Bolemann, T., Frank, H., Flad, D., Gassner, G., Hindenlang, F., Hoffmann, M., Kuhn, T., Sonntag, M., and Munz, C.-D.: FLEXI: A high order discontinuous Galerkin framework for hyperbolic–parabolic conservation laws, Comput. Math. Appl., 81, 186–219, <ext-link xlink:href="https://doi.org/10.1016/j.camwa.2020.05.004" ext-link-type="DOI">10.1016/j.camwa.2020.05.004</ext-link>,   2021.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Kronbichler and Kormann(2017)</label><mixed-citation>Kronbichler, M. and Kormann, K.: Fast Matrix-Free Evaluation of Discontinuous Galerkin Finite Element Operators, ACM Trans. Math. Softw. 45,   40 pp., <ext-link xlink:href="https://doi.org/10.1145/3325864" ext-link-type="DOI">10.1145/3325864</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Kronbichler et al.(2019)Kronbichler, Kormann, Fehn, Munch, and Witte</label><mixed-citation>Kronbichler, M., Kormann, K., Fehn, N., Munch, P., and Witte, J.: A Hermite-like basis for faster matrix-free evaluation of interior penalty discontinuous Galerkin operators, arXiv [preprint], <ext-link xlink:href="https://doi.org/10.48550/arXiv.1907.08492" ext-link-type="DOI">10.48550/arXiv.1907.08492</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Landau and Lifshitz(1987)</label><mixed-citation> Landau, L. D. and Lifshitz, E. M.: Fluid Mechanics, Volume 6 of Course of Theoretical Physics, Pergamon Press, 2nd Edn., ISBN 978-0-08-033933-7, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Landmann(2008)</label><mixed-citation>Landmann, B.: A parallel discontinuous Galerkin code for the Navier-Stokes and Reynolds-averaged Navier-Stokes equations, Ph.D. thesis, Universität Stuttgart, <ext-link xlink:href="https://doi.org/10.18419/opus-3771" ext-link-type="DOI">10.18419/opus-3771</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Läuter et al.(2008)Läuter, Giraldo, Handorf, and Dethloff</label><mixed-citation> Läuter, M., Giraldo, F. X., Handorf, D., and Dethloff, K.: A discontinuous Galerkin method for the shallow water equations in spherical triangular coordinates, J. Comput. Phys., 227, 10226–10242, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Lock et al.(2014)Lock, Wood, and Weller</label><mixed-citation> Lock, S.-J., Wood, N., and Weller, H.: Numerical analyses of Runge-Kutta implicit-explicit schemes for horizontally explicit, vertically implicit solutions of atmospheric models, Q. J. Roy. Meteor. Soc., 140, 1654–1669, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Meister et al.(2012)Meister, Ortleb, and Sonar</label><mixed-citation>Meister, A., Ortleb, S., and Sonar, T.: Application of Spectral Filtering to Discontinuous Galerkin Methods on Triangulations, Num. Meth. PDEs., 28, 1840–1868, <ext-link xlink:href="https://doi.org/10.1002/num.20705" ext-link-type="DOI">10.1002/num.20705</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Michoski et al.(2016)Michoski, Dawson, Kubatko, Wirasaet, Brus, and Westerink</label><mixed-citation> Michoski, C., Dawson, C., Kubatko, E. J., Wirasaet, D., Brus, S., and Westerink, J. J.: A Comparison of Artificial Viscosity, Limiters, and Filters, for High Order Discontinuous Galerkin Solutions in Nonlinear Settings, J. Sci. Comput., 66, 406–434, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Montoya et al.(2026)Montoya, Rueda-Ramírez, and Gassner</label><mixed-citation>Montoya, T., Rueda-Ramírez, A. M., and Gassner, G. J.: Entropy-stable discontinuous spectral-element methods for the spherical shallow water equations in covariant form, J. Comput. Phys. 555, 114782, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2026.114782" ext-link-type="DOI">10.1016/j.jcp.2026.114782</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Orgis et al.(2017)Orgis, Läuter, Handorf, and Dethloff</label><mixed-citation>Orgis, T., Läuter, M., Handorf, D., and Dethloff, K.: Baroclinic waves on the <inline-formula><mml:math id="M708" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula>-plane using low-order Discontinuous Galerkin discretisation, J. Comput. Phys., 339, 461–481, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Pareschi and Russo(2005)</label><mixed-citation>Pareschi, L. and Russo, G.: Implicit-Explicit Runge–Kutta Schemes and Applications to Hyperbolic Systems with Relaxation, J. Sci. Comput., 25, 129–155, <ext-link xlink:href="https://doi.org/10.1007/s10915-004-4636-4" ext-link-type="DOI">10.1007/s10915-004-4636-4</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Persson and Peraire(2006)</label><mixed-citation>Persson, P.-O. and Peraire, J.: Sub-cell shock capturing for discontinuous Galerkin methods, in: Collection of Technical Papers – 44th AIAA Aerospace Sciences MeetingConference Paper, <ext-link xlink:href="https://doi.org/10.2514/6.2006-112" ext-link-type="DOI">10.2514/6.2006-112</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Reddy et al.(2023)Reddy, Waruszewski, de Braganca Alves, and Giraldo</label><mixed-citation>Reddy, S., Waruszewski, M., de Braganca Alves, F. A. V., and Giraldo, F. X.: Schur complement IMplicit-EXplicit formulations for discontinuous Galerkin non-hydrostatic atmospheric models, J. Comput. Phys., 491, 112361, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2023.112361" ext-link-type="DOI">10.1016/j.jcp.2023.112361</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Rueda-Ramírez et al.(2021)Rueda-Ramírez, Ferrer, Kopriva, Rubio, and Valero</label><mixed-citation>Rueda-Ramírez, A. M., Ferrer, E., Kopriva, D. A., Rubio, G., and Valero, E.: A statically condensed discontinuous Galerkin spectral element method on Gauss-Lobatto nodes for the compressible Navier-Stokes equations, J. Comput. Phys., 426, 109953, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2020.109953" ext-link-type="DOI">10.1016/j.jcp.2020.109953</ext-link>, 2021. </mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Schuster et al.(2014)Schuster, Brdar, Baldauf, Dedner, Klöfkorn, and Kröner</label><mixed-citation>Schuster, D., Brdar, S., Baldauf, M., Dedner, A., Klöfkorn, R., and Kröner, D.: On discontinuous Galerkin approach for atmospheric flow in the mesoscale with and without moisture, Meteorol. Z., 23, 449–464, <ext-link xlink:href="https://doi.org/10.1127/0941-2948/2014/0565" ext-link-type="DOI">10.1127/0941-2948/2014/0565</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Smith(1980)</label><mixed-citation> Smith, R. B.: Linear theory of stratified hydrostatic flow past an isolated mountain, Tellus, 32, 348–364, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Souza et al.(2023)Souza, He, Bischoff, Waruszewski, Novak, Barra, Gibson, Sridhar, Kandala, Byrne, Wilcox, Kozdon, Giraldo, Knoth, Marshall, Ferrari, and Schneider</label><mixed-citation>Souza, A. N., He, J., Bischoff, T., Waruszewski, M., Novak, L., Barra, V., Gibson, T., Sridhar, A., Kandala, S., Byrne, S., Wilcox, L. C., Kozdon, J., Giraldo, F. X., Knoth, O., Marshall, J., Ferrari, R., and Schneider, T.: The Flux-Differencing Discontinuous Galerkin Method Applied to an Idealized Fully Compressible Nonhydrostatic Dry Atmosphere, J. Adv. Model. Earth Sy., 15, <ext-link xlink:href="https://doi.org/10.1029/2022MS003527" ext-link-type="DOI">10.1029/2022MS003527</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Staniforth and White(2011)</label><mixed-citation> Staniforth, A. and White, A. A.: Further non-separable exact solutions of the deep- and shallow-atmosphere equations, Atm. Sci. Lett., 12, 356–361, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Straka et al.(1993)Straka, Wilhelmson, Wicker, Anderson, and Droegemeier</label><mixed-citation> Straka, J. M., Wilhelmson, R. B., Wicker, L. J., Anderson, J. R., and Droegemeier, K. K.: Numerical solutions of a non-linear density current: a benchmark solution and comparisons, Int. J. Num. Meth. Fluids, 17, 1–22, 1993.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Ullrich et al.(2014)Ullrich, Melvin, Jablonowski, and Staniforth</label><mixed-citation> Ullrich, P. A., Melvin, T., Jablonowski, C., and Staniforth, A.: A proposed baroclinic wave test for deep- and shallow-atmosphere dynamical cores, Q. J. Roy. Meteor. Soc., 140, 1590–1602, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Vandeven(1991)</label><mixed-citation>Vandeven, H.: Family of spectral filters for discontinuous problems, J. Sci. Comp., 6, 159–192, <ext-link xlink:href="https://doi.org/10.1007/BF01062118" ext-link-type="DOI">10.1007/BF01062118</ext-link>, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Waruszewski et al.(2022)Waruszewski, Kozdon, Wilcox, Gibson, and Giraldo</label><mixed-citation>Waruszewski, M., Kozdon, J. E., Wilcox, L. C., Gibson, T. H., and Giraldo, F. X.: Entropy stable discontinuous Galerkin methods for balance laws in non-conservative form: Applications to the Euler equations with gravity, J. Comput. Phys., 468, 111507, <ext-link xlink:href="https://doi.org/10.1016/j.jcp.2022.111507" ext-link-type="DOI">10.1016/j.jcp.2022.111507</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Williams et al.(2014)Williams, Shunn, and Jameson</label><mixed-citation> Williams, D. M., Shunn, L., and Jameson, A.: Symmetric quadrature rules for simplexes based on sphere close packed lattice arrangements, J. Comput. Appl. Math., 266, 18–38, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Zängl(2012)</label><mixed-citation> Zängl, G.: Extending the Numerical Stability Limit of Terrain-Following Coordinate Models over Steep Slopes, Mon. Weather Rev., 140, 3722–3733, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Zängl et al.(2015)Zängl, Reinert, Ripodas, and Baldauf</label><mixed-citation>Zängl, G., Reinert, D., Ripodas, P., and Baldauf, M.: The ICON (ICOsahedral Non-hydrostatic) modelling framework of DWD and MPI-M: Description of the non-hydrostatic dynamical core, Q. J. Roy. Meteor. Soc., 141, 563–579, <ext-link xlink:href="https://doi.org/10.1002/qj.2378" ext-link-type="DOI">10.1002/qj.2378</ext-link>, 2015.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Comparison of two Euler equation sets in a Discontinuous Galerkin solver for atmospheric modelling (BRIDGE v0.9)</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Baldauf(2008)</label><mixed-citation>
      
Baldauf, M.: A linear solution for flow over mountains and its comparison with
the COSMO model, COSMO-Newsletter, 9, 19–24,
<a href="https://www.cosmo-model.org/content/model/documentation/newsLetters/default.htm" target="_blank"/> (last access: 20 July 2026),
2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Baldauf(2020)</label><mixed-citation>
      
Baldauf, M.: Discontinuous Galerkin solver for the shallow-water equations in
covariant form on the sphere and the ellipsoid, J. Comput. Phys., 410,
109384, 1–26, <a href="https://doi.org/10.1016/j.jcp.2020.109384" target="_blank">https://doi.org/10.1016/j.jcp.2020.109384</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Baldauf(2021)</label><mixed-citation>
      
Baldauf, M.: A horizontally explicit, vertically implicit (HEVI) discontinuous
Galerkin scheme for the 2-dimensional Euler and Navier-Stokes equations using
terrain-following coordinates, J. Comput. Phys., 446, 110635,
<a href="https://doi.org/10.1016/j.jcp.2021.110635" target="_blank">https://doi.org/10.1016/j.jcp.2021.110635</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Baldauf and Prill(2025)</label><mixed-citation>
      
Baldauf, M. and Prill, F.: BRIDGE (Basic Research for ICON with Discontinuous
Galerkin Extension), BRIDGE v0.9,
source code, Zenodo [code], <a href="https://doi.org/10.5281/zenodo.17977588" target="_blank">https://doi.org/10.5281/zenodo.17977588</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Baldauf et al.(2014)Baldauf, Reinert, and Zängl</label><mixed-citation>
      
Baldauf, M., Reinert, D., and Zängl, G.: An analytical solution for linear
gravity and sound waves on the sphere as a test for compressible,
non-hydrostatic numerical models, Q. J. Roy. Meteor. Soc., 140,
1974–1985, <a href="https://doi.org/10.1002/qj.2277" target="_blank">https://doi.org/10.1002/qj.2277</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Bassi and Rebay(1997)</label><mixed-citation>
      
Bassi, F. and Rebay, S.: A High-Order Accurate Discontinuous Finite Element
Method for the Numerical Solution of the Compressible Navier-Stokes
Equations, J. Comput. Phys., 131, 267–279, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Blaise et al.(2016)Blaise, Lambrechts, and
Deleersnijder</label><mixed-citation>
      
Blaise, S., Lambrechts, J., and Deleersnijder, E.: A stabilization for
three-dimensional discontinuous Galerkin discretizations applied to
nonhydrostatic atmospheric simulations, Int. J. Numer. Meth. Fluids, 81,
558–585, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Brdar et al.(2012)Brdar, Baldauf, Dedner, and
Klöfkorn</label><mixed-citation>
      
Brdar, S., Baldauf, M., Dedner, A., and Klöfkorn, R.: Comparison of
dynamical cores for NWP models: comparison of COSMO and Dune, Theor. Comput.
Fluid Dyn., 27, 453–472, <a href="https://doi.org/10.1007/s00162-012-0264-z" target="_blank">https://doi.org/10.1007/s00162-012-0264-z</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Cernetic et al.(2023)Cernetic, Springel, Guillet, and
Pakmor</label><mixed-citation>
      
Cernetic, M., Springel, V., Guillet, T., and Pakmor, R.: High-order
discontinuous Galerkin hydrodynamics with sub-cell shock capturing on GPUs,
Mon. Not. Roy. Astron. Soc., 522, 982–1008, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Chaillat et al.(2022)Chaillat, Cottereau, and
Sevilla</label><mixed-citation>
      
Chaillat, S., Cottereau, R., and Sevilla, R.: A high-order discontinuous
Galerkin Method using a mixture of Gauss-Legendre and Gauss-Lobatto
quadratures for improved efficiency, hal-03695573,
<a href="https://hal.science/hal-03695573" target="_blank"/> (last access: 20 July 2026),
2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Chan(2018)</label><mixed-citation>
      
Chan: On discretely entropy conservative and entropy stable discontinuous
Galerkin methods, J. Comput. Phys., 362, 346–374, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Cockburn and Shu(1989)</label><mixed-citation>
      
Cockburn, B. and Shu, C.-W.: TVB Runge-Kutta Local Projection Discontinuous
Galerkin Finite Element Method for Conservation Laws II: General Framework,
Math. Comput., 52, 411–435, 1989.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Cockburn et al.(1989)Cockburn, Lin, and Shu</label><mixed-citation>
      
Cockburn, B., Lin, S.-Y., and Shu, C.-W.: TVB Runge-Kutta Local Projection
Discontinuous Galerkin Finite Element Method for Conservation Laws III:
One-Dimensional Systems, J. Comput. Phys., 84, 90–113, 1989.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Cockburn et al.(1990)Cockburn, Hou, and Shu</label><mixed-citation>
      
Cockburn, B., Hou, S., and Shu, C.-W.: The Runge-Kutta local projection
Discontinuous Galerkin Finite Element Method for Conservation Laws IV: the
multidimensional Case, Math. Comput., 54, 545–581, 1990.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Gassner and Winters(2021)</label><mixed-citation>
      
Gassner, G. J. and Winters, A. R.: A Novel Robust Strategy for Discontinuous
Galerkin Methods in Computational Fluid Mechanics: Why? When? What? Where?,
Front. Phys., 8, 1–24, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Gassner et al.(2018)Gassner, Winters, Hindenlang, and
Kopriva</label><mixed-citation>
      
Gassner, G. J., Winters, A. R., Hindenlang, F. J., and Kopriva, D. A.: The BR1
Scheme is Stable for the Compressible Navier-Stokes Equations, J. Sci.
Comp., 77, 154–200, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Giraldo(2001)</label><mixed-citation>
      
Giraldo, F. X.: A spectral element shallow water model on spherical geodesic
grids, Int. J. Num. Meth. Fluids, 35, 869–901, 2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Giraldo(2020)</label><mixed-citation>
      
Giraldo, F. X.: An Introduction to Element-Based Galerkin Methods on
Tensor-Product Bases, Springer, ISBN 978-3-030-55068-4, <a href="https://doi.org/10.1007/978-3-030-55069-1" target="_blank">https://doi.org/10.1007/978-3-030-55069-1</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Giraldo et al.(2010)Giraldo, Restelli, and
Läuter</label><mixed-citation>
      
Giraldo, F. X., Restelli, M., and Läuter, M.: Semi-implicit formulations of
the Navier-Stokes equations: aplications to nonhydrostatic atmospheric
modeling, SIAM J. Sci. Comput., 32, 3394–3425, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Giraldo et al.(2013)Giraldo, Kelly, and
Constantinescu</label><mixed-citation>
      
Giraldo, F. X., Kelly, J., and Constantinescu, E. M.: Implicit-Explicit
Formulations of a Three-Dimensional Nonhydrostatic Unified Model of the
Atmosphere (NUMA), SIAM J. Sci. Comput., 35, B1162–B1194, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Giraldo et al.(2024)Giraldo, de Bragança Alves, Kelly, Kang, and
Reinecke</label><mixed-citation>
      
Giraldo, F. X., de Bragança Alves, F. A., Kelly, J. F., Kang, S., and
Reinecke, P. A.: A performance study of horizontally explicit vertically
implicit (HEVI) time-integrators for non-hydrostatic atmospheric models,
J. Comput. Phys., 515, 113275,
<a href="https://doi.org/10.1016/j.jcp.2024.113275" target="_blank">https://doi.org/10.1016/j.jcp.2024.113275</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Held and Suarez(1994)</label><mixed-citation>
      
Held, I. M. and Suarez, M. J.: A Proposal for the Intercomparison of the
Dynamical Cores of Atmospheric General Circulation Models, B. Am. Meteorol.
Soc., 75, 1825–1830, 1994.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Hesthaven and Warburton(2008)</label><mixed-citation>
      
Hesthaven, J. S. and Warburton, T.: Nodal Discontinuous Galerkin Methods,
Springer, ISBN 978-0-387-72065-4, <a href="https://doi.org/10.1007/978-0-387-72067-8" target="_blank">https://doi.org/10.1007/978-0-387-72067-8</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Jablonowski and Williamson(2006)</label><mixed-citation>
      
Jablonowski, C. and Williamson, D. L.: A baroclinic instability test case for
atmospheric model dynamical cores, Q. J. Roy. Meteor. Soc., 132,
2943–2975, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Karniadakis and Sherwin(2005)</label><mixed-citation>
      
Karniadakis, G. E. and Sherwin, S. J.: Spectral/hp Element Methods for
Computational Fluid Dynamics, Oxford University Press, Oxford, ISBN
0198528698, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Krais et al.(2021)Krais, Beck, Bolemann, Frank, Flad, Gassner,
Hindenlang, Hoffmann, Kuhn, Sonntag, and Munz</label><mixed-citation>
      
Krais, N., Beck, A., Bolemann, T., Frank, H., Flad, D., Gassner, G.,
Hindenlang, F., Hoffmann, M., Kuhn, T., Sonntag, M., and Munz, C.-D.: FLEXI:
A high order discontinuous Galerkin framework for hyperbolic–parabolic
conservation laws, Comput. Math. Appl., 81, 186–219,
<a href="https://doi.org/10.1016/j.camwa.2020.05.004" target="_blank">https://doi.org/10.1016/j.camwa.2020.05.004</a>,   2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Kronbichler and Kormann(2017)</label><mixed-citation>
      
Kronbichler, M. and Kormann, K.: Fast Matrix-Free Evaluation of Discontinuous Galerkin Finite Element Operators, ACM Trans. Math. Softw. 45,   40 pp., <a href="https://doi.org/10.1145/3325864" target="_blank">https://doi.org/10.1145/3325864</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Kronbichler et al.(2019)Kronbichler, Kormann, Fehn, Munch, and
Witte</label><mixed-citation>
      
Kronbichler, M., Kormann, K., Fehn, N., Munch, P., and Witte, J.: A
Hermite-like basis for faster matrix-free evaluation of interior penalty
discontinuous Galerkin operators, arXiv [preprint],
<a href="https://doi.org/10.48550/arXiv.1907.08492" target="_blank">https://doi.org/10.48550/arXiv.1907.08492</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Landau and Lifshitz(1987)</label><mixed-citation>
      
Landau, L. D. and Lifshitz, E. M.: Fluid Mechanics, Volume 6 of Course of
Theoretical Physics, Pergamon Press, 2nd Edn., ISBN 978-0-08-033933-7, 1987.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Landmann(2008)</label><mixed-citation>
      
Landmann, B.: A parallel discontinuous Galerkin code for the Navier-Stokes and
Reynolds-averaged Navier-Stokes equations, Ph.D. thesis, Universität
Stuttgart, <a href="https://doi.org/10.18419/opus-3771" target="_blank">https://doi.org/10.18419/opus-3771</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Läuter et al.(2008)Läuter, Giraldo, Handorf, and
Dethloff</label><mixed-citation>
      
Läuter, M., Giraldo, F. X., Handorf, D., and Dethloff, K.: A discontinuous
Galerkin method for the shallow water equations in spherical triangular
coordinates, J. Comput. Phys., 227, 10226–10242, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Lock et al.(2014)Lock, Wood, and Weller</label><mixed-citation>
      
Lock, S.-J., Wood, N., and Weller, H.: Numerical analyses of Runge-Kutta
implicit-explicit schemes for horizontally explicit, vertically implicit
solutions of atmospheric models, Q. J. Roy. Meteor. Soc., 140, 1654–1669, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Meister et al.(2012)Meister, Ortleb, and Sonar</label><mixed-citation>
      
Meister, A., Ortleb, S., and Sonar, T.: Application of Spectral Filtering to
Discontinuous Galerkin Methods on Triangulations, Num. Meth. PDEs., 28, 1840–1868, <a href="https://doi.org/10.1002/num.20705" target="_blank">https://doi.org/10.1002/num.20705</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Michoski et al.(2016)Michoski, Dawson, Kubatko, Wirasaet, Brus, and
Westerink</label><mixed-citation>
      
Michoski, C., Dawson, C., Kubatko, E. J., Wirasaet, D., Brus, S., and
Westerink, J. J.: A Comparison of Artificial Viscosity, Limiters, and
Filters, for High Order Discontinuous Galerkin Solutions in Nonlinear
Settings, J. Sci. Comput., 66, 406–434, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Montoya et al.(2026)Montoya, Rueda-Ramírez, and
Gassner</label><mixed-citation>
      
Montoya, T., Rueda-Ramírez, A. M., and Gassner, G. J.: Entropy-stable
discontinuous spectral-element methods for the spherical shallow water
equations in covariant form, J. Comput. Phys. 555, 114782, <a href="https://doi.org/10.1016/j.jcp.2026.114782" target="_blank">https://doi.org/10.1016/j.jcp.2026.114782</a>,
2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Orgis et al.(2017)Orgis, Läuter, Handorf, and
Dethloff</label><mixed-citation>
      
Orgis, T., Läuter, M., Handorf, D., and Dethloff, K.: Baroclinic waves on
the <i>β</i>-plane using low-order Discontinuous Galerkin discretisation, J.
Comput. Phys., 339, 461–481, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Pareschi and Russo(2005)</label><mixed-citation>
      
Pareschi, L. and Russo, G.: Implicit-Explicit Runge–Kutta Schemes and
Applications to Hyperbolic Systems with Relaxation, J. Sci. Comput., 25,
129–155, <a href="https://doi.org/10.1007/s10915-004-4636-4" target="_blank">https://doi.org/10.1007/s10915-004-4636-4</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Persson and Peraire(2006)</label><mixed-citation>
      
Persson, P.-O. and Peraire, J.: Sub-cell shock capturing for discontinuous
Galerkin methods, in: Collection of Technical Papers – 44th AIAA Aerospace
Sciences MeetingConference Paper, <a href="https://doi.org/10.2514/6.2006-112" target="_blank">https://doi.org/10.2514/6.2006-112</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Reddy et al.(2023)Reddy, Waruszewski, de Braganca Alves, and
Giraldo</label><mixed-citation>
      
Reddy, S., Waruszewski, M., de Braganca Alves, F. A. V., and Giraldo, F. X.:
Schur complement IMplicit-EXplicit formulations for discontinuous Galerkin
non-hydrostatic atmospheric models, J. Comput. Phys., 491, 112361, <a href="https://doi.org/10.1016/j.jcp.2023.112361" target="_blank">https://doi.org/10.1016/j.jcp.2023.112361</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Rueda-Ramírez et al.(2021)Rueda-Ramírez, Ferrer, Kopriva, Rubio,
and Valero</label><mixed-citation>
      
Rueda-Ramírez, A. M., Ferrer, E., Kopriva, D. A., Rubio, G., and Valero, E.: A
statically condensed discontinuous Galerkin spectral element method on
Gauss-Lobatto nodes for the compressible Navier-Stokes equations, J.
Comput. Phys., 426, 109953,
<a href="https://doi.org/10.1016/j.jcp.2020.109953" target="_blank">https://doi.org/10.1016/j.jcp.2020.109953</a>, 2021.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Schuster et al.(2014)Schuster, Brdar, Baldauf, Dedner, Klöfkorn,
and Kröner</label><mixed-citation>
      
Schuster, D., Brdar, S., Baldauf, M., Dedner, A., Klöfkorn, R., and Kröner,
D.: On discontinuous Galerkin approach for atmospheric flow in the mesoscale
with and without moisture, Meteorol. Z., 23, 449–464,
<a href="https://doi.org/10.1127/0941-2948/2014/0565" target="_blank">https://doi.org/10.1127/0941-2948/2014/0565</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Smith(1980)</label><mixed-citation>
      
Smith, R. B.: Linear theory of stratified hydrostatic flow past an isolated
mountain, Tellus, 32, 348–364, 1980.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Souza et al.(2023)Souza, He, Bischoff, Waruszewski, Novak, Barra,
Gibson, Sridhar, Kandala, Byrne, Wilcox, Kozdon, Giraldo, Knoth, Marshall,
Ferrari, and Schneider</label><mixed-citation>
      
Souza, A. N., He, J., Bischoff, T., Waruszewski, M., Novak, L., Barra, V.,
Gibson, T., Sridhar, A., Kandala, S., Byrne, S., Wilcox, L. C., Kozdon, J.,
Giraldo, F. X., Knoth, O., Marshall, J., Ferrari, R., and Schneider, T.: The
Flux-Differencing Discontinuous Galerkin Method Applied to an Idealized Fully
Compressible Nonhydrostatic Dry Atmosphere, J. Adv. Model. Earth Sy., 15,
<a href="https://doi.org/10.1029/2022MS003527" target="_blank">https://doi.org/10.1029/2022MS003527</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Staniforth and White(2011)</label><mixed-citation>
      
Staniforth, A. and White, A. A.: Further non-separable exact solutions of the
deep- and shallow-atmosphere equations, Atm. Sci. Lett., 12, 356–361, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Straka et al.(1993)Straka, Wilhelmson, Wicker, Anderson, and
Droegemeier</label><mixed-citation>
      
Straka, J. M., Wilhelmson, R. B., Wicker, L. J., Anderson, J. R., and
Droegemeier, K. K.: Numerical solutions of a non-linear density current: a
benchmark solution and comparisons, Int. J. Num. Meth. Fluids, 17, 1–22,
1993.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Ullrich et al.(2014)Ullrich, Melvin, Jablonowski, and
Staniforth</label><mixed-citation>
      
Ullrich, P. A., Melvin, T., Jablonowski, C., and Staniforth, A.: A proposed
baroclinic wave test for deep- and shallow-atmosphere dynamical cores,
Q. J. Roy. Meteor. Soc., 140, 1590–1602, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Vandeven(1991)</label><mixed-citation>
      
Vandeven, H.: Family of spectral filters for discontinuous problems, J. Sci.
Comp., 6, 159–192, <a href="https://doi.org/10.1007/BF01062118" target="_blank">https://doi.org/10.1007/BF01062118</a>, 1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Waruszewski et al.(2022)Waruszewski, Kozdon, Wilcox, Gibson, and
Giraldo</label><mixed-citation>
      
Waruszewski, M., Kozdon, J. E., Wilcox, L. C., Gibson, T. H., and Giraldo,
F. X.: Entropy stable discontinuous Galerkin methods for balance laws in
non-conservative form: Applications to the Euler equations with gravity, J.
Comput. Phys., 468, 111507, <a href="https://doi.org/10.1016/j.jcp.2022.111507" target="_blank">https://doi.org/10.1016/j.jcp.2022.111507</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Williams et al.(2014)Williams, Shunn, and Jameson</label><mixed-citation>
      
Williams, D. M., Shunn, L., and Jameson, A.: Symmetric quadrature rules for
simplexes based on sphere close packed lattice arrangements, J. Comput.
Appl. Math., 266, 18–38, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Zängl(2012)</label><mixed-citation>
      
Zängl, G.: Extending the Numerical Stability Limit of Terrain-Following
Coordinate Models over Steep Slopes, Mon. Weather Rev., 140, 3722–3733, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Zängl et al.(2015)Zängl, Reinert, Ripodas, and
Baldauf</label><mixed-citation>
      
Zängl, G., Reinert, D., Ripodas, P., and Baldauf, M.: The ICON (ICOsahedral
Non-hydrostatic) modelling framework of DWD and MPI-M: Description of the
non-hydrostatic dynamical core, Q. J. Roy. Meteor. Soc., 141, 563–579,
<a href="https://doi.org/10.1002/qj.2378" target="_blank">https://doi.org/10.1002/qj.2378</a>, 2015.

    </mixed-citation></ref-html>--></article>
