<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "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-14-3577-2021</article-id><title-group><article-title>LISFLOOD-FP 8.0: the new discontinuous Galerkin shallow-water solver for multi-core CPUs and GPUs</article-title><alt-title>LISFLOOD-FP 8.0: the new discontinuous Galerkin shallow-water solver</alt-title>
      </title-group><?xmltex \runningtitle{LISFLOOD-FP 8.0: the new discontinuous Galerkin shallow-water solver}?><?xmltex \runningauthor{J. Shaw et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Shaw</surname><given-names>James</given-names></name>
          <email>js102@zepler.net</email>
        <ext-link>https://orcid.org/0000-0002-0928-3604</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Kesserwani</surname><given-names>Georges</given-names></name>
          <email>g.kesserwani@sheffield.ac.uk</email>
        <ext-link>https://orcid.org/0000-0003-1125-8384</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Neal</surname><given-names>Jeffrey</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-5793-9594</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Bates</surname><given-names>Paul</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-9192-9963</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Sharifian</surname><given-names>Mohammad Kazem</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-3150-5162</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Department of Civil and Structural Engineering, The University of Sheffield, Western Bank, Sheffield, UK</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>School of Geographical Sciences, University of Bristol, Bristol, UK</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">James Shaw (js102@zepler.net) and Georges Kesserwani (g.kesserwani@sheffield.ac.uk)</corresp></author-notes><pub-date><day>11</day><month>June</month><year>2021</year></pub-date>
      
      <volume>14</volume>
      <issue>6</issue>
      <fpage>3577</fpage><lpage>3602</lpage>
      <history>
        <date date-type="received"><day>8</day><month>October</month><year>2020</year></date>
           <date date-type="rev-request"><day>30</day><month>October</month><year>2020</year></date>
           <date date-type="rev-recd"><day>4</day><month>April</month><year>2021</year></date>
           <date date-type="accepted"><day>5</day><month>May</month><year>2021</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2021 James Shaw et al.</copyright-statement>
        <copyright-year>2021</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/14/3577/2021/gmd-14-3577-2021.html">This article is available from https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021.pdf</self-uri>
      <abstract><title>Abstract</title>
    <p id="d1e126">LISFLOOD-FP 8.0 includes second-order discontinuous Galerkin (DG2) and first-order finite-volume (FV1) solvers of the two-dimensional shallow-water equations for modelling a wide range of flows, including rapidly propagating, supercritical flows, shock waves or flows over very smooth surfaces.
The solvers are parallelised on multi-core CPU and Nvidia GPU architectures and run existing LISFLOOD-FP modelling scenarios without modification.
These new, fully two-dimensional solvers are available alongside the existing local inertia solver (called ACC), which is optimised for multi-core CPUs and integrates with the LISFLOOD-FP sub-grid channel model.
The predictive capabilities and computational scalability of the new DG2 and FV1 solvers are studied for two Environment Agency benchmark tests and a real-world fluvial flood simulation driven by rainfall across a 2500 <inline-formula><mml:math id="M1" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> catchment.
DG2's second-order-accurate, piecewise-planar representation of topography and flow variables enables predictions on coarse grids that are competitive with FV1 and ACC predictions on 2–4 times finer grids, particularly where river channels are wider than half the grid spacing.
Despite the simplified formulation of the local inertia solver, ACC is shown to be spatially second-order-accurate and yields predictions that are close to DG2. The DG2-CPU and FV1-CPU solvers achieve near-optimal scalability up to 16 CPU cores and achieve greater efficiency on grids with fewer than 0.1 million elements. The DG2-GPU and FV1-GPU solvers are most efficient on grids with more than 1 million elements, where the GPU solvers are 2.5–4 times faster than the corresponding 16-core CPU solvers. LISFLOOD-FP 8.0 therefore marks a new step towards operational DG2 flood inundation modelling at the catchment scale.
LISFLOOD-FP 8.0 is freely available under the GPL v3 license, with additional documentation and case studies at <uri>https://www.seamlesswave.com/LISFLOOD8.0</uri> (last access: 2 June 2021).</p>
  </abstract>
    </article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d1e152">LISFLOOD-FP is a freely available raster-based hydrodynamic model that has been applied in numerous studies from small-scale <xref ref-type="bibr" rid="bib1.bibx52" id="paren.1"/> and reach-scale <xref ref-type="bibr" rid="bib1.bibx33 bib1.bibx57 bib1.bibx48" id="paren.2"/> to continental and global flood forecasting applications <xref ref-type="bibr" rid="bib1.bibx65 bib1.bibx54" id="paren.3"/>. LISFLOOD-FP has been coupled to several hydrological models <xref ref-type="bibr" rid="bib1.bibx18 bib1.bibx51 bib1.bibx30" id="paren.4"/>, and it offers simple text file configuration and command-line tools to facilitate DEM preprocessing and sensitivity analyses <xref ref-type="bibr" rid="bib1.bibx59" id="paren.5"/>.
LISFLOOD-FP includes extension modules to provide efficient rainfall routing <xref ref-type="bibr" rid="bib1.bibx53" id="paren.6"/>, modelling of hydraulic structures <xref ref-type="bibr" rid="bib1.bibx64 bib1.bibx58" id="paren.7"/>, and coupling between two-dimensional flood-plain solvers and a one-dimensional sub-grid channel model <xref ref-type="bibr" rid="bib1.bibx44" id="paren.8"/>.</p>
      <p id="d1e180">LISFLOOD-FP already includes a local inertia (or “gravity wave”) solver, LISFLOOD-ACC, and a diffusive wave (or “zero-inertia”) solver, LISFLOOD-ATS.  The LISFLOOD-ACC solver simplifies the full shallow-water equations by neglecting convective acceleration, while LISFLOOD-ATS neglects both convective and inertial acceleration. The LISFLOOD-ACC solver is recommended for simulating fluvial, pluvial and coastal flooding, involving gradually<?pagebreak page3578?> varying, subcritical flow over sufficiently rough surfaces with Manning's coefficient of at least 0.03 <inline-formula><mml:math id="M2" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">sm</mml:mi><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:msup></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx45 bib1.bibx11" id="paren.9"/>. For such flows, LISFLOOD-ACC was reported to be up to 67 times faster than LISFLOOD-ATS, which has a stricter, quadratic CFL constraint <xref ref-type="bibr" rid="bib1.bibx43 bib1.bibx19" id="paren.10"/>, and about 3 times faster than a full shallow-water solver <xref ref-type="bibr" rid="bib1.bibx45" id="paren.11"/>. However, given the theoretical limitations of the local inertia equations <xref ref-type="bibr" rid="bib1.bibx11 bib1.bibx35 bib1.bibx10" id="paren.12"/>, a full shallow-water solver is still required for simulating dam breaks <xref ref-type="bibr" rid="bib1.bibx45" id="paren.13"/> and flash floods in steep catchments <xref ref-type="bibr" rid="bib1.bibx29" id="paren.14"/>, involving rapidly varying, supercritical flows, shock waves or flows over very smooth surfaces.</p>
      <p id="d1e220">The potential benefits of a second-order discontinuous Galerkin (DG2) shallow-water solver for flood inundation modelling have recently been demonstrated by <xref ref-type="bibr" rid="bib1.bibx2" id="text.15"/>: DG2 alleviates numerical diffusion errors associated with first-order finite-volume (FV1) methods, meaning DG2 can capture fine-scale transients in flood hydrographs on relatively coarse grids over long-duration simulations thanks to its piecewise-planar representation of topography and flow variables. Within a computational element on a raster grid, each locally planar variable is represented by three coefficients – the element-average, <inline-formula><mml:math id="M3" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-slope and <inline-formula><mml:math id="M4" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-slope coefficients – which are updated by a two-stage Runge–Kutta time-stepping scheme. Due to its second-order formulation, DG2 can be 4–12 times slower per element than an FV1 solver depending on the test case <xref ref-type="bibr" rid="bib1.bibx23" id="paren.16"/>, though substantial speed-ups have already been achieved: switching from a standard tensor-product stencil to a simplified, slope-decoupled stencil of <xref ref-type="bibr" rid="bib1.bibx26" id="text.17"/> achieved a 2.6-fold speed-up, and avoiding unnecessary local slope limiting achieved an additional 2-fold speed-up <xref ref-type="bibr" rid="bib1.bibx2" id="paren.18"/>, while preserving accuracy, conservation and robustness properties for shockless flows.</p>
      <p id="d1e250">Second-order finite-volume (FV2) methods offer an alternative approach to obtain second-order accuracy, with many FV2 models adopting the Monotonic
Upstream-centred Scheme for Conservation Laws (MUSCL) method.
While FV2-MUSCL solvers can achieve second-order convergence <xref ref-type="bibr" rid="bib1.bibx24" id="paren.19"/>, the MUSCL method relies on global slope limiting and non-local, linear reconstructions across neighbouring elements that can affect energy conservation properties <xref ref-type="bibr" rid="bib1.bibx2" id="paren.20"/> and affect wave arrival times when the grid is too coarse <xref ref-type="bibr" rid="bib1.bibx24" id="paren.21"/>.
Hence, although FV2-MUSCL is typically 2–10 times faster than DG2 per element <xref ref-type="bibr" rid="bib1.bibx2" id="paren.22"/>, DG2 can improve accuracy and conservation properties on coarse grids, which is particularly desirable for efficient, long-duration continental- or global-scale simulations that rely on DEM products derived from satellite data <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx69" id="paren.23"/>.</p>
      <p id="d1e269">Parallelisation is the next step towards making DG2 flood modelling operational on large-scale, high-resolution domains. Existing LISFLOOD-FP solvers are parallelised using OpenMP for multi-core CPUs, which have been tested on domains with up to 23 million elements on a 16-core CPU <xref ref-type="bibr" rid="bib1.bibx42 bib1.bibx46" id="paren.24"/>. But as flood models are applied to increasingly large domains at increasingly fine resolutions, a greater degree of parallelism can be achieved using GPU accelerators <xref ref-type="bibr" rid="bib1.bibx6" id="paren.25"/>. For example, <xref ref-type="bibr" rid="bib1.bibx15" id="text.26"/> compared Iber+ hydrodynamic model runs on a GPU against a 16-core CPU and obtained a 4–15-fold speed-up depending on the test case. Running in a multi-GPU configuration, the TRITON model has been applied on a 6800 <inline-formula><mml:math id="M5" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> domain with 68 million elements to simulate a 10 d storm event in under 30 min <xref ref-type="bibr" rid="bib1.bibx41" id="paren.27"/>, and the HiPIMS model was applied on a 2500 <inline-formula><mml:math id="M6" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> domain with 100 million elements to simulate a 4 d storm event in 1.5 d <xref ref-type="bibr" rid="bib1.bibx68" id="paren.28"/>.</p>
      <p id="d1e310">This paper presents a new LISFLOOD-DG2 solver of the full shallow-water equations, which is integrated into LISFLOOD-FP 8.0 and freely available under the GNU GPL v3 license <xref ref-type="bibr" rid="bib1.bibx32" id="paren.29"/>. LISFLOOD-FP 8.0 also includes an updated FV1 solver obtained by simplifying the DG2 formulation. Both solvers support standard LISFLOOD-FP configuration parameters and model outputs, meaning that many existing LISFLOOD-FP modelling scenarios can run without modification.
Since the new DG2 and FV1 solvers are purely two-dimensional and parallelised for multi-core CPU and GPU architectures, the new solvers do not currently integrate with the LISFLOOD-FP sub-grid channel model <xref ref-type="bibr" rid="bib1.bibx44" id="paren.30"/> or incorporate the CPU-specific optimisations available to the ACC solver <xref ref-type="bibr" rid="bib1.bibx46" id="paren.31"/>.</p>
      <p id="d1e322">The paper is structured as follows: Sect. <xref ref-type="sec" rid="Ch1.S2"/> presents the LISFLOOD-DG2 and FV1 formulations and the parallelisation strategies using OpenMP for multi-core CPU architectures and CUDA for Nvidia GPU architectures. Section <xref ref-type="sec" rid="Ch1.S3"/> evaluates the DG2, FV1 and ACC solvers across three flood inundation test cases. The first two cases reproduce Environment Agency benchmark tests <xref ref-type="bibr" rid="bib1.bibx47" id="paren.32"/>: the first case simulates a slowly propagating wave over a flat floodplain, measuring computational scalability on multi-core CPU and GPU architectures and comparing the spatial grid convergence of DG2, FV1 and ACC predictions; the second case simulates a rapidly propagating wave along a narrow valley with irregular topography, assessing the solver capabilities for modelling supercritical flow. The final case reproduces fluvial flooding over the 2500 <inline-formula><mml:math id="M7" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Eden catchment in north-west England, caused by Storm Desmond in December 2015 <xref ref-type="bibr" rid="bib1.bibx68" id="paren.33"/>. This is the first assessment of a DG2 hydrodynamic model in simulating a real-world storm event at catchment scale, with overland flow driven entirely by spatially and temporally varying rainfall data. Concluding remarks are made in Sect. <xref ref-type="sec" rid="Ch1.S4"/>.
Additional LISFLOOD-FP 8.0 documentation and further test cases are available at <uri>https://www.seamlesswave.com/LISFLOOD8.0</uri> (last access: 2 June 2021).</p>
</sec>
<?pagebreak page3579?><sec id="Ch1.S2">
  <label>2</label><title>The LISFLOOD-FP model</title>
      <p id="d1e360">LISFLOOD-FP 8.0 includes a new second-order discontinuous Galerkin (DG2) solver and an updated first-order finite-volume (FV1) solver that simulate two-dimensional shallow-water flows. The new DG2 and FV1 formulations and the existing LISFLOOD-ACC formulation are described in the following subsections.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>The new LISFLOOD-DG2 solver</title>
      <p id="d1e370">The LISFLOOD-DG2 solver implements the DG2 formulation of <xref ref-type="bibr" rid="bib1.bibx26" id="text.34"/> that adopts a simplified “slope-decoupled” stencil compatible with raster-based Godunov-type finite-volume solvers.
Piecewise-planar topography, water depth and discharge fields are modelled by an element-average coefficient and dimensionally independent <inline-formula><mml:math id="M8" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-slope and <inline-formula><mml:math id="M9" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-slope coefficients.
This DG2 formulation achieves well-balancedness for all discharge coefficients in the presence of irregular, piecewise-planar topography with wetting and drying <xref ref-type="bibr" rid="bib1.bibx26" id="paren.35"/>.
A piecewise-planar treatment of the friction term is applied to all discharge coefficients prior to each time step, based on the split implicit friction scheme of <xref ref-type="bibr" rid="bib1.bibx31" id="text.36"/>.
Informed by the findings of <xref ref-type="bibr" rid="bib1.bibx2" id="text.37"/>, the automatic local slope limiter option in LISFLOOD-DG2 is deactivated for the flood-like test cases presented in Sect. <xref ref-type="sec" rid="Ch1.S3"/>.
This slope-decoupled, no-limiter approach can achieve a 5-fold speed-up over a standard tensor-product stencil with local slope limiting <xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx2" id="paren.38"/>, meaning this DG2 formulation is expected to be particularly efficient for flood modelling applications.</p>
      <p id="d1e405">The DG2 formulation discretises the two-dimensional shallow-water equations, written in conservative vectorial form as
            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M10" display="block"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:msub><mml:mi>F</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:msub><mml:mi>G</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold">U</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold">U</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">R</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denote partial derivatives in the horizontal spatial dimensions <inline-formula><mml:math id="M14" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M15" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> and temporal dimension <inline-formula><mml:math id="M16" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>.
In Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>), <inline-formula><mml:math id="M17" display="inline"><mml:mi mathvariant="bold">U</mml:mi></mml:math></inline-formula>
is the vector of flow variables, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mi>F</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold">U</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:mi>G</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold">U</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are flux vectors in the <inline-formula><mml:math id="M20" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M21" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> directions, and <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M24" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> are source terms representing the topographic slope, frictional force and rainfall:

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M25" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="bold-italic">U</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>h</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi mathvariant="bold-italic">F</mml:mi><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>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">G</mml:mi><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>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msubsup><mml:mi>q</mml:mi><mml:mi>y</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E2"><mml:mtd><mml:mtext>2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><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:mi>h</mml:mi><mml:msub><mml:mo>∂</mml:mo><mml:mi>x</mml:mi></mml:msub><mml:mi>z</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>g</mml:mi><mml:mi>h</mml:mi><mml:msub><mml:mo>∂</mml:mo><mml:mi>y</mml:mi></mml:msub><mml:mi>z</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">R</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mi>R</mml:mi></mml:mtd></mml:mtr><mml:mtr><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:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            with water depth <inline-formula><mml:math id="M26" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> [<inline-formula><mml:math id="M27" display="inline"><mml:mi mathvariant="normal">L</mml:mi></mml:math></inline-formula>], unit-width discharges <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mi>v</mml:mi></mml:mrow></mml:math></inline-formula> [<inline-formula><mml:math id="M30" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="normal">L</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>/</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:mrow></mml:math></inline-formula>], and depth-averaged horizontal velocities <inline-formula><mml:math id="M31" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M32" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> [<inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:mi mathvariant="normal">L</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:mrow></mml:math></inline-formula>] in the <inline-formula><mml:math id="M34" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M35" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> directions respectively.
Units are notated in square brackets [<inline-formula><mml:math id="M36" display="inline"><mml:mo lspace="0mm">⋅</mml:mo></mml:math></inline-formula>], where <inline-formula><mml:math id="M37" display="inline"><mml:mi mathvariant="normal">L</mml:mi></mml:math></inline-formula> denotes unit length and <inline-formula><mml:math id="M38" display="inline"><mml:mi mathvariant="normal">T</mml:mi></mml:math></inline-formula> denotes unit time.
The two-dimensional topographic elevation data are denoted <inline-formula><mml:math id="M39" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> [<inline-formula><mml:math id="M40" display="inline"><mml:mi mathvariant="normal">L</mml:mi></mml:math></inline-formula>], and <inline-formula><mml:math id="M41" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> is the gravitational acceleration [<inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:mi mathvariant="normal">L</mml:mi><mml:mo>/</mml:mo><mml:msup><mml:mi mathvariant="normal">T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>].
The frictional forces in the <inline-formula><mml:math id="M43" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M44" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> directions are <inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mi>u</mml:mi><mml:msqrt><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mi>v</mml:mi><mml:msqrt><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>, where the friction function is <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>g</mml:mi><mml:msubsup><mml:mi>n</mml:mi><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>/</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is Manning's coefficient [<inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:mi mathvariant="normal">T</mml:mi><mml:mo>/</mml:mo><mml:msup><mml:mi mathvariant="normal">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>].
The prescribed rainfall rate is given by <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> [<inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:mi mathvariant="normal">L</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="normal">T</mml:mi></mml:mrow></mml:math></inline-formula>].</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><?xmltex \currentcnt{1}?><?xmltex \def\figurename{Figure}?><label>Figure 1</label><caption><p id="d1e1272">DG2 slope-decoupled stencil defined on a rectangular element centred at <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> with horizontal dimensions <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.  N, E, S  and W mark the northern, eastern, southern and western face centres, and Gx1, Gx2, Gy1 and Gy2 mark the four Gaussian quadrature points.</p></caption>
          <?xmltex \igopts{width=213.395669pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f01.png"/>

        </fig>

      <?pagebreak page3580?><p id="d1e1334">The DG2 discretisation of Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) is compatible with existing LISFLOOD-FP data structures, being formulated on a raster grid of uniform rectangular elements. A rectangular element is shown in Fig. <xref ref-type="fig" rid="Ch1.F1"/>, centred at <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> with horizontal dimensions <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Within the element the discrete flow vector <inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and topography <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are represented by locally planar fields. Expressed as a scaled Legendre basis expansion <xref ref-type="bibr" rid="bib1.bibx23" id="paren.39"/>, the flow vector <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is written as

                <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M59" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mfenced close=")" open="("><mml:mrow><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mfenced close=")" open="("><mml:mrow><mml:mi>y</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></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="M60" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>  is the matrix of flow coefficients:

                <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M61" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          in which subscript <inline-formula><mml:math id="M62" display="inline"><mml:mn mathvariant="normal">0</mml:mn></mml:math></inline-formula> denotes the element-average coefficients and subscripts <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula> denote the linear slope coefficients in the <inline-formula><mml:math id="M65" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M66" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> directions.
The topography coefficients are
            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M67" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mtext>DG2</mml:mtext></mml:msubsup><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          which are initialised from a DEM raster file as described later in Sect. <xref ref-type="sec" rid="Ch1.S2.SS1.SSS1"/>.
Assembling all elements onto a raster grid yields piecewise-planar representations of topography and flow variables that intrinsically capture smooth, linear variations within each element, while simultaneously allowing flow discontinuities – such as hydraulic jumps and shock waves – to be captured at element interfaces.</p>
      <p id="d1e1903">By adopting the slope-decoupled form of <xref ref-type="bibr" rid="bib1.bibx26" id="text.40"/> that uses the local stencil shown in Fig. <xref ref-type="fig" rid="Ch1.F1"/>, the locally planar solution is easily evaluated at the four face centres (denoted N, S, E, W),

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M68" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">W</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E6"><mml:mtd><mml:mtext>6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">N</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            and at the four Gaussian quadrature points (denoted Gx1, Gx2, Gy1 and Gy2),

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M69" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.33em"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd><mml:mtext>7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            A standard splitting approach is adopted such that the friction source term <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">S</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and rainfall source term <inline-formula><mml:math id="M71" display="inline"><mml:mi mathvariant="bold-italic">R</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) are applied separately at the beginning of each time step.
By adopting a splitting approach, friction or rainfall source terms are only applied as required by the particular test case, for better runtime efficiency.
The discretisation of the friction source term is described later in Sect. <xref ref-type="sec" rid="Ch1.S2.SS1.SSS2"/> and the rainfall source term in Sect. <xref ref-type="sec" rid="Ch1.S2.SS1.SSS3"/>.
The remaining terms are the spatial fluxes and topographic slope terms, which are discretised by an explicit second-order two-stage Runge–Kutta scheme <xref ref-type="bibr" rid="bib1.bibx25" id="paren.41"/> to evolve the flow coefficients <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> from time level <inline-formula><mml:math id="M73" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> to <inline-formula><mml:math id="M74" 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>:<?xmltex \setcounter{equation}{7}?>

                <disp-formula id="Ch1.E8" specific-use="align" content-type="subnumberedsingle"><mml:math id="M75" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E8.9"><mml:mtd><mml:mtext>8a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mspace linebreak="nobreak" width="0.33em"/><mml:mi mathvariant="bold">L</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E8.10"><mml:mtd><mml:mtext>8b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><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 open="[" close="]"><mml:mrow><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mi mathvariant="bold">L</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where element indices <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> are omitted for clarity of presentation.
The initial time step <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> is a fixed value specified by the user, and the time step is updated thereafter according to the CFL condition using the maximum stable Courant number of 0.33 <xref ref-type="bibr" rid="bib1.bibx7" id="paren.42"/>.
The spatial operator <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> is<?xmltex \hack{\newpage}?><?xmltex \setcounter{equation}{8}?>

                <disp-formula id="Ch1.E11" specific-use="align" content-type="subnumberedsingle"><mml:math id="M79" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>-</mml:mo><mml:mfenced open="(" close=""><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></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:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">N</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E11.12"><mml:mtd><mml:mtext>9a</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mfenced open="" close=")"><mml:mrow><mml:mo>+</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=""><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold">U</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold">U</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E11.13"><mml:mtd><mml:mtext>9b</mml:mtext></mml:mtd><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced close=")" open=""><mml:mrow><mml:mo>+</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close="" open="("><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">S</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">N</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold">U</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo>(</mml:mo><mml:msubsup><mml:mover accent="true"><mml:mi mathvariant="bold">U</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E11.14"><mml:mtd><mml:mtext>9c</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced open="" close=")"><mml:mrow><mml:mo>+</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><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:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            in which variables with an overline denote temporary modifications to the original variables that ensure well-balancedness and non-negative water depths <xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx31" id="paren.43"/> and <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">N</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> denote HLL approximate Riemann fluxes across western, eastern, northern and southern interfaces. Each Riemann solution resolves the discontinuity between the flow variables evaluated at the limits of the locally planar solutions adjacent to the interface. Because of the locally planar nature of the DG2 solutions, such a discontinuity is likely to be very small when the flow is smooth – as is often the case for flood inundation events – and will not be significantly enlarged by grid coarsening.</p>
      <p id="d1e3280">While LISFLOOD-DG2 is equipped with a generalised minmod slope limiter <xref ref-type="bibr" rid="bib1.bibx7" id="paren.44"/> localised by the Krivodonova shock detector <xref ref-type="bibr" rid="bib1.bibx28" id="paren.45"/>, the automatic local slope limiter was deactivated for the sake of efficiency: none of the test cases presented in Sect. <xref ref-type="sec" rid="Ch1.S3"/> involve shock wave propagation since all waves propagate over an initially dry bed and are rapidly retarded by frictional forces <xref ref-type="bibr" rid="bib1.bibx47 bib1.bibx68" id="paren.46"/>.
The lack of shock wave propagation means that all LISFLOOD-FP solvers – DG2, FV1 and ACC – are capable of realistically simulating all test cases presented in Sect. <xref ref-type="sec" rid="Ch1.S3"/>.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2"><?xmltex \currentcnt{2}?><?xmltex \def\figurename{Figure}?><label>Figure 2</label><caption><p id="d1e3298">Flow chart of operations for the DG2 formulation (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>).</p></caption>
          <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f02.png"/>

        </fig>

<sec id="Ch1.S2.SS1.SSS1">
  <label>2.1.1</label><title>Initialisation of piecewise-planar topography coefficients from a DEM raster file</title>
      <p id="d1e3316">The topography coefficients <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> are initialised to ensure the resulting piecewise-planar topography is continuous at face centres, where Riemann fluxes are<?pagebreak page3581?> calculated and the wetting-and-drying treatment is applied under the well-balancedness property <xref ref-type="bibr" rid="bib1.bibx26" id="paren.47"/>.
The topographic elevations at the N, S, E and W face centres are calculated by averaging the DEM raster values taken at the NW, NE, SW and SE vertices (Fig. <xref ref-type="fig" rid="Ch1.F1"/>) such that <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">N</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">NW</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">NE</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> and similarly for <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo></mml:mrow><mml:mi mathvariant="normal">W</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.
The element-average coefficient <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is then calculated as<?xmltex \hack{\newpage}?><?xmltex \setcounter{equation}{9}?>

                  <disp-formula id="Ch1.E15.16" content-type="subnumberedon"><label>10a</label><mml:math id="M90" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced open="[" close="]"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">NW</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">SW</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">NE</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">SE</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            while the slope coefficients <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are calculated as the gradients across opposing face centres:

                  <disp-formula specific-use="align" content-type="subnumberedoff"><mml:math id="M93" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E15.17"><mml:mtd><mml:mtext>10b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><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:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">W</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E15.18"><mml:mtd><mml:mtext>10c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><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:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">N</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi mathvariant="normal">S</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              LISFLOOD-FP 8.0 includes a utility application, generateDG2DEM, that loads an existing DEM raster file and outputs new raster files containing the element-average, <inline-formula><mml:math id="M94" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-slope and <inline-formula><mml:math id="M95" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-slope topography coefficients, ready to be loaded by the LISFLOOD-DG2 solver.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS2">
  <label>2.1.2</label><title>Discretisation of the friction source term</title>
      <p id="d1e3821">The discretisation of the friction source term is based on the split implicit scheme of <xref ref-type="bibr" rid="bib1.bibx31" id="text.48"/>.
Without numerical stabilisation, the friction function <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>g</mml:mi><mml:msubsup><mml:mi>n</mml:mi><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>/</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> can grow exponentially as the water depth vanishes at a wet–dry front, but the scheme adopted here is designed to ensure numerical stability by limiting the frictional force to prevent unphysical flow reversal.</p>
      <?pagebreak page3582?><p id="d1e3861">The implicit friction scheme is solved directly <xref ref-type="bibr" rid="bib1.bibx31" id="paren.49"><named-content content-type="pre">see</named-content><named-content content-type="post">Sect. 3.4</named-content></xref> such that frictional forces are applied to the <inline-formula><mml:math id="M97" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-directional discharge component <inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> over a time step <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula>, yielding a retarded discharge component <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>:<?xmltex \setcounter{equation}{10}?>

                  <disp-formula id="Ch1.E19.20" content-type="subnumberedon"><label>11a</label><mml:math id="M101" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="script">D</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where the denominator <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">D</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is

                  <disp-formula id="Ch1.E19.21" content-type="subnumberedoff"><label>11b</label><mml:math id="M103" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="script">D</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            To update the element-average discharge coefficient <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, Eq. (11) is evaluated at the element centre:<?xmltex \setcounter{equation}{11}?>

                  <disp-formula id="Ch1.E22.23" content-type="subnumberedon"><label>12a</label><mml:math id="M105" display="block"><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            while the slope coefficients <inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:msub><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are updated by calculating the <inline-formula><mml:math id="M108" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>  and <inline-formula><mml:math id="M109" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> gradients using evaluations of Eq. (11) at Gaussian quadrature points Gx1, Gx2, and Gy1, Gy2 (Fig. <xref ref-type="fig" rid="Ch1.F1"/>):

                  <disp-formula specific-use="align" content-type="subnumberedoff"><mml:math id="M110" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E22.24"><mml:mtd><mml:mtext>12b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>n</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:mstyle class="stylechange" displaystyle="true"/><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:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gx</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E22.25"><mml:mtd><mml:mtext>12c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>n</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:mstyle displaystyle="true" class="stylechange"/><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:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Gy</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              Similarly, frictional forces are applied to the <inline-formula><mml:math id="M111" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-directional discharge component <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> yielding a retarded discharge <inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>:<?xmltex \hack{\newpage}?><?xmltex \setcounter{equation}{12}?>

                  <disp-formula id="Ch1.E26" specific-use="align" content-type="subnumberedsingle"><mml:math id="M114" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E26.27"><mml:mtd><mml:mtext>13a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>q</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">U</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi mathvariant="normal">f</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="script">D</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E26.28"><mml:mtd><mml:mtext>13b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="script">D</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:msqrt><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              While this friction scheme has been successfully adopted in finite-volume and discontinuous Galerkin settings for modelling dam break flows and urban flood events <xref ref-type="bibr" rid="bib1.bibx62 bib1.bibx24" id="paren.50"/>, it can exhibit spuriously large velocities and correspondingly small time steps for large-scale, rainfall-induced overland flows, involving widespread, very thin water layers flowing down hill slopes and over steep riverbanks, as demonstrated by <xref ref-type="bibr" rid="bib1.bibx67" id="text.51"/>.
Due to the involvement of the slope coefficients, water depths at Gaussian quadrature points can be much smaller (and velocities much larger) than the element-average values.
Therefore, for overland flow simulations, the LISFLOOD-DG2 time step size is expected to be substantially reduced compared to LISFLOOD-FV1, which only involves element-average values.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS3">
  <label>2.1.3</label><title>Discretisation of the rainfall source term</title>
      <p id="d1e4605">The discretisation of the rainfall source term evolves the water depth element-average coefficients <inline-formula><mml:math id="M115" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>:
              <disp-formula id="Ch1.E29" content-type="numbered"><label>14</label><mml:math id="M116" display="block"><mml:mrow><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
            where <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> denotes the prescribed rainfall rate at element <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and time level <inline-formula><mml:math id="M119" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>.
Equation (<xref ref-type="disp-formula" rid="Ch1.E29"/>) is first-order-accurate in space and time, which is deemed sufficient since rainfall data are typically available at far coarser spatial and temporal resolutions than the computation grid, leading to zero element-wise slope coefficients for the rainfall source term.</p>
      <p id="d1e4737">Recall that the rainfall source term, friction source term, and remaining flux and bed slope terms are treated separately such that, at each time step, the flow variables updated by Eq. (<xref ref-type="disp-formula" rid="Ch1.E29"/>) are subsequently updated by Eq. (12), and finally by Eqs. (<xref ref-type="disp-formula" rid="Ch1.E8"/>)–(<xref ref-type="disp-formula" rid="Ch1.E11"/>).
The complete DG2 model workflow is summarised by the flow chart in Fig. <xref ref-type="fig" rid="Ch1.F2"/>, wherein each operation is parallelised using the CPU and GPU parallelisation strategies discussed next.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3"><?xmltex \currentcnt{3}?><?xmltex \def\figurename{Figure}?><label>Figure 3</label><caption><p id="d1e4750"><bold>(a)</bold> OpenMP nested loop implementation to apply any update operation across a grid of (Nx <inline-formula><mml:math id="M120" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> Ny) elements, processing rows in parallel; <bold>(b)</bold> CUDA nested grid-stride loop implementation to process 2D blocks in parallel.</p></caption>
            <?xmltex \igopts{width=213.395669pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f03.png"/>

          </fig>

</sec>
<sec id="Ch1.S2.SS1.SSS4">
  <label>2.1.4</label><title>OpenMP parallelisation for multi-core CPUs</title>
      <p id="d1e4779">The LISFLOOD-DG2-CPU solver adopts OpenMP to process rows of the computational grid in parallel using the nested loop structure in Fig. <xref ref-type="fig" rid="Ch1.F3"/>a, which is applied to each operation in the flow chart in Fig. <xref ref-type="fig" rid="Ch1.F2"/>. The global time step <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> is found by calculating the minimum value across all elements using an OpenMP reduction. The same parallelisation strategy is already adopted in existing LISFLOOD-FP solvers <xref ref-type="bibr" rid="bib1.bibx42" id="paren.52"/> because it is straightforward to implement with minimal code changes for any explicit numerical scheme involving local, element-wise operations. While some LISFLOOD-FP solvers implement more sophisticated OpenMP parallelisation and dry cell optimisation <xref ref-type="bibr" rid="bib1.bibx46" id="paren.53"/>, this can introduce additional code complexity and runtime overhead <xref ref-type="bibr" rid="bib1.bibx40" id="paren.54"/>, so it has not been adopted for the new LISFLOOD-DG2-CPU solver.</p>
</sec>
<sec id="Ch1.S2.SS1.SSS5">
  <label>2.1.5</label><title>CUDA parallelisation for Nvidia GPUs</title>
      <?pagebreak page3583?><p id="d1e4814">The LISFLOOD-DG2-GPU solver adopts a different parallelisation strategy using nested CUDA grid-stride loops (Fig. <xref ref-type="fig" rid="Ch1.F3"/>b), which is a recommended technique for parallel processing of raster data on GPUs <xref ref-type="bibr" rid="bib1.bibx17" id="paren.55"/>. Using this strategy, a 16 <inline-formula><mml:math id="M122" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 16-element region of the computational grid is mapped to a CUDA block of 16 <inline-formula><mml:math id="M123" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 16 threads. Threads within each block execute in parallel, and multiple blocks also execute in parallel, thanks to the two-layer parallelism in the CUDA programming model. Nested grid-stride loops are applied to each operation in Fig. <xref ref-type="fig" rid="Ch1.F2"/>. Thanks to the localisation of DG2, almost all operations are evaluated element-wise and only require data available locally within the element. The only non-local operations are (i) the global time step, which is calculated using a min() reduction operator from the CUB library <xref ref-type="bibr" rid="bib1.bibx37" id="paren.56"/>, and (ii) the Riemann fluxes that connect flow discontinuities across interfaces between neighbouring elements, which are discussed next.</p>
      <p id="d1e4842">To process Riemann fluxes efficiently, the LISFLOOD-DG2-GPU solver adopts a new dimensionally split form that allows expensive Riemann flux evaluations to be stored temporarily in low-latency shared memory on the GPU device <xref ref-type="bibr" rid="bib1.bibx50" id="paren.57"/>. The new dimensionally split form is derived by decomposing the spatial operator (Eq. <xref ref-type="disp-formula" rid="Ch1.E11"/>) and the two-stage Runge–Kutta scheme (Eq. <xref ref-type="disp-formula" rid="Ch1.E8"/>) into separate <inline-formula><mml:math id="M124" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>- and <inline-formula><mml:math id="M125" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-directional updates. The slope-decoupled form allows a straightforward splitting of the spatial operator <inline-formula><mml:math id="M126" display="inline"><mml:mi mathvariant="bold">L</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E11"/>) into an <inline-formula><mml:math id="M127" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-directional operator <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> and a <inline-formula><mml:math id="M129" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-directional operator <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> such that <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:mi mathvariant="bold">L</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.
The <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> operators are given in Eqs. (<xref ref-type="disp-formula" rid="Ch1.E11.13"/>) and (<xref ref-type="disp-formula" rid="Ch1.E11.14"/>), and <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> are defined as

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M136" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E30"><mml:mtd><mml:mtext>15</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></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:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E31"><mml:mtd><mml:mtext>16</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>-</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">N</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center" framespacing="0em"><mml:mtr><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:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msqrt><mml:mn mathvariant="normal">3</mml:mn></mml:msqrt><mml:mi>g</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>h</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mover accent="true"><mml:mi>z</mml:mi><mml:mo mathvariant="normal">‾</mml:mo></mml:mover><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              Similarly, each of the two Runge–Kutta stages in Eq. (<xref ref-type="disp-formula" rid="Ch1.E8"/>) is split into two substages: the first updates the flow in the <inline-formula><mml:math id="M137" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula> direction by applying <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>; the second updates the flow in the <inline-formula><mml:math id="M139" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> direction by applying <inline-formula><mml:math id="M140" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>:<?xmltex \setcounter{equation}{16}?>

                  <disp-formula id="Ch1.E32" specific-use="align" content-type="subnumberedsingle"><mml:math id="M141" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E32.33"><mml:mtd><mml:mtext>17a</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi mathvariant="normal">int</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E32.34"><mml:mtd><mml:mtext>17b</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi mathvariant="normal">int</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mspace width="0.33em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E32.35"><mml:mtd><mml:mtext>17c</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><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 mathvariant="bold">U</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E32.36"><mml:mtd><mml:mtext>17d</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>x</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:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

              Each substage of Eq. (17) is evaluated element-wise within a nested grid-stride loop. Within the <inline-formula><mml:math id="M142" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-directional spatial operator <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, the <inline-formula><mml:math id="M144" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-directional Riemann fluxes, <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, are calculated as follows:
<list list-type="order"><list-item>
      <p id="d1e5675">thread <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> calculates the Riemann flux across the eastern face of element <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, storing the result in a local variable and in a shared memory array;</p></list-item><list-item>
      <p id="d1e5725">a synchronisation barrier waits for all threads in the CUDA block to complete;</p></list-item><list-item>
      <p id="d1e5729">thread <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> then loads <inline-formula><mml:math id="M151" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> from shared memory, which is the same as <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> already calculated by thread <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>; and</p></list-item><list-item>
      <p id="d1e5797">finally, with <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo mathvariant="normal" stretchy="true">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> already stored as a local variable and <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">F</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">W</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> loaded from shared memory, thread <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> can evaluate the <inline-formula><mml:math id="M157" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-direction operator <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></list-item></list>
The <inline-formula><mml:math id="M159" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-directional Riemann fluxes <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">G</mml:mi><mml:mo stretchy="true" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">N</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, within the <inline-formula><mml:math id="M162" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-directional operator <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">L</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are calculated in the same way. By caching flux evaluations in low-latency shared memory, this dimensionally split approach minimises the number of expensive Riemann flux evaluations and only requires a single synchronisation barrier within each CUDA block.</p>
</sec>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>The new FV1 solver</title>
      <p id="d1e5926">While LISFLOOD-FP already includes a first-order finite-volume solver called LISFLOOD-Roe <xref ref-type="bibr" rid="bib1.bibx61 bib1.bibx45" id="paren.58"/>, LISFLOOD-FP 8.0 includes an updated FV1 solver that is parallelised for multi-core CPU and GPU architectures.
The new FV1 formulation is obtained by simplifying the DG2 formulation (Sect. <xref ref-type="sec" rid="Ch1.S2.SS1"/>) to remove the slope coefficients and associated <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> spatial operators, yielding piecewise-constant representations of topography and flow variables.
Like DG2, flow discontinuities at element interfaces are captured by FV1's piecewise-constant representation but, unlike DG2, smooth solutions cannot be captured without introducing artificial discontinuities, due to the lack of slope information within each element. Hence, FV1 is more vulnerable to grid coarsening since artificial discontinuities between elements tend to be enlarged as the grid becomes coarser, leading to increased numerical diffusion errors.</p>
      <p id="d1e5962">The LISFLOOD-FV1 formulation uses a standard first-order forward Euler time-stepping scheme (Eq. <xref ref-type="disp-formula" rid="Ch1.E8.9"/> with <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">U</mml:mi><mml:mrow><mml:mi>n</mml:mi><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">U</mml:mi><mml:mi mathvariant="normal">int</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.  The well-balanced wetting and drying treatment necessitates a maximum stable Courant number of 0.5 <xref ref-type="bibr" rid="bib1.bibx22" id="paren.59"/>.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>The existing LISFLOOD-ACC local inertia solver</title>
      <p id="d1e6003">The LISFLOOD-ACC solver <xref ref-type="bibr" rid="bib1.bibx4" id="paren.60"/> adopts a hybrid finite-volume and finite-difference discretisation of the local inertia equations, which simplify the full shallow-water equations by neglecting convective acceleration. Like LISFLOOD-FV1, LISFLOOD-ACC adopts the finite-volume method to provide a piecewise-constant representation of water depth, evolved element-wise via the discrete mass conservation equation:

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M167" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="Ch1.E37"><mml:mtd><mml:mtext>18</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace linebreak="nobreak" width="1em"/><?xmltex \hack{\hbox\bgroup\fontsize{9.5}{9.5}\selectfont$\displaystyle}?><mml:mstyle displaystyle="true"><mml:mfrac style="display"><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:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</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:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</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:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where the time step <inline-formula><mml:math id="M168" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> is calculated using the default Courant number of 0.7.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4"><?xmltex \currentcnt{4}?><?xmltex \def\figurename{Figure}?><label>Figure 4</label><caption><p id="d1e6212">Staggered-grid arrangement of variables in the LISFLOOD-ACC formulation. Continuous discharge components <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are stored normal to the face, and water depth <inline-formula><mml:math id="M171" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> is represented as a locally constant value, stored at the element centre.</p></caption>
          <?xmltex \igopts{width=156.490157pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f04.png"/>

        </fig>

      <?pagebreak page3584?><p id="d1e6250">Unlike LISFLOOD-FV1, LISFLOOD-ACC adopts a finite-difference method to simplify the representation of inter-elemental fluxes by storing a single, continuous discharge component at each interface, leading to the so-called Arakawa C-grid staggering <xref ref-type="bibr" rid="bib1.bibx1" id="paren.61"/> shown in Fig. <xref ref-type="fig" rid="Ch1.F4"/>. The discharge components are evolved via a simplified form of the momentum conservation equation coupled to the Manning friction formula: the <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> discharge component  at interface <inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is evolved as <xref ref-type="bibr" rid="bib1.bibx4 bib1.bibx12" id="paren.62"/>:
            <disp-formula id="Ch1.E38" content-type="numbered"><label>19</label><mml:math id="M174" display="block"><mml:mrow><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><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:mfenced close=")" open="("><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msubsup><mml:mi>n</mml:mi><mml:mi>M</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:msubsup><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mrow><mml:mi>i</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:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>/</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi mathvariant="normal">f</mml:mi><mml:mrow><mml:mn mathvariant="normal">7</mml:mn><mml:mo>/</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where the numerical flow depth at the interface is <inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>y</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> discharge component is evolved in the same way.</p>
      <p id="d1e6568">As seen in Eq. (<xref ref-type="disp-formula" rid="Ch1.E38"/>), the evolution of the continuous <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> value at the interface only relies on a local reconstruction of the water surface gradient, <inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>. This formulation could make LISFLOOD-ACC less sensitive than LISFLOOD-FV1 to grid coarsening for modelling flood inundation events, when the water surface varies smoothly. The Arakawa C-grid staggering adopted by LISFLOOD-ACC is commonly used in numerical weather prediction models <xref ref-type="bibr" rid="bib1.bibx9" id="paren.63"/> because it yields second-order accuracy in space on a compact, local stencil. The second-order spatial accuracy of LISFLOOD-ACC is confirmed based on the numerical analysis of <xref ref-type="bibr" rid="bib1.bibx12" id="text.64"/>, as presented in Appendix <xref ref-type="sec" rid="App1.Ch1.S2"/>.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Numerical results</title>
      <p id="d1e6648">Three simulations are performed to assess the computational scalability and predictive capability of LISFLOOD-DG2 compared with LISFLOOD-FV1 and LISFLOOD-ACC.
The optimised LISFLOOD-ACC solver specified by <xref ref-type="bibr" rid="bib1.bibx46" id="text.65"/> implements a sub-grid channel model <xref ref-type="bibr" rid="bib1.bibx44" id="paren.66"/> and CPU-specific optimisations that do not translate naturally to GPU architectures.
Additionally, at the time that model runs were performed, the optimised ACC solver did not yet support the rain-on-grid features used later in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>.<fn id="Ch1.Footn1"><p id="d1e6659">Rain-on-grid features have since been added to the optimised ACC solver and will be available in a future LISFLOOD-FP release.</p></fn>
To facilitate a like-for-like intercomparison between solvers, the LISFLOOD-ACC solver used here is the version specified by <xref ref-type="bibr" rid="bib1.bibx45" id="text.67"/>, which already supports the necessary rain-on-grid features and shares the same algorithmic approach as the FV1 and DG2 solvers.</p>
      <p id="d1e6666">The CPU solvers were run on a 2GHz Intel Xeon Gold 6138 using up to 16 CPU cores (with hyper-threading disabled), which is the maximum number of cores used in the LISFLOOD-FP parallelisation study of <xref ref-type="bibr" rid="bib1.bibx46" id="text.68"/>. The GPU solvers were run on an Nvidia Tesla V100. LISFLOOD-FP is configured with double precision for all calculations. Simulation results are openly available on Zenodo <xref ref-type="bibr" rid="bib1.bibx56" id="paren.69"/>.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Slowly propagating wave over a flat floodplain</title>
      <p id="d1e6682">This synthetic test, known as test 4 in <xref ref-type="bibr" rid="bib1.bibx47" id="text.70"/>, is widely used to assess flood model predictions of slowly propagating flow over a flat floodplain with high roughness <xref ref-type="bibr" rid="bib1.bibx45 bib1.bibx21 bib1.bibx34 bib1.bibx16 bib1.bibx20" id="paren.71"/>.
Since the floodplain is flat, the test setup is independent of grid resolution, which can be successively refined or coarsened to study the spatial convergence and computational scalability of the DG2, FV1 and ACC solvers on multi-core CPU and GPU architectures.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5"><?xmltex \currentcnt{5}?><?xmltex \def\figurename{Figure}?><label>Figure 5</label><caption><p id="d1e6693"><bold>(a)</bold> Semi-circular flood wave after 1 h, with the locations of gauge points 1, 3, 5 and 6 marked. <bold>(b)</bold> Trapezoidal inflow discharge hydrograph with a peak flow of 20 <inline-formula><mml:math id="M179" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><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>.</p></caption>
          <?xmltex \igopts{width=170.716535pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f05.png"/>

        </fig>

      <p id="d1e6727">As specified by <xref ref-type="bibr" rid="bib1.bibx47" id="text.72"/>, the test is initialised on a rectangular 1000 m <inline-formula><mml:math id="M180" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 2000 m flat, dry floodplain with a standard grid spacing of <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M182" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>. A semi-circular flood wave emanates from a narrow, 20 m breach at the centre of the western boundary as given by the inflow discharge hydrograph shown in Fig. <xref ref-type="fig" rid="Ch1.F5"/>b. The test is ended after 5 h. Manning's coefficient <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is fixed at 0.05 <inline-formula><mml:math id="M184" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">sm</mml:mi><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:msup></mml:mrow></mml:math></inline-formula> leading to Froude numbers below 0.25, making the test suitable for all solvers including LISFLOOD-ACC. For each solver, water depth and velocity hydrographs are measured at four standard gauge point locations marked in Fig. <xref ref-type="fig" rid="Ch1.F5"/>a, and the water depth cross section is measured after 1 h along the centre of the domain at <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>
<sec id="Ch1.S3.SS1.SSS1">
  <label>3.1.1</label><title>Water depth and velocity hydrographs</title>
      <?pagebreak page3585?><p id="d1e6816">Predicted hydrographs are obtained for the ACC, FV1-CPU, FV1-GPU, DG2-CPU and DG2-GPU solvers (Fig. <xref ref-type="fig" rid="Ch1.F6"/>). FV1-CPU and FV1-GPU solutions are identical and are named collectively as FV1 (similarly, DG2-CPU and DG2-GPU are named collectively as DG2).
While no exact solution is available, DG2, FV1 and ACC predictions of water depth and velocity agree closely with existing industrial model results (Fig. 4.10 and 4.11 in <xref ref-type="bibr" rid="bib1.bibx47" id="altparen.73"/>). ACC and DG2 water depth predictions are almost identical at all gauge points (Fig. <xref ref-type="fig" rid="Ch1.F6"/>a–d). FV1 predictions are nearly identical, except that the wave front is slightly smoother and arrives several minutes earlier than ACC or DG2, as seen at point 5 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>c) and point 6 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>d).</p>
      <p id="d1e6830">Differences in velocity predictions are more pronounced (Fig. <xref ref-type="fig" rid="Ch1.F6"/>e–h).  The biggest differences are seen at point 1 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>e), located only 50 m from the breach, since the flow at this point is dominated by strong inflow discharge with negligible retardation by frictional forces.
At point 1, ACC and DG2 velocity predictions agree closely with the majority of industrial models (Fig. 4.11 in <xref ref-type="bibr" rid="bib1.bibx47" id="altparen.74"/>).  LISFLOOD-FV1 predicts faster velocities up to 0.5 <inline-formula><mml:math id="M186" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">ms</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>, which is close to the prediction of TUFLOW FV1 <xref ref-type="bibr" rid="bib1.bibx20" id="paren.75"><named-content content-type="post">Table 11</named-content></xref>.
Further away from the breach at point 3 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>f), point 5 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>g) and point 6 (Fig. <xref ref-type="fig" rid="Ch1.F6"/>h), velocity predictions agree more closely, except at the time of wave arrival. At this time, DG2 predicts the sharpest velocity variations while ACC velocity predictions are slightly smoother. FV1 predicts even smoother velocity variations with slightly lower peak velocities.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><?xmltex \currentcnt{6}?><?xmltex \def\figurename{Figure}?><label>Figure 6</label><caption><p id="d1e6868">ACC, FV1 and DG2 predictions of water depth and velocity hydrographs at gauge points 1, 3, 5 and 6, using the standard grid spacing of <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption>
            <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f06.png"/>

          </fig>

      <?xmltex \floatpos{t}?><fig id="Ch1.F7"><?xmltex \currentcnt{7}?><?xmltex \def\figurename{Figure}?><label>Figure 7</label><caption><p id="d1e6894">ACC, FV1 and DG2 water depth cross sections after 1 h. The inset panel shows the wave-front profile across a zoomed-in portion of the cross section.</p></caption>
            <?xmltex \igopts{width=199.169291pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f07.png"/>

          </fig>

<?xmltex \hack{\newpage}?>
</sec>
<sec id="Ch1.S3.SS1.SSS2">
  <label>3.1.2</label><title>Spatial grid convergence</title>
      <p id="d1e6913">Spatial grid convergence is studied by modelling at grid resolutions of <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>, 1 and 0.5 m.
Since the floodplain is flat, no topographic resampling is required.
On each grid, the water depth cross section is measured along the centre of the domain (Fig. <xref ref-type="fig" rid="Ch1.F7"/>). DG2, FV1 and ACC cross-sectional profiles at the standard grid spacing of <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m agree well with industrial model results (Fig. 4.13 in <xref ref-type="bibr" rid="bib1.bibx47" id="altparen.76"/>). Differences are most apparent in the vicinity of the wave front, near <inline-formula><mml:math id="M190" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">400</mml:mn></mml:mrow></mml:math></inline-formula> m.
At the standard resolution of <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m, FV1 predicts a wave front about 50 m ahead of ACC or DG2, and the FV1 solution is much smoother.
A TUFLOW modelling study reported similar findings, with TUFLOW FV1 predicting a smoother wave front about 50 m ahead of other TUFLOW solvers <xref ref-type="bibr" rid="bib1.bibx20" id="paren.77"><named-content content-type="post">Table 12</named-content></xref>.
At a  5 times finer resolution of <inline-formula><mml:math id="M192" 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> m, all solvers predict a steeper wave front, although the FV1 wave-front prediction at <inline-formula><mml:math id="M193" 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> m is still relatively smooth, being closer to the ACC prediction at <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m.
A 10 times finer resolution of <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> m is required for FV1 to predict a steep wave front in agreement with DG2 at <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m, while ACC only requires a resolution of <inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m to obtain similar agreement.</p>
      <p id="d1e7066">These differences can be attributed to the order of accuracy of the solvers: DG2 is formally second-order-accurate and exhibits the least sensitivity to grid resolution; FV1 is formally first-order-accurate and exhibits the greatest sensitivity, with numerical diffusion errors leading to a spuriously smooth wave. Despite its simplified formulation, ACC predictions are close to DG2 because ACC is second-order-accurate in space (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>).</p>
</sec>
<sec id="Ch1.S3.SS1.SSS3">
  <label>3.1.3</label><title>Solver runtimes for a varying number of elements</title>
      <p id="d1e7079">To assess the relative runtime cost of the solvers, the test is run for a range of grid resolutions from <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m (yielding <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> elements) to <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mn mathvariant="normal">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> elements).
Each of the ACC, FV1-CPU and DG2-CPU solvers are run using 16 CPU cores, and FV1-GPU and DG2-GPU are run on a single GPU. To ensure reliable measurements, each solver is run twice on each grid, and the fastest runtime is recorded. Runs that have not completed within 24 h are aborted and excluded from the results. Solver runtimes are shown in Fig. <xref ref-type="fig" rid="Ch1.F8"/>a on a log–log scale.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F8"><?xmltex \currentcnt{8}?><?xmltex \def\figurename{Figure}?><label>Figure 8</label><caption><p id="d1e7144"><bold>(a)</bold> Solver runtimes at <inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> total elements),
<inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> elements),
<inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><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> elements),
<inline-formula><mml:math id="M208" 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> m (<inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</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> elements)
and <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mn mathvariant="normal">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> elements).
The ACC, FV1-CPU and DG2-CPU solvers are run on a 16-core CPU, while the FV1-GPU and DG2-GPU solvers are run on a single GPU. Runtimes are presented relative to ACC for <bold>(b)</bold> FV1 and <bold>(c)</bold> DG2: values greater than 1 represent a slowdown relative to ACC; values less than 1 represent a speed-up relative to ACC.
ACC solver runtimes were obtained for the ACC implementation of <xref ref-type="bibr" rid="bib1.bibx44" id="text.78"/>.</p></caption>
            <?xmltex \igopts{width=184.942913pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f08.png"/>

          </fig>

      <p id="d1e7311">On the coarsest grid with <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> elements, FV1-CPU and FV1-GPU both take 5 s to complete  – just 2 s more than ACC. As the grid is refined and the number of elements increases, FV1-CPU remains slightly slower than ACC, while FV1-GPU becomes faster than ACC when <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m and the number of elements exceeds <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">5</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>. The runtime cost relative to ACC is shown in Fig. <xref ref-type="fig" rid="Ch1.F8"/>b: FV1-CPU is about 1.5–2.5 times slower than ACC, gradually becoming less efficient as the number of elements increases. In contrast, FV1-GPU becomes about 2 times faster than ACC (relative runtime <inline-formula><mml:math id="M215" display="inline"><mml:mo>≈</mml:mo></mml:math></inline-formula> 0.5) once the number of elements exceeds <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> (<inline-formula><mml:math id="M217" 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> m), when<?pagebreak page3586?> the high degree of GPU parallelisation is exploited most effectively.</p>
      <p id="d1e7390">Similar trends are found with DG2-CPU and DG2-GPU: on the coarsest grid DG2-CPU is about twice as fast as DG2-GPU, but DG2-GPU becomes increasingly efficient as the number of elements increases, being twice as fast as DG2-CPU at <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m with <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><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> elements (Fig. <xref ref-type="fig" rid="Ch1.F8"/>c). At <inline-formula><mml:math id="M220" 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> m with <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:mn mathvariant="normal">2</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> total elements, DG2-GPU completes in about 3.5 h while the DG2-CPU run is aborted, having failed to complete within 24 h (Fig. <xref ref-type="fig" rid="Ch1.F8"/>a).</p>
      <p id="d1e7456">As seen earlier in the inset panel of Fig. <xref ref-type="fig" rid="Ch1.F7"/>, similar wave fronts were predicted by DG2 at <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m, ACC at <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m and FV1 at <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> m.
At these resolutions, DG2-CPU, DG2-GPU and ACC achieved a similar solution quality for a similar runtime cost, with all solvers completing in about 4 min (Fig. <xref ref-type="fig" rid="Ch1.F8"/>a).
Meanwhile, the DG2 solvers on a 10 times coarser grid were 140 times faster than FV1-CPU (10 h 42 min) and 28 times faster than FV1-GPU (1 h 47 min).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F9"><?xmltex \currentcnt{9}?><?xmltex \def\figurename{Figure}?><label>Figure 9</label><caption><p id="d1e7507">ACC, FV1-CPU and DG2-CPU solver runtimes for test 4 on a grid with 500 000 elements (at <inline-formula><mml:math id="M225" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m) using 1–16 CPU cores. The theoretical perfect scaling of each solver – doubling the number of CPU cores halves the runtime – is marked by thin dotted lines. FV1-GPU and DG2-GPU runtimes are marked by dashed horizontal lines (the number of GPU cores is not configurable).  ACC solver runtimes were obtained for the ACC implementation of <xref ref-type="bibr" rid="bib1.bibx44" id="text.79"/>.</p></caption>
            <?xmltex \igopts{width=213.395669pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f09.png"/>

          </fig>

</sec>
<sec id="Ch1.S3.SS1.SSS4">
  <label>3.1.4</label><title>Multi-core CPU scalability</title>
      <p id="d1e7541">To assess the computational scalability of the multi-core CPU solvers, the test is run using 1–16 CPU cores, while FV1-GPU and DG2-GPU are run on a single GPU device.
A grid spacing of <inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> m (<inline-formula><mml:math id="M227" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><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> elements) is chosen so that the grid has sufficient elements for effective GPU parallelisation (informed by the GPU runtimes in Fig. <xref ref-type="fig" rid="Ch1.F8"/>b–c) but has few enough elements so that all model runs complete within the 24 h cutoff.
Measured runtimes for ACC, FV1-CPU and DG2-CPU are shown in Fig. <xref ref-type="fig" rid="Ch1.F9"/> on a log–log scale, with all solver runtimes decreasing as the number of CPU cores increases.
To facilitate a like-for-like comparison with FV1 and DG2, ACC solver runtimes were obtained for the ACC implementation of <xref ref-type="bibr" rid="bib1.bibx44" id="text.80"/>.
Theoretical “perfect scaling” lines are marked by thin dotted lines for each solver: perfect scaling means that doubling the number of CPU cores would halve the runtime.
ACC solver scalability falls somewhat below perfect scaling, with a 16-fold increase in CPU cores only yielding a 7-fold decrease in runtime (Fig. <xref ref-type="fig" rid="Ch1.F9"/>).
In contrast, the DG2-CPU and FV1-CPU solvers achieve close-to-perfect scaling up to 4 CPU cores, with synchronisation overheads causing only a small decrease in scalability thereafter.
It is expected that additional performance can be gained by using the alternative, CPU-optimised ACC implementation <xref ref-type="bibr" rid="bib1.bibx46" id="paren.81"/>, and these CPU-specific optimisations are also under consideration for future enhancement of the DG2 and FV1 solvers.
For intercomparison with the CPU solvers, FV1-GPU and DG2-GPU runtimes are also marked by dashed horizontal lines (since the number of GPU cores is<?pagebreak page3587?> not configurable). Both GPU solvers are substantially faster than their counterparts on a 16-core CPU.</p>
      <p id="d1e7586">Overall, the FV1, ACC and DG2 solvers converged on similar water depth solutions with successive grid refinement.
Owing to its first-order accuracy, FV1 requires a very fine-resolution grid to match the solution quality of DG2 or ACC, though FV1-GPU enables runtimes up to 6 times faster than the 16-core FV1-CPU solver.
Thanks to its second-order accuracy, DG2 water depth predictions are spatially converged at coarser resolutions (Fig. <xref ref-type="fig" rid="Ch1.F7"/>).
Hence, DG2 is able to replicate the modelling quality of FV1 at a much coarser resolution, and the multi-core DG2-CPU solver is a competitive choice for grids with fewer than 100 000 elements.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Rapidly propagating wave along a valley</title>
      <p id="d1e7600">This test, known as test 5 in <xref ref-type="bibr" rid="bib1.bibx47" id="text.82"/>, is employed to assess the capabilities of the DG2, FV1 and ACC solvers for modelling rapidly propagating flow over realistic terrain. As specified by <xref ref-type="bibr" rid="bib1.bibx47" id="text.83"/>, the narrow valley (Fig. <xref ref-type="fig" rid="Ch1.F10"/>a) is initially dry, and Manning's coefficient <inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is fixed at 0.04 <inline-formula><mml:math id="M229" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">sm</mml:mi><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:msup></mml:mrow></mml:math></inline-formula>. A synthetic dam break event near the southern boundary is modelled by prescribing a short inflow discharge hydrograph along a 260 m long line near the southern edge of the domain, with a peak flow of 3000 <inline-formula><mml:math id="M230" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><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> (Fig. <xref ref-type="fig" rid="Ch1.F10"/>b). The test is ended after 30 h once the water has ponded near the closed boundary at the eastern edge of the domain.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F10" specific-use="star"><?xmltex \currentcnt{10}?><?xmltex \def\figurename{Figure}?><label>Figure 10</label><caption><p id="d1e7664">Configuration of the rapidly propagating flow test: <bold>(a)</bold> terrain elevation map, with the positions of gauge points 1, 3, 4, 5 and 7 marked; <bold>(b)</bold> prescribed inflow discharge hydrograph with a skewed trapezoidal profile over the first 100 min of the 30 h simulation.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f10.png"/>

        </fig>

      <p id="d1e7679">LISFLOOD-FP is run using the ACC, FV1 (CPU and GPU) and DG2 (CPU and GPU) solvers at the standard DEM resolution of <inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m used in most existing studies <xref ref-type="bibr" rid="bib1.bibx8 bib1.bibx20 bib1.bibx46" id="paren.84"/> and at the finest available DEM resolution of <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m. Water level and velocity hydrographs are measured at the five standard gauge point locations marked in Fig. <xref ref-type="fig" rid="Ch1.F10"/>a.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F11" specific-use="star"><?xmltex \currentcnt{11}?><?xmltex \def\figurename{Figure}?><label>Figure 11</label><caption><p id="d1e7718">ACC, FV1 and DG2 predictions of water level and velocity hydrographs at gauge points 1, 3, 4 (velocity only), 5 (water level only) and 7, using the standard resolution of <inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m and finest resolution of <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption>
          <?xmltex \igopts{width=398.338583pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f11.png"/>

        </fig>

<?pagebreak page3588?><sec id="Ch1.S3.SS2.SSS1">
  <label>3.2.1</label><title>Water level and velocity hydrographs</title>
      <p id="d1e7762">Predicted water level and velocity hydrographs are shown in Fig. <xref ref-type="fig" rid="Ch1.F11"/>. The water level hydrographs show that water ponds in small topographic depressions at point 1 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>a), point 3 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>b) and point 5 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>c). Point 7 is positioned near the steep valley slope and is only inundated between <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> h and <inline-formula><mml:math id="M236" 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> h (Fig. <xref ref-type="fig" rid="Ch1.F11"/>d). At both resolutions, water levels predicted by all solvers agree closely with existing industrial model results at points 1, 3 and 7 (Fig. 4.16 in <xref ref-type="bibr" rid="bib1.bibx47" id="altparen.85"/>).
Small water level differences accumulate as water flows downstream, and at point 5, positioned farthest downstream of the dam break, differences of about 0.5 m are found depending on the choice of resolution and solver (Fig. <xref ref-type="fig" rid="Ch1.F11"/>c).
Similar water level differences have been found amongst the suite of TUFLOW solvers <xref ref-type="bibr" rid="bib1.bibx20" id="paren.86"/> and amongst other industrial models <xref ref-type="bibr" rid="bib1.bibx47" id="paren.87"/>.
<?xmltex \hack{\newpage}?>
Bigger differences are found in velocity predictions, particularly at locations farther downstream at point 3 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>f), point 4 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>g) and point 7 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>h).
At point 3, DG2 predicts small, transient velocity variations at <inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M238" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula> starting at <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> h; these variations are not captured by the FV1 or ACC solvers but have been captured by a FV2-MUSCL solver at the finest resolution of <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> <inline-formula><mml:math id="M241" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:math></inline-formula>, as reported by <xref ref-type="bibr" rid="bib1.bibx2" id="text.88"/>.
At point 7, ACC overpredicts peak velocities by about 0.5 <inline-formula><mml:math id="M242" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">ms</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> compared to FV1 and DG2 (Fig. <xref ref-type="fig" rid="Ch1.F11"/>h), and compared to other industrial models (Fig. 4.17 in <xref ref-type="bibr" rid="bib1.bibx47" id="altparen.89"/>). Otherwise, ACC, FV1 and DG2 velocity predictions are within the range of existing industrial model predictions.</p>
</sec>
<sec id="Ch1.S3.SS2.SSS2">
  <label>3.2.2</label><title>Flood inundation and Froude number maps</title>
      <?pagebreak page3589?><p id="d1e7907">While hydrograph predictions are often studied for this test case <xref ref-type="bibr" rid="bib1.bibx47 bib1.bibx8 bib1.bibx20 bib1.bibx46" id="paren.90"/>, flood inundation maps taken at time instants provide a more detailed picture of flood wave propagation.
Accordingly, two sets of flood inundation maps are obtained: one set at <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> min during the short period of peak inflow and another set at <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> h once the flood water has almost filled the valley.
Flood maps are obtained at the finest resolution of <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m and with DG2 at <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F12" specific-use="star"><?xmltex \currentcnt{12}?><?xmltex \def\figurename{Figure}?><label>Figure 12</label><caption><p id="d1e7967">Water depth and Froude number maps of the rapidly propagating wave along a valley:
<bold>(a–h)</bold> after 15 min across a zoomed-in portion of the domain near the dam break; <bold>(i–p)</bold> after 3 h across the entire domain. The entire simulation is ended after 30 h once the water has ponded near the eastern edge of the domain. Water depth colour scales vary between <inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> min and <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> h, but Froude number colour scales remain fixed.</p></caption>
            <?xmltex \igopts{width=455.244094pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f12.png"/>

          </fig>

      <p id="d1e8006">After 15 min, water has travelled about 1.5 <inline-formula><mml:math id="M249" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">km</mml:mi></mml:mrow></mml:math></inline-formula> north-east along the valley away from the inflow region near the southern edge of the domain, with ACC, FV1 and DG2 water depth predictions shown in Fig. <xref ref-type="fig" rid="Ch1.F12"/>a–d. Behind the wave front, an abrupt change in water depth is predicted by FV1 (Fig. <xref ref-type="fig" rid="Ch1.F12"/>b) and DG2 (Fig. <xref ref-type="fig" rid="Ch1.F12"/>c, d), but this discontinuity induces spurious, small-scale oscillations in the ACC solver that propagate downstream (Fig. <xref ref-type="fig" rid="Ch1.F12"/>a). This numerical instability is understood by studying the Froude number, as shown in Fig. <xref ref-type="fig" rid="Ch1.F12"/>e–h. The rapidly propagating flow becomes supercritical across the region of shallower water, with a maximum Froude number of around 1.5. The local inertia equations are not physically valid for modelling abrupt changes in water depth or supercritical flows <xref ref-type="bibr" rid="bib1.bibx11" id="paren.91"/>, leading to the observed numerical instability in the ACC solver.</p>
      <p id="d1e8032">After 3 h, the flood water has filled most of the valley and the wave front has almost reached point 5. As shown in Fig. <xref ref-type="fig" rid="Ch1.F12"/>i–l, ACC, FV1 and DG2 water depth predictions are in close agreement. The flow is now predominantly subcritical (Fig. <xref ref-type="fig" rid="Ch1.F12"/>m–p), although a small region of supercritical flow is found upstream of point 3 with a maximum Froude number of about 1.2 and a corresponding jump in water depth at the same location. Nevertheless, numerical instabilities in the ACC prediction at <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">15</mml:mn></mml:mrow></mml:math></inline-formula> min are no longer evident at <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> h (Fig. <xref ref-type="fig" rid="Ch1.F12"/>m), and ACC predictions remain stable at all gauge points for the duration of the simulation (Fig. <xref ref-type="fig" rid="Ch1.F11"/>).
As seen in the fourth column of Fig. <xref ref-type="fig" rid="Ch1.F12"/>, DG2 flood maps at <inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m are in close agreement with the ACC, FV1 and DG2 flood maps at <inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>
</sec>
<sec id="Ch1.S3.SS2.SSS3">
  <label>3.2.3</label><title>Runtime cost</title>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T1" specific-use="star"><?xmltex \currentcnt{1}?><label>Table 1</label><caption><p id="d1e8109">Solver runtimes at grid spacings of <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m, <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m. ACC, FV1-CPU and DG2-CPU solvers are run on a 16-core CPU; FV1-GPU and DG2-GPU solvers are run on a single GPU.
ACC solver runtimes were obtained for the ACC implementation of <xref ref-type="bibr" rid="bib1.bibx44" id="text.92"/>.
</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <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:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">57 000 elements</oasis:entry>
         <oasis:entry colname="col3">850 000 elements</oasis:entry>
         <oasis:entry colname="col4">1.7 million elements</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">ACC</oasis:entry>
         <oasis:entry colname="col2">20 s</oasis:entry>
         <oasis:entry colname="col3">466 s (8 min)</oasis:entry>
         <oasis:entry colname="col4">1779 s (30 min)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">FV1-CPU</oasis:entry>
         <oasis:entry colname="col2">22 s</oasis:entry>
         <oasis:entry colname="col3">739 s (12 min)</oasis:entry>
         <oasis:entry colname="col4">2188 s (36 min)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">FV1-GPU</oasis:entry>
         <oasis:entry colname="col2">19 s</oasis:entry>
         <oasis:entry colname="col3">145 s (2 min)</oasis:entry>
         <oasis:entry colname="col4">965 s (16 min)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DG2-CPU</oasis:entry>
         <oasis:entry colname="col2">788 s (13 min)</oasis:entry>
         <oasis:entry colname="col3">4133 s (69 min)</oasis:entry>
         <oasis:entry colname="col4">33 009 s (9 h)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DG2-GPU</oasis:entry>
         <oasis:entry colname="col2">448 s (7 min)</oasis:entry>
         <oasis:entry colname="col3">2304 s (38 min)</oasis:entry>
         <oasis:entry colname="col4">13 606 s (4 h)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e8319">Simulation runtimes are summarised in Table <xref ref-type="table" rid="Ch1.T1"/>, with FV1-CPU and DG2-CPU solvers run on a 16-core CPU and  FV1-GPU and DG2-GPU solvers run on a single GPU.
Similar to runtime measurements presented earlier in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>, the GPU solvers become more efficient on grids with a larger number of elements: in this test, DG2-GPU is 1.8 times faster than DG2-CPU at the standard resolution of <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m, becoming 2.5 times faster at the finest resolution of <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m; similarly, FV1-GPU is between 1.2 times and 5.1 times faster than FV1-CPU.</p>
      <p id="d1e8354">DG2-CPU and DG2-GPU at <inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m outperform ACC, FV1-CPU and FV1-GPU at <inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, while still achieving similarly accurate flood map predictions at a 5 times coarser resolution (Fig. <xref ref-type="fig" rid="Ch1.F12"/>). DG2-CPU at <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m is 2 times faster than ACC at <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, while DG2-GPU is twice as fast again.
DG2-GPU flood maps at an improved resolution of <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m are obtained at a runtime cost of 38 min, which is still competitive with ACC at <inline-formula><mml:math id="M267" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m (with a runtime cost of 30 min).</p>
      <p id="d1e8445">In summary, all solvers predicted similar water depth and velocity hydrographs, though ACC experienced a short period of numerical instability in a localised region where the Froude number exceeded the limit of the local inertia equations.
The shock-capturing FV1 and DG2 shallow-water solvers yield robust predictions throughout the entire simulation. with FV1-GPU being consistently faster than ACC on a 16-core CPU.
As found earlier in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/>, DG2 at a 2–5 times coarser resolution is a competitive alternative to ACC and FV1, with the GPU implementation being preferable when running DG2 on a grid with more than 100 000 elements.</p>
</sec>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Catchment-scale rain-on-grid simulation</title>
      <p id="d1e8460">In December 2015, Storm Desmond caused extensive fluvial flooding across the Eden catchment in north-west England <xref ref-type="bibr" rid="bib1.bibx60" id="paren.93"/>. This storm event has previously been simulated using a first-order finite-volume hydrodynamic model <xref ref-type="bibr" rid="bib1.bibx68" id="paren.94"/>, with overland flow and fluvial flooding driven entirely by spatially and temporally varying rainfall data over the 2500 <inline-formula><mml:math id="M268" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> catchment.
As such, this simulation is ideally suited to assess the new rain-on-grid capabilities in LISFLOOD-FP 8.0 and represents one of the first DG2 hydrodynamic modelling studies of rainfall-induced overland flow across a large catchment.
At this large scale, grid coarsening is often desirable to ensure model runtimes remain feasible <xref ref-type="bibr" rid="bib1.bibx14" id="paren.95"/>, but coarsening the DEM can affect the quality of water depth predictions <xref ref-type="bibr" rid="bib1.bibx55" id="paren.96"/>. Therefore, the three LISFLOOD-FP solvers were run at a range of grid resolutions, and their predictions were analysed with respect to observed river levels and flood extent survey data.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F13" specific-use="star"><?xmltex \currentcnt{13}?><?xmltex \def\figurename{Figure}?><label>Figure 13</label><caption><p id="d1e8488">Elevation map of <bold>(a)</bold> the Eden catchment, covering an area of 2500 <inline-formula><mml:math id="M269" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> and <bold>(b)</bold> a zoomed-in portion over Carlisle at the confluence of the rivers Irthing, Petteril, Caldew and Eden. Names and locations of the 16 gauging stations are marked.  Contains Ordnance Survey data; © Crown copyright and database right 2020.  © OpenStreetMap contributors 2020. Distributed under a Creative Commons BY-SA License.</p></caption>
          <?xmltex \igopts{width=426.791339pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f13.png"/>

        </fig>

      <p id="d1e8514">The Eden catchment and its four major rivers are shown in Fig. <xref ref-type="fig" rid="Ch1.F13"/>a. The DEM is available at a finest resolution of <inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> m covering the entire catchment. The largest city in the Eden catchment is Carlisle, situated at the confluence of the rivers Irthing, Petteril, Caldew and Eden (Fig. <xref ref-type="fig" rid="Ch1.F13"/>b). In the Carlisle area, the 5 m DEM incorporates channel cross section and flood defence data <xref ref-type="bibr" rid="bib1.bibx68" id="paren.97"/> and manual hydro-conditioning to remove bridge decks that would otherwise block river flows.</p>
      <?pagebreak page3590?><p id="d1e8539">As specified by <xref ref-type="bibr" rid="bib1.bibx68" id="text.98"/>, the simulation comprises a spin-up phase and subsequent analysis phase.  The spin-up phase starts at 00:00, 3 December 2015, from an initially dry domain. Water is introduced into the domain via the rainfall source term (Eq. <xref ref-type="disp-formula" rid="Ch1.E29"/>), using Met Office rainfall radar data at a 1 km resolution updated every 5 min <xref ref-type="bibr" rid="bib1.bibx38" id="paren.99"/>.
The spin-up phase ends and the analysis phase begins at 12:00, 4 December 2015, once the memory of the dry initial condition has disappeared and water depths and discharges in all river channels have reached a physically realistic initial state <xref ref-type="bibr" rid="bib1.bibx68" id="paren.100"/>. The simulation ends at 12:00, 8 December 2015, after a total of 5.5 simulated days.
Manning's coefficient <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">M</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is 0.035 <inline-formula><mml:math id="M272" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">sm</mml:mi><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:msup></mml:mrow></mml:math></inline-formula> for river channels and 0.075 <inline-formula><mml:math id="M273" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">sm</mml:mi><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:msup></mml:mrow></mml:math></inline-formula> elsewhere.</p>
      <?pagebreak page3591?><p id="d1e8601">The following modelling assumptions are made as specified by <xref ref-type="bibr" rid="bib1.bibx68" id="text.101"/>.
Zero infiltration is assumed due to fully saturated antecedent soil moisture.
An open boundary condition is imposed along the irregular-shaped catchment perimeter by adjusting the terrain elevation of elements lying outside the catchment such that their elevation is below mean sea level, thereby allowing water to drain out of the river Eden into the Solway Firth.
At each time step, water flowing out of the Solway Firth is removed by zeroing the water depth in  elements lying outside the catchment.
While rainfall data errors can influence model outputs,
<xref ref-type="bibr" rid="bib1.bibx39" id="text.102"/> found that a prescribed 10  % rainfall error lead to only a 5  % relative mean error in predicted water depth hydrographs.
As such, modelling uncertainties due to rainfall errors are not quantified in these deterministic model runs.</p>
      <p id="d1e8610">Model input data are prepared by upscaling the finest 5 m DEM to resolutions of <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula>, 20 and 10 m.
In previous studies, a grid spacing of <inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m was sufficient to simulate observed flood extent and river levels <xref ref-type="bibr" rid="bib1.bibx68 bib1.bibx39" id="paren.103"/>, so LISFLOOD-FP runs are not performed on the finest 5 m DEM. Given the large number of elements (25 million elements at <inline-formula><mml:math id="M276" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m) and informed by the computational scalability results in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS3"/> and <xref ref-type="sec" rid="Ch1.S3.SS2.SSS3"/>, DG2 and FV1 runs are only performed on a GPU, while ACC is run on a 16-core CPU.
Due to its relatively high runtime cost, DG2-GPU is only run at <inline-formula><mml:math id="M277" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T2" specific-use="star"><?xmltex \currentcnt{2}?><label>Table 2</label><caption><p id="d1e8680">Manually adjusted gauging station positions given in British National Grid (EPSG:27700) coordinates. Terrain elevation error is measured as the local elevation difference between the 40 m DEM and 10 m DEM. Channel widths are also estimated at each gauging station using the finest-resolution DEM.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <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:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Gauging</oasis:entry>
         <oasis:entry colname="col2">Easting</oasis:entry>
         <oasis:entry colname="col3">Northing</oasis:entry>
         <oasis:entry colname="col4">Terrain elevation</oasis:entry>
         <oasis:entry colname="col5">Estimated channel</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">station</oasis:entry>
         <oasis:entry colname="col2">(m)</oasis:entry>
         <oasis:entry colname="col3">(m)</oasis:entry>
         <oasis:entry colname="col4">error (m)</oasis:entry>
         <oasis:entry colname="col5">width (m)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Sheepmount</oasis:entry>
         <oasis:entry colname="col2">338 940</oasis:entry>
         <oasis:entry colname="col3">557 120</oasis:entry>
         <oasis:entry colname="col4">1.91</oasis:entry>
         <oasis:entry colname="col5">67</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Sands Centre</oasis:entry>
         <oasis:entry colname="col2">340 203</oasis:entry>
         <oasis:entry colname="col3">556 650</oasis:entry>
         <oasis:entry colname="col4">1.63</oasis:entry>
         <oasis:entry colname="col5">56</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Linstock</oasis:entry>
         <oasis:entry colname="col2">342 868</oasis:entry>
         <oasis:entry colname="col3">557 869</oasis:entry>
         <oasis:entry colname="col4">2.00</oasis:entry>
         <oasis:entry colname="col5">71</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Great Corby</oasis:entry>
         <oasis:entry colname="col2">346 770</oasis:entry>
         <oasis:entry colname="col3">555 440</oasis:entry>
         <oasis:entry colname="col4">1.56</oasis:entry>
         <oasis:entry colname="col5">54</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Skew Bridge</oasis:entry>
         <oasis:entry colname="col2">339 949</oasis:entry>
         <oasis:entry colname="col3">555 519</oasis:entry>
         <oasis:entry colname="col4">5.01</oasis:entry>
         <oasis:entry colname="col5">15</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Denton Holme</oasis:entry>
         <oasis:entry colname="col2">339 971</oasis:entry>
         <oasis:entry colname="col3">554 898</oasis:entry>
         <oasis:entry colname="col4">1.76</oasis:entry>
         <oasis:entry colname="col5">15</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Botcherby Bridge</oasis:entry>
         <oasis:entry colname="col2">341 656</oasis:entry>
         <oasis:entry colname="col3">555 778</oasis:entry>
         <oasis:entry colname="col4">1.33</oasis:entry>
         <oasis:entry colname="col5">9</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Melbourne Park</oasis:entry>
         <oasis:entry colname="col2">341 462</oasis:entry>
         <oasis:entry colname="col3">555 397</oasis:entry>
         <oasis:entry colname="col4">1.14</oasis:entry>
         <oasis:entry colname="col5">11</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Cummersdale</oasis:entry>
         <oasis:entry colname="col2">339 492</oasis:entry>
         <oasis:entry colname="col3">552 682</oasis:entry>
         <oasis:entry colname="col4">2.30</oasis:entry>
         <oasis:entry colname="col5">14</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Newbiggin Bridge</oasis:entry>
         <oasis:entry colname="col2">343 473</oasis:entry>
         <oasis:entry colname="col3">551 360</oasis:entry>
         <oasis:entry colname="col4">2.00</oasis:entry>
         <oasis:entry colname="col5">8</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Greenholme</oasis:entry>
         <oasis:entry colname="col2">348 575</oasis:entry>
         <oasis:entry colname="col3">558 071</oasis:entry>
         <oasis:entry colname="col4">2.23</oasis:entry>
         <oasis:entry colname="col5">21</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Harraby Green Business Park</oasis:entry>
         <oasis:entry colname="col2">341 160</oasis:entry>
         <oasis:entry colname="col3">554 379</oasis:entry>
         <oasis:entry colname="col4">1.12</oasis:entry>
         <oasis:entry colname="col5">9</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Sebergham</oasis:entry>
         <oasis:entry colname="col2">336 193</oasis:entry>
         <oasis:entry colname="col3">542 590</oasis:entry>
         <oasis:entry colname="col4">6.06</oasis:entry>
         <oasis:entry colname="col5">13</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Temple Sowerby</oasis:entry>
         <oasis:entry colname="col2">360 444</oasis:entry>
         <oasis:entry colname="col3">528 379</oasis:entry>
         <oasis:entry colname="col4">1.70</oasis:entry>
         <oasis:entry colname="col5">33</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Great Musgrave Bridge</oasis:entry>
         <oasis:entry colname="col2">376 445</oasis:entry>
         <oasis:entry colname="col3">513 112</oasis:entry>
         <oasis:entry colname="col4">4.60</oasis:entry>
         <oasis:entry colname="col5">31</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Kirkby Stephen</oasis:entry>
         <oasis:entry colname="col2">377 283</oasis:entry>
         <oasis:entry colname="col3">509 772</oasis:entry>
         <oasis:entry colname="col4">1.37</oasis:entry>
         <oasis:entry colname="col5">8</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e9031">For each model run, hydrographs of free-surface elevation above mean sea level are measured in river channels at 16 gauging stations as marked in Fig. <xref ref-type="fig" rid="Ch1.F13"/>.
Approximate gauging station coordinates are provided by the <xref ref-type="bibr" rid="bib1.bibx13" id="text.104"/>, but these are often positioned near the riverbank and not in the channel itself.
Hence, gauging station coordinates must be adjusted to ensure model results are measured in the channel. Here, a simple approach is adopted to manually reposition each gauging station based on the finest-resolution DEM, with the amended positions given in Table <xref ref-type="table" rid="Ch1.T2"/>.
It is also important to measure hydrographs of free-surface elevation, since variation in free-surface elevation is minimal across the river channel. DG2, FV1 and ACC solver predictions are compared in the following three subsections: first, predicted free-surface elevation hydrographs are compared against gauging station measurements; second, predicted maximum flood extents are compared against a post-event flood extent survey <xref ref-type="bibr" rid="bib1.bibx36" id="paren.105"/>; finally, predicted flood inundation maps are intercompared.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F14" specific-use="star"><?xmltex \currentcnt{14}?><?xmltex \def\figurename{Figure}?><label>Figure 14</label><caption><p id="d1e9047">Hydrographs of free-surface elevation at 16 river gauging stations, as shown in Fig. <xref ref-type="fig" rid="Ch1.F13"/>. Observed hydrographs are marked by thick black lines; model predictions are marked by coloured lines.</p></caption>
          <?xmltex \igopts{width=412.564961pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f14.png"/>

        </fig>

<sec id="Ch1.S3.SS3.SSS1">
  <label>3.3.1</label><title>River channel free-surface elevation hydrographs</title>
      <p id="d1e9065">Free-surface elevation hydrographs at the 16 river gauging stations are shown in Fig. <xref ref-type="fig" rid="Ch1.F14"/>.
Observed free-surface elevation hydrographs are calculated from Environment Agency<?pagebreak page3592?> measurements of water depth and riverbed elevation above mean sea level <xref ref-type="bibr" rid="bib1.bibx13" id="paren.106"/>.
While water depths can be measured to an accuracy of <inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula> m <xref ref-type="bibr" rid="bib1.bibx5" id="paren.107"/>, discrepancies between in situ, pointwise riverbed elevation measurements and the remotely sensed, two-dimensional DEM can result in systematically biased free-surface elevations, as reported by <xref ref-type="bibr" rid="bib1.bibx68" id="text.108"/>.</p>
      <p id="d1e9089">As seen in the observed hydrographs, river levels begin to rise across the catchment around 00:00, 5 December. A flashy response is seen in the headwaters of the river Eden, at Temple Sowerby, Great Musgrave Bridge and Kirkby Stephen, with water levels rising rapidly by 2–3 m and returning almost as rapidly to base flow conditions around 00:00, 7 December. Similar responses are found at the other gauging stations located further downstream, where river levels vary more gradually. The largest river level changes are found in the Carlisle area, particularly at Sheepmount and Sands Centre, which are located farthest downstream.</p>
      <p id="d1e9092">Timings of the rising and falling limbs are well-predicted by all three solvers for the majority of hydrographs. At coarser grid resolutions, river levels are overpredicted and the difference between base flow and peak flow levels is underpredicted.<fn id="Ch1.Footn2"><p id="d1e9095">This is the case except for anomalous predictions found at Great Musgrave Bridge, where the observed hydrograph shape is generally well-captured but free-surface elevations are consistently underpredicted. This anomaly is due to localised terrain elevation differences between the finest-resolution DEM and Environment Agency riverbed elevation measurements, as documented by <xref ref-type="bibr" rid="bib1.bibx68" id="text.109"/>.</p></fn> These findings are consistent with those of <xref ref-type="bibr" rid="bib1.bibx68" id="text.110"/>. Hydrograph inaccuracies are primarily due to DEM coarsening, which artificially smooths river channel geometries, reducing the elevation difference between riverbed and riverbank. Consequently, the terrain elevation at gauging points on the 40 m DEM is between 1.12  and 6.06 m higher than the same points on the 10 m DEM, depending on the local river channel geometry. These terrain elevation errors are shown in Table <xref ref-type="table" rid="Ch1.T2"/>, which are calculated as the difference in local element-average topography elevations between the 40 m DEM and 10 m DEM.</p>
      <p id="d1e9107">The impact of DEM coarsening is most evident at Sebergham gauging station where the largest terrain elevation error of 6.06 m is found. At <inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m, the DEM diverts the flow away from the true location of the river, and the FV1 and ACC Sebergham hydrographs remain flat at 99.4 m. At <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m, the terrain is only 1.4 m higher than at <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m and the FV1 and ACC hydrographs are closer to observations, though the difference between base flow and peak flow levels is still underpredicted. At <inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, predicted hydrographs accurately capture observed base flow and peak flow levels. The same behaviour is evident at Skew Bridge (with a terrain elevation error of 5.01 m) and, to a lesser extent, at other locations including Cummersdale (2.30 m) and Greenholme (2.23 m). In general, the greater the terrain elevation error at a given point, the greater the discrepancy between observed hydrographs and model predictions.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F15" specific-use="star"><?xmltex \currentcnt{15}?><?xmltex \def\figurename{Figure}?><label>Figure 15</label><caption><p id="d1e9169">Root mean square errors in predicted free-surface elevation hydrographs, with errors measured against observation data.</p></caption>
            <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f15.png"/>

          </fig>

      <?pagebreak page3593?><p id="d1e9178">Next, the predictive capability of DG2 on the coarsest grid is benchmarked against hydrograph observations and against FV1 and ACC predictions on the 4 times finer grid. To measure the average discrepancy between predictions and observations, the RMSE is calculated as

                  <disp-formula id="Ch1.E39" content-type="numbered"><label>20</label><mml:math id="M283" display="block"><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="normal">RMSE</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">start</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">end</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:msup><mml:mfenced open="[" close="]"><mml:mrow><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mi>N</mml:mi></mml:mfrac></mml:mstyle></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">start</mml:mi></mml:msub><mml:mo>=</mml:mo></mml:mrow></mml:math></inline-formula> 12:00, 4 December, <inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">end</mml:mi></mml:msub><mml:mo>=</mml:mo></mml:mrow></mml:math></inline-formula> 00:00, 8 December, <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> is the free-surface elevation calculated from observation data and <inline-formula><mml:math id="M287" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> is the total number of observations. At most gauging stations, predictions converge towards observations, with RMSEs becoming smaller as the grid is refined. But at some gauging stations, including Linstock and Great Corby, the falling limb is underpredicted on finer grids, so RMSEs increase as predictions diverge from observations. Similar behaviour was also found at some gauging stations in the original study of <xref ref-type="bibr" rid="bib1.bibx68" id="text.111"/>.</p>
      <p id="d1e9313">At most gauging stations, DG2 alleviates the free-surface elevation overprediction found in FV1 and ACC hydrographs at the same resolution, leading to better agreement between DG2 predictions and observations at Sheepmount, Sands Centre, Skew Bridge, Denton Holme, Greenholme and Sebergham, as indicated by the RMSEs in Fig. <xref ref-type="fig" rid="Ch1.F15"/>. The reduced overprediction is attributable to DG2's locally planar representation of terrain within each computational element, which enables DG2 to better capture terrain gradients between the riverbed and riverbank on a coarse grid.</p>
      <p id="d1e9318">DG2 predictions are also closer to FV1 and ACC hydrographs on 2 times and 4 times finer grids,  depending on the river width at each gauging station, which ranges between 8 and 71 m (Table <xref ref-type="table" rid="Ch1.T2"/>). The widest locations are at Sheepmount, Sands Centre, Linstock, Great Corby, Temple Sowerby and Great Musgrave Bridge; locations with moderate river widths<?pagebreak page3594?> of 13–21 m are found at Denton Holme, Greenholme, Skew Bridge and Sebergham; at most other locations rivers are narrower. At the widest locations, DG2 predictions are close to FV1 and ACC hydrographs on the 4 times finer grid; at locations with moderate river widths, DG2 predictions are closer to FV1 and ACC hydrographs on the 2 times finer grid. At other locations, DG2 predictions are closer to FV1 and ACC hydrographs at the coarsest grid resolution. Overall, when river channel geometries are larger than <inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>, then the predictive capability of DG2 is substantially enhanced thanks to its second-order-accurate, piecewise-planar representation of terrain and flow variables.</p>
      <p id="d1e9337">Where river channel widths are close to or smaller than the grid spacing <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>, hydrograph predictions are especially sensitive to the channel geometry as resolved on the computational grid.
At such locations, hydrograph predictions can be improved by running the model with an ensemble of possible sampling positions within a 100 m radius of each gauging station and then choosing the best fit between predictions and observations.
However, this approach relies on the availability of observation data, and, due to modelling sensitivities at the scale of the grid, optimal positions can vary depending on the choice of solver and grid resolution.
Spatially adaptive solvers <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx49" id="paren.112"/> and non-uniform meshing techniques <xref ref-type="bibr" rid="bib1.bibx27" id="paren.113"/> offer another alternative to improve flow predictions by selectively capturing fine-scale channel geometries, and such methods are under development for inclusion in a future LISFLOOD-FP release.
Sub-grid channel modelling can also improve hydrograph and flood inundation predictions, and LISFLOOD-FP already provides a sub-grid channel model <xref ref-type="bibr" rid="bib1.bibx44" id="paren.114"/> that could be integrated with the DG2 and FV1 solvers in a future release.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F16" specific-use="star"><?xmltex \currentcnt{16}?><?xmltex \def\figurename{Figure}?><label>Figure 16</label><caption><p id="d1e9362">Maximum flood extent predictions compared against the post-event surveyed extent outlined in pink.
DG2 predictions at <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m are downscaled from the DG2 piecewise-planar prediction at <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.
Arrows mark the most notable differences in maximum water depth, as discussed in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3.SSS2"/>.</p></caption>
            <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f16.png"/>

          </fig>

</sec>
<?pagebreak page3595?><sec id="Ch1.S3.SS3.SSS2">
  <label>3.3.2</label><title>Maximum flood extent over Carlisle</title>
      <p id="d1e9423">Maximum flood extents are obtained for ACC and FV1 runs at resolutions of <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula>, 20, and 10 m; due to its relatively high runtime cost, DG2-GPU is only run at <inline-formula><mml:math id="M294" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m only with flood maps at 20 and 10 m being inferred by downscaling the 40 m solution.
The downscaling procedure adopted here exploits the full, DG2 piecewise-planar solution by constructing the piecewise-planar maximum water depth on the <inline-formula><mml:math id="M295" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m grid and then sampling at the element centres on the higher-resolution grid.</p>
      <p id="d1e9468">As shown in Fig. <xref ref-type="fig" rid="Ch1.F16"/>, the post-event survey outlined in pink marks the maximum extent of flooding across Carlisle.
The surveyed flood extent is well-predicted by all solvers. Predicted flood extents are largely insensitive to grid resolution, except for the region around Denton Holme gauging station on the river Caldew, which is protected by flood defence walls.
<xref ref-type="bibr" rid="bib1.bibx68" id="text.115"/> added these flood defence walls by hand in the original 5 m DEM, but the coarsened DEMs were upscaled with no further hand-editing.
As such, the steep, narrow walls become smeared out at coarse resolutions, with all solvers overpredicting flood extents at <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m in the Denton Holme region.
The representation of these flood defences could be improved by adopting the recently developed LISFLOOD-FP levee module <xref ref-type="bibr" rid="bib1.bibx64 bib1.bibx58" id="paren.116"/><fn id="Ch1.Footn3"><p id="d1e9492">Not yet available with the FV1 or DG2 solvers.</p></fn> or by implementing a spatially adaptive multi-resolution method that selectively refines the grid resolution around river channels and other fine-scale features <xref ref-type="bibr" rid="bib1.bibx23" id="paren.117"/>.</p>
      <p id="d1e9499">Further qualitative differences are apparent in predicted water depths in regions south of Linstock and north of Botcherby Bridge, as indicated by arrows in Fig. <xref ref-type="fig" rid="Ch1.F16"/>.  At <inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m, DG2 and ACC yield almost identical predictions with regions of 0.1–2 m water depth south of Linstock and depths of 2–4 m north of Botcherby Bridge. In contrast, FV1 predicts wider areas of water depths of 2–4 m south of Linstock and depths of 4–6 m north of Botcherby Bridge. These regions of deep water become smaller as the grid is refined, but FV1 flood inundation predictions remain wider and deeper than ACC even at <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m.</p>

<table-wrap id="Ch1.T3" specific-use="star"><?xmltex \currentcnt{3}?><label>Table 3</label><caption><p id="d1e9534">Hit rate (H), false alarm ratio (F) and critical success index (C) for the DG2 and FV1 predictions of maximum flood extent calculated against the reference solution of the ACC solver at <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="10">
     <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:colspec colnum="4" colname="col4" align="right" colsep="1"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right" colsep="1"/>
     <oasis:colspec colnum="8" colname="col8" align="right"/>
     <oasis:colspec colnum="9" colname="col9" align="right"/>
     <oasis:colspec colnum="10" colname="col10" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry namest="col2" nameend="col4" align="center" colsep="1"><inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m </oasis:entry>
         <oasis:entry namest="col5" nameend="col7" align="center" colsep="1"><inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m </oasis:entry>
         <oasis:entry namest="col8" nameend="col10" align="center"><inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m </oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">H</oasis:entry>
         <oasis:entry colname="col3">F</oasis:entry>
         <oasis:entry colname="col4">C</oasis:entry>
         <oasis:entry colname="col5">H</oasis:entry>
         <oasis:entry colname="col6">F</oasis:entry>
         <oasis:entry colname="col7">C</oasis:entry>
         <oasis:entry colname="col8">H</oasis:entry>
         <oasis:entry colname="col9">F</oasis:entry>
         <oasis:entry colname="col10">C</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">DG2</oasis:entry>
         <oasis:entry colname="col2">0.83</oasis:entry>
         <oasis:entry colname="col3">0.32</oasis:entry>
         <oasis:entry colname="col4">0.59</oasis:entry>
         <oasis:entry colname="col5">0.86</oasis:entry>
         <oasis:entry colname="col6">0.55</oasis:entry>
         <oasis:entry colname="col7">0.40</oasis:entry>
         <oasis:entry colname="col8">0.85</oasis:entry>
         <oasis:entry colname="col9">0.56</oasis:entry>
         <oasis:entry colname="col10">0.40</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">FV1</oasis:entry>
         <oasis:entry colname="col2">0.77</oasis:entry>
         <oasis:entry colname="col3">0.27</oasis:entry>
         <oasis:entry colname="col4">0.59</oasis:entry>
         <oasis:entry colname="col5">0.80</oasis:entry>
         <oasis:entry colname="col6">0.19</oasis:entry>
         <oasis:entry colname="col7">0.67</oasis:entry>
         <oasis:entry colname="col8">0.93</oasis:entry>
         <oasis:entry colname="col9">0.03</oasis:entry>
         <oasis:entry colname="col10">0.90</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e9739">The DG2 and FV1 predictions of maximum flood extent can be quantified against the ACC prediction at <inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, which is treated as the reference solution.
The hit rate measures flood extent underprediction as the proportion of wet elements in the reference solution that were also predicted as wet.
The false alarm ratio measures flood extent overprediction as the proportion of predicted wet elements that were dry in the reference solution.
The critical success index measures both over- and underprediction.
All three metrics range between 0 and 1, and further details are provided by <xref ref-type="bibr" rid="bib1.bibx63" id="text.118"/>.</p>
      <p id="d1e9759">The hit rate (H), false alarm ratio (F) and critical success index (C) are given in Table <xref ref-type="table" rid="Ch1.T3"/>.
At <inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m, the critical success index is 0.59 for both DG2 and FV1, but DG2 has a higher hit rate and false alarm ratio, suggesting that DG2 predicts a wider flood extent than ACC or FV1.
At <inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, the false alarm ratio and critical success index for DG2 deteriorate, but a hit rate of 0.83–0.86 is maintained, which is acceptable given that high-resolution predictions are downscaled from the DG2 piecewise-planar solution at <inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.
FV1 predictions at <inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m are obtained directly without downscaling, and FV1 predictions converge towards ACC predictions with successive grid refinement.
This convergence is evidenced in all three metrics, with FV1 at <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m achieving a high hit rate (0.93), low false alarm ratio (0.03) and high critical success index (0.90).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F17" specific-use="star"><?xmltex \currentcnt{17}?><?xmltex \def\figurename{Figure}?><label>Figure 17</label><caption><p id="d1e9865">Predicted flood inundation maps over Carlisle city centre at 12:00, 5 December.
DG2 predictions at <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m and <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m are downscaled from the DG2 piecewise-planar prediction at <inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption>
            <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/14/3577/2021/gmd-14-3577-2021-f17.png"/>

          </fig>

</sec>
<?pagebreak page3596?><sec id="Ch1.S3.SS3.SSS3">
  <label>3.3.3</label><title>Flood inundation maps at 12:00, 5 December</title>
      <p id="d1e9924">While some differences between solver predictions were evident in maximum flood depths, these differences become clearer in flood inundation maps taken at a single time instant. Accordingly, flood inundation maps shown in Fig. <xref ref-type="fig" rid="Ch1.F17"/> are taken at 12:00, 5 December, over Carlisle city centre, during the rising limb of the Sheepmount and Sands Centre hydrographs, where river level rises were largest (Fig. <xref ref-type="fig" rid="Ch1.F14"/>). At the coarsest resolution of <inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m, DG2 and ACC predictions are almost identical (Fig. <xref ref-type="fig" rid="Ch1.F17"/>a and  g). Both solvers accurately capture the flood extent and water depths predicted by FV1 and ACC at a 4 times finer resolution of <inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="Ch1.F17"/>f and  i). In contrast, FV1 predicts greater water depths and a slightly wider flood extent, particularly at coarser resolutions of <inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="Ch1.F17"/>d) and <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="Ch1.F17"/>e). But once the grid is refined to a resolution of <inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m, FV1 and ACC solutions are almost converged (Fig. <xref ref-type="fig" rid="Ch1.F17"/>f and i).
DG2 predictions at <inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="Ch1.F17"/>b) and 10 m (Fig. <xref ref-type="fig" rid="Ch1.F17"/>c) are downscaled from the DG2 prediction at <inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.
The downscaled DG2 predictions are not expected to resolve all fine-scale features visible in the FV1 and ACC predictions.  Nevertheless, compared to the DG2 <inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m flood map, the downscaled DG2 flood maps better represent the deeper waters in the river Eden (flowing east to west) and in the river Caldew (flowing south to north).</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T4"><?xmltex \currentcnt{4}?><label>Table 4</label><caption><p id="d1e10062">Root mean square error (RMSE) in water depth (m) calculated at 12:00, 5 December, over the entire Eden catchment. The FV1 prediction at the finest resolution of <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m is taken as the reference solution.  RMSEs are not calculated for DG2 at <inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m or 10 m because these results are downsampled from the DG2 <inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m result.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <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:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">DG2</oasis:entry>
         <oasis:entry colname="col3">FV1</oasis:entry>
         <oasis:entry colname="col4">ACC</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">0.241</oasis:entry>
         <oasis:entry colname="col3">0.267</oasis:entry>
         <oasis:entry colname="col4">0.240</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">0.112</oasis:entry>
         <oasis:entry colname="col4">0.100</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">0.037</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d1e10225">To quantify the spatial convergence of the three solvers, water depth RMSEs are calculated at 12:00, 5 December, over the entire catchment (Table <xref ref-type="table" rid="Ch1.T4"/>). Since water depth observations are unavailable, the FV1 prediction at <inline-formula><mml:math id="M328" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m is taken as the reference solution. At <inline-formula><mml:math id="M329" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m, DG2 and ACC RMSEs are almost identical, while the FV1 error is about 10 % larger. At <inline-formula><mml:math id="M330" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m, FV1 errors are again about 10 % larger than ACC, with the ACC solver converging more rapidly towards the FV1 reference solution than FV1 itself, despite ACC's simplified numerical formulation (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>).</p>
      <p id="d1e10275">In this catchment-scale simulation and earlier in the simulation of a slowly propagating wave over a flat floodplain (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1.SSS2"/>), FV1 was seen to converge more slowly and predict a flood extent wider than DG2 or ACC. Once again, these differences can be attributed to the order of accuracy of the solvers: FV1 is formally first-order-accurate and exhibits the greatest sensitivity to grid resolution, while DG2 and ACC are both second-order-accurate in space.</p>

<?xmltex \floatpos{t}?><table-wrap id="Ch1.T5"><?xmltex \currentcnt{5}?><label>Table 5</label><caption><p id="d1e10283">Solver runtimes for DG2-GPU, FV1-GPU and ACC solvers. The ACC solver is run on 16 CPU cores.  Due to its relatively high runtime cost, DG2-GPU is only run at <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="4">
     <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:colspec colnum="4" colname="col4" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">DG2-GPU</oasis:entry>
         <oasis:entry colname="col3">FV1-GPU</oasis:entry>
         <oasis:entry colname="col4">ACC</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">154 h</oasis:entry>
         <oasis:entry colname="col3">1.2 h</oasis:entry>
         <oasis:entry colname="col4">2.4 h</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">8.1 h</oasis:entry>
         <oasis:entry colname="col4">17.5 h</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> m</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">67 h</oasis:entry>
         <oasis:entry colname="col4">131 h</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</sec>
<sec id="Ch1.S3.SS3.SSS4">
  <label>3.3.4</label><title>Runtime cost</title>
      <p id="d1e10426">Solver runtimes for the entire 5.5 d simulation are shown in Table <xref ref-type="table" rid="Ch1.T5"/>. On the same grid, FV1-GPU is about 2 times faster than ACC on a 16-core CPU, which is consistent with earlier findings in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/> and <xref ref-type="sec" rid="Ch1.S3.SS2"/>. FV1-GPU and ACC runtimes scale as expected: halving the grid spacing quadruples the total number of elements and halves the time step due to the CFL constraint. Hence, halving the grid spacing multiplies the runtime by a factor of about 8. At all grid spacings between 40 and 10 m, FV1-GPU and ACC simulations run faster than real-time and complete in less than 5.5 d, indicating that these solvers are suitable for real-time flood forecasting applications.</p>
      <p id="d1e10435">The DG2-GPU solver runtime is substantially slower than other solvers on the same, coarse grid. Unlike the tests presented earlier in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/> and <xref ref-type="sec" rid="Ch1.S3.SS2"/>, this test involves widespread overland flow driven by continual rainfall. Overland flow is characterised by thin layers of water only centimetres deep, which continually flow downhill, driven by gravity and balanced by frictional forces. These frictional forces become strongly nonlinear for such thin water layers, and the DG2 friction scheme imposes an additional<?pagebreak page3597?> restriction on the time step size to maintain stability in the discharge slope coefficients. This challenge has recently been addressed in finite-volume hydrodynamic modelling using an improved friction scheme that calculates the physically correct equilibrium state between gravitational and frictional forces <xref ref-type="bibr" rid="bib1.bibx66" id="paren.119"/>. Extending this friction scheme into a discontinuous Galerkin formulation is expected to alleviate the time step restriction and reduce DG2 solver runtimes for overland flow simulations. For simulations without widespread overland flow, including those presented earlier in Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/> and <xref ref-type="sec" rid="Ch1.S3.SS2"/>, the current DG2 formulation imposes no additional time step restriction and DG2 solver runtimes are substantially faster.</p>
</sec>
</sec>
</sec>
<?pagebreak page3598?><sec id="Ch1.S4" sec-type="conclusions">
  <label>4</label><title>Summary and conclusions</title>
      <p id="d1e10459">This paper presented new second-order discontinuous Galerkin (LISFLOOD-DG2) and first-order finite-volume (LISFLOOD-FV1) solvers that are parallelised for multi-core CPU and Nvidia GPU architectures. The new solvers are compatible with existing LISFLOOD-FP test cases and available in LISFLOOD-FP 8.0, alongside the existing local inertia solver, LISFLOOD-ACC. LISFLOOD-FP 8.0 also supports spatially and temporally varying rainfall data to enable real-world rain-on-grid simulations.</p>
      <p id="d1e10462">The predictive capabilities and computational scalability of the new solvers was studied across two Environment Agency (EA) benchmark tests, and for a real-world fluvial flood simulation driven by rainfall across a 2500 <inline-formula><mml:math id="M335" display="inline"><mml:mrow class="unit"><mml:msup><mml:mi mathvariant="normal">km</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> catchment. The second-order spatial convergence of LISFLOOD-DG2 on coarse grids was demonstrated by its ability to sharply resolve moving wet–dry fronts in EA benchmark tests, and in the catchment-scale flood simulation, DG2 alleviated the impact of DEM coarsening on river level hydrograph predictions due to its second-order, piecewise-planar representation of river channel geometries.</p>
      <p id="d1e10476">By analysing the LISFLOOD-ACC local inertia solver, its hybrid finite-difference and finite-volume scheme was found to be spatially second-order-accurate thanks to its grid staggering of water depth and discharge variables. As a result, ACC predictions in all tests were close to those of DG2, despite ACC's simplified governing equations and simplified numerical scheme. The ACC solver also exhibited less numerical diffusion at wet–dry fronts and predicted more accurate hydrographs and flood inundation maps than FV1 on coarse grids. Meanwhile, the FV1 and DG2 solvers provided the most robust predictions of a rapidly propagating wave in an EA benchmark test involving supercritical flow and abrupt water depth changes.</p>
      <p id="d1e10479">The multi-core FV1-CPU and DG2-CPU demonstrated near-optimal computational scalability up to 16 CPU cores. Multi-core CPU runtimes were most efficient on grids with fewer than 0.1 million elements, while FV1-GPU and DG2-GPU solvers were most efficient on grids with more than 1 million elements, where the high degree of GPU parallelisation was best exploited. On such grids, GPU solvers were 2.5–4 times faster than the corresponding 16-core CPU solvers, and FV1-GPU runtimes were highly competitive with those of ACC.
DG2-GPU was also found to be more efficient than FV1-GPU and ACC: DG2-GPU delivered the same level of accuracy on 2–4 times coarser grids while remaining faster to run.</p>
      <p id="d1e10483">For the catchment-scale flood simulation, the DG2-GPU runtime was less competitive due to widespread overland flow, involving frictional forces acting on thin water layers, which imposed an additional time step restriction in the current DG2 formulation. It is expected that this restriction could be lifted by formulating an improved DG2 friction scheme based on the finite-volume friction scheme of <xref ref-type="bibr" rid="bib1.bibx66" id="text.120"/>. Overland flow does not feature in the EA benchmark tests, where DG2-GPU runtimes remain competitive, being only 5–8 times slower than ACC on the same grid.
However, FV1 and DG2 are the first solvers in LISFLOOD-FP to gain a dynamic rain-on-grid capability, with this capability being added to the optimised ACC solver in a future release.
To further improve efficiency and accuracy at coarse resolutions over large catchments, one future direction would be to port the sub-grid channel model – currently integrated with the CPU-optimised ACC solver – to GPU architectures.
Another useful direction would be to enable a multi-resolution solver based on <xref ref-type="bibr" rid="bib1.bibx23" id="text.121"/>, and introduce a hybrid DG2/FV1 solver that downgraded the DG2 formulation to FV1 in regions of very thin water layer, or in regions of finest grid resolution, to further reduce the computational cost.
Both directions are being investigated for inclusion in future LISFLOOD-FP releases.</p>
      <p id="d1e10492">Overall, the LISFLOOD-DG2, FV1 and ACC solvers all demonstrated reliable predictions in good agreement with existing industrial model results and real-world observation data. Despite its simplified numerical formulation, ACC predictions were close to those of DG2 since both solvers are spatially second-order-accurate. DG2 achieved the best spatial convergence, and its piecewise-planar representation of river channels wider than <inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> facilitated improved river level hydrograph and flood inundation predictions that were typically close to those of FV1 and ACC on 2–4 times finer grids. Hence, for simulations where high-resolution DEM data are unavailable or large-scale high-resolution modelling is infeasible, LISFLOOD-DG2-GPU is a promising choice for flood inundation modelling.</p><?xmltex \hack{\clearpage}?>
</sec>

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

<?pagebreak page3599?><app id="App1.Ch1.S1">
  <?xmltex \currentcnt{A}?><label>Appendix A</label><title>Running the LISFLOOD-FP simulations</title>
      <p id="d1e10522">To run a simulation, specify the LISFLOOD-FP parameter file, <monospace>ea4.par</monospace>, <monospace>ea5.par</monospace> or <monospace>eden.par</monospace> along with the appropriate solver parameters.
For example, to run test 4 at <inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> m with the FV1-GPU solver:
<preformat><![CDATA[lisflood -DEMfile ea4-50m.dem \
         -dirroot ea4-50m-fv1-gpu \
         -fv1 -cuda ea4.par]]></preformat>
Model outputs are written in ESRI ASCII format to the specified <monospace>dirroot</monospace> directory: <monospace>.wd</monospace> is a water depth field, and <monospace>.Vx</monospace> and <monospace>.Vy</monospace> denote <inline-formula><mml:math id="M338" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M339" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> components of velocity.  Water depth and velocity hydrographs are written to <monospace>.stage</monospace> and <monospace>.velocity</monospace> files respectively.</p>
      <p id="d1e10585">Model output ESRI ASCII files can be post-processed using the Python 3 scripts in the <monospace>postprocess</monospace> directory in the LISFLOOD-FP 8.0 software package <xref ref-type="bibr" rid="bib1.bibx32" id="paren.122"/>:<def-list>
          <def-item><term><monospace>downsample.py</monospace> and <monospace>upsample.py</monospace></term><def>

      <p id="d1e10604">Down-sample or up-sample a given ESRI ASCII file by power of 2.</p>
          </def></def-item>
          <def-item><term>
              <monospace>speed.py</monospace>
            </term><def>

      <p id="d1e10616">Calculate the magnitude of velocity from <inline-formula><mml:math id="M340" display="inline"><mml:mi>u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M341" display="inline"><mml:mi>v</mml:mi></mml:math></inline-formula> components.</p>
          </def></def-item>
          <def-item><term>
              <monospace>froude.py</monospace>
            </term><def>

      <p id="d1e10642">Calculate the Froude number from given water depth and speed files.</p>
          </def></def-item>
          <def-item><term>
              <monospace>sampleline.py</monospace>
            </term><def>

      <p id="d1e10654">Extract a horizontal or vertical cross section at a given <inline-formula><mml:math id="M342" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> or <inline-formula><mml:math id="M343" display="inline"><mml:mi>j</mml:mi></mml:math></inline-formula> index.</p>
          </def></def-item>
          <def-item><term>
              <monospace>mask.py</monospace>
            </term><def>

      <p id="d1e10680">Mask a model output by imposing `NoData` values from the DEM onto the model output file.</p>
          </def></def-item>
          <def-item><term>
              <monospace>diff.py</monospace>
            </term><def>

      <p id="d1e10693">Calculate the difference between two model outputs.</p>
          </def></def-item>
          <def-item><term>
              <monospace>stats.py</monospace>
            </term><def>

      <p id="d1e10705">Calculate global statistics including min and max values and root mean square error.</p>
          </def></def-item>
        </def-list>To convert a raw DEM (<monospace>.dem.raw</monospace> file) to a DG2 DEM (comprising <monospace>.dem</monospace>, <monospace>.dem1x</monospace> and <monospace>.dem1y</monospace> files), run the generateDG2DEM application provided with the LISFLOOD-FP 8.0 software package.  For further details on configuring and running the model, consult the user manual <xref ref-type="bibr" rid="bib1.bibx32" id="paren.123"/>.</p>
</app>

<app id="App1.Ch1.S2">
  <?xmltex \currentcnt{B}?><label>Appendix B</label><title>LISFLOOD-ACC order of accuracy</title>
      <p id="d1e10735">The formal order of accuracy of LISFLOOD-ACC is determined by a numerical analysis of the discrete local inertia equations <xref ref-type="bibr" rid="bib1.bibx12" id="paren.124"/>.
To begin, the local inertia equations are linearised by assuming small perturbations in free-surface elevation <inline-formula><mml:math id="M344" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> about a constant reference depth <inline-formula><mml:math id="M345" display="inline"><mml:mi>H</mml:mi></mml:math></inline-formula> [<inline-formula><mml:math id="M346" display="inline"><mml:mi mathvariant="normal">L</mml:mi></mml:math></inline-formula>], leading to the linearised frictionless one-dimensional local inertia equations:<?xmltex \setcounter{equation}{0}?>

              <disp-formula id="App1.Ch1.S2.E40" specific-use="align" content-type="subnumberedsingle"><mml:math id="M347" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.E40.41"><mml:mtd><mml:mtext>B1a</mml:mtext></mml:mtd><mml:mtd><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: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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.E40.42"><mml:mtd><mml:mtext>B1b</mml:mtext></mml:mtd><mml:mtd><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:mi>g</mml:mi><mml:mi>H</mml:mi><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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          This linear assumption is valid for gradually varying, quasi-steady flows <xref ref-type="bibr" rid="bib1.bibx12" id="paren.125"/> and ensures that the remainder of the analysis is tractable.
Equation (B1) is then discretised using the same staggered-grid finite-difference approximation as Eq. (<xref ref-type="disp-formula" rid="Ch1.E38"/>), before performing a Taylor series expansion of the discrete equations to obtain <xref ref-type="bibr" rid="bib1.bibx12" id="paren.126"/><?xmltex \setcounter{equation}{1}?>

              <disp-formula id="App1.Ch1.S2.E43" specific-use="align" content-type="subnumberedsingle"><mml:math id="M348" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><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: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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><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:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi mathvariant="italic">η</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</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">6</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mi mathvariant="italic">η</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.S2.E43.44"><mml:mtd><mml:mtext>B2a</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mspace linebreak="nobreak" width="1em"/><mml:mfenced open="" close=")"><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">24</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mi>q</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:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true" class="stylechange"/></mml:mtd><mml:mtd><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:mi>g</mml:mi><mml:mi>H</mml:mi><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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mo>-</mml:mo><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:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</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">6</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mlabeledtr id="App1.Ch1.S2.E43.45"><mml:mtd><mml:mtext>B2b</mml:mtext></mml:mtd><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mspace width="1em" linebreak="nobreak"/><mml:mfenced open="" close=")"><mml:mrow><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mi>H</mml:mi><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">24</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mo>∂</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mi mathvariant="italic">η</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:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where the first- and second-order discretisation error terms appear on the right-hand side and higher-order terms are neglected. Considering only the leading-order discretisation errors, Eq. (B2) simplifies to<?xmltex \setcounter{equation}{2}?>

              <disp-formula id="App1.Ch1.S2.E46" specific-use="align" content-type="subnumberedsingle"><mml:math id="M349" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="App1.Ch1.S2.E46.47"><mml:mtd><mml:mtext>B3a</mml:mtext></mml:mtd><mml:mtd><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: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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><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:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="App1.Ch1.S2.E46.48"><mml:mtd><mml:mtext>B3b</mml:mtext></mml:mtd><mml:mtd><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:mi>g</mml:mi><mml:mi>H</mml:mi><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>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><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:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M350" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the leading-order discretisation errors. Therefore, the LISFLOOD-ACC formulation is formally first-order-accurate in time but second-order-accurate in space.</p><?xmltex \hack{\clearpage}?>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d1e11332">LISFLOOD-FP 8.0 source code <xref ref-type="bibr" rid="bib1.bibx32" id="paren.127"><named-content content-type="post"><ext-link xlink:href="https://doi.org/10.5281/zenodo.4073011" ext-link-type="DOI">10.5281/zenodo.4073011</ext-link></named-content></xref> and simulation results <xref ref-type="bibr" rid="bib1.bibx56" id="paren.128"><named-content content-type="post"><ext-link xlink:href="https://doi.org/10.5281/zenodo.4066823" ext-link-type="DOI">10.5281/zenodo.4066823</ext-link></named-content></xref> are available on Zenodo.  Instructions for running the simulations are provided in Appendix <xref ref-type="sec" rid="App1.Ch1.S1"/>.
Due to access restrictions, readers are invited to contact the Environment Agency for access to the DEM used in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/> and to refer to <xref ref-type="bibr" rid="bib1.bibx68" id="text.129"/> for access to the Eden catchment model data used in Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e11360">JS coded the numerical solvers in collaboration with JN and conducted simulations and drafted the initial paper with assistance from MKS. GK secured project funding and provided supervision. All authors contributed to conceptualisation, paper review and editing.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e11366">The authors declare that they have no conflict of interest.</p>
  </notes><ack><title>Acknowledgements</title><p id="d1e11372">The authors are most grateful to Xiaodong Ming (Newcastle University), Qiuhua Liang and Xilin Xia (Loughborough University) for providing model data and valuable expertise for the Storm Desmond Eden catchment simulation. The authors thank colleagues at The University of Sheffield: Peter Heywood and Robert Chisholm for sharing their CUDA expertise, Janice Ayog for her expertise with Environment Agency benchmark tests, and Alovya Chowdhury for recording accompanying LISFLOOD-FP online video tutorials. This work is part of the SEAMLESS-WAVE project (SoftwarE infrAstructure for Multi-purpose fLood modElling at variouS scaleS based on WAVElets). For information about the project visit <uri>https://www.seamlesswave.com</uri> (last access: 2 June 2021).</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e11380">James Shaw, Georges Kesserwani and Mohammad Kazem Sharifian were supported by the UK Engineering and Physical Sciences Research Council (EPSRC) grant EP/R007349/1. Paul Bates was supported by a Royal Society Wolfson Research Merit award.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d1e11386">This paper was edited by Bethanna Jackson and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><?xmltex \def\ref@label{{Arakawa and Lamb(1977)}}?><label>Arakawa and Lamb(1977)</label><?label arakawa-lamb1977?><mixed-citation>Arakawa, A. and Lamb, V. R.: Computational design of the basic dynamical
processes of the UCLA general circulation model, Methods in Computational
Physics: Advances in Research and Applications, 17, 173–265,
<ext-link xlink:href="https://doi.org/10.1016/B978-0-12-460817-7.50009-4" ext-link-type="DOI">10.1016/B978-0-12-460817-7.50009-4</ext-link>, 1977.</mixed-citation></ref>
      <ref id="bib1.bibx2"><?xmltex \def\ref@label{{Ayog et~al.(2021)Ayog, Kesserwani, Shaw, Sharifian, and
Bau}}?><label>Ayog et al.(2021)Ayog, Kesserwani, Shaw, Sharifian, and
Bau</label><?label ayog2020?><mixed-citation>Ayog, J. L., Kesserwani, G., Shaw, J., Sharifian, M. K., and Bau, D.:
Second-order discontinuous Galerkin flood model: comparison with
industry-standard finite volume models, J. Hydrol., 594, 125924,
<ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2020.125924" ext-link-type="DOI">10.1016/j.jhydrol.2020.125924</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx3"><?xmltex \def\ref@label{{Bates(2012)}}?><label>Bates(2012)</label><?label bates2012?><mixed-citation>Bates, P. D.: Integrating remote sensing data with flood inundation models: how
far have we got?, Hydrol. Process., 26, 2515–2521, <ext-link xlink:href="https://doi.org/10.1002/hyp.9374" ext-link-type="DOI">10.1002/hyp.9374</ext-link>,
2012.</mixed-citation></ref>
      <ref id="bib1.bibx4"><?xmltex \def\ref@label{{Bates et~al.(2010)Bates, Horritt, and Fewtrell}}?><label>Bates et al.(2010)Bates, Horritt, and Fewtrell</label><?label bates2010?><mixed-citation>Bates, P. D., Horritt, M. S., and Fewtrell, T. J.: A simple inertial
formulation of the shallow water equations for efficient two-dimensional
flood inundation modelling, J. Hydrol., 387, 33–45,
<ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2010.03.027" ext-link-type="DOI">10.1016/j.jhydrol.2010.03.027</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx5"><?xmltex \def\ref@label{{Bates et~al.(2014)Bates, Pappenberger, and Romanowicz}}?><label>Bates et al.(2014)Bates, Pappenberger, and Romanowicz</label><?label bates2014?><mixed-citation>Bates, P. D., Pappenberger, F., and Romanowicz, R. J.: Uncertainty in flood
inundation modelling, in: Applied uncertainty analysis for flood risk
management, 232–269, <ext-link xlink:href="https://doi.org/10.1142/9781848162716_0010" ext-link-type="DOI">10.1142/9781848162716_0010</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx6"><?xmltex \def\ref@label{{Brodtkorb et~al.(2013)Brodtkorb, Hagen, and
S{\ae}tra}}?><label>Brodtkorb et al.(2013)Brodtkorb, Hagen, and
Sætra</label><?label brodtkorb2013?><mixed-citation>Brodtkorb, A. R., Hagen, T. R., and Sætra, M. L.: Graphics processing unit
(GPU) programming strategies and trends in GPU computing, J. Parallel
Distr. Com., 73, 4–13, <ext-link xlink:href="https://doi.org/10.1016/j.jpdc.2012.04.003" ext-link-type="DOI">10.1016/j.jpdc.2012.04.003</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx7"><?xmltex \def\ref@label{{Cockburn and Shu(2001)}}?><label>Cockburn and Shu(2001)</label><?label cockburn-shu2001?><mixed-citation>Cockburn, B. and Shu, C.-W.: Runge–Kutta discontinuous Galerkin methods
for convection-dominated problems, J. Sci. Comput., 16, 173–261,
<ext-link xlink:href="https://doi.org/10.1023/A:1012873910884" ext-link-type="DOI">10.1023/A:1012873910884</ext-link>, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx8"><?xmltex \def\ref@label{{Cohen et~al.(2016)Cohen, Hilton, and Prakash}}?><label>Cohen et al.(2016)Cohen, Hilton, and Prakash</label><?label cohen2016?><mixed-citation>Cohen, R., Hilton, J., and Prakash, M.: Benchmark testing the Swift flood
modelling solver: Version I, Tech. Rep. EP151977, CSIRO,
available at: <uri>https://publications.csiro.au/rpr/download?pid=csiro:EP151977&amp;dsid=DS2</uri> (last access: 2 June 2021),
2016.</mixed-citation></ref>
      <ref id="bib1.bibx9"><?xmltex \def\ref@label{{Collins et~al.(2013)Collins, James, Ray, Chen, Lassman, and
Brownlee}}?><label>Collins et al.(2013)Collins, James, Ray, Chen, Lassman, and
Brownlee</label><?label collins2013?><mixed-citation>Collins, S. N., James, R. S., Ray, P., Chen, K., Lassman, A., and Brownlee, J.:
Grids in numerical weather and climate models, in: Climate change and
regional/local responses,  IntechOpen, 256, <ext-link xlink:href="https://doi.org/10.5772/55922" ext-link-type="DOI">10.5772/55922</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx10"><?xmltex \def\ref@label{{Cozzolino et~al.(2019)Cozzolino, Cimorelli, Della~Morte, Pugliano,
Piscopo, and Pianese}}?><label>Cozzolino et al.(2019)Cozzolino, Cimorelli, Della Morte, Pugliano,
Piscopo, and Pianese</label><?label cozzolino2019?><mixed-citation>Cozzolino, L., Cimorelli, L., Della Morte, R., Pugliano, G., Piscopo, V., and
Pianese, D.: Flood propagation modeling with the Local Inertia Approximation:
Theoretical and numerical analysis of its physical limitations, Adv. Water
Resour., 133, 103422, <ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2019.103422" ext-link-type="DOI">10.1016/j.advwatres.2019.103422</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx11"><?xmltex \def\ref@label{{de~Almeida and Bates(2013)}}?><label>de Almeida and Bates(2013)</label><?label dealmeida-bates2013?><mixed-citation>de Almeida, G. A. and Bates, P.: Applicability of the local inertial
approximation of the shallow water equations to flood modeling, Water Resour.
Res., 49, 4833–4844, <ext-link xlink:href="https://doi.org/10.1002/wrcr.20366" ext-link-type="DOI">10.1002/wrcr.20366</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx12"><?xmltex \def\ref@label{{de~Almeida et~al.(2012)de~Almeida, Bates, Freer, and
Souvignet}}?><label>de Almeida et al.(2012)de Almeida, Bates, Freer, and
Souvignet</label><?label dealmeida2012?><mixed-citation>de Almeida, G. A., Bates, P., Freer, J. E., and Souvignet, M.: Improving the
stability of a simple formulation of the shallow water equations for 2-D
flood modeling, Water Resour. Res., 48, W05528, <ext-link xlink:href="https://doi.org/10.1029/2011WR011570" ext-link-type="DOI">10.1029/2011WR011570</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx13"><?xmltex \def\ref@label{{{Environment Agency}(2020)}}?><label>Environment Agency(2020)</label><?label ea2020?><mixed-citation>Environment Agency: Real-time and Near-real-time river level data,
available at: <uri>https://data.gov.uk/dataset/0cbf2251-6eb2-4c4e-af7c-d318da9a58be/real-time-and-near-real-time-river-level-data</uri> (last access: 2 June 2021),
2020.</mixed-citation></ref>
      <ref id="bib1.bibx14"><?xmltex \def\ref@label{{Falter et~al.(2013)Falter, Vorogushyn, Lhomme, Apel, Gouldby, and
Merz}}?><label>Falter et al.(2013)Falter, Vorogushyn, Lhomme, Apel, Gouldby, and
Merz</label><?label falter2013?><mixed-citation>Falter, D., Vorogushyn, S., Lhomme, J., Apel, H., Gouldby, B., and Merz, B.:
Hydraulic model evaluation for large-scale flood risk assessments, Hydrol.
Process., 27, 1331–1340, <ext-link xlink:href="https://doi.org/10.1002/hyp.9553" ext-link-type="DOI">10.1002/hyp.9553</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx15"><?xmltex \def\ref@label{{Garc{\'{\i}}a-Feal et~al.(2018)Garc{\'{\i}}a-Feal, Gonz{\'{a}}lez-Cao,
G{\'{o}}mez-Gesteira, Cea, Dom{\'{\i}}nguez, and Formella}}?><label>García-Feal et al.(2018)García-Feal, González-Cao,
Gómez-Gesteira, Cea, Domínguez, and Formella</label><?label garciafeal2018?><mixed-citation>García-Feal, O., González-Cao, J., Gómez-Gesteira, M., Cea, L.,
Domínguez, J. M., and Formella, A.: An accelerated tool for flood
modelling based on Iber, Water, 10, 1459, <ext-link xlink:href="https://doi.org/10.3390/w10101459" ext-link-type="DOI">10.3390/w10101459</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx16"><?xmltex \def\ref@label{{Guidolin et~al.(2016)Guidolin, Chen, Ghimire, Keedwell,
Djordjevi{\'{c}}, and Savi{\'{c}}}}?><label>Guidolin et al.(2016)Guidolin, Chen, Ghimire, Keedwell,
Djordjević, and Savić</label><?label guidolin2016?><mixed-citation>Guidolin, M., Chen, A. S., Ghimire, B., Keedwell, E. C., Djordjević, S.,
and Savić, D. A.: A weighted cellular automata 2D inundation model for
rapid flood analysis, Environ. Modell. Softw., 84, 378–394,
<ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2016.07.008" ext-link-type="DOI">10.1016/j.envsoft.2016.07.008</ext-link>, 2016.</mixed-citation></ref>
      <?pagebreak page3601?><ref id="bib1.bibx17"><?xmltex \def\ref@label{{Harris(2013)}}?><label>Harris(2013)</label><?label harris2013?><mixed-citation>Harris, M.: CUDA pro tip: write flexible kernels with grid-stride loops,
available at: <uri>https://developer.nvidia.com/blog/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/ (last access: 2~June~2021)</uri>,
2013.</mixed-citation></ref>
      <ref id="bib1.bibx18"><?xmltex \def\ref@label{{Hoch et~al.(2019)Hoch, Eilander, Ikeuchi, Baart, and
Winsemius}}?><label>Hoch et al.(2019)Hoch, Eilander, Ikeuchi, Baart, and
Winsemius</label><?label hoch2019?><mixed-citation>Hoch, J. M., Eilander, D., Ikeuchi, H., Baart, F., and Winsemius, H. C.: Evaluating the impact of model complexity on flood wave propagation and inundation extent with a hydrologic–hydrodynamic model coupling framework, Nat. Hazards Earth Syst. Sci., 19, 1723–1735, <ext-link xlink:href="https://doi.org/10.5194/nhess-19-1723-2019" ext-link-type="DOI">10.5194/nhess-19-1723-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx19"><?xmltex \def\ref@label{{Hunter et~al.(2006)Hunter, Bates, Horritt, and Wilson}}?><label>Hunter et al.(2006)Hunter, Bates, Horritt, and Wilson</label><?label hunter2006?><mixed-citation>Hunter, N., Bates, P., Horritt, M., and Wilson, M.: Improved simulation of
flood flows using storage cell models, P. I. Civil Eng. Wat. M., 159, 9–18,
<ext-link xlink:href="https://doi.org/10.1680/wama.2006.159.1.9" ext-link-type="DOI">10.1680/wama.2006.159.1.9</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx20"><?xmltex \def\ref@label{{Huxley et~al.(2017)Huxley, Syme, and Symons}}?><label>Huxley et al.(2017)Huxley, Syme, and Symons</label><?label huxley2017?><mixed-citation>Huxley, C., Syme, B., and Symons, E.: UK Environment Agency 2D Hydraulic
Model Benchmark Tests, 2017-09 TUFLOW release update, Tech. rep., BMT WBM
Pty Ltd., Level 8, 200 Creek Street, Brisbane Qld 4000, Australia, PO Box
203, Spring Hill 400,
available at: <uri>https://downloads.tuflow.com/_archive/Publications/UK%20EA%202D%20Benchmarking%20Results.TUFLOW%20Products%202017-09.pdf</uri> (last access: 2 June 2021), 2017.</mixed-citation></ref>
      <ref id="bib1.bibx21"><?xmltex \def\ref@label{{Jamieson et~al.(2012)Jamieson, Lhomme, Wright, and
Gouldby}}?><label>Jamieson et al.(2012)Jamieson, Lhomme, Wright, and
Gouldby</label><?label jamieson2012?><mixed-citation>Jamieson, S. R., Lhomme, J., Wright, G., and Gouldby, B.: A highly efficient
2D flood model with sub-element topography, P. I. Civil Eng. Wat. M., 165,
581–595, <ext-link xlink:href="https://doi.org/10.1680/wama.12.00021" ext-link-type="DOI">10.1680/wama.12.00021</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx22"><?xmltex \def\ref@label{{Kesserwani and Liang(2012)}}?><label>Kesserwani and Liang(2012)</label><?label kesserwani-liang2012?><mixed-citation>Kesserwani, G. and Liang, Q.: Locally limited and fully conserved RKDG2
shallow water solutions with wetting and drying, J. Sci. Comput., 50,
120–144, <ext-link xlink:href="https://doi.org/10.1007/s10915-011-9476-4" ext-link-type="DOI">10.1007/s10915-011-9476-4</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx23"><?xmltex \def\ref@label{{Kesserwani and Sharifian(2020)}}?><label>Kesserwani and Sharifian(2020)</label><?label kesserwani-sharifian2020?><mixed-citation>Kesserwani, G. and Sharifian, M. K.: (Multi)wavelets increase both accuracy and
efficiency of standard Godunov-type hydrodynamic models: Robust 2D
approaches, Adv. Water Resour., 144, 103693,
<ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2020.103693" ext-link-type="DOI">10.1016/j.advwatres.2020.103693</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx24"><?xmltex \def\ref@label{{Kesserwani and Wang(2014)}}?><label>Kesserwani and Wang(2014)</label><?label kesserwani-wang2014?><mixed-citation>Kesserwani, G. and Wang, Y.: Discontinuous Galerkin flood model formulation:
Luxury or necessity?, Water Resour. Res., 50, 6522–6541,
<ext-link xlink:href="https://doi.org/10.1002/2013WR014906" ext-link-type="DOI">10.1002/2013WR014906</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx25"><?xmltex \def\ref@label{{Kesserwani et~al.(2010)Kesserwani, Liang, Vazquez, and
Mos{\'{e}}}}?><label>Kesserwani et al.(2010)Kesserwani, Liang, Vazquez, and
Mosé</label><?label kesserwani2010?><mixed-citation>Kesserwani, G., Liang, Q., Vazquez, J., and Mosé, R.: Well-balancing issues
related to the RKDG2 scheme for the shallow water equations, Int. J. Numer.
Meth. Fl., 62, 428–448, <ext-link xlink:href="https://doi.org/10.1002/fld.2027" ext-link-type="DOI">10.1002/fld.2027</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx26"><?xmltex \def\ref@label{{Kesserwani et~al.(2018)Kesserwani, Ayog, and Bau}}?><label>Kesserwani et al.(2018)Kesserwani, Ayog, and Bau</label><?label kesserwani2018?><mixed-citation>Kesserwani, G., Ayog, J. L., and Bau, D.: Discontinuous Galerkin formulation
for 2D hydrodynamic modelling: Trade-offs between theoretical complexity
and practical convenience, Comput. Method. Appl. M., 342, 710–741,
<ext-link xlink:href="https://doi.org/10.1016/j.cma.2018.08.003" ext-link-type="DOI">10.1016/j.cma.2018.08.003</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx27"><?xmltex \def\ref@label{{Kolega and Syme(2019)}}?><label>Kolega and Syme(2019)</label><?label kolega-syme2019?><mixed-citation>Kolega, A. and Syme, B.: Evolution in flood modelling based on the example of
the Eudlo Creek crossing over the Bruce Highway, Institute of Public Works
Engineering Australasia Queensland,
available at: <uri>http://ipweaq.intersearch.com.au/ipweaqjspui/handle/1/5386</uri> (last access: 2 June 2021),
2019.</mixed-citation></ref>
      <ref id="bib1.bibx28"><?xmltex \def\ref@label{{Krivodonova et~al.(2004)Krivodonova, Xin, Remacle, Chevaugeon, and
Flaherty}}?><label>Krivodonova et al.(2004)Krivodonova, Xin, Remacle, Chevaugeon, and
Flaherty</label><?label krivodonova2004?><mixed-citation>Krivodonova, L., Xin, J., Remacle, J.-F., Chevaugeon, N., and Flaherty, J. E.:
Shock detection and limiting with discontinuous Galerkin methods for
hyperbolic conservation laws, Appl. Numer. Math., 48, 323–338,
<ext-link xlink:href="https://doi.org/10.1016/j.apnum.2003.11.002" ext-link-type="DOI">10.1016/j.apnum.2003.11.002</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx29"><?xmltex \def\ref@label{{Kvo{\v{c}}ka et~al.(2017)Kvo{\v{c}}ka, Ahmadian, and
Falconer}}?><label>Kvočka et al.(2017)Kvočka, Ahmadian, and
Falconer</label><?label kvovcka2017?><mixed-citation>Kvočka, D., Ahmadian, R., and Falconer, R. A.: Flood inundation modelling
of flash floods in steep river basins and catchments, Water, 9, 705,
<ext-link xlink:href="https://doi.org/10.3390/w9090705" ext-link-type="DOI">10.3390/w9090705</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx30"><?xmltex \def\ref@label{{Li et~al.(2020)Li, Andreadis, Margulis, and Lettenmaier}}?><label>Li et al.(2020)Li, Andreadis, Margulis, and Lettenmaier</label><?label li2020?><mixed-citation>Li, D., Andreadis, K. M., Margulis, S. A., and Lettenmaier, D. P.: A data
assimilation framework for generating space-time continuous daily SWOT
river discharge data products, Water Resour. Res., 56, e2019WR026999,
<ext-link xlink:href="https://doi.org/10.1029/2019WR026999" ext-link-type="DOI">10.1029/2019WR026999</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx31"><?xmltex \def\ref@label{{Liang and Marche(2009)}}?><label>Liang and Marche(2009)</label><?label liang-marche2009?><mixed-citation>Liang, Q. and Marche, F.: Numerical resolution of well-balanced shallow water
equations with complex source terms, Adv. Water Resour., 32, 873–884,
<ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2009.02.010" ext-link-type="DOI">10.1016/j.advwatres.2009.02.010</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx32"><?xmltex \def\ref@label{{{LISFLOOD-FP developers}(2020)}}?><label>LISFLOOD-FP developers(2020)</label><?label lisflood8?><mixed-citation>LISFLOOD-FP developers: LISFLOOD-FP 8.0 hydrodynamic model, Zenodo,
<ext-link xlink:href="https://doi.org/10.5281/zenodo.4073011" ext-link-type="DOI">10.5281/zenodo.4073011</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx33"><?xmltex \def\ref@label{{Liu et~al.(2019)Liu, Merwade, and Jafarzadegan}}?><label>Liu et al.(2019)Liu, Merwade, and Jafarzadegan</label><?label liu2019?><mixed-citation>Liu, Z., Merwade, V., and Jafarzadegan, K.: Investigating the role of model
structure and surface roughness in generating flood inundation extents using
one-and two-dimensional hydraulic models, J. Flood Risk Manag., 12, e12347,
<ext-link xlink:href="https://doi.org/10.1111/jfr3.12347" ext-link-type="DOI">10.1111/jfr3.12347</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx34"><?xmltex \def\ref@label{{Martins et~al.(2015)Martins, Leandro, and
Djordjevi{\'{c}}}}?><label>Martins et al.(2015)Martins, Leandro, and
Djordjević</label><?label martins2015?><mixed-citation>Martins, R., Leandro, J., and Djordjević, S.: A well balanced Roe scheme
for the local inertial equations with an unstructured mesh, Adv. Water
Resour., 83, 351–363, <ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2015.07.007" ext-link-type="DOI">10.1016/j.advwatres.2015.07.007</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx35"><?xmltex \def\ref@label{{Martins et~al.(2016)Martins, Leandro, and
Djordjevi{\'{c}}}}?><label>Martins et al.(2016)Martins, Leandro, and
Djordjević</label><?label martins2016?><mixed-citation>Martins, R., Leandro, J., and Djordjević, S.: Analytical solution of the
classical dam-break problem for the gravity wave–model equations, ASCE J.
Hydraul. Eng., 142, 06016003, <ext-link xlink:href="https://doi.org/10.1061/(ASCE)HY.1943-7900.0001121" ext-link-type="DOI">10.1061/(ASCE)HY.1943-7900.0001121</ext-link>,
2016.</mixed-citation></ref>
      <ref id="bib1.bibx36"><?xmltex \def\ref@label{{McCall(2016)}}?><label>McCall(2016)</label><?label mccall2016?><mixed-citation>McCall, I.: Carlisle Flood Investigation Report, Flood Event 5–6th
December 2015, Tech. rep., Environment Agency,
available at: <uri>https://www.cumbria.gov.uk/eLibrary/Content/Internet/536/6181/42494151257.pdf</uri> (last access: 2 June 2021),
2016. </mixed-citation></ref>
      <ref id="bib1.bibx37"><?xmltex \def\ref@label{{Merrill(2015)}}?><label>Merrill(2015)</label><?label merrill2015?><mixed-citation>Merrill, D.: CUB software package,
available at: <uri>https://nvlabs.github.io/cub/</uri>  (last access: 2 June 2021), 2015.</mixed-citation></ref>
      <ref id="bib1.bibx38"><?xmltex \def\ref@label{{{Met Office}(2013)}}?><label>Met Office(2013)</label><?label metoffice2013?><mixed-citation>Met Office: Met Office Rain Radar Data from the NIMROD System,
available at: <uri>https://catalogue.ceda.ac.uk/uuid/82adec1f896af6169112d09cc1174499</uri>  (last access: 2 June 2021),
2013.</mixed-citation></ref>
      <ref id="bib1.bibx39"><?xmltex \def\ref@label{{Ming et~al.(2020)Ming, Liang, Xia, Li, and Fowler}}?><label>Ming et al.(2020)Ming, Liang, Xia, Li, and Fowler</label><?label ming2020?><mixed-citation>Ming, X., Liang, Q., Xia, X., Li, D., and Fowler, H. J.: Real-time flood
forecasting based on a high-performance 2-D hydrodynamic model and
numerical weather predictions, Water Resour. Res., 56, e2019WR025583,
<ext-link xlink:href="https://doi.org/10.1029/2019WR025583" ext-link-type="DOI">10.1029/2019WR025583</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx40"><?xmltex \def\ref@label{{Morales-Hern{\'{a}}ndez
et~al.(2020)Morales-Hern{\'{a}}ndez, Sharif, Gangrade, Dullo,
Kao, Kalyanapu, Ghafoor, Evans, Madadi-Kandjani, and
Hodges}}?><label>Morales-Hernández
et al.(2020)Morales-Hernández, Sharif, Gangrade, Dullo,
Kao, Kalyanapu, Ghafoor, Evans, Madadi-Kandjani, and
Hodges</label><?label moraleshernandez2020a?><mixed-citation>Morales-Hernández, M., Sharif, M. B., Gangrade, S., Dullo, T. T., Kao,
S.-C., Kalyanapu, A., Ghafoor, S., Evans, K., Madadi-Kandjani, E., and
Hodges, B. R.: High-performance computing in water resources hydrodynamics,
J. Hydroinform., 22, 1217–1235, <ext-link xlink:href="https://doi.org/10.2166/hydro.2020.163" ext-link-type="DOI">10.2166/hydro.2020.163</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx41"><?xmltex \def\ref@label{{Morales-Hern{\'{a}}ndez
et~al.(2021)Morales-Hern{\'{a}}ndez, Sharif, Kalyanapu, Ghafoor,
Dullo, Gangrade, Kao, Norman, and Evans}}?><label>Morales-Hernández
et al.(2021)Morales-Hernández, Sharif, Kalyanapu, Ghafoor,
Dullo, Gangrade, Kao, Norman, and Evans</label><?label moraleshernandez2020b?><mixed-citation>Morales-Hernández, M., Sharif, M. B., Kalyanapu, A., Ghafoor, S. K., Dullo,
T. T., Gangrade, S., Kao, S.-C., Norman, M. R., and Evans, K. J.: TRITON: A Multi-GPU open source 2D hydrodynamic flood model, Environ. Modell.
Softw., 141, 105034, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2021.105034" ext-link-type="DOI">10.1016/j.envsoft.2021.105034</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx42"><?xmltex \def\ref@label{{Neal et~al.(2009)Neal, Fewtrell, and Trigg}}?><label>Neal et al.(2009)Neal, Fewtrell, and Trigg</label><?label neal2009?><mixed-citation>Neal, J., Fewtrell, T., and Trigg, M.: Parallelisation of storage cell flood
models using OpenMP, Environ. Modell. Softw., 24, 872–877,
<ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2008.12.004" ext-link-type="DOI">10.1016/j.envsoft.2008.12.004</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx43"><?xmltex \def\ref@label{{Neal et~al.(2011)Neal, Schumann, Fewtrell, Budimir, Bates, and
Mason}}?><label>Neal et al.(2011)Neal, Schumann, Fewtrell, Budimir, Bates, and
Mason</label><?label neal2011?><mixed-citation>Neal, J., Schumann, G., Fewtrell, T., Budimir, M., Bates, P., and Mason, D.:
Evaluating a new LISFLOOD-FP formulation with data from the summer 2007
floods in Tewkesbury, UK, J. Flood Risk Manag., 4, 88–95,
<ext-link xlink:href="https://doi.org/10.1111/j.1753-318X.2011.01093.x" ext-link-type="DOI">10.1111/j.1753-318X.2011.01093.x</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx44"><?xmltex \def\ref@label{{Neal et~al.(2012{\natexlab{a}})Neal, Schumann, and Bates}}?><label>Neal et al.(2012a)Neal, Schumann, and Bates</label><?label neal2012a?><mixed-citation>Neal, J., Schumann, G., and Bates, P.: A s<?pagebreak page3602?>ubgrid channel model for simulating
river hydraulics and floodplain inundation over large and data sparse areas,
Water Resour. Res., 48, W11506, <ext-link xlink:href="https://doi.org/10.1029/2012WR012514" ext-link-type="DOI">10.1029/2012WR012514</ext-link>, 2012a.</mixed-citation></ref>
      <ref id="bib1.bibx45"><?xmltex \def\ref@label{{Neal et~al.(2012{\natexlab{b}})Neal, Villanueva, Wright, Willis,
Fewtrell, and Bates}}?><label>Neal et al.(2012b)Neal, Villanueva, Wright, Willis,
Fewtrell, and Bates</label><?label neal2012b?><mixed-citation>Neal, J., Villanueva, I., Wright, N., Willis, T., Fewtrell, T., and Bates, P.:
How much physical complexity is needed to model flood inundation?, Hydrol.
Process., 26, 2264–2282, <ext-link xlink:href="https://doi.org/10.1002/hyp.8339" ext-link-type="DOI">10.1002/hyp.8339</ext-link>, 2012b.</mixed-citation></ref>
      <ref id="bib1.bibx46"><?xmltex \def\ref@label{{Neal et~al.(2018)Neal, Dunne, Sampson, Smith, and Bates}}?><label>Neal et al.(2018)Neal, Dunne, Sampson, Smith, and Bates</label><?label neal2018?><mixed-citation>Neal, J., Dunne, T., Sampson, C., Smith, A., and Bates, P.: Optimisation of the
two-dimensional hydraulic model LISFOOD-FP for CPU architecture, Environ.
Modell. Softw., 107, 148–157, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2018.05.011" ext-link-type="DOI">10.1016/j.envsoft.2018.05.011</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx47"><?xmltex \def\ref@label{{N{\'{e}}elz and Pender(2013)}}?><label>Néelz and Pender(2013)</label><?label neelz-pender2013?><mixed-citation>Néelz, S. and Pender, G.: Benchmarking the latest generation of 2D
hydraulic modelling packages, Tech. Rep. SC120002, Environment Agency,
Horizon House, Deanery Road, Bristol, BS1 9AH,
available at: <ext-link xlink:href="https://www.gov.uk/government/publications/benchmarking-the-latest-generation-of-2d-hydraulic-flood-modelling-packages">https://www.gov.uk/government/publications/benchmarking-the-latest-generation-of-2d-hydraulic-flood-modelling-packages</ext-link> (last access: 2 June 2021),
2013.</mixed-citation></ref>
      <ref id="bib1.bibx48"><?xmltex \def\ref@label{{O'Loughlin et~al.(2020)O'Loughlin, Neal, Schumann, Beighley, and
Bates}}?><label>O'Loughlin et al.(2020)O'Loughlin, Neal, Schumann, Beighley, and
Bates</label><?label oloughlin2020?><mixed-citation>O'Loughlin, F., Neal, J., Schumann, G., Beighley, E., and Bates, P.: A
LISFLOOD-FP hydraulic model of the middle reach of the Congo, J. Hydrol.,
580, 124203, <ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2019.124203" ext-link-type="DOI">10.1016/j.jhydrol.2019.124203</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx49"><?xmltex \def\ref@label{{{\"{O}}zgen-Xian et~al.(2020){\"{O}}zgen-Xian, Kesserwani,
Caviedes-Voulli{\`{e}}me, Molins, Xu, Dwivedi, Moulton, and
Steefel}}?><label>Özgen-Xian et al.(2020)Özgen-Xian, Kesserwani,
Caviedes-Voullième, Molins, Xu, Dwivedi, Moulton, and
Steefel</label><?label ozgenxian2020?><mixed-citation>Özgen-Xian, I., Kesserwani, G., Caviedes-Voullième, D., Molins, S., Xu,
Z., Dwivedi, D., Moulton, J. D., and Steefel, C. I.: Wavelet-based local mesh
refinement for rainfall–runoff simulations, J. Hydroinform., 22, 1059–1077,
<ext-link xlink:href="https://doi.org/10.2166/hydro.2020.198" ext-link-type="DOI">10.2166/hydro.2020.198</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx50"><?xmltex \def\ref@label{{Qin et~al.(2019)Qin, LeVeque, and Motley}}?><label>Qin et al.(2019)Qin, LeVeque, and Motley</label><?label qin2019?><mixed-citation>Qin, X., LeVeque, R. J., and Motley, M. R.: Accelerating an Adaptive Mesh
Refinement Code for Depth-Averaged Flows Using GPUs, J. Adv. Model. Earth
Sy., 11, 2606–2628, <ext-link xlink:href="https://doi.org/10.1029/2019MS001635" ext-link-type="DOI">10.1029/2019MS001635</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx51"><?xmltex \def\ref@label{{Rajib et~al.(2020)Rajib, Liu, Merwade, Tavakoly, and
Follum}}?><label>Rajib et al.(2020)Rajib, Liu, Merwade, Tavakoly, and
Follum</label><?label rajib2020?><mixed-citation>Rajib, A., Liu, Z., Merwade, V., Tavakoly, A. A., and Follum, M. L.: Towards a
large-scale locally relevant flood inundation modeling framework using SWAT
and LISFLOOD-FP, J. Hydrol., 581, 124406,
<ext-link xlink:href="https://doi.org/10.1016/j.jhydrol.2019.124406" ext-link-type="DOI">10.1016/j.jhydrol.2019.124406</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx52"><?xmltex \def\ref@label{{Sampson et~al.(2012)Sampson, Fewtrell, Duncan, Shaad, Horritt, and
Bates}}?><label>Sampson et al.(2012)Sampson, Fewtrell, Duncan, Shaad, Horritt, and
Bates</label><?label sampson2012?><mixed-citation>Sampson, C. C., Fewtrell, T. J., Duncan, A., Shaad, K., Horritt, M. S., and
Bates, P. D.: Use of terrestrial laser scanning data to drive decimetric
resolution urban inundation models, Adv. Water Resour., 41, 1–17,
<ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2012.02.010" ext-link-type="DOI">10.1016/j.advwatres.2012.02.010</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx53"><?xmltex \def\ref@label{{Sampson et~al.(2013)Sampson, Bates, Neal, and Horritt}}?><label>Sampson et al.(2013)Sampson, Bates, Neal, and Horritt</label><?label sampson2013?><mixed-citation>Sampson, C. C., Bates, P. D., Neal, J. C., and Horritt, M. S.: An automated
routing methodology to enable direct rainfall in high resolution shallow
water models, Hydrol. Process., 27, 467–476, <ext-link xlink:href="https://doi.org/10.1002/hyp.9515" ext-link-type="DOI">10.1002/hyp.9515</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx54"><?xmltex \def\ref@label{{Sampson et~al.(2015)Sampson, Smith, Bates, Neal, Alfieri, and
Freer}}?><label>Sampson et al.(2015)Sampson, Smith, Bates, Neal, Alfieri, and
Freer</label><?label sampson2015?><mixed-citation>Sampson, C. C., Smith, A. M., Bates, P. D., Neal, J. C., Alfieri, L., and
Freer, J. E.: A high-resolution global flood hazard model, Water Resour.
Res., 51, 7358–7381, <ext-link xlink:href="https://doi.org/10.1002/2015WR016954" ext-link-type="DOI">10.1002/2015WR016954</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx55"><?xmltex \def\ref@label{{Savage et~al.(2016)Savage, Pianosi, Bates, Freer, and
Wagener}}?><label>Savage et al.(2016)Savage, Pianosi, Bates, Freer, and
Wagener</label><?label savage2016?><mixed-citation>Savage, J. T. S., Pianosi, F., Bates, P., Freer, J., and Wagener, T.:
Quantifying the importance of spatial resolution and other factors through
global sensitivity analysis of a flood inundation model, Water Resour. Res.,
52, 9146–9163, <ext-link xlink:href="https://doi.org/10.1002/2015WR018198" ext-link-type="DOI">10.1002/2015WR018198</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx56"><?xmltex \def\ref@label{{Shaw et~al.(2021)Shaw, Kesserwani, Neal, Bates, and
Sharifian}}?><label>Shaw et al.(2021)Shaw, Kesserwani, Neal, Bates, and
Sharifian</label><?label results?><mixed-citation>Shaw, J., Kesserwani, G., Neal, J., Bates, P., and Sharifian, M. K.:
LISFLOOD-FP 8.0 results of Environment Agency and Storm Desmond simulations, Zenodo,
<ext-link xlink:href="https://doi.org/10.5281/zenodo.4066823" ext-link-type="DOI">10.5281/zenodo.4066823</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx57"><?xmltex \def\ref@label{{Shustikova et~al.(2019)Shustikova, Domeneghetti, Neal, Bates, and
Castellarin}}?><label>Shustikova et al.(2019)Shustikova, Domeneghetti, Neal, Bates, and
Castellarin</label><?label shustikova2019?><mixed-citation>Shustikova, I., Domeneghetti, A., Neal, J. C., Bates, P., and Castellarin, A.:
Comparing 2D capabilities of HEC-RAS and LISFLOOD-FP on complex
topography, Hydrolog. Sci. J., 64, 1769–1782,
<ext-link xlink:href="https://doi.org/10.1080/02626667.2019.1671982" ext-link-type="DOI">10.1080/02626667.2019.1671982</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx58"><?xmltex \def\ref@label{{Shustikova et~al.(2020)Shustikova, Neal, Domeneghetti, Bates,
Vorogushyn, and Castellarin}}?><label>Shustikova et al.(2020)Shustikova, Neal, Domeneghetti, Bates,
Vorogushyn, and Castellarin</label><?label shustikova2020?><mixed-citation>Shustikova, I., Neal, J. C., Domeneghetti, A., Bates, P. D., Vorogushyn, S.,
and Castellarin, A.: Levee Breaching: A New Extension to the LISFLOOD-FP
Model, Water, 12, 942, <ext-link xlink:href="https://doi.org/10.3390/w12040942" ext-link-type="DOI">10.3390/w12040942</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx59"><?xmltex \def\ref@label{{Sosa et~al.(2020)Sosa, Sampson, Smith, Neal, and Bates}}?><label>Sosa et al.(2020)Sosa, Sampson, Smith, Neal, and Bates</label><?label sosa2020?><mixed-citation>Sosa, J., Sampson, C., Smith, A., Neal, J., and Bates, P.: A toolbox to quickly
prepare flood inundation models for LISFLOOD-FP simulations, Environ.
Modell. Softw., 123, 104561, <ext-link xlink:href="https://doi.org/10.1016/j.envsoft.2019.104561" ext-link-type="DOI">10.1016/j.envsoft.2019.104561</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx60"><?xmltex \def\ref@label{{Sz{\"{o}}nyi et~al.(2016)Sz{\"{o}}nyi, May, and Lamb}}?><label>Szönyi et al.(2016)Szönyi, May, and Lamb</label><?label szonyi2016?><mixed-citation>Szönyi, M., May, P., and Lamb, R.: Flooding after Storm Desmond, Tech.
rep., Zurich Insurance Group Ltd,
available at: <uri>http://repo.floodalliance.net/jspui/handle/44111/2252</uri> (last access: 2 June 2021), 2016.</mixed-citation></ref>
      <ref id="bib1.bibx61"><?xmltex \def\ref@label{{Villanueva and Wright(2006)}}?><label>Villanueva and Wright(2006)</label><?label villanueva-wright2006?><mixed-citation>Villanueva, I. and Wright, N.: Linking Riemann and storage cell models for
flood prediction, P. I. Civil Eng. Wat. M., 159, 27–33,
<ext-link xlink:href="https://doi.org/10.1680/wama.2006.159.1.27" ext-link-type="DOI">10.1680/wama.2006.159.1.27</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx62"><?xmltex \def\ref@label{{Wang et~al.(2011)Wang, Liang, Kesserwani, and Hall}}?><label>Wang et al.(2011)Wang, Liang, Kesserwani, and Hall</label><?label wang2011?><mixed-citation>Wang, Y., Liang, Q., Kesserwani, G., and Hall, J. W.: A 2D shallow flow model
for practical dam-break simulations, J. Hydraul. Res., 49, 307–316,
<ext-link xlink:href="https://doi.org/10.1080/00221686.2011.566248" ext-link-type="DOI">10.1080/00221686.2011.566248</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx63"><?xmltex \def\ref@label{{Wing et~al.(2017)Wing, Bates, Sampson, Smith, Johnson, and
Erickson}}?><label>Wing et al.(2017)Wing, Bates, Sampson, Smith, Johnson, and
Erickson</label><?label wing2017?><mixed-citation>Wing, O. E., Bates, P. D., Sampson, C. C., Smith, A. M., Johnson, K. A., and
Erickson, T. A.: Validation of a 30 m resolution flood hazard model of the
conterminous United States, Water Resour. Res., 53, 7968–7986,
<ext-link xlink:href="https://doi.org/10.1002/2017WR020917" ext-link-type="DOI">10.1002/2017WR020917</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx64"><?xmltex \def\ref@label{{Wing et~al.(2019)Wing, Bates, Neal, Sampson, Smith, Quinn,
Shustikova, Domeneghetti, Gilles, Goska et~al.}}?><label>Wing et al.(2019)Wing, Bates, Neal, Sampson, Smith, Quinn,
Shustikova, Domeneghetti, Gilles, Goska et al.</label><?label wing2019?><mixed-citation>Wing, O. E., Bates, P. D., Neal, J. C., Sampson, C. C., Smith, A. M., Quinn,
N., Shustikova, I., Domeneghetti, A., Gilles, D. W., Goska, R., and Krajewski, W. F.: A new
automated method for improved flood defense representation in large-scale
hydraulic models, Water Resour. Res., 55, 11007–11034,
<ext-link xlink:href="https://doi.org/10.1029/2019WR025957" ext-link-type="DOI">10.1029/2019WR025957</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx65"><?xmltex \def\ref@label{{Wing et~al.(2020)Wing, Quinn, Bates, Neal, Smith, Sampson, Coxon,
Yamazaki, Sutanudjaja, and Alfieri}}?><label>Wing et al.(2020)Wing, Quinn, Bates, Neal, Smith, Sampson, Coxon,
Yamazaki, Sutanudjaja, and Alfieri</label><?label wing2020?><mixed-citation>Wing, O. E., Quinn, N., Bates, P. D., Neal, J. C., Smith, A. M., Sampson,
C. C., Coxon, G., Yamazaki, D., Sutanudjaja, E. H., and Alfieri, L.: Toward
Global Stochastic River Flood Modeling, Water Resour. Res., 56,
e2020WR027 692, <ext-link xlink:href="https://doi.org/10.1029/2020WR027692" ext-link-type="DOI">10.1029/2020WR027692</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx66"><?xmltex \def\ref@label{{Xia and Liang(2018)}}?><label>Xia and Liang(2018)</label><?label xia-liang2018?><mixed-citation>Xia, X. and Liang, Q.: A new efficient implicit scheme for discretising the
stiff friction terms in the shallow water equations, Adv. Water Resour., 117,
87–97, <ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2018.05.004" ext-link-type="DOI">10.1016/j.advwatres.2018.05.004</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx67"><?xmltex \def\ref@label{{Xia et~al.(2017)Xia, Liang, Ming, and Hou}}?><label>Xia et al.(2017)Xia, Liang, Ming, and Hou</label><?label xia2017?><mixed-citation>Xia, X., Liang, Q., Ming, X., and Hou, J.: An efficient and stable hydrodynamic
model with novel source term discretization schemes for overland flow and
flood simulations, Water Resour. Res., 53, 3730–3759,
<ext-link xlink:href="https://doi.org/10.1002/2016WR020055" ext-link-type="DOI">10.1002/2016WR020055</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx68"><?xmltex \def\ref@label{{Xia et~al.(2019)Xia, Liang, and Ming}}?><label>Xia et al.(2019)Xia, Liang, and Ming</label><?label xia2019?><mixed-citation>Xia, X., Liang, Q., and Ming, X.: A full-scale fluvial flood modelling
framework based on a high-performance integrated hydrodynamic modelling
system (HiPIMS), Adv. Water Resour., 132, 103392,
<ext-link xlink:href="https://doi.org/10.1016/j.advwatres.2019.103392" ext-link-type="DOI">10.1016/j.advwatres.2019.103392</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx69"><?xmltex \def\ref@label{{Yamazaki et~al.(2019)Yamazaki, Ikeshima, Sosa, Bates, Allen, and
Pavelsky}}?><label>Yamazaki et al.(2019)Yamazaki, Ikeshima, Sosa, Bates, Allen, and
Pavelsky</label><?label yamazaki2019?><mixed-citation>Yamazaki, D., Ikeshima, D., Sosa, J., Bates, P. D., Allen, G. H., and Pavelsky,
T. M.: MERIT Hydro: a high-resolution global hydrography map based on
latest topography dataset, Water Resour. Res., 55, 5053–5073,
<ext-link xlink:href="https://doi.org/10.1029/2019WR024873" ext-link-type="DOI">10.1029/2019WR024873</ext-link>, 2019.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>LISFLOOD-FP 8.0: the new discontinuous Galerkin shallow-water solver for multi-core CPUs and GPUs</article-title-html>
<abstract-html><p>LISFLOOD-FP 8.0 includes second-order discontinuous Galerkin (DG2) and first-order finite-volume (FV1) solvers of the two-dimensional shallow-water equations for modelling a wide range of flows, including rapidly propagating, supercritical flows, shock waves or flows over very smooth surfaces.
The solvers are parallelised on multi-core CPU and Nvidia GPU architectures and run existing LISFLOOD-FP modelling scenarios without modification.
These new, fully two-dimensional solvers are available alongside the existing local inertia solver (called ACC), which is optimised for multi-core CPUs and integrates with the LISFLOOD-FP sub-grid channel model.
The predictive capabilities and computational scalability of the new DG2 and FV1 solvers are studied for two Environment Agency benchmark tests and a real-world fluvial flood simulation driven by rainfall across a 2500&thinsp;km<sup>2</sup> catchment.
DG2's second-order-accurate, piecewise-planar representation of topography and flow variables enables predictions on coarse grids that are competitive with FV1 and ACC predictions on 2–4 times finer grids, particularly where river channels are wider than half the grid spacing.
Despite the simplified formulation of the local inertia solver, ACC is shown to be spatially second-order-accurate and yields predictions that are close to DG2. The DG2-CPU and FV1-CPU solvers achieve near-optimal scalability up to 16 CPU cores and achieve greater efficiency on grids with fewer than 0.1&thinsp;million elements. The DG2-GPU and FV1-GPU solvers are most efficient on grids with more than 1&thinsp;million elements, where the GPU solvers are 2.5–4 times faster than the corresponding 16-core CPU solvers. LISFLOOD-FP 8.0 therefore marks a new step towards operational DG2 flood inundation modelling at the catchment scale.
LISFLOOD-FP 8.0 is freely available under the GPL v3 license, with additional documentation and case studies at <a href="https://www.seamlesswave.com/LISFLOOD8.0" target="_blank"/> (last access: 2 June 2021).</p></abstract-html>
<ref-html id="bib1.bib1"><label>Arakawa and Lamb(1977)</label><mixed-citation>
Arakawa, A. and Lamb, V. R.: Computational design of the basic dynamical
processes of the UCLA general circulation model, Methods in Computational
Physics: Advances in Research and Applications, 17, 173–265,
<a href="https://doi.org/10.1016/B978-0-12-460817-7.50009-4" target="_blank">https://doi.org/10.1016/B978-0-12-460817-7.50009-4</a>, 1977.
</mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Ayog et al.(2021)Ayog, Kesserwani, Shaw, Sharifian, and
Bau</label><mixed-citation>
Ayog, J. L., Kesserwani, G., Shaw, J., Sharifian, M. K., and Bau, D.:
Second-order discontinuous Galerkin flood model: comparison with
industry-standard finite volume models, J. Hydrol., 594, 125924,
<a href="https://doi.org/10.1016/j.jhydrol.2020.125924" target="_blank">https://doi.org/10.1016/j.jhydrol.2020.125924</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Bates(2012)</label><mixed-citation>
Bates, P. D.: Integrating remote sensing data with flood inundation models: how
far have we got?, Hydrol. Process., 26, 2515–2521, <a href="https://doi.org/10.1002/hyp.9374" target="_blank">https://doi.org/10.1002/hyp.9374</a>,
2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Bates et al.(2010)Bates, Horritt, and Fewtrell</label><mixed-citation>
Bates, P. D., Horritt, M. S., and Fewtrell, T. J.: A simple inertial
formulation of the shallow water equations for efficient two-dimensional
flood inundation modelling, J. Hydrol., 387, 33–45,
<a href="https://doi.org/10.1016/j.jhydrol.2010.03.027" target="_blank">https://doi.org/10.1016/j.jhydrol.2010.03.027</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Bates et al.(2014)Bates, Pappenberger, and Romanowicz</label><mixed-citation>
Bates, P. D., Pappenberger, F., and Romanowicz, R. J.: Uncertainty in flood
inundation modelling, in: Applied uncertainty analysis for flood risk
management, 232–269, <a href="https://doi.org/10.1142/9781848162716_0010" target="_blank">https://doi.org/10.1142/9781848162716_0010</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Brodtkorb et al.(2013)Brodtkorb, Hagen, and
Sætra</label><mixed-citation>
Brodtkorb, A. R., Hagen, T. R., and Sætra, M. L.: Graphics processing unit
(GPU) programming strategies and trends in GPU computing, J. Parallel
Distr. Com., 73, 4–13, <a href="https://doi.org/10.1016/j.jpdc.2012.04.003" target="_blank">https://doi.org/10.1016/j.jpdc.2012.04.003</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Cockburn and Shu(2001)</label><mixed-citation>
Cockburn, B. and Shu, C.-W.: Runge–Kutta discontinuous Galerkin methods
for convection-dominated problems, J. Sci. Comput., 16, 173–261,
<a href="https://doi.org/10.1023/A:1012873910884" target="_blank">https://doi.org/10.1023/A:1012873910884</a>, 2001.
</mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Cohen et al.(2016)Cohen, Hilton, and Prakash</label><mixed-citation>
Cohen, R., Hilton, J., and Prakash, M.: Benchmark testing the Swift flood
modelling solver: Version I, Tech. Rep. EP151977, CSIRO,
available at: <a href="https://publications.csiro.au/rpr/download?pid=csiro:EP151977&amp;dsid=DS2" target="_blank"/> (last access: 2 June 2021),
2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Collins et al.(2013)Collins, James, Ray, Chen, Lassman, and
Brownlee</label><mixed-citation>
Collins, S. N., James, R. S., Ray, P., Chen, K., Lassman, A., and Brownlee, J.:
Grids in numerical weather and climate models, in: Climate change and
regional/local responses,  IntechOpen, 256, <a href="https://doi.org/10.5772/55922" target="_blank">https://doi.org/10.5772/55922</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Cozzolino et al.(2019)Cozzolino, Cimorelli, Della Morte, Pugliano,
Piscopo, and Pianese</label><mixed-citation>
Cozzolino, L., Cimorelli, L., Della Morte, R., Pugliano, G., Piscopo, V., and
Pianese, D.: Flood propagation modeling with the Local Inertia Approximation:
Theoretical and numerical analysis of its physical limitations, Adv. Water
Resour., 133, 103422, <a href="https://doi.org/10.1016/j.advwatres.2019.103422" target="_blank">https://doi.org/10.1016/j.advwatres.2019.103422</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>de Almeida and Bates(2013)</label><mixed-citation>
de Almeida, G. A. and Bates, P.: Applicability of the local inertial
approximation of the shallow water equations to flood modeling, Water Resour.
Res., 49, 4833–4844, <a href="https://doi.org/10.1002/wrcr.20366" target="_blank">https://doi.org/10.1002/wrcr.20366</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>de Almeida et al.(2012)de Almeida, Bates, Freer, and
Souvignet</label><mixed-citation>
de Almeida, G. A., Bates, P., Freer, J. E., and Souvignet, M.: Improving the
stability of a simple formulation of the shallow water equations for 2-D
flood modeling, Water Resour. Res., 48, W05528, <a href="https://doi.org/10.1029/2011WR011570" target="_blank">https://doi.org/10.1029/2011WR011570</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Environment Agency(2020)</label><mixed-citation>
Environment Agency: Real-time and Near-real-time river level data,
available at: <a href="https://data.gov.uk/dataset/0cbf2251-6eb2-4c4e-af7c-d318da9a58be/real-time-and-near-real-time-river-level-data" target="_blank"/> (last access: 2 June 2021),
2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Falter et al.(2013)Falter, Vorogushyn, Lhomme, Apel, Gouldby, and
Merz</label><mixed-citation>
Falter, D., Vorogushyn, S., Lhomme, J., Apel, H., Gouldby, B., and Merz, B.:
Hydraulic model evaluation for large-scale flood risk assessments, Hydrol.
Process., 27, 1331–1340, <a href="https://doi.org/10.1002/hyp.9553" target="_blank">https://doi.org/10.1002/hyp.9553</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>García-Feal et al.(2018)García-Feal, González-Cao,
Gómez-Gesteira, Cea, Domínguez, and Formella</label><mixed-citation>
García-Feal, O., González-Cao, J., Gómez-Gesteira, M., Cea, L.,
Domínguez, J. M., and Formella, A.: An accelerated tool for flood
modelling based on Iber, Water, 10, 1459, <a href="https://doi.org/10.3390/w10101459" target="_blank">https://doi.org/10.3390/w10101459</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Guidolin et al.(2016)Guidolin, Chen, Ghimire, Keedwell,
Djordjević, and Savić</label><mixed-citation>
Guidolin, M., Chen, A. S., Ghimire, B., Keedwell, E. C., Djordjević, S.,
and Savić, D. A.: A weighted cellular automata 2D inundation model for
rapid flood analysis, Environ. Modell. Softw., 84, 378–394,
<a href="https://doi.org/10.1016/j.envsoft.2016.07.008" target="_blank">https://doi.org/10.1016/j.envsoft.2016.07.008</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Harris(2013)</label><mixed-citation>
Harris, M.: CUDA pro tip: write flexible kernels with grid-stride loops,
available at: <a href="https://developer.nvidia.com/blog/cuda-pro-tip-write-flexible-kernels-grid-stride-loops/ (last access: 2~June~2021)" target="_blank"/>,
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Hoch et al.(2019)Hoch, Eilander, Ikeuchi, Baart, and
Winsemius</label><mixed-citation>
Hoch, J. M., Eilander, D., Ikeuchi, H., Baart, F., and Winsemius, H. C.: Evaluating the impact of model complexity on flood wave propagation and inundation extent with a hydrologic–hydrodynamic model coupling framework, Nat. Hazards Earth Syst. Sci., 19, 1723–1735, <a href="https://doi.org/10.5194/nhess-19-1723-2019" target="_blank">https://doi.org/10.5194/nhess-19-1723-2019</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Hunter et al.(2006)Hunter, Bates, Horritt, and Wilson</label><mixed-citation>
Hunter, N., Bates, P., Horritt, M., and Wilson, M.: Improved simulation of
flood flows using storage cell models, P. I. Civil Eng. Wat. M., 159, 9–18,
<a href="https://doi.org/10.1680/wama.2006.159.1.9" target="_blank">https://doi.org/10.1680/wama.2006.159.1.9</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Huxley et al.(2017)Huxley, Syme, and Symons</label><mixed-citation>
Huxley, C., Syme, B., and Symons, E.: UK Environment Agency 2D Hydraulic
Model Benchmark Tests, 2017-09 TUFLOW release update, Tech. rep., BMT WBM
Pty Ltd., Level 8, 200 Creek Street, Brisbane Qld 4000, Australia, PO Box
203, Spring Hill 400,
available at: <a href="https://downloads.tuflow.com/_archive/Publications/UK%20EA%202D%20Benchmarking%20Results.TUFLOW%20Products%202017-09.pdf" target="_blank"/> (last access: 2 June 2021), 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Jamieson et al.(2012)Jamieson, Lhomme, Wright, and
Gouldby</label><mixed-citation>
Jamieson, S. R., Lhomme, J., Wright, G., and Gouldby, B.: A highly efficient
2D flood model with sub-element topography, P. I. Civil Eng. Wat. M., 165,
581–595, <a href="https://doi.org/10.1680/wama.12.00021" target="_blank">https://doi.org/10.1680/wama.12.00021</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Kesserwani and Liang(2012)</label><mixed-citation>
Kesserwani, G. and Liang, Q.: Locally limited and fully conserved RKDG2
shallow water solutions with wetting and drying, J. Sci. Comput., 50,
120–144, <a href="https://doi.org/10.1007/s10915-011-9476-4" target="_blank">https://doi.org/10.1007/s10915-011-9476-4</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Kesserwani and Sharifian(2020)</label><mixed-citation>
Kesserwani, G. and Sharifian, M. K.: (Multi)wavelets increase both accuracy and
efficiency of standard Godunov-type hydrodynamic models: Robust 2D
approaches, Adv. Water Resour., 144, 103693,
<a href="https://doi.org/10.1016/j.advwatres.2020.103693" target="_blank">https://doi.org/10.1016/j.advwatres.2020.103693</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Kesserwani and Wang(2014)</label><mixed-citation>
Kesserwani, G. and Wang, Y.: Discontinuous Galerkin flood model formulation:
Luxury or necessity?, Water Resour. Res., 50, 6522–6541,
<a href="https://doi.org/10.1002/2013WR014906" target="_blank">https://doi.org/10.1002/2013WR014906</a>, 2014.
</mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Kesserwani et al.(2010)Kesserwani, Liang, Vazquez, and
Mosé</label><mixed-citation>
Kesserwani, G., Liang, Q., Vazquez, J., and Mosé, R.: Well-balancing issues
related to the RKDG2 scheme for the shallow water equations, Int. J. Numer.
Meth. Fl., 62, 428–448, <a href="https://doi.org/10.1002/fld.2027" target="_blank">https://doi.org/10.1002/fld.2027</a>, 2010.
</mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Kesserwani et al.(2018)Kesserwani, Ayog, and Bau</label><mixed-citation>
Kesserwani, G., Ayog, J. L., and Bau, D.: Discontinuous Galerkin formulation
for 2D hydrodynamic modelling: Trade-offs between theoretical complexity
and practical convenience, Comput. Method. Appl. M., 342, 710–741,
<a href="https://doi.org/10.1016/j.cma.2018.08.003" target="_blank">https://doi.org/10.1016/j.cma.2018.08.003</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Kolega and Syme(2019)</label><mixed-citation>
Kolega, A. and Syme, B.: Evolution in flood modelling based on the example of
the Eudlo Creek crossing over the Bruce Highway, Institute of Public Works
Engineering Australasia Queensland,
available at: <a href="http://ipweaq.intersearch.com.au/ipweaqjspui/handle/1/5386" target="_blank"/> (last access: 2 June 2021),
2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Krivodonova et al.(2004)Krivodonova, Xin, Remacle, Chevaugeon, and
Flaherty</label><mixed-citation>
Krivodonova, L., Xin, J., Remacle, J.-F., Chevaugeon, N., and Flaherty, J. E.:
Shock detection and limiting with discontinuous Galerkin methods for
hyperbolic conservation laws, Appl. Numer. Math., 48, 323–338,
<a href="https://doi.org/10.1016/j.apnum.2003.11.002" target="_blank">https://doi.org/10.1016/j.apnum.2003.11.002</a>, 2004.
</mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Kvočka et al.(2017)Kvočka, Ahmadian, and
Falconer</label><mixed-citation>
Kvočka, D., Ahmadian, R., and Falconer, R. A.: Flood inundation modelling
of flash floods in steep river basins and catchments, Water, 9, 705,
<a href="https://doi.org/10.3390/w9090705" target="_blank">https://doi.org/10.3390/w9090705</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Li et al.(2020)Li, Andreadis, Margulis, and Lettenmaier</label><mixed-citation>
Li, D., Andreadis, K. M., Margulis, S. A., and Lettenmaier, D. P.: A data
assimilation framework for generating space-time continuous daily SWOT
river discharge data products, Water Resour. Res., 56, e2019WR026999,
<a href="https://doi.org/10.1029/2019WR026999" target="_blank">https://doi.org/10.1029/2019WR026999</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Liang and Marche(2009)</label><mixed-citation>
Liang, Q. and Marche, F.: Numerical resolution of well-balanced shallow water
equations with complex source terms, Adv. Water Resour., 32, 873–884,
<a href="https://doi.org/10.1016/j.advwatres.2009.02.010" target="_blank">https://doi.org/10.1016/j.advwatres.2009.02.010</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>LISFLOOD-FP developers(2020)</label><mixed-citation>
LISFLOOD-FP developers: LISFLOOD-FP 8.0 hydrodynamic model, Zenodo,
<a href="https://doi.org/10.5281/zenodo.4073011" target="_blank">https://doi.org/10.5281/zenodo.4073011</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Liu et al.(2019)Liu, Merwade, and Jafarzadegan</label><mixed-citation>
Liu, Z., Merwade, V., and Jafarzadegan, K.: Investigating the role of model
structure and surface roughness in generating flood inundation extents using
one-and two-dimensional hydraulic models, J. Flood Risk Manag., 12, e12347,
<a href="https://doi.org/10.1111/jfr3.12347" target="_blank">https://doi.org/10.1111/jfr3.12347</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Martins et al.(2015)Martins, Leandro, and
Djordjević</label><mixed-citation>
Martins, R., Leandro, J., and Djordjević, S.: A well balanced Roe scheme
for the local inertial equations with an unstructured mesh, Adv. Water
Resour., 83, 351–363, <a href="https://doi.org/10.1016/j.advwatres.2015.07.007" target="_blank">https://doi.org/10.1016/j.advwatres.2015.07.007</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Martins et al.(2016)Martins, Leandro, and
Djordjević</label><mixed-citation>
Martins, R., Leandro, J., and Djordjević, S.: Analytical solution of the
classical dam-break problem for the gravity wave–model equations, ASCE J.
Hydraul. Eng., 142, 06016003, <a href="https://doi.org/10.1061/(ASCE)HY.1943-7900.0001121" target="_blank">https://doi.org/10.1061/(ASCE)HY.1943-7900.0001121</a>,
2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>McCall(2016)</label><mixed-citation>
McCall, I.: Carlisle Flood Investigation Report, Flood Event 5–6th
December 2015, Tech. rep., Environment Agency,
available at: <a href="https://www.cumbria.gov.uk/eLibrary/Content/Internet/536/6181/42494151257.pdf" target="_blank"/> (last access: 2 June 2021),
2016. </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Merrill(2015)</label><mixed-citation>
Merrill, D.: CUB software package,
available at: <a href="https://nvlabs.github.io/cub/" target="_blank"/>  (last access: 2 June 2021), 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Met Office(2013)</label><mixed-citation>
Met Office: Met Office Rain Radar Data from the NIMROD System,
available at: <a href="https://catalogue.ceda.ac.uk/uuid/82adec1f896af6169112d09cc1174499" target="_blank"/>  (last access: 2 June 2021),
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Ming et al.(2020)Ming, Liang, Xia, Li, and Fowler</label><mixed-citation>
Ming, X., Liang, Q., Xia, X., Li, D., and Fowler, H. J.: Real-time flood
forecasting based on a high-performance 2-D hydrodynamic model and
numerical weather predictions, Water Resour. Res., 56, e2019WR025583,
<a href="https://doi.org/10.1029/2019WR025583" target="_blank">https://doi.org/10.1029/2019WR025583</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Morales-Hernández
et al.(2020)Morales-Hernández, Sharif, Gangrade, Dullo,
Kao, Kalyanapu, Ghafoor, Evans, Madadi-Kandjani, and
Hodges</label><mixed-citation>
Morales-Hernández, M., Sharif, M. B., Gangrade, S., Dullo, T. T., Kao,
S.-C., Kalyanapu, A., Ghafoor, S., Evans, K., Madadi-Kandjani, E., and
Hodges, B. R.: High-performance computing in water resources hydrodynamics,
J. Hydroinform., 22, 1217–1235, <a href="https://doi.org/10.2166/hydro.2020.163" target="_blank">https://doi.org/10.2166/hydro.2020.163</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Morales-Hernández
et al.(2021)Morales-Hernández, Sharif, Kalyanapu, Ghafoor,
Dullo, Gangrade, Kao, Norman, and Evans</label><mixed-citation>
Morales-Hernández, M., Sharif, M. B., Kalyanapu, A., Ghafoor, S. K., Dullo,
T. T., Gangrade, S., Kao, S.-C., Norman, M. R., and Evans, K. J.: TRITON: A Multi-GPU open source 2D hydrodynamic flood model, Environ. Modell.
Softw., 141, 105034, <a href="https://doi.org/10.1016/j.envsoft.2021.105034" target="_blank">https://doi.org/10.1016/j.envsoft.2021.105034</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Neal et al.(2009)Neal, Fewtrell, and Trigg</label><mixed-citation>
Neal, J., Fewtrell, T., and Trigg, M.: Parallelisation of storage cell flood
models using OpenMP, Environ. Modell. Softw., 24, 872–877,
<a href="https://doi.org/10.1016/j.envsoft.2008.12.004" target="_blank">https://doi.org/10.1016/j.envsoft.2008.12.004</a>, 2009.
</mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Neal et al.(2011)Neal, Schumann, Fewtrell, Budimir, Bates, and
Mason</label><mixed-citation>
Neal, J., Schumann, G., Fewtrell, T., Budimir, M., Bates, P., and Mason, D.:
Evaluating a new LISFLOOD-FP formulation with data from the summer 2007
floods in Tewkesbury, UK, J. Flood Risk Manag., 4, 88–95,
<a href="https://doi.org/10.1111/j.1753-318X.2011.01093.x" target="_blank">https://doi.org/10.1111/j.1753-318X.2011.01093.x</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Neal et al.(2012a)Neal, Schumann, and Bates</label><mixed-citation>
Neal, J., Schumann, G., and Bates, P.: A subgrid channel model for simulating
river hydraulics and floodplain inundation over large and data sparse areas,
Water Resour. Res., 48, W11506, <a href="https://doi.org/10.1029/2012WR012514" target="_blank">https://doi.org/10.1029/2012WR012514</a>, 2012a.
</mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Neal et al.(2012b)Neal, Villanueva, Wright, Willis,
Fewtrell, and Bates</label><mixed-citation>
Neal, J., Villanueva, I., Wright, N., Willis, T., Fewtrell, T., and Bates, P.:
How much physical complexity is needed to model flood inundation?, Hydrol.
Process., 26, 2264–2282, <a href="https://doi.org/10.1002/hyp.8339" target="_blank">https://doi.org/10.1002/hyp.8339</a>, 2012b.
</mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Neal et al.(2018)Neal, Dunne, Sampson, Smith, and Bates</label><mixed-citation>
Neal, J., Dunne, T., Sampson, C., Smith, A., and Bates, P.: Optimisation of the
two-dimensional hydraulic model LISFOOD-FP for CPU architecture, Environ.
Modell. Softw., 107, 148–157, <a href="https://doi.org/10.1016/j.envsoft.2018.05.011" target="_blank">https://doi.org/10.1016/j.envsoft.2018.05.011</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Néelz and Pender(2013)</label><mixed-citation>
Néelz, S. and Pender, G.: Benchmarking the latest generation of 2D
hydraulic modelling packages, Tech. Rep. SC120002, Environment Agency,
Horizon House, Deanery Road, Bristol, BS1 9AH,
available at: <a href="https://www.gov.uk/government/publications/benchmarking-the-latest-generation-of-2d-hydraulic-flood-modelling-packages" target="_blank">https://www.gov.uk/government/publications/benchmarking-the-latest-generation-of-2d-hydraulic-flood-modelling-packages</a> (last access: 2 June 2021),
2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>O'Loughlin et al.(2020)O'Loughlin, Neal, Schumann, Beighley, and
Bates</label><mixed-citation>
O'Loughlin, F., Neal, J., Schumann, G., Beighley, E., and Bates, P.: A
LISFLOOD-FP hydraulic model of the middle reach of the Congo, J. Hydrol.,
580, 124203, <a href="https://doi.org/10.1016/j.jhydrol.2019.124203" target="_blank">https://doi.org/10.1016/j.jhydrol.2019.124203</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Özgen-Xian et al.(2020)Özgen-Xian, Kesserwani,
Caviedes-Voullième, Molins, Xu, Dwivedi, Moulton, and
Steefel</label><mixed-citation>
Özgen-Xian, I., Kesserwani, G., Caviedes-Voullième, D., Molins, S., Xu,
Z., Dwivedi, D., Moulton, J. D., and Steefel, C. I.: Wavelet-based local mesh
refinement for rainfall–runoff simulations, J. Hydroinform., 22, 1059–1077,
<a href="https://doi.org/10.2166/hydro.2020.198" target="_blank">https://doi.org/10.2166/hydro.2020.198</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Qin et al.(2019)Qin, LeVeque, and Motley</label><mixed-citation>
Qin, X., LeVeque, R. J., and Motley, M. R.: Accelerating an Adaptive Mesh
Refinement Code for Depth-Averaged Flows Using GPUs, J. Adv. Model. Earth
Sy., 11, 2606–2628, <a href="https://doi.org/10.1029/2019MS001635" target="_blank">https://doi.org/10.1029/2019MS001635</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Rajib et al.(2020)Rajib, Liu, Merwade, Tavakoly, and
Follum</label><mixed-citation>
Rajib, A., Liu, Z., Merwade, V., Tavakoly, A. A., and Follum, M. L.: Towards a
large-scale locally relevant flood inundation modeling framework using SWAT
and LISFLOOD-FP, J. Hydrol., 581, 124406,
<a href="https://doi.org/10.1016/j.jhydrol.2019.124406" target="_blank">https://doi.org/10.1016/j.jhydrol.2019.124406</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Sampson et al.(2012)Sampson, Fewtrell, Duncan, Shaad, Horritt, and
Bates</label><mixed-citation>
Sampson, C. C., Fewtrell, T. J., Duncan, A., Shaad, K., Horritt, M. S., and
Bates, P. D.: Use of terrestrial laser scanning data to drive decimetric
resolution urban inundation models, Adv. Water Resour., 41, 1–17,
<a href="https://doi.org/10.1016/j.advwatres.2012.02.010" target="_blank">https://doi.org/10.1016/j.advwatres.2012.02.010</a>, 2012.
</mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Sampson et al.(2013)Sampson, Bates, Neal, and Horritt</label><mixed-citation>
Sampson, C. C., Bates, P. D., Neal, J. C., and Horritt, M. S.: An automated
routing methodology to enable direct rainfall in high resolution shallow
water models, Hydrol. Process., 27, 467–476, <a href="https://doi.org/10.1002/hyp.9515" target="_blank">https://doi.org/10.1002/hyp.9515</a>, 2013.
</mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Sampson et al.(2015)Sampson, Smith, Bates, Neal, Alfieri, and
Freer</label><mixed-citation>
Sampson, C. C., Smith, A. M., Bates, P. D., Neal, J. C., Alfieri, L., and
Freer, J. E.: A high-resolution global flood hazard model, Water Resour.
Res., 51, 7358–7381, <a href="https://doi.org/10.1002/2015WR016954" target="_blank">https://doi.org/10.1002/2015WR016954</a>, 2015.
</mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Savage et al.(2016)Savage, Pianosi, Bates, Freer, and
Wagener</label><mixed-citation>
Savage, J. T. S., Pianosi, F., Bates, P., Freer, J., and Wagener, T.:
Quantifying the importance of spatial resolution and other factors through
global sensitivity analysis of a flood inundation model, Water Resour. Res.,
52, 9146–9163, <a href="https://doi.org/10.1002/2015WR018198" target="_blank">https://doi.org/10.1002/2015WR018198</a>, 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Shaw et al.(2021)Shaw, Kesserwani, Neal, Bates, and
Sharifian</label><mixed-citation>
Shaw, J., Kesserwani, G., Neal, J., Bates, P., and Sharifian, M. K.:
LISFLOOD-FP 8.0 results of Environment Agency and Storm Desmond simulations, Zenodo,
<a href="https://doi.org/10.5281/zenodo.4066823" target="_blank">https://doi.org/10.5281/zenodo.4066823</a>, 2021.
</mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Shustikova et al.(2019)Shustikova, Domeneghetti, Neal, Bates, and
Castellarin</label><mixed-citation>
Shustikova, I., Domeneghetti, A., Neal, J. C., Bates, P., and Castellarin, A.:
Comparing 2D capabilities of HEC-RAS and LISFLOOD-FP on complex
topography, Hydrolog. Sci. J., 64, 1769–1782,
<a href="https://doi.org/10.1080/02626667.2019.1671982" target="_blank">https://doi.org/10.1080/02626667.2019.1671982</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Shustikova et al.(2020)Shustikova, Neal, Domeneghetti, Bates,
Vorogushyn, and Castellarin</label><mixed-citation>
Shustikova, I., Neal, J. C., Domeneghetti, A., Bates, P. D., Vorogushyn, S.,
and Castellarin, A.: Levee Breaching: A New Extension to the LISFLOOD-FP
Model, Water, 12, 942, <a href="https://doi.org/10.3390/w12040942" target="_blank">https://doi.org/10.3390/w12040942</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Sosa et al.(2020)Sosa, Sampson, Smith, Neal, and Bates</label><mixed-citation>
Sosa, J., Sampson, C., Smith, A., Neal, J., and Bates, P.: A toolbox to quickly
prepare flood inundation models for LISFLOOD-FP simulations, Environ.
Modell. Softw., 123, 104561, <a href="https://doi.org/10.1016/j.envsoft.2019.104561" target="_blank">https://doi.org/10.1016/j.envsoft.2019.104561</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Szönyi et al.(2016)Szönyi, May, and Lamb</label><mixed-citation>
Szönyi, M., May, P., and Lamb, R.: Flooding after Storm Desmond, Tech.
rep., Zurich Insurance Group Ltd,
available at: <a href="http://repo.floodalliance.net/jspui/handle/44111/2252" target="_blank"/> (last access: 2 June 2021), 2016.
</mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Villanueva and Wright(2006)</label><mixed-citation>
Villanueva, I. and Wright, N.: Linking Riemann and storage cell models for
flood prediction, P. I. Civil Eng. Wat. M., 159, 27–33,
<a href="https://doi.org/10.1680/wama.2006.159.1.27" target="_blank">https://doi.org/10.1680/wama.2006.159.1.27</a>, 2006.
</mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Wang et al.(2011)Wang, Liang, Kesserwani, and Hall</label><mixed-citation>
Wang, Y., Liang, Q., Kesserwani, G., and Hall, J. W.: A 2D shallow flow model
for practical dam-break simulations, J. Hydraul. Res., 49, 307–316,
<a href="https://doi.org/10.1080/00221686.2011.566248" target="_blank">https://doi.org/10.1080/00221686.2011.566248</a>, 2011.
</mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Wing et al.(2017)Wing, Bates, Sampson, Smith, Johnson, and
Erickson</label><mixed-citation>
Wing, O. E., Bates, P. D., Sampson, C. C., Smith, A. M., Johnson, K. A., and
Erickson, T. A.: Validation of a 30 m resolution flood hazard model of the
conterminous United States, Water Resour. Res., 53, 7968–7986,
<a href="https://doi.org/10.1002/2017WR020917" target="_blank">https://doi.org/10.1002/2017WR020917</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Wing et al.(2019)Wing, Bates, Neal, Sampson, Smith, Quinn,
Shustikova, Domeneghetti, Gilles, Goska et al.</label><mixed-citation>
Wing, O. E., Bates, P. D., Neal, J. C., Sampson, C. C., Smith, A. M., Quinn,
N., Shustikova, I., Domeneghetti, A., Gilles, D. W., Goska, R., and Krajewski, W. F.: A new
automated method for improved flood defense representation in large-scale
hydraulic models, Water Resour. Res., 55, 11007–11034,
<a href="https://doi.org/10.1029/2019WR025957" target="_blank">https://doi.org/10.1029/2019WR025957</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Wing et al.(2020)Wing, Quinn, Bates, Neal, Smith, Sampson, Coxon,
Yamazaki, Sutanudjaja, and Alfieri</label><mixed-citation>
Wing, O. E., Quinn, N., Bates, P. D., Neal, J. C., Smith, A. M., Sampson,
C. C., Coxon, G., Yamazaki, D., Sutanudjaja, E. H., and Alfieri, L.: Toward
Global Stochastic River Flood Modeling, Water Resour. Res., 56,
e2020WR027&thinsp;692, <a href="https://doi.org/10.1029/2020WR027692" target="_blank">https://doi.org/10.1029/2020WR027692</a>, 2020.
</mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Xia and Liang(2018)</label><mixed-citation>
Xia, X. and Liang, Q.: A new efficient implicit scheme for discretising the
stiff friction terms in the shallow water equations, Adv. Water Resour., 117,
87–97, <a href="https://doi.org/10.1016/j.advwatres.2018.05.004" target="_blank">https://doi.org/10.1016/j.advwatres.2018.05.004</a>, 2018.
</mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Xia et al.(2017)Xia, Liang, Ming, and Hou</label><mixed-citation>
Xia, X., Liang, Q., Ming, X., and Hou, J.: An efficient and stable hydrodynamic
model with novel source term discretization schemes for overland flow and
flood simulations, Water Resour. Res., 53, 3730–3759,
<a href="https://doi.org/10.1002/2016WR020055" target="_blank">https://doi.org/10.1002/2016WR020055</a>, 2017.
</mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Xia et al.(2019)Xia, Liang, and Ming</label><mixed-citation>
Xia, X., Liang, Q., and Ming, X.: A full-scale fluvial flood modelling
framework based on a high-performance integrated hydrodynamic modelling
system (HiPIMS), Adv. Water Resour., 132, 103392,
<a href="https://doi.org/10.1016/j.advwatres.2019.103392" target="_blank">https://doi.org/10.1016/j.advwatres.2019.103392</a>, 2019.
</mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Yamazaki et al.(2019)Yamazaki, Ikeshima, Sosa, Bates, Allen, and
Pavelsky</label><mixed-citation>
Yamazaki, D., Ikeshima, D., Sosa, J., Bates, P. D., Allen, G. H., and Pavelsky,
T. M.: MERIT Hydro: a high-resolution global hydrography map based on
latest topography dataset, Water Resour. Res., 55, 5053–5073,
<a href="https://doi.org/10.1029/2019WR024873" target="_blank">https://doi.org/10.1029/2019WR024873</a>, 2019.
</mixed-citation></ref-html>--></article>
