<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-19-2717-2026</article-id><title-group><article-title>Automated forward and adjoint modelling of viscoelastic deformation of the solid Earth</article-title><alt-title>Viscoelastic solid Earth deformation in G-ADOPT</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Scott</surname><given-names>William</given-names></name>
          <email>william.scott1@anu.edu.au</email>
        <ext-link>https://orcid.org/0000-0003-4982-5516</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Hoggard</surname><given-names>Mark</given-names></name>
          
        <ext-link>https://orcid.org/0000-0003-4310-3862</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Duvernay</surname><given-names>Thomas</given-names></name>
          
        <ext-link>https://orcid.org/0000-0001-6809-438X</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Ghelichkhan</surname><given-names>Sia</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-1316-3170</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Gibson</surname><given-names>Angus</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Roberts</surname><given-names>Dale</given-names></name>
          
        <ext-link>https://orcid.org/0000-0003-3952-6344</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Kramer</surname><given-names>Stephan C.</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-9193-5092</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Davies</surname><given-names>D. Rhodri</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-7662-9468</ext-link></contrib>
        <aff id="aff1"><label>1</label><institution>Research School of Earth Sciences, The Australian National University, Canberra, ACT, Australia</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Institute for Water Futures, The Australian National University, Canberra, ACT, Australia</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Department of Earth Science and Engineering, Imperial College London, London, UK</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">William Scott (william.scott1@anu.edu.au)</corresp></author-notes><pub-date><day>10</day><month>April</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>7</issue>
      <fpage>2717</fpage><lpage>2745</lpage>
      <history>
        <date date-type="received"><day>26</day><month>August</month><year>2025</year></date>
           <date date-type="rev-request"><day>15</day><month>September</month><year>2025</year></date>
           <date date-type="rev-recd"><day>6</day><month>March</month><year>2026</year></date>
           <date date-type="accepted"><day>17</day><month>March</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 William Scott et al.</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026.html">This article is available from https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e158">Robust models of viscoelastic Earth deformation under evolving surface loads underscore many problems in geodynamics and are particularly critical for paleoclimate and sea-level studies through their role in Glacial Isostatic Adjustment (GIA). A long-standing challenge in GIA research is to perform computationally efficient inversions for ice-loading histories and mantle structure using a physically realistic Earth model that incorporates three-dimensional viscosity variations and/or complex rheologies. For example, recent geodetic observations from melting ice sheets appear inconsistent with long-term sea-level records and have been used to argue for transient rheologies, generating debate in the literature and leaving large uncertainties in projections of future sea-level change. Here, we extend the applicability of G-ADOPT (a Firedrake-based finite element framework for geoscientific adjoint optimisation) to these problems. Our implementation solves the equations governing viscoelastic surface loading while naturally accommodating elastic compressibility, lateral viscosity variations, and non-Maxwell rheologies (including power-law and transience). We benchmark the approach against a suite of analytical and numerical test cases, demonstrating both accuracy and computational efficiency. Crucially, G-ADOPT enables automatic derivation of adjoint sensitivity kernels, allowing gradient-based optimisation strategies that are essential for high-dimensional inverse problems. Using synthetic Earth-like experiments, we illustrate its capability to reconstruct ice histories and recover mantle viscosity variations, providing a roadmap towards data assimilation and uncertainty quantification in GIA modelling and sea-level projections.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Australian Research Council</funding-source>
<award-id>SR200100008</award-id>
<award-id>DE220101519</award-id>
<award-id>DP170100058</award-id>
<award-id>DP220100173</award-id>
</award-group>
<award-group id="gs2">
<funding-source>Australian Research Data Commons</funding-source>
<award-id>PL031</award-id>
</award-group>
</funding-group>
</article-meta>
  </front>
<body>
      

<sec id="Ch1.S1" sec-type="intro">
  <label>1</label><title>Introduction</title>
      <p id="d2e170">Modelling the solid Earth's viscoelastic response under evolving surface loads is a foundational problem in geodynamics that has a rich history spanning more than a century of research <xref ref-type="bibr" rid="bib1.bibx42 bib1.bibx45 bib1.bibx105 bib1.bibx69" id="paren.1"><named-content content-type="pre">e.g.</named-content></xref>. Surface loads of geological interest can be of both natural and anthropogenic origin and operate across a wide range of spatial and temporal scales – from metres to thousands of kilometres, and from minutes to millions of years. Pertinent examples include coseismic deformation <xref ref-type="bibr" rid="bib1.bibx80" id="paren.2"><named-content content-type="pre">e.g.</named-content></xref>, ocean and body tides <xref ref-type="bibr" rid="bib1.bibx27 bib1.bibx60 bib1.bibx66" id="paren.3"><named-content content-type="pre">e.g.</named-content></xref>, reservoir impoundment <xref ref-type="bibr" rid="bib1.bibx18" id="paren.4"><named-content content-type="pre">e.g.</named-content></xref>, redistribution of surface and groundwater <xref ref-type="bibr" rid="bib1.bibx22 bib1.bibx23 bib1.bibx5" id="paren.5"><named-content content-type="pre">e.g.</named-content></xref>, volcanic loading <xref ref-type="bibr" rid="bib1.bibx73 bib1.bibx85" id="paren.6"><named-content content-type="pre">e.g.</named-content></xref>, and the formation and melting of ice sheets <xref ref-type="bibr" rid="bib1.bibx45 bib1.bibx16" id="paren.7"><named-content content-type="pre">e.g.</named-content></xref>. Understanding these processes has required the development of increasingly complex models of deformation within Earth's interior and at its surface.</p>
      <p id="d2e209">One of the most societally relevant applications of viscoelastic modelling is glacial isostatic adjustment (GIA), a process that links the evolution of ice sheets to solid Earth deformation and sea-level change <xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx45 bib1.bibx31 bib1.bibx79" id="paren.8"/>. Due to the combined effects of viscoelastic uplift and subsidence, gravitational changes, and feedbacks on Earth's rotation, GIA introduces strong geographic variability into sea-level change <xref ref-type="bibr" rid="bib1.bibx71" id="paren.9"><named-content content-type="pre">e.g.</named-content></xref>. Attempts to constrain modern sea-level trends driven by climate change are further complicated by the fact that, due to the mantle's high viscosity, Earth is still responding to the retreat of major ice sheets over Fennoscandia and North America since the Last Glacial Maximum (LGM) around 20 000 years ago <xref ref-type="bibr" rid="bib1.bibx57" id="paren.10"><named-content content-type="pre">e.g.</named-content></xref>. All of these factors must be considered when interpreting geodetic observations such as  Global Navigation Satellite System (GNSS) and GRACE data <xref ref-type="bibr" rid="bib1.bibx19 bib1.bibx95 bib1.bibx55 bib1.bibx49 bib1.bibx14" id="paren.11"/> and a complete understanding of GIA – past, present and future – is critical in generating robust projections of future sea level.</p>
      <p id="d2e228">Viscoelastic surface-loading phenomena can generally be considered as inverse problems. The rheological properties of the solid Earth are poorly known, and observations of its deformation in response to various loads must therefore be used to infer these properties. This situation is compounded in the case of GIA, since present-day observables such as crustal uplift rates or geoid changes are jointly controlled by rheological properties and the history of ice-ocean loading – both of which are poorly constrained. Progress in this field has relied on fitting combinations of ice history and Earth structure to diverse datasets including relative sea level (RSL) indicators (e.g. tide gauge records, fossil corals, paleo strand-lines), geomorphic reconstructions of past ice extent (e.g. terminal morraines, cosmogenic exposure ages), GNSS surface motions, satellite gravity data, and indirect constraints from seismology and other palaeoclimate archives <xref ref-type="bibr" rid="bib1.bibx57 bib1.bibx79 bib1.bibx43" id="paren.12"/>.</p>
      <p id="d2e234">Most GIA models exploring these datasets assume a radially symmetric (1D) Earth and represent its viscoelastic response with a Maxwell rheology <xref ref-type="bibr" rid="bib1.bibx105" id="paren.13"/>. However, we know from mantle convection studies that mantle rheology deviates significantly from this axisymmetric assumption, being strongly dependent on temperature and strain-rate among other factors <xref ref-type="bibr" rid="bib1.bibx74 bib1.bibx92" id="paren.14"><named-content content-type="pre">e.g.</named-content></xref>, and resulting in lateral viscosity variations that span several orders of magnitude. Sea-level records and geodetic observations confirm that such 3D viscosity variations exert a first-order influence on GIA deformation patterns <xref ref-type="bibr" rid="bib1.bibx106 bib1.bibx4 bib1.bibx75 bib1.bibx46 bib1.bibx11 bib1.bibx83 bib1.bibx6" id="paren.15"/>. This recognition has driven the development of 3D GIA models using finite volume <xref ref-type="bibr" rid="bib1.bibx58" id="paren.16"/>, finite element <xref ref-type="bibr" rid="bib1.bibx104 bib1.bibx111 bib1.bibx100" id="paren.17"/>, and spectral approaches <xref ref-type="bibr" rid="bib1.bibx65 bib1.bibx93" id="paren.18"/>. At the same time, both laboratory deformation experiments and seismic anisotropy observations indicate that non-Maxwell rheologies, including power-law creep, are likely to be important, at least in the upper mantle <xref ref-type="bibr" rid="bib1.bibx52" id="paren.19"/>. In these cases, the strain rate has a non-linear dependence on driving stress, which has been explored in some more advanced GIA models <xref ref-type="bibr" rid="bib1.bibx103 bib1.bibx36 bib1.bibx97" id="paren.20"/>. Furthermore, both laboratory experiments and observations of post-seismic deformation suggest that Earth's rheology may also depend on the frequency of loading (i.e., exhibit transient behaviour; <xref ref-type="bibr" rid="bib1.bibx52 bib1.bibx81 bib1.bibx82 bib1.bibx32 bib1.bibx107 bib1.bibx59" id="altparen.21"/>). In regions such as West Antarctica and coastal Greenland, recent observations of rapid GNSS-measured uplift rates, compared with longer-term post-LGM RSL curves, have sparked renewed debate, with both transient rheology and 3D viscosity variations proposed as viable explanations <xref ref-type="bibr" rid="bib1.bibx75 bib1.bibx76 bib1.bibx11 bib1.bibx2 bib1.bibx61 bib1.bibx77 bib1.bibx99" id="paren.22"><named-content content-type="pre">e.g.</named-content></xref>.</p>
      <p id="d2e273">While the importance of accounting for 3D Earth structure and potentially complex rheologies in GIA is now beyond doubt, 3D GIA models suffer from being computationally expensive. Conventional “brute-force” inversion strategies, whereby model sensitivities are assessed by running many forward simulations, are therefore impractical. Consequently, most 3D GIA models are still run in a forward sense and rely on LGM ice histories independently derived from 1D inversions and 3D Earth structures inferred from other datasets, such as seismic tomography. A transformative alternative to brute-force inversion is gradient-based optimisation, which is enabled by adjoint methods. This technique allows efficient computation of model sensitivities – that is, the gradient of a misfit function with respect to a large number of model parameters (or “controls”). Unlike in a finite difference approach, where cost scales with the number of control parameters (which is often tied to mesh resolution), the adjoint method computes gradients at a cost comparable to a single linearised forward solve, independent of the number of control parameters <xref ref-type="bibr" rid="bib1.bibx29" id="paren.23"/>. This aspect makes it uniquely scalable and powerful for PDE-constrained optimisation and it is now widely adopted in fields such as numerical weather prediction <xref ref-type="bibr" rid="bib1.bibx50" id="paren.24"/>, oceanography <xref ref-type="bibr" rid="bib1.bibx35" id="paren.25"/>, seismic imaging <xref ref-type="bibr" rid="bib1.bibx96 bib1.bibx33" id="paren.26"/>, and mantle convection <xref ref-type="bibr" rid="bib1.bibx39" id="paren.27"/>.</p>
      <p id="d2e291">In geodynamics, the past decade has seen substantial theoretical progress in applying adjoint methods to viscoelastic loading problems. In the case of GIA, their use was first demonstrated by <xref ref-type="bibr" rid="bib1.bibx3" id="text.28"/>, with extension to sea-level modelling on a 1D Earth undertaken by <xref ref-type="bibr" rid="bib1.bibx21" id="text.29"/> and on a 3D Earth by <xref ref-type="bibr" rid="bib1.bibx64" id="text.30"/>. These developments have revealed strong diagnostic power: adjoint sensitivity kernels clearly expose the limitations of using a 1D Earth and the first-order impact of lateral viscosity variations on GIA observables. As such, they are increasingly recognised as a game-changing tool for tackling the spatial complexity and high dimensionality of the GIA inverse problem. Furthermore, recent advances in second-order adjoint techniques may offer a tantalising route to formal uncertainty quantification through efficient Hessian-based inference <xref ref-type="bibr" rid="bib1.bibx108" id="paren.31"><named-content content-type="pre">e.g.</named-content></xref>. Nevertheless, there remain obstacles to the broader use of adjoint techniques within the GIA modelling community. A central challenge lies in the complexity of deriving, implementing, and validating adjoint models for large-scale, non-linear, time-dependent problems. Compounding this is the legacy of traditional GIA workflows, which have typically relied on 1D Earth structures and relatively simple rheologies.</p>
      <p id="d2e308">The shift toward 3D solid Earth structure, transient and/or non-linear rheologies, and formal data assimilation places new demands on model infrastructure, underscoring the need for automated, scalable, and efficient adjoint-capable frameworks. The automatic adjoint framework provided by the Geoscientific Adjoint Optimisation Platform (G-ADOPT; <xref ref-type="bibr" rid="bib1.bibx26 bib1.bibx40 bib1.bibx41" id="altparen.32"/>) offers a compelling and timely solution. G-ADOPT combines three state-of-the-art software libraries: (i) Firedrake, a flexible and automated system for solving partial differential equations using the finite element method <xref ref-type="bibr" rid="bib1.bibx44" id="paren.33"/>; (ii) Pyadjoint, which enables automatic derivation of discrete adjoints within Firedrake <xref ref-type="bibr" rid="bib1.bibx30 bib1.bibx72" id="paren.34"/>; and (iii) the Rapid Optimisation Library (ROL), a high-performance optimisation engine within Trilinos <xref ref-type="bibr" rid="bib1.bibx94" id="paren.35"/>. Together, these components deliver a scalable, modular and performant modelling framework that can robustly handle complex forward models and compute their adjoints with theoretical optimal efficiency.</p>
      <p id="d2e323">In this paper, we extend, benchmark, and demonstrate the applicability of G-ADOPT for solving viscoelastic surface-loading problems. The framework accommodates arbitrary rheologies, including power-law and transient behaviour, and can operate in both Cartesian and spherical geometries. We verify its accuracy against analytical solutions (Sect. <xref ref-type="sec" rid="Ch1.S3.SS1"/>), benchmark it against published 3D Cartesian models under time-dependent loading scenarios (Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>), and extend it to incorporate compressible elasticity, power-law and Burgers rheologies (Sect. <xref ref-type="sec" rid="Ch1.S3.SS3"/>), and spherical domains with lateral viscosity variations (Sect. <xref ref-type="sec" rid="Ch1.S3.SS4"/>). Finally, we use a series of twin experiments (Sect. <xref ref-type="sec" rid="Ch1.S3.SS5"/>) to showcase the framework's adjoint-based inversion capabilities, recovering unknown ice-loading histories and mantle structure in a 2D annulus. Although self-gravitation is not yet included, these developments represent a significant step towards a next-generation, data-assimilating framework for GIA and other surface-loading problems within G-ADOPT.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Method</title>
      <p id="d2e344">In this section we present the non-dimensional equations governing the viscoelastic loading problem, consisting of the conservation laws of mass and momentum driven by an evolving surface load. The non-dimensional mass conservation equation is given by

          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M1" display="block"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M2" display="inline"><mml:mi mathvariant="bold-italic">v</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M3" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> denote the non-dimensional velocity and density, respectively. In non-dimensionalising the velocity, we have used the scale <inline-formula><mml:math id="M4" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi>L</mml:mi><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mfrac></mml:mstyle></mml:math></inline-formula>, where <inline-formula><mml:math id="M5" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula> is a characteristic length scale and <inline-formula><mml:math id="M6" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> is a characteristic Maxwell time that describes the transition between dominantly elastic and viscous behaviour

          <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M7" display="block"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M8" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> and <inline-formula><mml:math id="M9" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> are characteristic dynamic viscosity and shear modulus values respectively (see Table <xref ref-type="table" rid="T1"/>).</p>
      <p id="d2e477">The density field is decomposed into a time-independent background component, <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, and a small time-dependent perturbation, <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, such that <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. Substituting this decomposition into Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) yields the linearised mass conservation equation

          <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M13" display="block"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where we have neglected the <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> term, by assuming that perturbations in density are small compared with background values. Integrating this equation in time and using the relation <inline-formula><mml:math id="M15" display="inline"><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:mi mathvariant="bold-italic">v</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M16" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is the non-dimensional displacement vector, we obtain the following expression for the density perturbation

          <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M17" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        assuming a vanishing initial displacement, <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mtext mathvariant="bold">0</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e679">The full GIA equations include rotational and gravitational effects arising from changes in the surface load as water is redistributed between ice and ocean, which is governed by the sea-level equation <xref ref-type="bibr" rid="bib1.bibx53" id="paren.36"/>. Neglecting those terms, alongside inertial terms, yields the following non-dimensional form of the momentum equation

          <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M19" display="block"><mml:mrow><mml:mtext mathvariant="bold">0</mml:mtext><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M20" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula> is the non-dimensional stress tensor, <inline-formula><mml:math id="M21" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> is the non-dimensional gravity, and <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mover accent="true"><mml:mi>g</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>L</mml:mi></mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula> is a non-dimensional number describing the ratio of buoyancy to elastic shear strength. Note that <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is aligned with either the <inline-formula><mml:math id="M24" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>-axis or radial direction in Cartesian or spherical coordinates, respectively. We refer again to Table <xref ref-type="table" rid="T1"/> for the characteristic non-dimensional scales.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e815">Summary of notation and model parameters. </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Symbol</oasis:entry>
         <oasis:entry colname="col2">Description</oasis:entry>
         <oasis:entry colname="col3">Value</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M25" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional stress tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="bold">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional background stress tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M27" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional incremental Eulerian stress tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional incremental Lagrangian stress tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M29" display="inline"><mml:mi mathvariant="bold-italic">m</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional internal variable</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M30" display="inline"><mml:mi mathvariant="bold-italic">d</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional deviatoric strain tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M31" display="inline"><mml:mi mathvariant="bold-italic">e</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional strain tensor</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M32" display="inline"><mml:mi mathvariant="bold-italic">v</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional velocity</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M33" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional displacement</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional displacement in direction of gravity</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M35" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional density</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional background density</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional Eulerian density perturbation</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M38" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic density scale</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mn mathvariant="normal">4500</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">kg</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional load density</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M41" display="inline"><mml:mi>L</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic length scale</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</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:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M43" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional bulk modulus</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M44" display="inline"><mml:mi mathvariant="italic">μ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional shear modulus</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional effective shear modulus</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M46" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic shear modulus</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M48" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional viscosity</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M49" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic viscosity</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">21</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">Pa</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M51" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional Maxwell time</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M52" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:mfrac></mml:mstyle></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M53" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">α</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic time scale</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mover accent="true"><mml:mi mathvariant="italic">η</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mrow class="unit"><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M55" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional gravitational acceleration</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M56" display="inline"><mml:mover accent="true"><mml:mi>g</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Characteristic gravitational acceleration</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.81</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mrow class="unit"><mml:mi mathvariant="normal">m</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Radial unit vector</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional ratio of buoyancy to elastic shear strength</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mover accent="true"><mml:mi>g</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi>L</mml:mi></mml:mrow><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:mfrac></mml:mstyle><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">1.3</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Non-dimensional load thickness</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Timestep size</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M63" display="inline"><mml:mi mathvariant="bold-italic">ϕ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Finite element test function</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M64" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Outward pointing surface normal vector</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e1628">To further simplify the momentum equation, we linearise perturbations in the stress field by expressing the total stress as a sum of a time-invariant hydrostatic background component and a perturbation: <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, where the superscript E indicates an Eulerian perturbation. Since viscoelastic constitutive relations that link stress to strain (and their time derivatives) are fundamentally defined in a Lagrangian framework, we also need to transition from an Eulerian to a Lagrangian description of the stress field. To capture the material response in a Lagrangian framework, the perturbation must account for the change in stress due to displacement of material through the background stress gradient. To first order, the  incremental Lagrangian stress  is <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">E</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx24" id="paren.37"><named-content content-type="pre">see Eq. 3.16 of</named-content></xref>. Substituting into Eq. (<xref ref-type="disp-formula" rid="Ch1.E5"/>), we obtain

          <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M67" display="block"><mml:mrow><mml:mtext mathvariant="bold">0</mml:mtext><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e1781">We assume that time-invariant components are in equilibrium, such that the background stress field satisfies a hydrostatic balance with the background density

          <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M68" display="block"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

        Moreover, assuming that the background density <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> varies only in the radial direction, the advection of hydrostatic pre-stress simplifies to

          <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M70" display="block"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

        where <inline-formula><mml:math id="M71" display="inline"><mml:mi mathvariant="bold-italic">I</mml:mi></mml:math></inline-formula> is the identity tensor. Substituting these expressions  leads to the final linearised form of the momentum equation

          <disp-formula id="Ch1.E9" content-type="numbered"><label>9</label><mml:math id="M72" display="block"><mml:mrow><mml:mtext mathvariant="bold">0</mml:mtext><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Constitutive Equation</title>
      <p id="d2e1981">We follow the internal variable formulation adopted by <xref ref-type="bibr" rid="bib1.bibx3" id="text.38"/> and <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx21" id="text.39"/>, in which viscoelastic constitutive equations are expressed in integral form and reformulated using so-called <italic>internal variables</italic>. Conceptually, this approach consists of a set of elements with different shear relaxation timescales, arranged in parallel.</p>
      <p id="d2e1993">For a linear, compressible viscoelastic material, the non-dimensional constitutive equation takes the form

            <disp-formula id="Ch1.E10" content-type="numbered"><label>10</label><mml:math id="M73" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M74" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> is the non-dimensional bulk modulus and <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the non-dimensional effective shear modulus given by

            <disp-formula id="Ch1.E11" content-type="numbered"><label>11</label><mml:math id="M76" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the non-dimensional shear moduli associated with each internal variable, <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The deviatoric strain tensor is given as

            <disp-formula id="Ch1.E12" content-type="numbered"><label>12</label><mml:math id="M79" display="block"><mml:mrow><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Tr</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:mi mathvariant="normal">Tr</mml:mi><mml:mo>(</mml:mo><mml:mo>⋅</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the trace operator and the strain tensor, <inline-formula><mml:math id="M81" display="inline"><mml:mi mathvariant="bold-italic">e</mml:mi></mml:math></inline-formula>, is

            <disp-formula id="Ch1.E13" content-type="numbered"><label>13</label><mml:math id="M82" display="block"><mml:mrow><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>+</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfenced><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          We note that all non-dimensional moduli are obtained by division of terms by the characteristic shear modulus <inline-formula><mml:math id="M83" display="inline"><mml:mover accent="true"><mml:mi mathvariant="italic">μ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover></mml:math></inline-formula> (Table <xref ref-type="table" rid="T1"/>). Each internal variable, <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is defined by

            <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M85" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mi>t</mml:mi></mml:munderover><mml:msup><mml:mi mathvariant="normal">e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mstyle scriptlevel="+1"><mml:mfrac><mml:mrow><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:msup><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the non-dimensional Maxwell time for each element.</p>
      <p id="d2e2345">Equivalently, each internal variable evolves according to

            <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M87" display="block"><mml:mrow><mml:msub><mml:mo>∂</mml:mo><mml:mi>t</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">d</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="1em"/><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e2414">This formulation provides a compact, flexible and convenient means to incorporate transient rheology into viscoelastic deformation models: using a single internal variable is equivalent to a simple Maxwell material; two correspond to a Burgers model with two characteristic relaxation frequencies; and using a series of internal variables permits approximation of a continuous range of relaxation timescales for more complicated transient rheologies (e.g., Extended Burgers). This formulation is also readily extensible to non-linear constitutive equations <xref ref-type="bibr" rid="bib1.bibx20" id="paren.40"><named-content content-type="pre">e.g.,</named-content></xref>. For example, we can represent a composite rheology that combines the effects of linear diffusion creep at low stresses with non-Newtonian power-law rheology (e.g., dislocation creep) at high stresses <xref ref-type="bibr" rid="bib1.bibx97 bib1.bibx51" id="paren.41"/> by modifying the viscosity to

            <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M88" display="block"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>|</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mo>|</mml:mo><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><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:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the same spatially varying Newtonian (i.e., stress-independent) viscosity as before, <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mo>|</mml:mo><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> is the second invariant of the deviatoric stress tensor, <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">τ</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is a transition stress beyond which power-law deformation starts to dominate, and <inline-formula><mml:math id="M92" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the associated power-law exponent.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Boundary conditions</title>
      <p id="d2e2532">To complete the problem specification, we must also define the boundary conditions. At the top of the domain (i.e.,  Earth's surface), normal stress is balanced by the applied surface load such that

            <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M93" display="block"><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are the non-dimensional density and vertical thickness of the surface load, and <inline-formula><mml:math id="M96" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> is the outward unit normal vector to the boundary. At the base of the domain (i.e., core–mantle boundary), we impose a no-normal-displacement condition

            <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M97" display="block"><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          which is consistent with the approximation of a rigid core following <xref ref-type="bibr" rid="bib1.bibx100" id="text.42"/>. Note that this choice departs from models that treat the core as an inviscid fluid and instead impose a free-surface condition <xref ref-type="bibr" rid="bib1.bibx109 bib1.bibx58" id="paren.43"><named-content content-type="pre">e.g.,</named-content></xref>. After self-gravity has been introduced into G-ADOPT, switching to a free-surface should be a trivial extension.</p>
      <p id="d2e2653">Finally, we assume continuity of both displacement and traction across all internal boundaries, such that

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M98" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E19"><mml:mtd><mml:mtext>19</mml:mtext></mml:mtd><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:mi mathvariant="bold-italic">u</mml:mi><mml:msubsup><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:mo>+</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E20"><mml:mtd><mml:mtext>20</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:mo>[</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mrow><mml:mi>L</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:msubsup><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:mo>+</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="bold">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mo>⋅</mml:mo><mml:msubsup><mml:mo>]</mml:mo><mml:mo>-</mml:mo><mml:mo>+</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> denotes the jump in the associated property across an interface.</p>
      <p id="d2e2744">In summary, the governing equations for viscoelastic loading consist of the conservation of momentum (Eq. <xref ref-type="disp-formula" rid="Ch1.E9"/>) driven by the evolving surface load (Eq. <xref ref-type="disp-formula" rid="Ch1.E17"/>) along with the conservation of mass (Eq. <xref ref-type="disp-formula" rid="Ch1.E4"/>) and a viscoelastic constitutive equation (Eqs. <xref ref-type="disp-formula" rid="Ch1.E10"/> and <xref ref-type="disp-formula" rid="Ch1.E15"/>). Note that this linearised formulation is strictly relevant for small displacements with respect to the depth of the mantle and that the background stress field is assumed to be in hydrostatic equilibrium, implying no lateral variations in density <xref ref-type="bibr" rid="bib1.bibx3" id="paren.44"/>. For simplicity, we have also neglected rotational and self-gravitational effects in this study. Nevertheless, they are particularly important when coupling the evolving ice and ocean loads through the sea-level equation <xref ref-type="bibr" rid="bib1.bibx53" id="paren.45"/> and will be incorporated in future work.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Weak form and spatial discretisation</title>
      <p id="d2e2772">To derive the finite-element discretisation of these governing equations, we first translate them into their weak form. By selecting appropriate function spaces that contain both solution fields and test functions, the weak form can be obtained by multiplying the equations by their test functions and integrating over the domain, <inline-formula><mml:math id="M100" display="inline"><mml:mi mathvariant="normal">Ω</mml:mi></mml:math></inline-formula>. For conservation of momentum, we use the (vector) test function, <inline-formula><mml:math id="M101" display="inline"><mml:mi mathvariant="bold-italic">ϕ</mml:mi></mml:math></inline-formula>, to give

            <disp-formula id="Ch1.E21" content-type="numbered"><label>21</label><mml:math id="M102" display="block"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mo>-</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          which we then simplify by multiplying both sides by <inline-formula><mml:math id="M103" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1 and splitting into three components

            <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M104" display="block"><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>=</mml:mo><mml:mi>S</mml:mi><mml:mo>+</mml:mo><mml:mi>H</mml:mi><mml:mo>+</mml:mo><mml:mi>D</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where

            <disp-formula id="Ch1.E23" content-type="numbered"><label>23</label><mml:math id="M105" display="block"><mml:mrow><mml:mi>S</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            <disp-formula id="Ch1.E24" content-type="numbered"><label>24</label><mml:math id="M106" display="block"><mml:mrow><mml:mi>H</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mi mathvariant="normal">∇</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and

            <disp-formula id="Ch1.E25" content-type="numbered"><label>25</label><mml:math id="M107" display="block"><mml:mrow><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e3057">At this stage, it becomes necessary to define the finite element spaces that will be used for spatial discretisation. Generally, for each component of displacement, we use <inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:mi>Q</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> finite elements on hexahedral meshes (i.e., the piecewise continuous tri-quadratic tensor product of quadratic continuous polynomials in each direction). In Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>, however, we instead use prismatic meshes that are unstructured in the horizontal but layered in the vertical (facilitated by Firedrake's inbuilt `extruded' mesh functionality, this space uses the piecewise continuous bi-quadratic tensor product of a quadratic polynomial in the horizontal and a quadratic polynomial in the vertical; <xref ref-type="bibr" rid="bib1.bibx12 bib1.bibx68" id="altparen.46"/>). For the deviatoric strain tensor (and hence the internal variable), since it is proportional to the gradient of displacement, we choose the discontinuous DG1 space (i.e., linear variations within each finite element cell and discontinuous jumps between cells) for each component. For purely radial variations in density, viscosity, and shear modulus, we choose the DG0 space (i.e., constant within a finite element cell but discontinuous between cells), while for laterally varying viscosity fields, we again select DG1 finite element functions.</p>
      <p id="d2e3075">Once these spaces have been chosen, we can integrate the divergence of the incremental Lagrangian stress term by parts within each element, <inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, to introduce weak boundary conditions and to move derivatives from the trial function to the test function according to

            <disp-formula id="Ch1.E26" content-type="numbered"><label>26</label><mml:math id="M110" display="block"><mml:mrow><mml:mi>S</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi></mml:munder><mml:mfenced close=")" open="("><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mi mathvariant="normal">L</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M111" display="inline"><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:math></inline-formula> is the outward pointing normal vector to an element edge, represented by <inline-formula><mml:math id="M112" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Given that test functions are continuous across cell edges and we assume that there is no jump in stress across material discontinuities, Eq. (<xref ref-type="disp-formula" rid="Ch1.E26"/>) simplifies to

            <disp-formula id="Ch1.E27" content-type="numbered"><label>27</label><mml:math id="M113" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where we have substituted Eq. (<xref ref-type="disp-formula" rid="Ch1.E10"/>) for the constitutive relation and Eq. (<xref ref-type="disp-formula" rid="Ch1.E17"/>) for the boundary condition at the top of the domain, <inline-formula><mml:math id="M114" display="inline"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. For bottom (and side) boundaries where we specify no normal displacement (i.e., Eq. <xref ref-type="disp-formula" rid="Ch1.E18"/>), we utilise two different strategies depending on domain geometry. In Cartesian domains, we apply the boundary condition strongly by modifying the discrete test and trial spaces, such that the surface integral vanishes. For spherical domains, we implement that condition weakly using the Symmetric Interior Penalty Galerkin method <xref ref-type="bibr" rid="bib1.bibx28 bib1.bibx47" id="paren.47"/>. An example showing implementation of this approach for mantle convection problems in Firedrake can be seen in <xref ref-type="bibr" rid="bib1.bibx26" id="text.48"/>.</p>
      <p id="d2e3371">Following <xref ref-type="bibr" rid="bib1.bibx3" id="text.49"/>, we combine the hydrostatic pre-stress and buoyancy terms

            <disp-formula id="Ch1.E28" content-type="numbered"><label>28</label><mml:math id="M115" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>H</mml:mi><mml:mo>+</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi></mml:munder><mml:mfenced close="" open="("><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=""><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="" close=")"><mml:mrow><mml:mfenced open="" close=")"><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">u</mml:mi></mml:mrow></mml:mfenced><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          which can be written in an explicitly symmetric form

            <disp-formula id="Ch1.E29" content-type="numbered"><label>29</label><mml:math id="M116" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>H</mml:mi><mml:mo>+</mml:mo><mml:mi>D</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          by assuming that the background stress is in a state of hydrostatic equilibrium, such that surfaces of constant background density and gravitational potential coincide (e.g., Eqs. B22–B29 in Appendix B of <xref ref-type="bibr" rid="bib1.bibx3" id="altparen.50"/>).</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Time discretisation</title>
      <p id="d2e3686">We now discretise in time using the implicit Backward Euler (BE) scheme. This choice allows us to take timesteps larger than the characteristic Maxwell time without compromising numerical stability. Such flexibility is particularly advantageous when the timescale of glacial loading is substantially slower than the Maxwell time – as is often the case in low-viscosity regions – thereby avoiding having to take prohibitively small timesteps in realistic simulations of glacial cycles <xref ref-type="bibr" rid="bib1.bibx7 bib1.bibx64" id="paren.51"><named-content content-type="pre">cf.</named-content></xref>. Applying the BE scheme, the evolution of each internal variable in Eq. (<xref ref-type="disp-formula" rid="Ch1.E15"/>) becomes

            <disp-formula id="Ch1.E30" content-type="numbered"><label>30</label><mml:math id="M117" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><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:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><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:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><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:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where the superscript <inline-formula><mml:math id="M118" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> refers to the previous timestep, <inline-formula><mml:math id="M119" 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> is the next timestep, and <inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> is the timestep duration. We then substitute this result into Eq. (<xref ref-type="disp-formula" rid="Ch1.E27"/>), yielding

            <disp-formula id="Ch1.E31" content-type="numbered"><label>31</label><mml:math id="M121" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the non-dimensional viscosity of the  internal variable <inline-formula><mml:math id="M123" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Recombining Eqs. (<xref ref-type="disp-formula" rid="Ch1.E29"/>) and (<xref ref-type="disp-formula" rid="Ch1.E31"/>), the final system of equations is

            <disp-formula id="Ch1.E32" content-type="numbered"><label>32</label><mml:math id="M124" display="block"><mml:mrow><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          where implicit terms involving the unknown displacement at the next time step, <inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">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:math></inline-formula>, have been collected on the left-hand side and explicit terms known from the current time step are on the right-hand side. Finding the new values of <inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">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:math></inline-formula> requires solving a linear system at each timestep, which is solved in Firedrake through PETSc's  comprehensive linear algebra library <xref ref-type="bibr" rid="bib1.bibx8 bib1.bibx9 bib1.bibx10" id="paren.52"/>. Since the system is symmetric, we employ the Conjugate Gradient method as the Krylov method. We also choose PETSc's algebraic multigrid package, <italic>GAMG</italic>, as a preconditioner since it has proven to be a robust and effective method for other large-scale problems in geodynamics <xref ref-type="bibr" rid="bib1.bibx26" id="paren.53"><named-content content-type="pre">e.g.</named-content></xref>.</p>
      <p id="d2e4461">In testing, we have found that the ratio of bulk-to-deviatoric strain terms (which shows up in the first integral term of Eq. <xref ref-type="disp-formula" rid="Ch1.E32"/>) plays a crucial role in determining solver performance. In particular, when the ratio of bulk-to-shear modulus is high (as is the case when approximating incompressible materials), the resulting system can become poorly conditioned and leads to an increased number of iterations. This issue is exacerbated when timesteps greatly exceed the Maxwell time, as the relative contribution of the deviatoric strain term is reduced in that scenario. Since the ratio of bulk-to-shear modulus is typically modest (i.e., <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>) for mantle rocks, we do not expect this behaviour to be problematic when using our software to run realistic GIA simulations. Nevertheless, when approximating incompressible materials by raising this ratio, there is an increase in computational cost. One way around this issue is to reformulate the system, such that the internal variable evolution equation is solved simultaneously with the momentum equation, yielding a coupled system whereby two equations are solved for two unknowns, <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">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:math></inline-formula> and <inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">m</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:math></inline-formula>. Under this formulation, the momentum equation becomes

            <disp-formula id="Ch1.E33" content-type="numbered"><label>33</label><mml:math id="M130" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">I</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi mathvariant="normal">∇</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace width="1em" linebreak="nobreak"/><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi>g</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>+</mml:mo><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">ϕ</mml:mi></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>g</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">load</mml:mi></mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>:</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:munder><mml:mo movablelimits="false">∑</mml:mo><mml:mi>i</mml:mi></mml:munder><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mi mathvariant="bold-italic">m</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:mfenced><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

          and Eq. (<xref ref-type="disp-formula" rid="Ch1.E30"/>) is converted into its weak form by integrating over the domain and testing with <inline-formula><mml:math id="M131" display="inline"><mml:mi mathvariant="bold-italic">ψ</mml:mi></mml:math></inline-formula>, a (tensor) DG1 finite element test function (i.e., numerical fields vary linearly within cells but can have discontinuities across cell boundaries), yielding

            <disp-formula id="Ch1.E34" content-type="numbered"><label>34</label><mml:math id="M132" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:mi mathvariant="bold-italic">ψ</mml:mi><mml:mo>⋅</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><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:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfrac></mml:mstyle><mml:mfenced open="(" close=")"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">m</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:mo>+</mml:mo><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:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="bold-italic">d</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">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:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e5014">This formulation results in a system that is no longer symmetric due to the presence of coupling terms and we therefore use <italic>GMRES</italic> as the Krylov method. A key challenge is to find an efficient preconditioner for the coupled system. Within each iteration of <italic>GMRES</italic>, we employ a block Gauss-Seidel approach (facilitated by PETSc's <italic>FieldSplit</italic> functionality) whereby we independently solve Eq. (<xref ref-type="disp-formula" rid="Ch1.E33"/>) for <inline-formula><mml:math id="M133" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">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:math></inline-formula> and Eq. (<xref ref-type="disp-formula" rid="Ch1.E34"/>) for <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold-italic">m</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:math></inline-formula>, using the previous value for the other unknown. The matrix for both of these individual inner solves is symmetric and, for the momentum Eq. (<xref ref-type="disp-formula" rid="Ch1.E33"/>), we can use the same Conjugate Gradient and <italic>GAMG</italic> strategy as before, while the internal variable Eq. (<xref ref-type="disp-formula" rid="Ch1.E34"/>) is computationally simpler and can be solved using the Conjugate Gradient method preconditioned with successive over-relaxation.</p>
      <p id="d2e5070">Another benefit of the coupled formulation is that it provides a convenient means to model non-linear composite rheologies (e.g., the power-law formulation introduced in Eq. <xref ref-type="disp-formula" rid="Ch1.E16"/>). In these cases, the viscosity is a function of stress (i.e., depends on both the internal variable and displacement). Since the coupled formulation explicitly computes both of these variables at every solution step, it is therefore comparatively trivial to employ PETSc's SNES functionality to implement a non-linear solve strategy, for which we apply Newton's method with a line-search algorithm.</p>
      <p id="d2e5076">In addition to easy implementation of non-linear rheologies, the coupled system ensures that convergence of the momentum solve is no longer dependent on timestep size and therefore offers greater robustness in cases involving either long timesteps or large bulk-to-shear modulus ratios. Nevertheless, it comes at the computational expense of additional iterations of the outer <italic>GMRES</italic> algorithm to maintain coupling. We therefore generally prefer to use the substitution method in simulations that use compressible, linear rheologies.</p>
      <p id="d2e5082">We also note that an alternative, more common approach to solve the momentum equation in the incompressible limit is to reintroduce pressure as a Lagrange multiplier in order to enforce the conservation of volume constraint <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx109" id="paren.54"><named-content content-type="pre">e.g.</named-content></xref>. The resulting saddle-point system can be effectively solved using a Schur complement factorisation strategy <xref ref-type="bibr" rid="bib1.bibx26" id="paren.55"><named-content content-type="pre">e.g.</named-content></xref>, which we have implemented during code development but do not discuss further here since it is not applicable to real-Earth simulations with realistic levels of compressibility.</p>
      <p id="d2e5111">To summarise this section, we have outlined the viscoelastic loading equations and discretisation as currently implemented in G-ADOPT. In particular, by adopting the internal variable formulation of viscoelasticity <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx20 bib1.bibx21" id="paren.56"/>, we are able to accommodate a broad class of complex rheologies with relative ease in comparison to many of the traditional, Maxwell-based approaches. Additionally, our implementation of an implicit timestepping scheme enables stable integration even when timesteps are significantly longer duration than the Maxwell time. This flexibility should prove particularly advantageous in longer glacial loading scenarios, where low-viscosity regions that have Maxwell times on the order of a year would otherwise impose prohibitively small timestep constraints.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Numerical Experiments and Results</title>
      <p id="d2e5126">We next undertake a series of benchmarking experiments to assess the accuracy, robustness, and flexibility of our code.</p>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Analytical comparisons</title>
      <p id="d2e5136">In this section, we assess the accuracy of G-ADOPT in solving simple viscoelastic loading problems that have analytical solutions for both compressible and incompressible cases. Such benchmarks provide a stringent check as they also allow us to test whether, as the temporal and spatial resolution is refined, the error decreases at the expected theoretical rate.</p>
      <p id="d2e5139">For the first scenario, we consider the vertical surface displacement, <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, of a 2D Maxwell viscoelastic half-space that is subjected to emplacement of an instantaneous, sinusoidal surface load.  By rearranging Eq. (2b) from <xref ref-type="bibr" rid="bib1.bibx15" id="text.57"/>, we can simulate a loading, rather than an unloading scenario. The analytical solution is

            <disp-formula id="Ch1.E35" content-type="numbered"><label>35</label><mml:math id="M137" display="block"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">τ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mi mathvariant="normal">e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="italic">τ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">cos</mml:mi><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the load thickness (where its density is equal to the mantle density), <inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:math></inline-formula> is the Maxwell time, <inline-formula><mml:math id="M140" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is the viscosity, <inline-formula><mml:math id="M141" display="inline"><mml:mi mathvariant="italic">μ</mml:mi></mml:math></inline-formula> is the shear modulus, and <inline-formula><mml:math id="M142" display="inline"><mml:mi mathvariant="italic">τ</mml:mi></mml:math></inline-formula> is the viscous relaxation timescale given by

            <disp-formula id="Ch1.E36" content-type="numbered"><label>36</label><mml:math id="M143" display="block"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi>k</mml:mi><mml:mi mathvariant="italic">η</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M144" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> is the wavenumber, <inline-formula><mml:math id="M145" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> is the density, and <inline-formula><mml:math id="M146" display="inline"><mml:mi>g</mml:mi></mml:math></inline-formula> is the gravitational acceleration. The compressibility parameter, <inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, is defined as

            <disp-formula id="Ch1.E37" content-type="numbered"><label>37</label><mml:math id="M148" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">μ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="italic">μ</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the (first) elastic Lamé parameter, given by

            <disp-formula id="Ch1.E38" content-type="numbered"><label>38</label><mml:math id="M150" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">μ</mml:mi></mml:mrow><mml:mn mathvariant="normal">3</mml:mn></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M151" display="inline"><mml:mi mathvariant="italic">κ</mml:mi></mml:math></inline-formula> is the bulk modulus. When the material is incompressible, then <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>→</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e5471">For consistency with the analytical solution, both compressible buoyancy and advection of hydrostatic pre-stress must be neglected. To ensure correct asymptotic behaviour in the viscous limit, we must include a surface integral term at Earth's surface, <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mo>∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mi mathvariant="bold-italic">ϕ</mml:mi><mml:mo>⋅</mml:mo><mml:mover accent="true"><mml:mi mathvariant="bold-italic">n</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:msub><mml:mi>B</mml:mi><mml:mi mathvariant="italic">μ</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mi>g</mml:mi><mml:msub><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the component of non-dimensional displacement in the <inline-formula><mml:math id="M155" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="bold-italic">e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> direction. This term is equivalent to the surface term that would be obtained after integrating Eq. (<xref ref-type="disp-formula" rid="Ch1.E24"/>) by parts <xref ref-type="bibr" rid="bib1.bibx109" id="paren.58"><named-content content-type="pre">e.g.</named-content></xref>, and is similar to the free-surface feedback encountered in mantle convection <xref ref-type="bibr" rid="bib1.bibx56" id="paren.59"/>.</p>
      <p id="d2e5558">We adopt a mantle viscosity of <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">21</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s and shear modulus of <inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mi mathvariant="italic">μ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa, yielding a Maxwell time of <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:mi mathvariant="italic">α</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">320</mml:mn></mml:mrow></mml:math></inline-formula> years. For the compressible case, the bulk modulus is <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa, yielding <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.43</mml:mn></mml:mrow></mml:math></inline-formula>. Density and gravitational acceleration are set to 4500 kg m<sup>−3</sup> and 10 m s<sup>−2</sup>, respectively. The applied load has a height of 1 km and wavelength of 375 km (equivalent to <inline-formula><mml:math id="M163" display="inline"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:mfrac></mml:mstyle></mml:math></inline-formula> of the domain depth), leading to a viscous relaxation time of <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:mi mathvariant="italic">τ</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">24</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mn mathvariant="normal">000</mml:mn></mml:mrow></mml:math></inline-formula> years.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e5699">Analytical comparisons for 2D viscoelastic loading problem. <bold>(a)</bold> Peak displacement vs. time for compressible (red) and incompressible (blue) cases. Highlighted boxes indicate the time-windows shown in panels <bold>(b)</bold> and <bold>(c)</bold> and the legend applies to the whole figure. <bold>(b)</bold> Elastic-limit comparison of G-ADOPT predictions (dashed) with analytical solutions (solid) at three timesteps (<inline-formula><mml:math id="M165" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> = 0.1<inline-formula><mml:math id="M166" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, 0.05<inline-formula><mml:math id="M167" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, and 0.025<inline-formula><mml:math id="M168" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>). <bold>(c)</bold> Viscous-limit comparison   for <inline-formula><mml:math id="M169" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:mn mathvariant="normal">8</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula>. <bold>(d)</bold> <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-norm of the surface displacement error in the elastic limit as a function of timestep size (<inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.0015625</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula>), demonstrating first-order convergence. <bold>(e)</bold> Time-integrated global <inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-norm error in the viscous limit as timestep size is refined (<inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">16</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M177" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.5</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula>). Diagonal lines in <bold>(d)</bold> and <bold>(e)</bold> indicate expected first-order convergence behaviour.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f01.png"/>

        </fig>

      <p id="d2e5879">Figure <xref ref-type="fig" rid="F1"/>a shows the temporal evolution of peak surface displacement in the analytical solutions over a duration of 160 Maxwell times (i.e., approximately 2.2 viscous relaxation timescales). Both compressible and incompressible cases exhibit similar behaviour: an immediate elastic displacement is followed by a gradual approach towards isostatic equilibrium. Including compressibility leads to a slightly larger initial elastic deformation (<inline-formula><mml:math id="M178" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">19</mml:mn></mml:mrow></mml:math></inline-formula> m, as opposed to <inline-formula><mml:math id="M179" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow></mml:math></inline-formula> m; Fig. <xref ref-type="fig" rid="F1"/>b), but the viscous asymptote is the same for both scenarios (Fig. <xref ref-type="fig" rid="F1"/>c).</p>
      <p id="d2e5908">To explore numerical accuracy as a function of timestep size, we fix the mesh resolution and perform a suite of simulations over a range of timestep durations. We use a 2D domain of depth 1 and width 0.5 in non-dimensional terms that generally contains <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:mn mathvariant="normal">320</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">320</mml:mn></mml:mrow></mml:math></inline-formula> cells, except in the incompressible, long-duration case where this resolution was doubled to <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:mn mathvariant="normal">640</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">640</mml:mn></mml:mrow></mml:math></inline-formula> cells to ensure that the time discretisation error dominates over any spatial discretisation errors. Since the Backward Euler timestep method is unconditionally stable and first-order accurate, these tests should ideally achieve a first-order convergence rate.</p>
      <p id="d2e5935">At short timescales where elastic deformation is expected to dominate, we undertake a single timestep with durations of <inline-formula><mml:math id="M182" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula> down to <inline-formula><mml:math id="M183" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.0015625</mml:mn><mml:mi mathvariant="italic">α</mml:mi></mml:mrow></mml:math></inline-formula>. To approximate incompressibility within our compressible viscoelastic formulation, we set the bulk modulus to a high value of <inline-formula><mml:math id="M184" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">15</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa (equivalent to <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.0001</mml:mn></mml:mrow></mml:math></inline-formula>). For both compressible and incompressible cases, as <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> reduces, we can see that our viscoelastic response gets systematically closer to the instantaneous elastic response from the analytical solutions at time <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> (Fig. <xref ref-type="fig" rid="F1"/>b) and that the surface <inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-errors of this difference reduce with first-order accuracy (Fig. <xref ref-type="fig" rid="F1"/>d).</p>
      <p id="d2e6036">At long timescales where viscous deformation dominates, we run numerical simulations with a timestep duration that systematically varies from 16<inline-formula><mml:math id="M189" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> down to 0.5<inline-formula><mml:math id="M190" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>. Since the relative contribution of elastic compressibility to total displacement is much lower over long timescales, we use a less extreme bulk modulus of <inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">13</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa for the incompressible case (i.e., <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1.01</mml:mn></mml:mrow></mml:math></inline-formula>). Once again, we observe that, as timestep size reduces, numerical simulations approach the two analytical solutions (Fig. <xref ref-type="fig" rid="F1"/>c) and that their time-integrated global <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-error reduces with first-order convergence (Fig. <xref ref-type="fig" rid="F1"/>e).</p>
      <p id="d2e6103">Despite the physical simplicity necessitated by these analytical solutions, the results demonstrate that G-ADOPT accurately reproduces the analytical response for both compressible and incompressible Maxwell halfspaces and that its implicit time-stepping scheme achieves the expected first-order accuracy in time. In the following benchmarks, we next evaluate G-ADOPT against other finite element and semi-analytical codes using more realistic loading scenarios in a 3D domain.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>3D Cartesian benchmarks with a Maxwell rheology</title>
      <p id="d2e6114"><xref ref-type="bibr" rid="bib1.bibx100" id="text.60"/> have recently presented a valuable suite of test simulations created using three published GIA models: two finite element codes – Abaqus <xref ref-type="bibr" rid="bib1.bibx104" id="paren.61"/> and Aspect <xref ref-type="bibr" rid="bib1.bibx100" id="paren.62"/> – and one semi-analytical code that assumes an axisymmetric spherical Earth, Taboo <xref ref-type="bibr" rid="bib1.bibx90" id="paren.63"/>. A schematic of their model setup is shown in Fig. <xref ref-type="fig" rid="F2"/>, for which the domain is a 3D Cartesian box measuring <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mn mathvariant="normal">1500</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">1500</mml:mn></mml:mrow></mml:math></inline-formula> km laterally and 2891 km in depth (and therefore can only be approximately represented in Taboo). Two loading scenarios were considered: (i) a short-duration event that has similar spatiotemporal scales to modern ice changes, whereby a 100 m-thick ice sheet linearly grows for 100 years before being held constant for another 100 years; and (ii) a long-duration scenario that is more similar to a glacial cycle, whereby 1 km of ice linearly accumulates over 90 kyr and then fully melts by 100 kyr, followed by a further 10 kyr of evolution in the absence of further loading changes. In both cases, the ice sheet is represented by a disc with a radius of 100 km.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e6144">Schematic of the 3D Cartesian benchmark from <xref ref-type="bibr" rid="bib1.bibx100" id="text.64"/>. <bold>(a)</bold> Model domain showing rheological layers, an optional low viscosity (LV) zone, and the extent of ice at the surface. Note schematic is not drawn to scale. <bold>(b)</bold> Temporal evolution of thickness of the ice disk in the short-loading scenario. <bold>(c)</bold> Same for the long-loading scenario. </p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f02.png"/>

        </fig>

      <p id="d2e6165">The default Earth structure follows the 1D layered model of <xref ref-type="bibr" rid="bib1.bibx91" id="text.65"/>, composed of a lithosphere, upper mantle, transition zone, and lower mantle (Table <xref ref-type="table" rid="T2"/>). To assess sensitivity to lateral viscosity variations, a second 3D-Earth structure also incorporates a cylindrical anomaly with a radius of 100 km and a reduced viscosity of <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">19</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s directly beneath the ice sheet, extending from 70–170 km depth. Since Taboo assumes spherical symmetry, it is therefore limited to modelling  1D cases only.</p>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e6192">Rheological parameters for 1D depth profiles following <xref ref-type="bibr" rid="bib1.bibx100" id="text.66"/> and <xref ref-type="bibr" rid="bib1.bibx91" id="text.67"/>. To approximate infinite viscosities in the lithosphere, our simulation assumes <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">40</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="6">
     <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:colspec colnum="6" colname="col6" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Layer</oasis:entry>
         <oasis:entry colname="col2">Radius (km)</oasis:entry>
         <oasis:entry colname="col3">Density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col4">Shear modulus (Pa)</oasis:entry>
         <oasis:entry colname="col5">Viscosity (Pa s)</oasis:entry>
         <oasis:entry colname="col6">Gravity (m s<sup>−2</sup>)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Lithosphere</oasis:entry>
         <oasis:entry colname="col2">6371</oasis:entry>
         <oasis:entry colname="col3">3037</oasis:entry>
         <oasis:entry colname="col4">0.50605 <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M200" display="inline"><mml:mi mathvariant="normal">∞</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">9.815</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Upper mantle</oasis:entry>
         <oasis:entry colname="col2">6301</oasis:entry>
         <oasis:entry colname="col3">3438</oasis:entry>
         <oasis:entry colname="col4">0.70363 <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">21</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">9.854</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Transition zone</oasis:entry>
         <oasis:entry colname="col2">5951</oasis:entry>
         <oasis:entry colname="col3">3871</oasis:entry>
         <oasis:entry colname="col4">1.05490 <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">21</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">9.978</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Lower mantle</oasis:entry>
         <oasis:entry colname="col2">5701</oasis:entry>
         <oasis:entry colname="col3">4978</oasis:entry>
         <oasis:entry colname="col4">2.28340 <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M206" 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">21</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6">10.024</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Core</oasis:entry>
         <oasis:entry colname="col2">3480</oasis:entry>
         <oasis:entry colname="col3">10750</oasis:entry>
         <oasis:entry colname="col4">0</oasis:entry>
         <oasis:entry colname="col5">0</oasis:entry>
         <oasis:entry colname="col6">10.457</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e6492">The configuration in G-ADOPT is set up to closely imitate Aspect's implementation of the benchmark, which includes: neglecting self-gravity; using a constant gravitational acceleration of 9.815 m s<sup>−2</sup>; setting viscosity in the elastic lithosphere to <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">40</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s (thereby ensuring negligible viscous deformation of this layer over the course of the simulation); and exploiting axisymmetry to model only one quarter of the domain with no-normal-flow boundary conditions imposed on its side walls and base. Ice loading is implemented using a smooth hyperbolic tangent profile with a 1 km “rollover” length-scale and the density of ice is assumed to be 931 kg m<sup>−3</sup>. We use Gmsh to construct a horizontally unstructured mesh, refined to 5 km under the ice and coarsened to 200 km in the far field <xref ref-type="bibr" rid="bib1.bibx37" id="paren.68"/>. Vertically, each rheological layer is discretised with a fixed number  of DG0 elements (e.g., 10 per layer in the default setup), providing constant values within elements but permitting sharp boundaries between layers. Timesteps are 10 and 1000 years for the short- and long-loading scenarios, respectively. For reference, Abaqus uses a similar meshing approach to G-ADOPT, with horizontal resolution of 5–200 km and 8 vertical cells per rheological layer; Aspect uses <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> km isotropic resolution in the top 100 km of the domain, transitioning to 50 km elsewhere; and Taboo uses a maximum spectral degree of 4096, equivalent to approximately 5 km horizontal resolution, and is semi-analytical in the vertical direction <xref ref-type="bibr" rid="bib1.bibx100" id="paren.69"/>.  Since the benchmarks all assume incompressibility, we again approximate incompressibility by setting the bulk modulus to <inline-formula><mml:math id="M211" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">14</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa (i.e., 1000 times larger than the reference shear modulus). Note that, to ensure robustness in these incompressible simulations, we solve the coupled system (i.e., Eqs. <xref ref-type="disp-formula" rid="Ch1.E33"/> and <xref ref-type="disp-formula" rid="Ch1.E34"/>) for reasons outlined in Sect. <xref ref-type="sec" rid="Ch1.S2"/>.</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e6574">Comparison of maximum vertical surface displacements beneath the ice load for the 3D Cartesian box benchmark scenarios of <xref ref-type="bibr" rid="bib1.bibx100" id="text.70"/>. <bold>(a)</bold> Short-duration loading scenario on a 1D Earth model. Dotted red <inline-formula><mml:math id="M212" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Abaqus; dash-dotted purple <inline-formula><mml:math id="M213" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Aspect; dashed orange <inline-formula><mml:math id="M214" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Taboo; and solid blue <inline-formula><mml:math id="M215" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> G-ADOPT. Inset shows a zoom of the region outlined by the black-dashed box. <bold>(b)</bold> Same for the long-duration loading scenario on a 1D Earth. <bold>(c)</bold> Short-duration loading scenario on a 3D Earth containing a low-viscosity patch in the upper mantle beneath the ice sheet. <bold>(d)</bold> Same for the long-duration loading scenario on a 3D Earth; grey dashed line <inline-formula><mml:math id="M216" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> G-ADOPT result on a 1D Earth (panel b) plotted to highlight impact of the low-viscosity patch. Note that results for Abaqus, Aspect and Taboo are digitised from <xref ref-type="bibr" rid="bib1.bibx100" id="text.71"/> and that some of the four scenarios illustrated were not tested in those codes. Also note the different <inline-formula><mml:math id="M217" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-axis extents for the short- versus long-duration scenarios.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f03.png"/>

        </fig>

      <p id="d2e6645">Figure <xref ref-type="fig" rid="F3"/> compares maximum vertical displacements beneath the ice load across all four codes in each of the four benchmark combinations of Earth model and loading scenario. The upper row shows results for 1D Earth structure, while the lower row includes the low-viscosity cylindrical anomaly. Agreement is generally excellent in all cases where cross-code comparisons are possible (Fig. <xref ref-type="fig" rid="F3"/>a–c), affirming consistency with G-ADOPT's implementation. In the final panel (Fig. <xref ref-type="fig" rid="F3"/>d), we present results from G-ADOPT for the long-loading scenario with 3D viscosity – a configuration not illustrated in <xref ref-type="bibr" rid="bib1.bibx100" id="text.72"/>. In comparison to the same loading scenario on a 1D Earth, the presence of a low-viscosity patch accelerates the surface response consistent with expectations, but only modestly: the maximum vertical displacement differs by just <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> % relative to the 1D case at 90 kyr, compared to a <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">60</mml:mn></mml:mrow></mml:math></inline-formula> % difference in the short-duration loading scenario. This result is consistent with the fact that, even for the 1D Earth model, the <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> kyr loading timescale is substantially longer than the <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">320</mml:mn></mml:mrow></mml:math></inline-formula> year Maxwell time of the upper mantle (N.B., the equivalent Maxwell time for the low-viscosity patch is only <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> years).</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e6710">Sensitivity analysis for G-ADOPT using the scenario explored in Fig. <xref ref-type="fig" rid="F3"/>b consisting of long-duration ice loading on a 1D Earth model. <bold>(a)</bold> Impact of horizontal resolution. Solid blue <inline-formula><mml:math id="M223" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> default spacing (5 km beneath ice sheet, 200 km in far field); crosses <inline-formula><mml:math id="M224" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> half of default resolution; circles <inline-formula><mml:math id="M225" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> one quarter of default resolution. <bold>(b)</bold> Impact of vertical resolution. Solid blue <inline-formula><mml:math id="M226" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> default case with 40 vertical cells across the model domain (i.e., 10 per layer); crosses <inline-formula><mml:math id="M227" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 20 cells; circles <inline-formula><mml:math id="M228" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> eight cells; triangles <inline-formula><mml:math id="M229" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> four cells. <bold>(c)</bold> Impact of timestep size. Solid blue <inline-formula><mml:math id="M230" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> default of 1 kyr; crosses <inline-formula><mml:math id="M231" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 2 kyr; circles <inline-formula><mml:math id="M232" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 5 kyr; triangles <inline-formula><mml:math id="M233" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 10 kyr. <bold>(d)</bold> Impact of transitioning from incompressible to a realistic Earth-like level of compressibility by modifying the ratio of bulk-to-shear modulus. Solid blue <inline-formula><mml:math id="M234" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1000; crosses <inline-formula><mml:math id="M235" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 100; circles <inline-formula><mml:math id="M236" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 10; triangles <inline-formula><mml:math id="M237" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 1.94.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f04.png"/>

        </fig>

      <p id="d2e6842">To further assess the robustness of G-ADOPT, we conduct a resolution and parameter sensitivity analysis for the scenario involving long-duration loading of a 1D Earth model. Horizontal mesh sensitivity tests demonstrate that even as few as five elements beneath the ice-covered region (i.e., 20 km horizontal resolution) are sufficient to accurately capture the pattern of deformation (Fig. <xref ref-type="fig" rid="F4"/>a). Changing the vertical resolution has a bigger effect (Fig. <xref ref-type="fig" rid="F4"/>b). Halving the default values to five elements per layer (i.e., 20 vertical elements in total) results in practically indistinguishable results, but reducing to two cells per layer produces peak differences of <inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> %, which increases to <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> % when only using one cell per layer. Regarding the impact of timestep size, these tests neatly demonstrate the effectiveness of our implicit time-stepping scheme. Even when the timestep is increased to 10 kyr, which is more than 30 times greater than the Maxwell time of the upper mantle in these models, the solution remains stable and accurate throughout the loading phase and produces only minor errors during the unloading phase (Fig. <xref ref-type="fig" rid="F4"/>c). For this case, the computational cost per timestep is doubled because the number of outer iterations per timestep increases, but this still leads to an effective speed up of a factor of five in comparison to the 1 kyr simulation. By way of comparison, Aspect used significantly shorter timesteps (e.g., 50 years) to achieve comparable results in this benchmark <xref ref-type="bibr" rid="bib1.bibx100" id="paren.73"/>.</p>
      <p id="d2e6875">We can also use this test scenario to demonstrate the impact of realistic levels of compressibility by changing the ratio of bulk-to-shear modulus (Fig. <xref ref-type="fig" rid="F4"/>d). A value of 1000 closely approximates incompressibility and turns out to be indistinguishable from a value of 100. By the time it is lowered to 1.94, there is a <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula> % increase in maximum vertical displacement, reflecting the larger elastic deformation caused by loading compressible materials. This result further underscores the importance of including compressibility in GIA simulations <xref ref-type="bibr" rid="bib1.bibx102 bib1.bibx93 bib1.bibx1" id="paren.74"/>. However, it also requires taking greater care during model setup to ensure that a density inversion (with respect to depth) does not occur at any point during the simulation. Such a scenario leads to convective instabilities that can grow, depending on the timescales, and have been widely documented in GIA literature <xref ref-type="bibr" rid="bib1.bibx98 bib1.bibx48" id="paren.75"/>.</p>

<table-wrap id="T3"><label>Table 3</label><caption><p id="d2e6899">Weak scaling analysis for the long-duration loading case on a 1D Earth using a structured mesh. Default iteration counts and timings use a bulk-to-shear modulus ratio of 100 (equivalent values for a ratio of 1.94 are given in brackets).  DOFs <inline-formula><mml:math id="M241" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Degrees of freedom. </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">DOFs</oasis:entry>
         <oasis:entry colname="col2">Cores</oasis:entry>
         <oasis:entry colname="col3">Iterations</oasis:entry>
         <oasis:entry colname="col4">Time per</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4">timestep (s)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">3 168 963</oasis:entry>
         <oasis:entry colname="col2">104</oasis:entry>
         <oasis:entry colname="col3">184 (27)</oasis:entry>
         <oasis:entry colname="col4">36.3 (9.3)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">24 961 923</oasis:entry>
         <oasis:entry colname="col2">832</oasis:entry>
         <oasis:entry colname="col3">209 (30)</oasis:entry>
         <oasis:entry colname="col4">44.3 (12.5)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">198 147 843</oasis:entry>
         <oasis:entry colname="col2">6656</oasis:entry>
         <oasis:entry colname="col3">247 (49)</oasis:entry>
         <oasis:entry colname="col4">55.0 (19.1)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e7001">To test the scalability of G-ADOPT, we have undertaken a weak scaling analysis on Gadi (Australia's highest performance CPU-based supercomputer) using the long-duration loading scenario on a 1D Earth and a structured mesh. We use a number of cores ranging from 104 up to 6656 (i.e., from 1 to 64 Intel Xeon Sapphire Rapids nodes) and aim to keep the number of degrees of freedom per core constant at <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">30</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">000</mml:mn></mml:mrow></mml:math></inline-formula>. The results show that, with a bulk-to-shear modulus ratio of 100, increasing the problem size by a factor of 64 causes the solve time per timestep to increase by <inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">30</mml:mn></mml:mrow></mml:math></inline-formula> % (Table <xref ref-type="table" rid="T3"/>), which is consistent with previous scaling results for mantle convection modelling within Firedrake <xref ref-type="bibr" rid="bib1.bibx26" id="paren.76"/>. As discussed in Sect. <xref ref-type="sec" rid="Ch1.S2.SS4"/>, for the case with a smaller bulk-to-shear modulus ratio of 1.94, conditioning of the system improves and the number of iteration counts is significantly reduced. However, the overall scaling performance is slightly worse with the solve time per timestep effectively doubling as the problem size increases by a factor of 64.</p>
      <p id="d2e7034">In summary, for a 3D Cartesian box with potential presence of lateral viscosity variations, G-ADOPT accurately reproduces benchmark results from published codes. It also exhibits desirable performance characteristics, including efficient timestepping and stability across a range of resolutions. These results validate the core solver and lay the groundwork for investigating more complex loading scenarios, including those involving compressibility and more complex rheologies.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Extending to complex rheologies including power-law and transience</title>
      <p id="d2e7045">In this section, we demonstrate the flexibility of the internal variable formulation to model both power-law and transient rheologies by extending the short- and long-duration loading 1D-Earth benchmarks of Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. Compressibility is implemented by adopting a bulk-to-shear modulus ratio of 1.94 (corresponding to a Poisson’s ratio of 0.28), as that value is standard in Abaqus implementations <xref ref-type="bibr" rid="bib1.bibx48" id="paren.77"/>. As discussed before, the impact of compressibility alone is to increase the magnitude of the peak displacement through time in comparison to the incompressible Maxwell case, consistent with expectations (Fig. <xref ref-type="fig" rid="F5"/>).</p>
      <p id="d2e7055">For composite power-law rheology, we use the same reference viscosity as before and adopt a transition stress of <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> MPa and exponent of <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> (consistent with case 1 of <xref ref-type="bibr" rid="bib1.bibx51" id="altparen.78"/>). All other aspects of the setup including grid resolution, timestep size, boundary conditions, and loading configuration are identical to those in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. In the short-duration loading scenario, the maximum vertical displacement increases with respect to the compressible Maxwell model, becoming more obvious after the load stops growing at 100 years and reaching <inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">13</mml:mn></mml:mrow></mml:math></inline-formula> % more by 200 years (Fig. <xref ref-type="fig" rid="F5"/>a). In the long-duration loading scenario, the same situation is observed during loading, although the peak vertical displacement is only <inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">1.7</mml:mn></mml:mrow></mml:math></inline-formula> % larger at the time of maximum loading at 90 kyr. During unloading, however, the composite power-law rheology recovers substantially faster than its Maxwell equivalent, reaching 20 % of its peak displacement by 103 kyr in comparison to 109 kyr for the Maxwell case. We also verified that setting the transition stress to a high value of <inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> MPa (i.e., ensuring that the power-law component is not activated) gave equivalent results to the Maxwell case.</p>
      <p id="d2e7128">A Burgers rheology can be conceptually considered as a standard Maxwell body (composed of a spring and dashpot connected in series) connected in series to a single Kelvin-Voigt element (a spring and dashpot connected in parallel). It requires using two internal variables to represent the two characteristic relaxation timescales of the system <xref ref-type="bibr" rid="bib1.bibx20 bib1.bibx21" id="paren.79"/>. To maintain the same elastic response as in the compressible Maxwell case, we halve the shear modulus of each internal variable element, thereby preserving the total effective modulus. Similarly, we halve the viscosity of the long-term viscous element, so that the overall relaxation timescale remains consistent with the Maxwell cases presented earlier. We then explore two different cases in which the viscosity of the element controlling short-term relaxation is set to either one-half or one-tenth that of the long-term element.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e7137">Extension of the 3D Cartesian benchmark to compressible non-Maxwell rheologies. <bold>(a)</bold> Short-duration loading scenario on a 1D Earth model. Solid blue <inline-formula><mml:math id="M249" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> incompressible Maxwell rheology previously shown in Fig. <xref ref-type="fig" rid="F3"/>a; solid red <inline-formula><mml:math id="M250" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> equivalent for compressible Maxwell rheology (bulk-to-shear modulus ratio of 1.94) previously shown in Fig. <xref ref-type="fig" rid="F4"/>d; dotted black = composite power-law rheology with transition stress <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">τ</mml:mi><mml:mi mathvariant="normal">T</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula> MPa and exponent <inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>; dashed purple <inline-formula><mml:math id="M253" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> Burgers rheology with short-term viscosity a factor of 2 lower than the long-term viscosity; dash-dotted orange <inline-formula><mml:math id="M254" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> same for a factor of 10 viscosity reduction. <bold>(b)</bold> Same for the long-duration loading scenario.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f05.png"/>

        </fig>

      <p id="d2e7212">In both cases, adding in a transient element with lower viscosity amplifies the response in comparison to the compressible Maxwell case (as was found for the power-law rheology), particularly where rapid changes in the load interact strongly with the shorter relaxation timescale (Fig. <xref ref-type="fig" rid="F5"/>). This behaviour is most obvious in the short-duration loading scenario, but it is also visible in the unloading phase of the long-duration scenario. We also verified that setting the same viscosity for both internal variables (i.e., reducing the Burgers model to a single timescale) reproduces the original Maxwell response, confirming the internal consistency of our implementation.</p>
      <p id="d2e7217">It is noteworthy that, for short-duration loading, displacement curves for the compressible Maxwell case, and the compressible power-law and Burgers simulations (Fig. <xref ref-type="fig" rid="F5"/>a), exhibit comparable features to those produced for the incompressible Maxwell model with a low-viscosity patch (Fig. <xref ref-type="fig" rid="F3"/>c). Although the underlying deformation mechanisms differ, this similarity illustrates the difficulty of disentangling the effects of local viscosity variations, compressibility, and non-Maxwell rheologies <xref ref-type="bibr" rid="bib1.bibx77" id="paren.80"><named-content content-type="pre">e.g.,</named-content></xref>. Nevertheless, it also highlights the flexibility of the G-ADOPT framework and reinforces its potential future value to these debates.</p>
      <p id="d2e7229">In summary, we have demonstrated G-ADOPT's ability to model compressible power-law and transient viscoelastic rheologies using the internal variable formulation and the important impact of these phenomena on GIA predictions, particularly during rapid loading changes. In the next section, we demonstrate extension of these simulations to domains with spherical geometry.</p>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>Extension to spherical geometries</title>
      <p id="d2e7241">A significant strength of G-ADOPT is that it is relatively trivial to change the mesh to suite a range of different domain geometries. We demonstrate this aspect by extending our previous simulations from the 3D Cartesian box to a 3D spherical Earth. We adopt a model domain from the benchmark of <xref ref-type="bibr" rid="bib1.bibx91" id="text.81"/>, which modelled an incompressible Maxwell rheology with purely radial viscosity variations. While we cannot repeat this benchmark as we have not yet implemented self-gravity in G-ADOPT, we have extended it to a more complex rheology by using a compressible, Burgers (i.e., transient) rheology that also contains lateral viscosity variations.</p>
      <p id="d2e7247">To generate the mesh, we first use Firedrake's inbuilt functionality to create a cubed-sphere surface mesh with 24 576 horizontal elements (equivalent to 6 refinements). We then “extrude” the mesh in the vertical direction to create 40 vertical layers (10 per rheological layer), as in Sect. <xref ref-type="sec" rid="Ch1.S3.SS2"/>. A couple of additional changes with respect to the Cartesian setup are that we provide a rotational null space to the Firedrake solver options to improve iterative solver performance and provide a weak implementation of the no-normal-flow boundary condition on the core-mantle boundary. We retain the same radial profiles of density, shear modulus, and long-term (i.e., steady-state) viscosity as in <xref ref-type="bibr" rid="bib1.bibx91" id="text.82"/>, but these viscosities are further modulated by a (<inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mi mathvariant="normal">ℓ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>) spherical harmonic function that introduces lateral viscosity variations spanning two orders of magnitude (Fig. <xref ref-type="fig" rid="F6"/>). For the short-term viscosity in the Burgers model, we assign a value that is a factor of 10 times smaller, while compressibility is set using a bulk-to-shear modulus ratio of 1.94, corresponding to a Poisson's ratio of approximately 0.28. A 1 km-thick ice disc with a radius of 10<inline-formula><mml:math id="M256" display="inline"><mml:mi mathvariant="italic">°</mml:mi></mml:math></inline-formula> latitude is placed on the North Pole  and applied instantaneously at the start  of the simulation via a Heaviside step function. Ice density is 931 kg m<sup>−3</sup> and gravity is constant: <inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">9.815</mml:mn></mml:mrow></mml:math></inline-formula> m s<sup>−2</sup>. A timestep of 50 years is used to resolve rapid deformation following the instantaneous ice loading event.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e7323">Viscoelastic deformation of a 3D spherical domain with an elastically compressible, Burgers rheology with lateral viscosity variations following instantaneous application of a disk load at the North Pole. Snapshots are at 1, 2, 5 and 10 kyr after load is applied. Red/blue <inline-formula><mml:math id="M260" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> long-term, steady state viscosity (lithospheric viscosity of <inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">40</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s saturated in dark blue); greyscale <inline-formula><mml:math id="M262" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> magnitude of surface displacement (surface warping exaggerated by a factor of 1500 for improved visibility); black arrows <inline-formula><mml:math id="M263" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> velocity vectors.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f06.png"/>

        </fig>

      <p id="d2e7367">Figure <xref ref-type="fig" rid="F6"/> shows slices through the spherical domain at times of 1, 2, 5 and 10 kyr after the load is applied. Early on in the simulation, deformation velocities are large and concentrated in the upper mantle. Despite the axisymmetric nature of the load, there is a bias in their direction, with greater movement towards the neighbouring region of low viscosity. There is also a higher amplitude, shorter wavelength peripheral bulge developing on this side of the ice sheet in comparison to the direction of the highest viscosity. After 5 kyr, the remaining deformation is now concentrated on the higher viscosity side of the domain and has much lower velocity, consistent with expectations that the higher viscosity region has a longer Maxwell time and therefore takes longer to reach isostatic equilibrium. By 10 kyr, the majority of deformation has finished and the initially highly asymmetric surface displacement has gradually restored to a more symmetric pattern. At equilibrium, the surface displacement should match the symmetry of the applied load (since we are still using radially symmetric elastic structure).</p>
      <p id="d2e7372">This simulation is designed to showcase the relative ease in which G-ADOPT can be switched between different model domain geometries. It also simultaneously demonstrates its ability to model more complex, Earth-like problems that include compressibility, lateral viscosity variations, and transient rheologies. We believe that these aspects should render it a valuable future tool for modelling viscoelastic surface loading problems in future work, such as those routinely encountered in GIA. In the next section, we illustrate another key strength of G-ADOPT – namely its ability to compute automatic adjoints.</p>
</sec>
<sec id="Ch1.S3.SS5">
  <label>3.5</label><title>Adjoint twin experiments</title>
      <p id="d2e7383">As emphasised in the introduction, a major motivation for developing a new viscoelastic deformation code in G-ADOPT is the availability of an automatically-derived discrete adjoint that can be used to invert any observational constraints for unknown Earth structure and/or loading histories. Here, we use a synthetic 2-D annulus domain loaded with ice at its surface and demonstrate this adjoint capability by performing gradient-based optimisations for ice thickness and mantle viscosity. While this example is intentionally kept simple, our goal is to establish a clear and controlled foundation for tackling more complex and realistic inverse problems in future work.</p>
<sec id="Ch1.S3.SS5.SSS1">
  <label>3.5.1</label><title>Synthetic forward problem</title>
      <p id="d2e7393">Figure <xref ref-type="fig" rid="F7"/> shows the setup of the 2D annulus used in our adjoint twin experiments, including the configuration of viscosity fields and ice loads. In these simulations, we assume a Maxwell rheology and consider two distinct simulations that differ only in their viscosity structure. The first adopts the same purely radial viscosity profile used in our previous benchmark cases (Table <xref ref-type="table" rid="T2"/>) except that it uses a less stiff lithospheric viscosity of <inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">25</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s. The second incorporates various lateral viscosity variations (LVV) covering two orders of magnitude that are superimposed on the same radial background. These variations are defined by Gaussian perturbations: three low-viscosity regions (i.e., <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">20</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s) located at equatorial parts of the core-mantle boundary and in the upper mantle near the South Pole; and two high-viscosity features (i.e., <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">22</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> Pa s) in the upper mantle of the northern hemisphere. Elastic parameters and density vary only radially and follow the values in Table <xref ref-type="table" rid="T2"/>. The mesh comprises 360 horizontal cells and 80 vertical cells, resulting in 20 cells per rheological layer.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e7450">Setup of synthetic forward problem within a 2D annulus domain. <bold>(a)</bold> Axisymmetric viscosity variations. Blue external ring <inline-formula><mml:math id="M267" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> thickness of the ice load instantaneously applied at start of simulation. <bold>(b)</bold> Same for the case with lateral viscosity variations (LVV).</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f07.png"/>

          </fig>

      <p id="d2e7472">The loading scenario consists of two ice sheets applied instantaneously at the start of the simulation via a Heaviside function. A larger ice sheet is centred over the South Pole and has a thickness of 2 km and half-width of 20°. A second, smaller ice sheet is offset clockwise from the north pole by 25° and has a thickness of 1 km and half-width of 10°. As in previous simulations, the density of ice is 931 kg m<sup>−3</sup> and gravitational acceleration is constant, <inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">9.815</mml:mn></mml:mrow></mml:math></inline-formula> m s<sup>−2</sup>. Simulations are run for 10 000 years with a 50-year timestep.</p>
      <p id="d2e7512">Snapshots of the surface evolution at 3 kyr are shown in Fig. <xref ref-type="fig" rid="F8"/>. Looking first at the axisymmetric case, the larger South Pole ice sheet (centred at <inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mn mathvariant="normal">90</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula>) shows a peak downwards displacement of <inline-formula><mml:math id="M272" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">390</mml:mn></mml:mrow></mml:math></inline-formula> m, which is two and a half times larger than the displacement under the smaller northern hemisphere ice sheet (centred at <inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mo>+</mml:mo><mml:mn mathvariant="normal">65</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula>; Fig. <xref ref-type="fig" rid="F8"/>a). Intervening far-field locations show fairly consistent surface uplift with an amplitude of <inline-formula><mml:math id="M274" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m and ongoing rate of 4–6 mm yr<sup>−1</sup> (Fig. <xref ref-type="fig" rid="F8"/>b). At this point in the simulation, the main difference for the case with LVV occurs in the low-viscosity patch beneath the large ice sheet (between <inline-formula><mml:math id="M276" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>90  and <inline-formula><mml:math id="M277" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>120°). Here, we see that the shape of the subsidence is markedly more asymmetric, reaching a peak downwards displacement of <inline-formula><mml:math id="M278" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>420 m and accompanied by a narrower forebulge with a height of <inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">40</mml:mn></mml:mrow></mml:math></inline-formula> m. The rates of subsidence and uplift are also lower in comparison to the axisymmetric case, consistent with the fact that it takes less time to reach isostatic equilibrium in the lower viscosity region. In contrast, beneath the smaller ice sheet, the locally higher upper-mantle viscosity causes a delay in the surface response relative to the axisymmetric case.</p>
      <p id="d2e7618">Examination of the tangential displacements tells a similar story, with the biggest difference occurring above the low-viscosity zone where the surface of the axisymmetric simulation is displaced away from the ice sheet by <inline-formula><mml:math id="M280" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">200</mml:mn></mml:mrow></mml:math></inline-formula> m while that of the LVV simulation is displaced by <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">280</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="F8"/>c). Similar differences occur in the rates of tangential motion (Fig. <xref ref-type="fig" rid="F8"/>d). Formally examining the root-mean-squared difference in surface displacement between the two cases reveals that the radial value peaks at <inline-formula><mml:math id="M282" display="inline"><mml:mn mathvariant="normal">0.58</mml:mn></mml:math></inline-formula> m by 2.0 kyr before gradually declining, while the tangential value peaks at 0.89 m and slightly later at 2.4 kyr (Fig. <xref ref-type="fig" rid="F8"/>e). Meanwhile the differences in surface velocity between the two simulations are largest at the first timestep, reaching <inline-formula><mml:math id="M283" display="inline"><mml:mn mathvariant="normal">1.15</mml:mn></mml:math></inline-formula>  and <inline-formula><mml:math id="M284" display="inline"><mml:mn mathvariant="normal">1.44</mml:mn></mml:math></inline-formula> mm yr<sup>−1</sup> for radial and tangential, respectively, before rapidly falling to <inline-formula><mml:math id="M286" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> mm yr<sup>−1</sup> by 2 kyr (Fig. <xref ref-type="fig" rid="F8"/>f).</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e7708">Comparison of surface displacement and surface velocity through time for axisymmetric and lateral viscosity variation (LVV) viscosity cases.  Radial component  of surface displacement <bold>(a)</bold> and surface velocity <bold>(b)</bold> at 3 kyr. <bold>(c)</bold>–<bold>(d)</bold> are corresponding tangential components. Note the large ice sheet is centred at <inline-formula><mml:math id="M288" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>90° and the small ice sheet at 65°. Spatially averaged misfit between  (LVV) and axisymmetric viscosity case through time for surface displacement <bold>(e)</bold> and surface velocity <bold>(f)</bold>.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f08.png"/>

          </fig>

</sec>
<sec id="Ch1.S3.SS5.SSS2">
  <label>3.5.2</label><title>Inversion for initial load</title>
      <p id="d2e7751">Armed with synthetic “observations” of surface displacement through time for these two forward simulations, we can now demonstrate an adjoint-based optimisation. In our first demonstration, we retain knowledge of the true viscosity structure and only invert for the unknown initial ice thickness. It is important to note that this test and those that follow assume perfect observations (i.e., complete spatiotemporal data coverage with no uncertainties) and is therefore highly idealised with respect to real-world datasets.</p>
      <p id="d2e7754">The ice thickness that must be reconstructed is referred to as the (discrete) control vector, <inline-formula><mml:math id="M289" display="inline"><mml:mi mathvariant="bold-italic">c</mml:mi></mml:math></inline-formula>, and is defined using a <inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> finite element function (i.e., linear across elements and continuous between them) on the 1D surface of the 2D annulus domain. The misfit objective function, <inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is written as

              <disp-formula id="Ch1.E39" content-type="numbered"><label>39</label><mml:math id="M292" display="block"><mml:mrow><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mi>C</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mi mathvariant="normal">top</mml:mi></mml:msub></mml:mrow></mml:munder><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">scale</mml:mi></mml:msub><mml:mn mathvariant="normal">2</mml:mn></mml:msup></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:msup><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi>n</mml:mi></mml:msup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">scale</mml:mi></mml:msub><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M293" display="inline"><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the number of timesteps, <inline-formula><mml:math id="M294" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> is the surface “area” (i.e., circumference) of the 2D annulus, <inline-formula><mml:math id="M295" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> is the current timestep, <inline-formula><mml:math id="M296" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> and  <inline-formula><mml:math id="M297" display="inline"><mml:mi mathvariant="bold-italic">v</mml:mi></mml:math></inline-formula> are current solution values for the (non-dimensional) displacement and velocity fields, respectively, <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="bold-italic">v</mml:mi><mml:mi mathvariant="normal">obs</mml:mi><mml:mi>n</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> are the corresponding “observations” from the target forward simulation, and <inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mi mathvariant="normal">scale</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi mathvariant="normal">scale</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> are factors used to scale the relative sizes of the misfit coming from displacements versus velocities.  <inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is often referred to as the reduced functional, since evaluation of <inline-formula><mml:math id="M303" display="inline"><mml:mi>J</mml:mi></mml:math></inline-formula> also requires solution of the forward model to find <inline-formula><mml:math id="M304" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M305" display="inline"><mml:mi mathvariant="bold-italic">v</mml:mi></mml:math></inline-formula>, which are in turn a function of <inline-formula><mml:math id="M306" display="inline"><mml:mi mathvariant="bold-italic">c</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e8107">Once the forward problem has been specified, G-ADOPT leverages Pyadjoint to automatically derive the adjoint problem and compute the gradient of the misfit function with respect to the control vector. To verify the accuracy of these gradients, a Taylor remainder convergence test is performed <xref ref-type="bibr" rid="bib1.bibx30 bib1.bibx40" id="paren.83"/>. It is defined as

              <disp-formula id="Ch1.E40" content-type="numbered"><label>40</label><mml:math id="M307" display="block"><mml:mrow><mml:mfenced close="|" open="|"><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>+</mml:mo><mml:mi>h</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">∇</mml:mi><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="bold-italic">c</mml:mi></mml:mrow></mml:mfenced><mml:mo>⟶</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mtext> at </mml:mtext><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M308" display="inline"><mml:mi mathvariant="bold-italic">c</mml:mi></mml:math></inline-formula> is the control vector (ice thickness), <inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">δ</mml:mi><mml:mi mathvariant="bold-italic">c</mml:mi></mml:mrow></mml:math></inline-formula> is a random perturbation direction, <inline-formula><mml:math id="M310" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>≪</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> is a small scalar, and <inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:mi>J</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">c</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the reduced objective functional. The left-hand side represents the second-order Taylor remainder. As the size of the scalar is modified and if the gradient is correctly implemented, the residual should converge to zero at a rate of <inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:mi>O</mml:mi><mml:mo>(</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, which is indeed the case (Table <xref ref-type="table" rid="T4"/>).</p>

<table-wrap id="T4" specific-use="star"><label>Table 4</label><caption><p id="d2e8250">Taylor test results for the derivative of the misfit objective function with respect to ice thickness, for <inline-formula><mml:math id="M313" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> = 0.01.</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 rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M314" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M315" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Residual</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.44</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">3.61<inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.03</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.26</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convergence rate</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">2.00</oasis:entry>
         <oasis:entry colname="col4">2.00</oasis:entry>
         <oasis:entry colname="col5">2.00</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e8433">Following the approach of <xref ref-type="bibr" rid="bib1.bibx40" id="text.84"/>, the computed gradient is passed to ROL and we use the Lin-Moré trust-region algorithm <xref ref-type="bibr" rid="bib1.bibx63" id="paren.85"/>. This algorithm permits the placing of constraints on the control variables, such as upper and lower bounds, in this case allowing enforcement of only non-negative ice thicknesses. While it would be possible to add further regularisation terms to the objective function, for example ensuring that the ice is smooth in shape, they are not considered in this experiment. The initial guess is that there is zero ice thickness across the domain. For the “observational data”, we use the results of the synthetic forward simulation with LVV from Sect. <xref ref-type="sec" rid="Ch1.S3.SS5.SSS1"/> and invert it with both the correct LVV viscosity structure and the incorrect axisymmetric one.</p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e8446">Adjoint-based optimisation for initial ice load. <bold>(a)</bold> Normalised ice thickness after 20 iterations. Black dashed line <inline-formula><mml:math id="M322" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> true target load; blue <inline-formula><mml:math id="M323" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> inversion using correct LVV mantle structure; red <inline-formula><mml:math id="M324" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> inversion using incorrect axisymmetric mantle structure. <bold>(b)</bold> Objective (i.e., misfit) function value as a function of iteration number for both cases.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f09.png"/>

          </fig>

      <p id="d2e8482">After only 20 iterations, the recovered ice thickness using the correct LVV viscosities is visually indistinguishable from the true target field and corresponds with the objective function (i.e., misfit in surface displacement and velocity) reducing by nearly seven orders of magnitude (Fig. <xref ref-type="fig" rid="F9"/>). In contrast, misfit for the incorrect viscosity structure initially drops by two orders of magnitude before stalling. Examining the resulting ice thicknesses shows that the recovered large ice sheet is asymmetric, with <inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> % extra ice added to compensate for absence of the low-viscosity upper mantle region near <inline-formula><mml:math id="M326" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>110°. Similarly, the smaller ice sheet is <inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mo>∼</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> % too thin, owing to the locally reduced viscosity in the axisymmetric model. Additionally, the optimisation introduces a thin, tapering layer of spurious ice  30–50 m-thick extending either side of the small ice sheet and into the large ice sheet (i.e., between <inline-formula><mml:math id="M328" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>50  and 150°). This behaviour indicates the great value of geological constraints on ice extent, such as terminal moraines and cosmogenic exposure ages, when attempting this approach with real datasets.</p>
      <p id="d2e8521">Regarding the computational cost of automatic adjoint calculation, we find that Pyadjoint is very efficient. Annotation of the forward model for this 2D case takes 3 % of the time required to run the forward model, while the adjoint model is only 6 % slower than the forward model with taping (Table <xref ref-type="table" rid="T5"/>). This nearly matches the expected one-to-one correspondence between the cost for the forward and adjoint model for a linear forward problem <xref ref-type="bibr" rid="bib1.bibx30" id="paren.86"><named-content content-type="pre">e.g.</named-content></xref>. We anticipate further improvements in the adjoint-to-forward-efficiency ratio for fully 3D problems, as the cost associated with solving the linear systems increases.</p>

<table-wrap id="T5" specific-use="star"><label>Table 5</label><caption><p id="d2e8535">Runtimes for the forward and adjoint models.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="3">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">Runtime (s)</oasis:entry>
         <oasis:entry colname="col3">Ratio</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Forward model</oasis:entry>
         <oasis:entry colname="col2">422</oasis:entry>
         <oasis:entry colname="col3">1.0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Forward model + annotation</oasis:entry>
         <oasis:entry colname="col2">434</oasis:entry>
         <oasis:entry colname="col3">1.03</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Forward model + annotation + adjoint model</oasis:entry>
         <oasis:entry colname="col2">893</oasis:entry>
         <oasis:entry colname="col3">2.1</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e8602">This experiment demonstrates the benefits of automatic adjoint derivation in Pyadjoint and its effective use for recovering initial loads when the viscosity structure is known. It also highlights the biases that are introduced by incorrect rheological assumptions.</p>
</sec>
<sec id="Ch1.S3.SS5.SSS3">
  <label>3.5.3</label><title>Inversion for viscosity structure</title>
      <p id="d2e8613">We now turn to the complementary inversion problem: assuming the distribution of the initial load is known, can we recover an unknown mantle viscosity structure? The same objective function (Eq. <xref ref-type="disp-formula" rid="Ch1.E39"/>) is used, which quantifies misfit between simulated and target surface displacements and velocities at all timesteps. The target “observational” data is again drawn from the synthetic forward simulation using viscosity structure with lateral viscosity variations and does not contain any additional noise or uncertainties.</p>
      <p id="d2e8618">The viscosities in this model span five orders of magnitude. In order to improve convergence rates, we found that it is helpful to apply a logarithmic rescaling according to

              <disp-formula id="Ch1.E41" content-type="numbered"><label>41</label><mml:math id="M329" display="block"><mml:mrow><mml:mi mathvariant="italic">η</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">control</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M330" display="inline"><mml:mi mathvariant="italic">η</mml:mi></mml:math></inline-formula> is viscosity in the simulation, <inline-formula><mml:math id="M331" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is a radial viscosity profile, and <inline-formula><mml:math id="M332" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">control</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the control field of lateral variations over which the optimisation is performed. This formulation constrains the control values to a smaller, more uniform range. <inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is initialised using the same radial viscosity profile (although it could be any other) using a DG0 finite element function. <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">control</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is defined using a continuous <inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:mi>P</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> element and the field is initially set to zero everywhere in the domain, so that the starting guess for viscosity is equivalent to viscosities in the axisymmetric case. As before, the inversion proceeds without regularisation within the objective function. A Taylor remainder convergence test confirms the accuracy of the computed gradients (Table <xref ref-type="table" rid="T6"/>).</p>

<table-wrap id="T6" specific-use="star"><label>Table 6</label><caption><p id="d2e8714">Taylor test results for the derivative of the misfit objective function with respect to viscosity.</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 rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M338" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">Residual</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M340" display="inline"><mml:mrow><mml:mn mathvariant="normal">8.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">2.13<inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M342" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.33</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M343" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.33</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Convergence rate</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">2.00</oasis:entry>
         <oasis:entry colname="col4">2.00</oasis:entry>
         <oasis:entry colname="col5">2.00</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <fig id="F10" specific-use="star"><label>Figure 10</label><caption><p id="d2e8902">Optimisation of viscosity structure given a known ice load. Each row shows the state of the inversion after 0, 10, 50, and 100 iterations. Left-hand column <inline-formula><mml:math id="M344" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> current inference of viscosity field; central column <inline-formula><mml:math id="M345" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> misfit with respect to the true viscosity structure in control-space; right-hand column <inline-formula><mml:math id="M346" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> adjoint sensitivity kernel, where positive values in red indicate that decreasing viscosity reduces the misfit and negative values in blue indicate that it should be increased.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f10.png"/>

          </fig>

      <p id="d2e8932">At iteration zero where the viscosity is still axisymmetric, the largest signals in the adjoint sensitivity kernel indicate that viscosity should be reduced beneath the large southern ice sheet and increased beneath the smaller northern ice sheet (top-right panel in Fig. <xref ref-type="fig" rid="F10"/>). This pattern is consistent with true features of the target model with lateral viscosity variations. By iteration 10, the inversion successfully recovers the bulk of the main low-viscosity zone in the upper mantle of the southern hemisphere, along with emerging high-viscosity features in the north. It is at this stage that the adjoint sensitivity kernel also begins to exhibit sensitivity to deep mantle structures on comparable levels to those in the shallow mantle. By iteration 50, the inversion starts resolving low-viscosity regions near the core-mantle boundary, while all of the low-viscosity features are faithfully represented by iteration 100 and only some minor blurring of the high-viscosity northern hemisphere features remains (bottom-centre panel in Fig. <xref ref-type="fig" rid="F10"/>).</p>
      <p id="d2e8939">As expected, the magnitude of the adjoint sensitivity decreases with each iteration of the inversion and total misfit has reduced by over four orders-of-magnitude at iteration 100 (Fig. <xref ref-type="fig" rid="F11"/>). This behaviour reflects the strength of adjoint-based optimisation: the algorithm first targets regions contributing most to the misfit and then gradually refines the solution in less sensitive areas. After 100 iterations, the majority of the recovered viscosity values lie within 20 %–25 % of the target <inline-formula><mml:math id="M347" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi mathvariant="normal">log</mml:mi><mml:mn mathvariant="normal">10</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">η</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mi mathvariant="italic">η</mml:mi><mml:mi mathvariant="normal">target</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>|</mml:mo><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The slightly larger errors remaining in the northern hemisphere are likely due to these being high-viscosity regions with longer Maxwell times. Here, the total amount of viscous deformation over the course of the simulation is therefore much lower and our “observations” of surface deformation are less sensitive to details of the viscosity structure in this part of the domain.</p>

      <fig id="F11"><label>Figure 11</label><caption><p id="d2e8983">Reduction in objective (i.e., misfit) function value as a function of iteration number during viscosity inversion with known ice load.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f11.png"/>

          </fig>

</sec>
<sec id="Ch1.S3.SS5.SSS4">
  <label>3.5.4</label><title>Simultaneous inversion for viscosity and load</title>
      <p id="d2e9001">The previous two experiments demonstrate G-ADOPT's capability to recover either the ice load or the lateral viscosity structure under the assumption that the other is known. The natural follow-up question is whether it is possible to jointly invert for both load and viscosity structure when neither is known? To investigate this question, we use a setup that mirrors that of the previous two cases but with a control vector now containing both fields. We initialise the inversion with zero ice thickness and the axisymmetric viscosity structure. Again, we assume no observational uncertainty and have not implemented any regularisation in the objective function.</p>

      <fig id="F12" specific-use="star"><label>Figure 12</label><caption><p id="d2e9006">Adjoint-based joint optimisation for both initial ice load and viscosity structure. <bold>(a)</bold> Objective (i.e., misfit) function value as a function of iteration number. <bold>(b)</bold> Normalised ice thickness. Black dashed line <inline-formula><mml:math id="M348" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> true target load; pink <inline-formula><mml:math id="M349" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> inversion after 2 iterations; green <inline-formula><mml:math id="M350" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 10 iterations; blue <inline-formula><mml:math id="M351" display="inline"><mml:mo>=</mml:mo></mml:math></inline-formula> 100 iterations.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f12.png"/>

          </fig>

      <p id="d2e9050">Despite this inversion being ostensibly more challenging than the previous two experiments, the results are highly encouraging. Over the course of 100 iterations, the objective function decreases by nearly six orders of magnitude (Fig. <xref ref-type="fig" rid="F12"/>a). Already by iteration 10, optimised ice thicknesses show strong similarities with the true target distribution (Fig. <xref ref-type="fig" rid="F12"/>b) and key features of the viscosity structure are visible including the low-viscosity region in the southern hemisphere and emerging high-viscosity features in the north (Fig. <xref ref-type="fig" rid="F13"/>c). By iteration 100, the ice load is visually indistinguishable from the target and the viscosity field is as similar to the true structure as in the viscosity-only inversion from Sect. <xref ref-type="sec" rid="Ch1.S3.SS5.SSS3"/>.</p>

      <fig id="F13" specific-use="star"><label>Figure 13</label><caption><p id="d2e9064">Adjoint-based joint optimisation for both initial ice load and viscosity structure. <bold>(a)</bold> True target viscosity field and surface ice load. <bold>(b)</bold> Inversion results after 2 iterations. <bold>(c)</bold> Same after 10 iterations. <bold>(d)</bold> Same after 100 iterations.</p></caption>
            <graphic xlink:href="https://gmd.copernicus.org/articles/19/2717/2026/gmd-19-2717-2026-f13.png"/>

          </fig>

      <p id="d2e9085">A critical factor in the success of this joint inversion is finding an appropriate balance between the contribution to the gradient from the two control fields (i.e., ice and viscosity). We have used the <inline-formula><mml:math id="M352" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> derivative for optimisation in all experiments, as opposed to the more traditional Euclidean <inline-formula><mml:math id="M353" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> derivative that is defined with respect to the control vector's discrete degrees of freedom. The <inline-formula><mml:math id="M354" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> formulation is more appropriate because it properly accounts for variations in mesh cell size and, more importantly, for the fact that the ice is defined on a surface mesh that has different geometric dimensions to the volumetric viscosity field. Specifically, the optimisation is driven by the gradients <inline-formula><mml:math id="M355" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mtext>load</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mtext>top</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M356" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">η</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> such that sensitivity of the objective function to perturbations <inline-formula><mml:math id="M357" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M358" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">η</mml:mi></mml:mrow></mml:math></inline-formula> in thickness and viscosity is given by

              <disp-formula id="Ch1.E42" content-type="numbered"><label>42</label><mml:math id="M359" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mi>J</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mtext>top</mml:mtext></mml:msub></mml:mrow></mml:munder><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mtext>load</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mo>∂</mml:mo><mml:msub><mml:mi mathvariant="normal">Ω</mml:mi><mml:mtext>top</mml:mtext></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mtext>load</mml:mtext></mml:msub><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:munder><mml:mo movablelimits="false">∫</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi></mml:munder><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>∂</mml:mo><mml:mi>J</mml:mi></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:mi mathvariant="italic">η</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Ω</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mi mathvariant="italic">η</mml:mi><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mi mathvariant="normal">d</mml:mi><mml:mi>x</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            We found that when instead using the Euclidean <inline-formula><mml:math id="M360" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> approach, which uses a simple summation of partial derivatives with respect to the discrete degrees of freedom, the inversion became dominated by sensitivity of misfit to ice thickness, leading to suboptimal results. In such cases, the inversion typically stalled, yielding a noisy ice-thickness field and failing to recover the deep mantle or northern hemisphere viscosity variations (results not shown). Importantly, the integral <inline-formula><mml:math id="M361" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>-approach is free of these issues and is delivered automatically in G-ADOPT through combined use of Firedrake, pyadjoint and ROL.</p>
      <p id="d2e9358">In summary, using a suite of idealised experiments, we have demonstrated that G-ADOPT has the ability to automatically and successfully perform adjoint-based inversions for both initial ice load and/or lateral variations in mantle viscosity. This capability is powerful since it circumvents the need for lengthy derivations of the appropriate adjoint formulations for each viscoelastic loading problem.</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Discussion, limitations and future work</title>
      <p id="d2e9371">A wide range of problems in geodynamics require modelling the viscoelastic response of the solid Earth to evolving surface loads. Our long-term objective is to develop a generalised framework in G-ADOPT capable of tackling this broad class of problems. Nevertheless, our more immediate motivation is to develop more advanced GIA models that incorporate lateral Earth structure, potentially complex rheologies, and use data assimilation techniques to constrain uncertain parameters such as ice histories and Earth structure. In this context, several aspects of the current implementation – its capabilities, limitations and future directions – warrant discussion.</p>
      <p id="d2e9374">We have demonstrated the potential of G-ADOPT to represent Earth-like viscoelastic behaviour under surface loading. The framework already supports spherical geometries, elastic compressibility, large lateral variations in viscosity, and complex rheologies, including power-law and transience via the internal variable formulation <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx20" id="paren.87"/>. Its development is timely, as recent studies have argued that transient deformation is required to reproduce GIA observations <xref ref-type="bibr" rid="bib1.bibx89 bib1.bibx78 bib1.bibx59" id="paren.88"/>. In G-ADOPT, more sophisticated transient models, such as extended Burgers rheologies, can be implemented in a straightforward manner by introducing additional internal variables. This capability therefore provides a unified setting in which competing rheological scenarios can be systematically explored.</p>
      <p id="d2e9383">The most important physical process still absent from G-ADOPT is self-gravity, which requires solving Poisson's equation for the gravitational potential subject to boundary conditions at infinity. Implementing these conditions in discretisation-based methods is challenging. Approaches explored in previous studies include: (i) extending the computational domain with an outer mesh to approximate infinity <xref ref-type="bibr" rid="bib1.bibx67" id="paren.89"><named-content content-type="pre">e.g.</named-content></xref>; (ii) applying a Dirichlet-to-Neumann boundary condition, whereby the analytic spectral solution outside of the domain is imposed as a weak boundary term <xref ref-type="bibr" rid="bib1.bibx17" id="paren.90"><named-content content-type="pre">e.g.,</named-content></xref>; and (iii) employing semi-infinite elements with basis functions specifically chosen to reproduce the appropriate asymptotic decay <xref ref-type="bibr" rid="bib1.bibx38" id="paren.91"><named-content content-type="pre">e.g.,</named-content></xref>. An alternative strategy is to couple the numerical model to an external analytic solution for gravity <xref ref-type="bibr" rid="bib1.bibx110" id="paren.92"/>. Our future work will focus on a hybrid of the first two approaches.</p>
      <p id="d2e9404">Once self-gravity is included, extending the framework to capture rotational feedbacks of load redistribution and deformation (i.e. true polar wander; <xref ref-type="bibr" rid="bib1.bibx70" id="altparen.93"/>) will be relatively straightforward. Together these additions will complete the physics of the sea-level equation, which links ice-sheet evolution to global sea-level change <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx53" id="paren.94"/>. A practical component of this equation is the continent-ocean function, which defines the ocean load. Since shoreline migration must be represented dynamically, we will adopt approaches compatible with automatic differentiation – for example, locally smoothed (e.g., sigmoidal) approximations or a level-set method that is already implemented in G-ADOPT.</p>
      <p id="d2e9414">Another key strength of G-ADOPT is its suitability for extension to large-scale GIA problems requiring high spatiotemporal resolution and/or long durations. Unlike explicit time-stepping approaches <xref ref-type="bibr" rid="bib1.bibx64" id="paren.95"><named-content content-type="pre">e.g.</named-content></xref>, implicit methods are not limited by the Maxwell relaxation time, allowing timesteps long enough to capture full glacial cycles without incurring excessive computational cost (even when viscosity contrasts span several orders of magnitude). Moreover, G-ADOPT maintains robust accuracy across a wide range of mesh resolutions and timestep sizes, underscoring its reliability in both regional and global applications using high-performance computers. These properties naturally position the framework to scale to continental- and global-scale adjoint inversions, where computational efficiency and flexibility in rheological assumptions will be essential. Scaling tests on the Gadi supercomputer show excellent parallel performance to at least <inline-formula><mml:math id="M362" display="inline"><mml:mo>∼</mml:mo></mml:math></inline-formula> 6000 cores. Preliminary testing beyond 10 000 cores also gives reasonable results, but shows a comparative increase in the time taken to assemble the preconditioner. Strategies such as replacing the algebraic with a geometric multigrid preconditioner, which is feasible using Firedrake's interface with PETSc, may prove fruitful for maintaining computational efficiency in very high spatial resolution simulations <xref ref-type="bibr" rid="bib1.bibx100" id="paren.96"/>.</p>
      <p id="d2e9432">While adjoint methods are well established in mantle convection modelling <xref ref-type="bibr" rid="bib1.bibx13 bib1.bibx62 bib1.bibx39" id="paren.97"><named-content content-type="pre">e.g.,</named-content></xref>, their use in GIA is more recent. Initial studies have already demonstrated their diagnostic power: adjoint sensitivity kernels clearly expose the limitations of 1D Earth assumptions and the strong influence of lateral viscosity variations on GIA observables <xref ref-type="bibr" rid="bib1.bibx3 bib1.bibx21 bib1.bibx54 bib1.bibx64" id="paren.98"><named-content content-type="pre">e.g.,</named-content></xref>. G-ADOPT provides a fully automated, scalable, and extensible inversion framework that eliminates the need for manual adjoint derivations or simplifying assumptions to manage non-linearity and coupling. This functionality is achieved by combining: (i) Firedrake, which separates model formulation from implementation within a composable finite element environment <xref ref-type="bibr" rid="bib1.bibx84" id="paren.99"/>; (ii) Pyadjoint, which derives discrete adjoints directly from variational problems expressed in unified form language <xref ref-type="bibr" rid="bib1.bibx30 bib1.bibx72" id="paren.100"/>; and (iii) ROL, which supplies high-performance optimisation algorithms with checkpointing and optional parameter constraints. Together, these components support a streamlined workflow for forward simulation, adjoint construction, and gradient-based inversion.</p>
      <p id="d2e9451">It is important to acknowledge that the inverse experiments presented here commit the classic “inverse crime”: the synthetic observations used for optimisation were generated by the same numerical model used for inversion and were assumed to be noise free and complete in space and time. This deliberate choice allowed us to isolate the framework's performance under idealised conditions and confirm its correctness. The next step is to apply G-ADOPT with real observational constraints and will require formal uncertainty quantification, careful treatment of data–model misfit, and potentially hybrid assimilation strategies that combine multiple observation types. As misfit functions become more complex (e.g., by incorporating discrete relative sea-level indicators or palaeo-ice extent constraints), regularisation strategies such as smoothing, damping and prior-based parameter constraints will be essential to ensure stable adjoint solutions and interpretable model updates. These cost functions can be formally weighted using the observational data uncertainties. In addition, the application of second-order adjoint techniques provides a potential route to mapping observational uncertainty into uncertainties in inferred model parameters <xref ref-type="bibr" rid="bib1.bibx108" id="paren.101"/>.</p>
      <p id="d2e9457">In summary, G-ADOPT delivers a flexible, extensible, and computationally scalable framework for adjoint-enabled modelling of viscoelastic surface-loading problems, with a particular focus on GIA. With the planned inclusion of self-gravity, rotational feedbacks, and dynamic shoreline migration, it will provide a next-generation, data-assimilating system that can directly link palaeo and modern sea-level observations to the coupled evolution of ice sheets and Earth's interior.</p>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Conclusions </title>
      <p id="d2e9469">In this study, we have extended G-ADOPT to model viscoelastic deformation of the solid Earth under evolving surface loads. We have demonstrated its ability to run simulations in 2D and 3D domains, in Cartesian and spherical geometries, and incorporating effects such as elastic compressibility, lateral viscosity variations, and non-Maxwell rheologies (including power-law and transient behaviour). Where possible, results were benchmarked against analytical solutions and published community models. We further showed that G-ADOPT scales efficiently on high-performance computing systems, enabling simulations with high spatial resolution and long time spans. A key outstanding challenge is the incorporation of self-gravity, which will be the focus of ongoing development.</p>
      <p id="d2e9472">Our work also lays the foundation for addressing several long-standing challenges in GIA research. As observational constraints become more diverse and models of mantle rheology more complex, there is an increasing need for inversion frameworks that can flexibly integrate these data while maintaining physical and numerical rigour. A major strength of G-ADOPT is its automatic derivation of adjoint sensitivity kernels, which enables inverse optimisation without the need for manual derivation of adjoint equations. Using synthetic twin experiments, we demonstrated simultaneous recovery of both ice-loading history and mantle structure, showing that G-ADOPT’s adjoint implementation is robust, accurate, and suitable for application to real geophysical inverse problems. At the same time, our results highlight the inherent biases that arise when inverting for ice histories with inaccurate viscosity structures.</p>
      <p id="d2e9475">G-ADOPT has been developed in alignment with FAIR (Findable, Accessible, Interoperable, Reusable) software principles <xref ref-type="bibr" rid="bib1.bibx101" id="paren.102"/>. We aim to lower barriers to adoption, facilitate community benchmarking, and provide a robust foundation for collaborative development. Looking forward, the composable design of G-ADOPT opens the way to incorporating new classes of observational constraints into solid-Earth deformation problems. The integration of Firedrake, Pyadjoint, and ROL enables these extensions with minimal disruption to existing workflows.</p>
      <p id="d2e9481">Several physical processes central to sea-level modelling remain to be incorporated including self-gravitation, rotational feedbacks, shoreline migration, and ocean loading. While these aspects are non-trivial to implement, the framework's modular design ensures that they can be added incrementally. Embedding G-ADOPT within the Firedrake ecosystem also enables coupling with other Earth system components, such as the Icepack ice-sheet model <xref ref-type="bibr" rid="bib1.bibx88" id="paren.103"/>, raising the possibility of coupled Earth–climate simulations capable of data assimilation over full glacial cycles.</p>
</sec>

      
      </body>
    <back><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e9491">The version of G-ADOPT used to generate results in this study can be found at <ext-link xlink:href="https://doi.org/10.5281/zenodo.18886888" ext-link-type="DOI">10.5281/zenodo.18886888</ext-link> <xref ref-type="bibr" rid="bib1.bibx87" id="paren.104"/> and specific runscripts and simulation outputs can be found at <ext-link xlink:href="https://doi.org/10.5281/zenodo.16925270" ext-link-type="DOI">10.5281/zenodo.16925270</ext-link> <xref ref-type="bibr" rid="bib1.bibx86" id="paren.105"/>. Associated Firedrake version information can be found at <ext-link xlink:href="https://doi.org/10.5281/zenodo.18880360" ext-link-type="DOI">10.5281/zenodo.18880360</ext-link> <xref ref-type="bibr" rid="bib1.bibx34" id="paren.106"/>. For ongoing developments of the G-ADOPT code base, see <uri>https://github.com/g-adopt/g-adopt</uri> (last access: 6 March 2026).</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e9519">All authors had significant input on the design, development and validation of this study. All authors contributed towards writing the manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

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

      <p id="d2e9531">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><ack><title>Acknowledgements</title><p id="d2e9537">Numerical simulations were undertaken on the Gadi supercomputer at the National Computational Infrastructure (NCI) in Canberra, Australia, which is supported by the Australian Commonwealth Government. The authors are grateful to the entire Firedrake, Pyadjoint and ROL development teams for support and advice at various points of this research. We thank David Al-Attar and two anonymous reviewers for helpful feedback during the review process. Open access fee was paid from the Imperial College London Open Access Fund.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e9542">This research was supported by the Australian Research Council Special Research Initiative, Australian Centre for Excellence in Antarctic Science (Project Number SR200100008). This research has been supported by AuScope, under the CoastRI NCRIS program, the Australian Research Data Commons (ARDC) under G-ADOPT platform grant PL031, and Geoscience Australia. It was also supported by the Australian Research Council under grants DE220101519, DP170100058 and DP220100173. This research was undertaken with the assistance of resources from the <italic>National Computational Infrastructure</italic> (NCI Australia), a National Collaborative Research Infrastructure Strategy (NCRIS) enabled capability supported by the Australian Government.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e9551">This paper was edited by Ludovic Räss and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>A et al.(2013)A, Wahr, and Zhong</label><mixed-citation>A, G., Wahr, J., and Zhong, S.: Computations of the viscoelastic response of a 3-D compressible Earth to surface loading: an application to Glacial Isostatic Adjustment in Antarctica and Canada, Geophys. J. Int., 192, 557–572, <ext-link xlink:href="https://doi.org/10.1093/gji/ggs030" ext-link-type="DOI">10.1093/gji/ggs030</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Adhikari et al.(2021)Adhikari, Milne, Caron, Khan, Kjeldsen, Nilsson, Larour, and Ivins</label><mixed-citation>Adhikari, S., Milne, G., Caron, L., Khan, S., Kjeldsen, K., Nilsson, J., Larour, E., and Ivins, E.: Decadal to centennial timescale mantle viscosity inferred from modern crustal uplift rates in Greenland, Geophys. Res. Lett., 48, e2021GL094040, <ext-link xlink:href="https://doi.org/10.1029/2021GL094040" ext-link-type="DOI">10.1029/2021GL094040</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Al-Attar and Tromp(2014)</label><mixed-citation>Al-Attar, D. and Tromp, J.: Sensitivity kernels for viscoelastic loading based on adjoint methods, Geophys. J. Int., 196, 34–77, <ext-link xlink:href="https://doi.org/10.1093/gji/ggt395" ext-link-type="DOI">10.1093/gji/ggt395</ext-link>, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Austermann et al.(2013)Austermann, Mitrovica, Latychev, and Milne</label><mixed-citation> Austermann, J., Mitrovica, J. X., Latychev, K., and Milne, G. A.: Barbados-based estimate of ice volume at Last Glacial Maximum affected by subducted plate, Nat. Geosci., 6, 553–557, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Austermann et al.(2020)Austermann, Chen, Lau, Maloof, and Latychev</label><mixed-citation>Austermann, J., Chen, C. Y., Lau, H. C., Maloof, A. C., and Latychev, K.: Constraints on mantle viscosity and Laurentide ice sheet evolution from pluvial paleolake shorelines in the western United States, Earth Planet. Sc. Lett., 532, 116006, <ext-link xlink:href="https://doi.org/10.1016/j.epsl.2019.116006" ext-link-type="DOI">10.1016/j.epsl.2019.116006</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Austermann et al.(2021)Austermann, Hoggard, Latychev, Richards, and Mitrovica</label><mixed-citation> Austermann, J., Hoggard, M. J., Latychev, K., Richards, F. D., and Mitrovica, J. X.: The effect of lateral variations in Earth structure on Last Interglacial sea level, Geophys. J. Int., 227, 1938–1960, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Bailey(2006)</label><mixed-citation>Bailey, R. C.: Large time step numerical modelling of the flow of Maxwell materials, Geophys. J. Int., 164, 460–466, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2005.02788.x" ext-link-type="DOI">10.1111/j.1365-246X.2005.02788.x</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Balay et al.(1997)Balay, Gropp, McInnes, and Smith</label><mixed-citation>Balay, S., Gropp, W. D., McInnes, L. C., and Smith, B. F.: Efficient management of parallelism in object-oriented numerical software libraries, in: Modern Software Tools for Scientific Computing, edited by: Arge, E., Bruaset, A. M., and Langtangen, H. P., chap. 8,  Springer, New York, 163–202, <ext-link xlink:href="https://doi.org/10.1007/978-1-4612-1986-6_8" ext-link-type="DOI">10.1007/978-1-4612-1986-6_8</ext-link>, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Balay et al.(2025a)</label><mixed-citation>Balay, S., Abhyankar, S., Adams, M. F., Benson, S., Brown, J., Brune, P., Buschelman, K., Constantinescu, E., Dalcin, L., Dener, A., Eijkhout, V., Faibussowitsch, J., Gropp, W. D., Hapla, V., Isaac, T., Jolivet, P., Karpeev, D., Kaushik, D., Knepley, M. G., Kong, F., Kruger, S., May, D. A., McInnes, L. C., Mills, R. T., Mitchell, L., Munson, T., Roman, J. E., Rupp, K., Sanan, P., Sarich, J., Smith, B. F., Suh, H., Zampini, S., Zhang, H., Zhang, H., and Zhang, J.: PETSc/TAO Users Manual, Tech. Rep. ANL-21/39 – Revision 3.23, Argonne National Laboratory, <ext-link xlink:href="https://doi.org/10.2172/2476320" ext-link-type="DOI">10.2172/2476320</ext-link>, 2025a.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Balay et al.(2025b)Balay, Abhyankar, Adams, Benson, Brown, Brune, Buschelman, Constantinescu, Dalcin, Dener, Eijkhout, Faibussowitsch, Gropp, Hapla, Isaac, Jolivet, Karpeev, Kaushik, Knepley, Kong, Kruger, May, McInnes, Mills, Mitchell, Munson, Roman, Rupp, Sanan, Sarich, Smith, Zampini, Zhang, Zhang, and Zhang</label><mixed-citation>Balay, S., Abhyankar, S., Adams, M. F., Benson, S., Brown, J., Brune, P., Buschelman, K., Constantinescu, E. M., Dalcin, L., Dener, A., Eijkhout, V., Faibussowitsch, J., Gropp, W. D., Hapla, V., Isaac, T., Jolivet, P., Karpeev, D., Kaushik, D., Knepley, M. G., Kong, F., Kruger, S., May, D. A., McInnes, L. C., Mills, R. T., Mitchell, L., Munson, T., Roman, J. E., Rupp, K., Sanan, P., Sarich, J., Smith, B. F., Zampini, S., Zhang, H., Zhang, H., and Zhang, J.: PETSc Web page, <uri>https://petsc.org/</uri> (last access: 6 March 2026), 2025b.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Barletta et al.(2018)Barletta, Bevis, Smith, Wilson, Brown, Bordoni, Willis, Khan, Rovira-Navarro, Dalziel et al.</label><mixed-citation>Barletta, V. R., Bevis, M., Smith, B. E., Wilson, T., Brown, A., Bordoni, A., Willis, M., Khan, S. A., Rovira-Navarro, M., Dalziel, I.,   Smalley Jr., R.,   Kendrick, E.,   Konfal, S.,   Caccamise II, D. J.,   Aster, R. C., Nyblade, A., and Wiens, D. A.: Observed rapid bedrock uplift in Amundsen Sea Embayment promotes ice-sheet stability, Science, 360, 1335–1339, <ext-link xlink:href="https://doi.org/10.1126/science.aao1447" ext-link-type="DOI">10.1126/science.aao1447</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Bercea et al.(2016)Bercea, McRae, Ham, Mitchell, Rathgeber, Nardi, Luporini, and Kelly</label><mixed-citation>Bercea, G.-T., McRae, A. T. T., Ham, D. A., Mitchell, L., Rathgeber, F., Nardi, L., Luporini, F., and Kelly, P. H. J.: A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in Firedrake, Geosci. Model Dev., 9, 3803–3815, <ext-link xlink:href="https://doi.org/10.5194/gmd-9-3803-2016" ext-link-type="DOI">10.5194/gmd-9-3803-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Bunge et al.(2003)Bunge, Hagelberg, and Travis</label><mixed-citation> Bunge, H.-P., Hagelberg, C., and Travis, B.: Mantle circulation models with variational data assimilation: inferring past mantle flow and structure from plate motion histories and seismic tomography, Geophys. J. Int., 152, 280–301, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Caron and Ivins(2020)</label><mixed-citation>Caron, L. and Ivins, E. R.: A baseline Antarctic GIA correction for space gravimetry, Earth   Planet. Sc. Lett., 531, 115957, <ext-link xlink:href="https://doi.org/10.1016/j.epsl.2019.115957" ext-link-type="DOI">10.1016/j.epsl.2019.115957</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Cathles(2024)</label><mixed-citation> Cathles, L.: On calculating glacial isostatic adjustment, Geodesy Geodyn., 15, 441–452, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Cathles(2016)</label><mixed-citation> Cathles, L. M.: Viscosity of the Earth's Mantle, Princeton University Press, ISBN 978-0-691-64492-9, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Chaljub and Valette(2004)</label><mixed-citation> Chaljub, E. and Valette, B.: Spectral element modelling of three-dimensional wave propagation in a self-gravitating Earth with an arbitrarily stratified outer core, Geophys. J. Int., 158, 131–141, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Chao et al.(2008)Chao, Wu, and Li</label><mixed-citation> Chao, B. F., Wu, Y.-H., and Li, Y.: Impact of artificial reservoir water impoundment on global sea level, Science, 320, 212–214, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Church et al.(2004)Church, White, Coleman, Lambeck, and Mitrovica</label><mixed-citation> Church, J. A., White, N. J., Coleman, R., Lambeck, K., and Mitrovica, J. X.: Estimates of the regional distribution of sea level rise over the 1950–2000 period, J. Climate, 17, 2609–2625, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Crawford et al.(2017)Crawford, Al-Attar, Tromp, and Mitrovica</label><mixed-citation>Crawford, O., Al-Attar, D., Tromp, J., and Mitrovica, J. X.: Forward and inverse modelling of post-seismic deformation, Geophys. J. Int., 208, 845–876, <ext-link xlink:href="https://doi.org/10.1093/gji/ggw414" ext-link-type="DOI">10.1093/gji/ggw414</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Crawford et al.(2018)Crawford, Al-Attar, Tromp, Mitrovica, Austermann, and Lau</label><mixed-citation>Crawford, O., Al-Attar, D., Tromp, J., Mitrovica, J. X., Austermann, J., and Lau, H. C. P.: Quantifying the sensitivity of post-glacial sea level change to laterally varying viscosity, Geophys. J. Int., 214, 1324–1363, <ext-link xlink:href="https://doi.org/10.1093/gji/ggy184" ext-link-type="DOI">10.1093/gji/ggy184</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Crittenden(1963)</label><mixed-citation> Crittenden Jr., M. D.: Effective viscosity of the earth derived from isostatic loading of Pleistocene Lake Bonneville, J. Geophys. Res., 68, 5517–5530, 1963.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Crowley et al.(2006)Crowley, Mitrovica, Bailey, Tamisiea, and Davis</label><mixed-citation>Crowley, J. W., Mitrovica, J. X., Bailey, R. C., Tamisiea, M. E., and Davis, J. L.: Land water storage within the Congo Basin inferred from GRACE satellite gravity data, Geophys. Res. Lett., 33, <ext-link xlink:href="https://doi.org/10.1029/2006GL027070" ext-link-type="DOI">10.1029/2006GL027070</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Dahlen and Tromp(1998)</label><mixed-citation> Dahlen, A. F. and Tromp, J.: Theoretical Global Seismology, Princeton University Press, ISBN 978-0-691-00124-1, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Daly(1925)</label><mixed-citation>Daly, R. A.: Pleistocene changes of level,  Am. J. Sci., 10, 281, <ext-link xlink:href="https://doi.org/10.2475/ajs.s5-10.58.281" ext-link-type="DOI">10.2475/ajs.s5-10.58.281</ext-link>, 1925.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Davies et al.(2022)Davies, Kramer, Ghelichkhan, and Gibson</label><mixed-citation>Davies, D. R., Kramer, S. C., Ghelichkhan, S., and Gibson, A.: Towards automatic finite-element methods for geodynamics via Firedrake, Geosci. Model Dev., 15, 5127–5166, <ext-link xlink:href="https://doi.org/10.5194/gmd-15-5127-2022" ext-link-type="DOI">10.5194/gmd-15-5127-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>Dehant et al.(1999)Dehant, Defraigne, and Wahr</label><mixed-citation> Dehant, V., Defraigne, P., and Wahr, J.: Tides for a convective Earth, J. Geophys. Res.-Sol. Ea., 104, 1035–1058, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Epshteyn and Rivière(2007)</label><mixed-citation>Epshteyn, Y. and Rivière, B.: Estimation of penalty parameters for symmetric interior penalty Galerkin methods, J. Comput. Appl. Math., 206, 843–872, <ext-link xlink:href="https://doi.org/10.1016/j.cam.2006.08.029" ext-link-type="DOI">10.1016/j.cam.2006.08.029</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Errico(1997)</label><mixed-citation> Errico, R. M.: What is an adjoint model?, B. Am. Meteorol. Soc., 78, 2577–2591, 1997.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Farrell et al.(2013)Farrell, Ham, Funke, and Rognes</label><mixed-citation> Farrell, P. E., Ham, D. A., Funke, S. W., and Rognes, M. E.: Automated derivation of the adjoint of high-level transient finite element programs, SIAM J. Sci. Comput., 35, 369–393, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Farrell and Clark(1976)</label><mixed-citation> Farrell, W. E. and Clark, J. A.: On postglacial sea level, Geophys. J. Roy. Astron. Soc., 46, 647–667, 1976.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Faul and Jackson(2015)</label><mixed-citation> Faul, U. and Jackson, I.: Transient Creep and Strain Energy Dissipation: An Experimental Perspective, Annu. Rev. Earth  Pl. Sc., 43, 541–569, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Fichtner et al.(2006)Fichtner, Bunge, and Igel</label><mixed-citation> Fichtner, A., Bunge, H.-P., and Igel, H.: The adjoint method in seismology: I. Theory, Phys. Earth  Planet. In., 157, 86–104, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>firedrake zenodo(2026)</label><mixed-citation>firedrake zenodo: Software used in “Automated forward and adjoint modelling of viscoelastic deformation of the solid Earth”,  Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.18880361" ext-link-type="DOI">10.5281/zenodo.18880361</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Forget et al.(2015)Forget, Campin, Heimbach, Hill, Ponte, and Wunsch</label><mixed-citation>Forget, G., Campin, J.-M., Heimbach, P., Hill, C. N., Ponte, R. M., and Wunsch, C.: ECCO version 4: an integrated framework for non-linear inverse modeling and global ocean state estimation, Geosci. Model Dev., 8, 3071–3104, <ext-link xlink:href="https://doi.org/10.5194/gmd-8-3071-2015" ext-link-type="DOI">10.5194/gmd-8-3071-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Gasperini et al.(2004)Gasperini, Dal Forno, and Boschi</label><mixed-citation> Gasperini, P., Dal Forno, G., and Boschi, E.: Linear or non-linear rheology in the Earth's mantle: the prevalence of power-law creep in the postglacial isostatic readjustment of Laurentia, Geophys. J. Int., 157, 1297–1302, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Geuzaine and Remacle(2009)</label><mixed-citation> Geuzaine, C. and Remacle, J.-F.: Gmsh: A 3-D finite element mesh generator with built-in pre-and post-processing facilities, Int. J. Numer. Meth. Eng., 79, 1309–1331, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Gharti and Tromp(2017)</label><mixed-citation>Gharti, H. N. and Tromp, J.: A spectral-infinite-element solution of Poisson's equation: an application to self gravity, arXiv [preprint], <ext-link xlink:href="https://doi.org/10.48550/arXiv.1706.00855" ext-link-type="DOI">10.48550/arXiv.1706.00855</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Ghelichkhan et al.(2021)Ghelichkhan, Bunge, and Oeser</label><mixed-citation> Ghelichkhan, S., Bunge, H.-P., and Oeser, J.: Global mantle flow retrodictions for the early Cenozoic using an adjoint method: evolving dynamic topographies, deep mantle structures, flow trajectories and sublithospheric stresses, Geophys. J. Int., 226, 1432–1460, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Ghelichkhan et al.(2024)Ghelichkhan, Gibson, Davies, Kramer, and Ham</label><mixed-citation>Ghelichkhan, S., Gibson, A., Davies, D. R., Kramer, S. C., and Ham, D. A.: Automatic adjoint-based inversion schemes for geodynamics: reconstructing the evolution of Earth's mantle in space and time, Geosci. Model Dev., 17, 5057–5086, <ext-link xlink:href="https://doi.org/10.5194/gmd-17-5057-2024" ext-link-type="DOI">10.5194/gmd-17-5057-2024</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Gibson et al.(2024)Gibson, Davies, Kramer, Ghelichkhan, Turner, Duvernay, and Scott</label><mixed-citation>Gibson, A., Davies, R., Kramer, S., Ghelichkhan, S., Turner, R., Duvernay, T., and Scott, W.: G-ADOPT, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.5644391" ext-link-type="DOI">10.5281/zenodo.5644391</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Gilbert(1886)</label><mixed-citation> Gilbert, G. K.: The inculcation of scientific method by example, with an illustration drawn from the Quaternary geology of Utah, Am. J. Sci., 3, 284–299, 1886.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Gowan et al.(2021)Gowan, Zhang, Khosravi, Rovere, Stocchi, Hughes, Gyllencreutz, Mangerud, Svendsen, and Lohmann</label><mixed-citation>Gowan, E. J., Zhang, X., Khosravi, S., Rovere, A., Stocchi, P., Hughes, A. L., Gyllencreutz, R., Mangerud, J., Svendsen, J.-I., and Lohmann, G.: A new global ice sheet reconstruction for the past 80 000 years, Nat. Commun., 12, 1199, <ext-link xlink:href="https://doi.org/10.1038/s41467-021-21469-w" ext-link-type="DOI">10.1038/s41467-021-21469-w</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Ham et al.(2023)Ham, Kelly, Mitchell, Cotter, Kirby, Sagiyama, Bouziani, Vorderwuelbecke, Gregory, Betteridge, Shapero, Nixon-Hill, Ward, Farrell, Brubeck, Marsden, Gibson, Homolya, Sun, McRae, Luporini, Gregory, Lange, Funke, Rathgeber, Bercea, and Markall</label><mixed-citation>Ham, D. A., Kelly, P. H. J., Mitchell, L., Cotter, C. J., Kirby, R. C., Sagiyama, K., Bouziani, N., Vorderwuelbecke, S., Gregory, T. J., Betteridge, J., Shapero, D. R., Nixon-Hill, R. W., Ward, C. J., Farrell, P. E., Brubeck, P. D., Marsden, I., Gibson, T. H., Homolya, M., Sun, T., McRae, A. T. T., Luporini, F., Gregory, A., Lange, M., Funke, S. W., Rathgeber, F., Bercea, G.-T., and Markall, G. R.: Firedrake User Manual, Imperial College London and University of Oxford and Baylor University and University of Washington, 1st Edn., <ext-link xlink:href="https://doi.org/10.25561/104839" ext-link-type="DOI">10.25561/104839</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Haskell(1935)</label><mixed-citation> Haskell, N.: The motion of a viscous fluid under a surface load, Physics, 6, 265–269, 1935.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Hay et al.(2017)Hay, Lau, Gomez, Austermann, Powell, Mitrovica, Latychev, and Wiens</label><mixed-citation> Hay, C. C., Lau, H. C., Gomez, N., Austermann, J., Powell, E., Mitrovica, J. X., Latychev, K., and Wiens, D. A.: Sea-level fingerprints in a region of complex earth structure: The case of WAIS, J. Climate, 30, 1881–1892, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Hillewaert(2013)</label><mixed-citation> Hillewaert, K.: Development of the discontinuous Galerkin method for high-resolution, large scale CFD and acoustics in industrial geometries, Ph.D. thesis, University of Liege, ISBN-13 9782875581198, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Huang et al.(2023)Huang, Steffen, Steffen, Klemann, Wu, Van Der Wal, Martinec, and Tanaka</label><mixed-citation> Huang, P., Steffen, R., Steffen, H., Klemann, V., Wu, P., Van Der Wal, W., Martinec, Z., and Tanaka, Y.: A commercial finite element approach to modelling Glacial Isostatic Adjustment on spherical self-gravitating compressible earth models, Geophys. J. Int., 235, 2231–2256, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Ivins et al.(2013)Ivins, James, Wahr, O. Schrama, Landerer, and Simon</label><mixed-citation> Ivins, E. R., James, T. S., Wahr, J., O. Schrama, E. J., Landerer, F. W., and Simon, K. M.: Antarctic contribution to sea level rise observed by GRACE with improved GIA correction, J. Geophys. Res.-Sol. Ea., 118, 3126–3141, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Kalnay(2003)</label><mixed-citation> Kalnay, E.: Atmospheric modeling, data assimilation and predictability, Cambridge University Press,  ISBN-13 978-0521796293, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Kang et al.(2022)Kang, Zhong, Geruo, and Mao</label><mixed-citation> Kang, K., Zhong, S., Geruo, A., and Mao, W.: The effects of non-Newtonian rheology in the upper mantle on relative sea level change and geodetic observables induced by glacial isostatic adjustment process, Geophys. J. Int., 228, 1887–1906, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Karato and Wu(1993)</label><mixed-citation> Karato, S.-I. and Wu, P.: Rheology of the upper mantle: A synthesis, Science, 260, 771–778, 1993.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Kendall et al.(2005)Kendall, Mitrovica, and Milne</label><mixed-citation> Kendall, R. A., Mitrovica, J. X., and Milne, G. A.: On post-glacial sea level – II. Numerical formulation and comparative results on spherically symmetric models, Geophys. J. Int., 161, 679–706, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Kim et al.(2022)Kim, Crawford, Al-Attar, Lau, Mitrovica, and Latychev</label><mixed-citation>Kim, A. J., Crawford, O., Al-Attar, D., Lau, H. C. P., Mitrovica, J. X., and Latychev, K.: Ice age effects on the satellite-derived J2 datum: Mapping the sensitivity to 3D variations in mantle viscosity, Earth  Planet. Sc. Lett., 581, 117372, <ext-link xlink:href="https://doi.org/10.1016/j.epsl.2022.117372" ext-link-type="DOI">10.1016/j.epsl.2022.117372</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>King et al.(2012)King, Bingham, Moore, Whitehouse, Bentley, and Milne</label><mixed-citation> King, M. A., Bingham, R. J., Moore, P., Whitehouse, P. L., Bentley, M. J., and Milne, G. A.: Lower satellite-gravimetry estimates of Antarctic sea-level contribution, Nature, 491, 586–589, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Kramer et al.(2012)Kramer, Wilson, and Davies</label><mixed-citation>Kramer, S. C., Wilson, C. R., and Davies, D. R.: An implicit free surface algorithm for geodynamical simulations, Phys. Earth Planet. Int., 194–195, 25–37, <ext-link xlink:href="https://doi.org/10.1016/j.pepi.2012.01.001" ext-link-type="DOI">10.1016/j.pepi.2012.01.001</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>Lambeck et al.(2014)Lambeck, Rouby, Purcell, Sun, and Sambridge</label><mixed-citation> Lambeck, K., Rouby, H., Purcell, A., Sun, Y., and Sambridge, M.: Sea level and global ice volumes from the Last Glacial Maximum to the Holocene, P. Natl. Acad. Sci. USA, 111, 15296–15303, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Latychev et al.(2005)Latychev, Mitrovica, Tromp, Tamisiea, Komatitsch, and Christara</label><mixed-citation>Latychev, K., Mitrovica, J. X., Tromp, J., Tamisiea, M. E., Komatitsch, D., and Christara, C. C.: Glacial isostatic adjustment on 3-D Earth models: a finite-volume formulation, Geophys. J. Int., 161, 421–444, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2005.02536.x" ext-link-type="DOI">10.1111/j.1365-246X.2005.02536.x</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Lau(2024)</label><mixed-citation> Lau, H.: Surface loading on a self-gravitating, linear viscoelastic Earth: moving beyond Maxwell, Geophys. J. Int., 237, 1842–1857, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Lau et al.(2017)Lau, Mitrovica, Davis, Tromp, Yang, and Al-Attar</label><mixed-citation> Lau, H. C., Mitrovica, J. X., Davis, J. L., Tromp, J., Yang, H.-Y., and Al-Attar, D.: Tidal tomography constrains Earth’s deep-mantle buoyancy, Nature, 551, 321–326, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx61"><label>Lau et al.(2021)Lau, Austermann, Holtzman, Havlin, Lloyd, Book, and Hopper</label><mixed-citation>Lau, H. C., Austermann, J., Holtzman, B. K., Havlin, C., Lloyd, A. J., Book, C., and Hopper, E.: Frequency dependent mantle viscoelasticity via the complex viscosity: Cases from Antarctica, J. Geophys. Res.-Sol. Ea., 126, e2021JB022622, <ext-link xlink:href="https://doi.org/10.1029/2021JB022622" ext-link-type="DOI">10.1029/2021JB022622</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx62"><label>Li et al.(2017)Li, Gurnis, and Stadler</label><mixed-citation> Li, D., Gurnis, M., and Stadler, G.: Towards adjoint-based inversion of time-dependent mantle convection with nonlinear viscosity, Geophys. J. Int., 209, 86–105, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx63"><label>Lin and Moré(1999)</label><mixed-citation> Lin, C.-J. and Moré, J. J.: Newton's method for large bound-constrained optimization problems, SIAM J. Optimiz., 9, 1100–1127, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx64"><label>Lloyd et al.(2024)Lloyd, Crawford, Al-Attar, Austermann, Hoggard, Richards, and Syvret</label><mixed-citation> Lloyd, A. J., Crawford, O., Al-Attar, D., Austermann, J., Hoggard, M. J., Richards, F. D., and Syvret, F.: GIA imaging of 3-D mantle viscosity based on palaeo sea level observations – Part I: Sensitivity kernels for an Earth with laterally varying viscosity, Geophys. J. Int., 236, 1139–1171, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx65"><label>Martinec(2000)</label><mixed-citation> Martinec, Z.: Spectral–finite element approach to three-dimensional viscoelastic relaxation in a spherical earth, Geophys. J. Int., 142, 117–141, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx66"><label>Matviichuk et al.(2020)Matviichuk, King, and Watson</label><mixed-citation>Matviichuk, B., King, M., and Watson, C.: Estimating ocean tide loading displacements with GPS and GLONASS, Solid Earth, 11, 1849–1863, <ext-link xlink:href="https://doi.org/10.5194/se-11-1849-2020" ext-link-type="DOI">10.5194/se-11-1849-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx67"><label>May and Knepley(2011)</label><mixed-citation> May, D. A. and Knepley, M. G.: Optimal, scalable forward models for computing gravity anomalies, Geophys. J. Int., 187, 161–177, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx68"><label>McRae et al.(2016)McRae, Bercea, Mitchell, Ham, and Cotter</label><mixed-citation>McRae, A. T. T., Bercea, G.-T., Mitchell, L., Ham, D. A., and Cotter, C. J.: Automated Generation and Symbolic Manipulation of Tensor Product Finite Elements, SIAM J. Sci. Comput., 38, S25–S47, <ext-link xlink:href="https://doi.org/10.1137/15M1021167" ext-link-type="DOI">10.1137/15M1021167</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx69"><label>Mitrovica(1996)</label><mixed-citation> Mitrovica, J. X.: Haskell [1935] revisited, J. Geophys. Res.-Sol. Ea., 101, 555–569, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx70"><label>Mitrovica et al.(2005)Mitrovica, Wahr, Matsuyama, and Paulson</label><mixed-citation> Mitrovica, J. X., Wahr, J., Matsuyama, I., and Paulson, A.: The rotational stability of an ice-age Earth, Geophys. J. Int., 161, 491–506, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx71"><label>Mitrovica et al.(2011)Mitrovica, Gomez, Morrow, Hay, Latychev, and Tamisiea</label><mixed-citation> Mitrovica, J. X., Gomez, N., Morrow, E., Hay, C., Latychev, K., and Tamisiea, M.: On the robustness of predictions of sea level fingerprints, Geophys. J. Int., 187, 729–742, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx72"><label>Mitusch et al.(2019)Mitusch, Funke, and Dokken</label><mixed-citation>Mitusch, S. K., Funke, S. W., and Dokken, J. S.: dolfin-adjoint 2018.1: Automated adjoints for FEniCS and Firedrake, J. Open Source Softw., 4, 1292, <ext-link xlink:href="https://doi.org/10.21105/joss.01292" ext-link-type="DOI">10.21105/joss.01292</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx73"><label>Moore(1970)</label><mixed-citation> Moore, J.: Relationship between subsidence and volcanic load, Hawaii, Bulletin Volcanologique, 34, 562–576, 1970.</mixed-citation></ref>
      <ref id="bib1.bibx74"><label>Moresi and Solomatov(1998)</label><mixed-citation> Moresi, L. and Solomatov, V.: Mantle convection with a brittle lithosphere: thoughts on the global tectonic styles of the Earth and Venus, Geophys. J. Int., 133, 669–682, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx75"><label>Nield et al.(2014)Nield, Barletta, Bordoni, King, Whitehouse, Clarke, Domack, Scambos, and Berthier</label><mixed-citation> Nield, G. A., Barletta, V. R., Bordoni, A., King, M. A., Whitehouse, P. L., Clarke, P. J., Domack, E., Scambos, T. A., and Berthier, E.: Rapid bedrock uplift in the Antarctic Peninsula explained by viscoelastic response to recent ice unloading, Earth   Planet. Sc. Lett., 397, 32–41, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx76"><label>Nield et al.(2018)Nield, Whitehouse, van der Wal, Blank, O'Donnell, and Stuart</label><mixed-citation> Nield, G. A., Whitehouse, P. L., van der Wal, W., Blank, B., O'Donnell, J. P., and Stuart, G. W.: The impact of lateral variations in lithospheric thickness on glacial isostatic adjustment in West Antarctica, Geophys. J. Int., 214, 811–824, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx77"><label>Pan et al.(2024)Pan, Mitrovica, Milne, Hoggard, and Woodroffe</label><mixed-citation> Pan, L., Mitrovica, J. X., Milne, G. A., Hoggard, M. J., and Woodroffe, S. A.: Timescales of glacial isostatic adjustment in Greenland: is transient rheology required?, Geophys. J. Int., 237, 989–995, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx78"><label>Paxman et al.(2023)Paxman, Lau, Austermann, Holtzman, and Havlin</label><mixed-citation>Paxman, G. J., Lau, H. C., Austermann, J., Holtzman, B. K., and Havlin, C.: Inference of the timescale-dependent apparent viscosity structure in the upper mantle beneath Greenland, AGU Adv., 4, e2022AV000751, <ext-link xlink:href="https://doi.org/10.1029/2022AV000751" ext-link-type="DOI">10.1029/2022AV000751</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx79"><label>Peltier et al.(2015)Peltier, Argus, and Drummond</label><mixed-citation> Peltier, W. R., Argus, D. F., and Drummond, R.: Space geodesy constrains ice age terminal deglaciation: The global ICE-6G-C (VM5a) model, J. Geophys. Res.-Sol. Ea., 120, 450–487, 2015.</mixed-citation></ref>
      <ref id="bib1.bibx80"><label>Pollitz(1996)</label><mixed-citation> Pollitz, F. F.: Coseismic deformation from earthquake faulting on a layered spherical Earth, Geophys. J. Int., 125, 1–14, 1996.</mixed-citation></ref>
      <ref id="bib1.bibx81"><label>Pollitz(2003)</label><mixed-citation>Pollitz, F. F.: Transient rheology of the uppermost mantle beneath the Mojave Desert, California, Earth Planet. Sc. Lett., 215, 89–104, <ext-link xlink:href="https://doi.org/10.1016/S0012-821X(03)00432-1" ext-link-type="DOI">10.1016/S0012-821X(03)00432-1</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx82"><label>Pollitz et al.(2006)Pollitz, Bürgmann, and Banerjee</label><mixed-citation>Pollitz, F. F., Bürgmann, R., and Banerjee, P.: Post-seismic relaxation following the great 2004 Sumatra-Andaman earthquake on a compressible self-gravitating Earth, Geophys. J. Int., 167, 397–420, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2006.03018.x" ext-link-type="DOI">10.1111/j.1365-246X.2006.03018.x</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx83"><label>Powell et al.(2020)Powell, Gomez, Hay, Latychev, and Mitrovica</label><mixed-citation> Powell, E., Gomez, N., Hay, C., Latychev, K., and Mitrovica, J. X.: Viscous effects in the solid Earth response to modern Antarctic ice mass flux: Implications for geodetic studies of WAIS stability in a warming world, J. Climate, 33, 443–459, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx84"><label>Rathgeber et al.(2016)Rathgeber, Ham, Mitchell, Lange, Luporini, Mcrae, Bercea, Markall, Kelly, and London</label><mixed-citation>Rathgeber, F., Ham, D. A., Mitchell, L., Lange, M., Luporini, F., Mcrae, A. T. T., Bercea, G.-t., Markall, G. R., Kelly, P. H. J., and London, I. C.: Firedrake: Automating the finite element method by composing abstractions, ACM T. Math. Softw., 43, <ext-link xlink:href="https://doi.org/10.1145/2998441" ext-link-type="DOI">10.1145/2998441</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx85"><label>Rundle(1982)</label><mixed-citation> Rundle, J. B.: Deformation, gravity, and potential changes due to volcanic loading of the crust, J. Geophys. Res.-Sol. Ea., 87, 10729–10744, 1982.</mixed-citation></ref>
      <ref id="bib1.bibx86"><label>Scott(2025)</label><mixed-citation>Scott, W.: G-ADOPT code and runscripts associated with “Automated forward and adjoint modelling of viscoelastic deformation of the solid Earth”, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.17096074" ext-link-type="DOI">10.5281/zenodo.17096074</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx87"><label>Scott et al.(2026)Scott, Ghelichkhan, Kramer, Gibson, Davies, Duvernay, and Roberts</label><mixed-citation>Scott, W., Ghelichkhan, S., Kramer, S., Gibson, A., Davies, R., Duvernay, T., and Roberts, D.: g-adopt/g-adopt: Zenodo_20260306.0, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.18886888" ext-link-type="DOI">10.5281/zenodo.18886888</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx88"><label>Shapero et al.(2021)Shapero, Badgeley, Hoffman, and Joughin</label><mixed-citation>Shapero, D. R., Badgeley, J. A., Hoffman, A. O., and Joughin, I. R.: icepack: a new glacier flow modeling package in Python, version 1.0, Geosci. Model Dev., 14, 4593–4616, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-4593-2021" ext-link-type="DOI">10.5194/gmd-14-4593-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx89"><label>Simon et al.(2022)Simon, Riva, and Broerse</label><mixed-citation>Simon, K. M., Riva, R. E., and Broerse, T.: Identifying geographical patterns of transient deformation in the geological sea level record, J. Geophys. Res.-Sol. Ea., 127, e2021JB023693, <ext-link xlink:href="https://doi.org/10.1029/2021JB023693" ext-link-type="DOI">10.1029/2021JB023693</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx90"><label>Spada et al.(2004)Spada, Antonioli, Boschi, Boschi, Brandi, Cianetti, Galvani, Giunchi, Perniola, Agostinetti, Piersanti, and Stocchi</label><mixed-citation>Spada, G., Antonioli, A., Boschi, L., Boschi, L., Brandi, V., Cianetti, S., Galvani, G., Giunchi, C., Perniola, B., Agostinetti, N. P., Piersanti, A., and Stocchi, P.: Modeling Earth's post-glacial rebound, Eos, T. Am. Geophys. Un., 85, 62–64, <ext-link xlink:href="https://doi.org/10.1029/2004EO060007" ext-link-type="DOI">10.1029/2004EO060007</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx91"><label>Spada et al.(2011)Spada, Barletta, Klemann, Riva, Martinec, Gasperini, Lund, Wolf, Vermeersen, and King</label><mixed-citation>Spada, G., Barletta, V. R., Klemann, V., Riva, R. E. M., Martinec, Z., Gasperini, P., Lund, B., Wolf, D., Vermeersen, L. L. A., and King, M. A.: A benchmark study for glacial isostatic adjustment codes, Geophys. J. Int., 185, 106–132, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2011.04952.x" ext-link-type="DOI">10.1111/j.1365-246X.2011.04952.x</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx92"><label>Tackley(2000)</label><mixed-citation>Tackley, P. J.: Self-consistent generation of tectonic plates in time-dependent, three-dimensional mantle convection simulations, Geochem. Geophy. Geosy., 1, <ext-link xlink:href="https://doi.org/10.1029/2000GC000036" ext-link-type="DOI">10.1029/2000GC000036</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx93"><label>Tanaka et al.(2011)Tanaka, Klemann, Martinec, and Riva</label><mixed-citation> Tanaka, Y., Klemann, V., Martinec, Z., and Riva, R.: Spectral-finite element approach to viscoelastic relaxation in a spherical compressible Earth: application to GIA modelling, Geophys. J. Int., 184, 220–234, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx94"><label>The ROL Project Team(2022)</label><mixed-citation>The ROL Project Team: The ROL Project Website, <uri>https://trilinos.github.io/rol.html</uri> (last access: 6 March 2026), 2022.</mixed-citation></ref>
      <ref id="bib1.bibx95"><label>Tregoning et al.(2009)Tregoning, Ramillien, McQueen, and Zwartz</label><mixed-citation>Tregoning, P., Ramillien, G., McQueen, H., and Zwartz, D.: Glacial isostatic adjustment and nonstationary signals observed by GRACE, J. Geophys. Res.-Sol. Ea., 114, <ext-link xlink:href="https://doi.org/10.1029/2008JB006161" ext-link-type="DOI">10.1029/2008JB006161</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx96"><label>Tromp et al.(2005)Tromp, Tape, and Liu</label><mixed-citation> Tromp, J., Tape, C., and Liu, Q.: Seismic tomography, adjoint methods, time reversal and banana-doughnut kernels, Geophys. J. Int., 160, 195–216, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx97"><label>van der Wal et al.(2010)van der Wal, Wu, Wang, and Sideris</label><mixed-citation> van der Wal, W., Wu, P., Wang, H., and Sideris, M. G.: Sea levels and uplift rate from composite rheology in glacial isostatic adjustment modeling, J. Geodynam., 50, 38–48, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx98"><label>Vermeersen and Mitrovica(2000)</label><mixed-citation> Vermeersen, L. L. A. and Mitrovica, J. X.: Gravitational stability of spherical self-gravitating relaxation models, Geophys. J. Int., 142, 351–360, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx99"><label>Weerdesteijn and Conrad(2024)</label><mixed-citation>Weerdesteijn, M. F. and Conrad, C. P.: Recent ice melt above a mantle plume track is accelerating the uplift of Southeast Greenland, Commun. Earth Environ. 5, 791, <ext-link xlink:href="https://doi.org/10.1038/s43247-024-01968-6" ext-link-type="DOI">10.1038/s43247-024-01968-6</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx100"><label>Weerdesteijn et al.(2023)Weerdesteijn, Naliboff, Conrad, Reusen, Steffen, Heister, and Zhang</label><mixed-citation>Weerdesteijn, M. F., Naliboff, J. B., Conrad, C. P., Reusen, J. M., Steffen, R., Heister, T., and Zhang, J.: Modeling viscoelastic solid Earth deformation due to ice age and contemporary glacial mass changes in ASPECT, Geochem. Geophy. Geosy., 24, e2022GC010813, <ext-link xlink:href="https://doi.org/10.1029/2022GC010813" ext-link-type="DOI">10.1029/2022GC010813</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx101"><label>Wilkinson et al.(2016)Wilkinson, Dumontier, Aalbersberg, Appleton, Axton, Baak, Blomberg, Boiten, da Silva Santos, Bourne et al.</label><mixed-citation> Wilkinson, M. D., Dumontier, M., Aalbersberg, I. J., Appleton, G., Axton, M., Baak, A., Blomberg, N., Boiten, J.-W., da Silva Santos, L. B., Bourne, P. E., Bouwman, J., Brookes, A. J., Clark, T., Crosas, M., Dillo, I., Dumon, O., Edmunds, S., Evelo, C. T., Finkers, R., Gonzalez-Beltran, A., Gray, A. J. G., Groth, P., Goble, C., Grethe, J. S., Heringa, J., 't Hoen, P. A. C., Hooft, R., Kuhn, T., Kok, R., Kok, J., Lusher, S. J., Martone, M. E., Mons, A., Packer, A. L., Persson, B., Rocca-Serra, P., Roos, M., van Schaik, R., Sansone, S.-A., Schultes, E., Sengstag, T., Slater, T., Strawn, G., Swertz, M. A., Thompson, M., van der Lei, J., van Mulligen, E., Velterop, J., Waagmeester, A., Wittenburg, P., Wolstencroft, K., Zhao, J., and Mons, B.: The FAIR Guiding Principles for scientific data management and stewardship, Sci. Data, 3, 1–9, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx102"><label>Wolf(1985)</label><mixed-citation> Wolf, D.: The normal modes of a uniform, compressible Maxwell half-space, J. Geophys., 56, 100–105, 1985.</mixed-citation></ref>
      <ref id="bib1.bibx103"><label>Wu(1995)</label><mixed-citation> Wu, P.: Can observations of postglacial rebound tell whether the rheology of the mantle is linear or nonlinear?, Geophys. Res. Lett., 22, 1645–1648, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx104"><label>Wu(2004)</label><mixed-citation>Wu, P.: Using commercial finite element packages for the study of earth deformations, sea levels and the state of stress, Geophys. J. Int., 158, 401–408, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2004.02338.x" ext-link-type="DOI">10.1111/j.1365-246X.2004.02338.x</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx105"><label>Wu and Peltier(1982)</label><mixed-citation>Wu, P. and Peltier, W. R.: Viscous gravitational relaxation, Geophys. J. Int., 70, 435–485, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.1982.tb04976.x" ext-link-type="DOI">10.1111/j.1365-246X.1982.tb04976.x</ext-link>, 1982.</mixed-citation></ref>
      <ref id="bib1.bibx106"><label>Wu and van der Wal(2003)</label><mixed-citation> Wu, P. and van der Wal, W.: Postglacial sealevels on a spherical, self-gravitating viscoelastic Earth: Effects of lateral viscosity variations in the upper mantle on the inference of viscosity contrasts in the lower mantle, Earth   Planet. Sc. Lett., 211, 57–68, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx107"><label>Yamauchi and Takei(2016)</label><mixed-citation> Yamauchi, H. and Takei, Y.: Polycrystal anelasticity at near-solidus temperatures, J. Geophys. Res.-Sol. Ea., 121, 7790–7820, 2016.</mixed-citation></ref>
      <ref id="bib1.bibx108"><label>Yu et al.(2025)Yu, Al-Attar, Syvret, and Lloyd</label><mixed-citation>Yu, Z., Al-Attar, D., Syvret, F., and Lloyd, A. J.: Application of first-and second-order adjoint methods to glacial isostatic adjustment incorporating rotational feedbacks, Geophys. J. Int., 240, 329–348, 2025.  </mixed-citation></ref>
      <ref id="bib1.bibx109"><label>Zhong et al.(2003)Zhong, Paulson, and Wahr</label><mixed-citation>Zhong, S., Paulson, A., and Wahr, J.: Three-dimensional finite-element modelling of Earth's viscoelastic deformation: effects of lateral variations in lithospheric thickness, Geophys. J. Int., 155, 679–695, <ext-link xlink:href="https://doi.org/10.1046/j.1365-246X.2003.02084.x" ext-link-type="DOI">10.1046/j.1365-246X.2003.02084.x</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx110"><label>Zhong et al.(2022)Zhong, Kang, A, and Qin</label><mixed-citation>Zhong, S., Kang, K., A, G., and Qin, C.: CitcomSVE: A Three-Dimensional Finite Element Software Package for Modeling Planetary Mantle’s Viscoelastic Deformation in Response to Surface and Tidal Loads, Geochem. Geophy. Geosy., 23, e2022GC010359, <ext-link xlink:href="https://doi.org/10.1029/2022GC010359" ext-link-type="DOI">10.1029/2022GC010359</ext-link>,   2022.</mixed-citation></ref>
      <ref id="bib1.bibx111"><label>Zwinger et al.(2020)Zwinger, Nield, Ruokolainen, and King</label><mixed-citation>Zwinger, T., Nield, G. A., Ruokolainen, J., and King, M. A.: A new open-source viscoelastic solid earth deformation module implemented in Elmer (v8.4), Geosci. Model Dev., 13, 1155–1164, <ext-link xlink:href="https://doi.org/10.5194/gmd-13-1155-2020" ext-link-type="DOI">10.5194/gmd-13-1155-2020</ext-link>, 2020.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Automated forward and adjoint modelling of viscoelastic deformation of the solid Earth</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>A et al.(2013)A, Wahr, and Zhong</label><mixed-citation>
      
A, G., Wahr, J., and Zhong, S.: Computations of the viscoelastic response of a
3-D compressible Earth to surface loading: an application to Glacial
Isostatic Adjustment in Antarctica and Canada, Geophys. J.
Int., 192, 557–572, <a href="https://doi.org/10.1093/gji/ggs030" target="_blank">https://doi.org/10.1093/gji/ggs030</a>, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Adhikari et al.(2021)Adhikari, Milne, Caron, Khan, Kjeldsen, Nilsson,
Larour, and Ivins</label><mixed-citation>
      
Adhikari, S., Milne, G., Caron, L., Khan, S., Kjeldsen, K., Nilsson, J.,
Larour, E., and Ivins, E.: Decadal to centennial timescale mantle viscosity
inferred from modern crustal uplift rates in Greenland, Geophys. Res.
Lett., 48, e2021GL094040, <a href="https://doi.org/10.1029/2021GL094040" target="_blank">https://doi.org/10.1029/2021GL094040</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Al-Attar and Tromp(2014)</label><mixed-citation>
      
Al-Attar, D. and Tromp, J.: Sensitivity kernels for viscoelastic loading based
on adjoint methods, Geophys. J. Int., 196, 34–77,
<a href="https://doi.org/10.1093/gji/ggt395" target="_blank">https://doi.org/10.1093/gji/ggt395</a>, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Austermann et al.(2013)Austermann, Mitrovica, Latychev, and
Milne</label><mixed-citation>
      
Austermann, J., Mitrovica, J. X., Latychev, K., and Milne, G. A.:
Barbados-based estimate of ice volume at Last Glacial Maximum affected by
subducted plate, Nat. Geosci., 6, 553–557, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Austermann et al.(2020)Austermann, Chen, Lau, Maloof, and
Latychev</label><mixed-citation>
      
Austermann, J., Chen, C. Y., Lau, H. C., Maloof, A. C., and Latychev, K.:
Constraints on mantle viscosity and Laurentide ice sheet evolution from
pluvial paleolake shorelines in the western United States, Earth
Planet. Sc. Lett., 532, 116006, <a href="https://doi.org/10.1016/j.epsl.2019.116006" target="_blank">https://doi.org/10.1016/j.epsl.2019.116006</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Austermann et al.(2021)Austermann, Hoggard, Latychev, Richards, and
Mitrovica</label><mixed-citation>
      
Austermann, J., Hoggard, M. J., Latychev, K., Richards, F. D., and Mitrovica,
J. X.: The effect of lateral variations in Earth structure on Last
Interglacial sea level, Geophys. J. Int., 227, 1938–1960,
2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Bailey(2006)</label><mixed-citation>
      
Bailey, R. C.: Large time step numerical modelling of the flow of Maxwell
materials, Geophys. J. Int., 164, 460–466,
<a href="https://doi.org/10.1111/j.1365-246X.2005.02788.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2005.02788.x</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Balay et al.(1997)Balay, Gropp, McInnes, and Smith</label><mixed-citation>
      
Balay, S., Gropp, W. D., McInnes, L. C., and Smith, B. F.: Efficient
management of parallelism in object-oriented numerical software libraries,
in: Modern Software Tools for Scientific Computing, edited by: Arge, E.,
Bruaset, A. M., and Langtangen, H. P., chap. 8,  Springer, New
York, 163–202, <a href="https://doi.org/10.1007/978-1-4612-1986-6_8" target="_blank">https://doi.org/10.1007/978-1-4612-1986-6_8</a>, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Balay et al.(2025a)</label><mixed-citation>
      
Balay, S., Abhyankar, S., Adams, M. F., Benson, S., Brown, J., Brune, P.,
Buschelman, K., Constantinescu, E., Dalcin, L., Dener, A., Eijkhout, V.,
Faibussowitsch, J., Gropp, W. D., Hapla, V., Isaac, T., Jolivet, P., Karpeev,
D., Kaushik, D., Knepley, M. G., Kong, F., Kruger, S., May, D. A., McInnes,
L. C., Mills, R. T., Mitchell, L., Munson, T., Roman, J. E., Rupp, K., Sanan,
P., Sarich, J., Smith, B. F., Suh, H., Zampini, S., Zhang, H., Zhang, H., and
Zhang, J.: PETSc/TAO Users Manual, Tech. Rep. ANL-21/39 – Revision 3.23,
Argonne National Laboratory, <a href="https://doi.org/10.2172/2476320" target="_blank">https://doi.org/10.2172/2476320</a>, 2025a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Balay et al.(2025b)Balay, Abhyankar, Adams, Benson,
Brown, Brune, Buschelman, Constantinescu, Dalcin, Dener, Eijkhout,
Faibussowitsch, Gropp, Hapla, Isaac, Jolivet, Karpeev, Kaushik, Knepley,
Kong, Kruger, May, McInnes, Mills, Mitchell, Munson, Roman, Rupp, Sanan,
Sarich, Smith, Zampini, Zhang, Zhang, and Zhang</label><mixed-citation>
      
Balay, S., Abhyankar, S., Adams, M. F., Benson, S., Brown, J., Brune, P.,
Buschelman, K., Constantinescu, E. M., Dalcin, L., Dener, A., Eijkhout, V.,
Faibussowitsch, J., Gropp, W. D., Hapla, V., Isaac, T., Jolivet, P., Karpeev,
D., Kaushik, D., Knepley, M. G., Kong, F., Kruger, S., May, D. A., McInnes,
L. C., Mills, R. T., Mitchell, L., Munson, T., Roman, J. E., Rupp, K., Sanan,
P., Sarich, J., Smith, B. F., Zampini, S., Zhang, H., Zhang, H., and Zhang,
J.: PETSc Web page, <a href="https://petsc.org/" target="_blank"/> (last access: 6 March 2026), 2025b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Barletta et al.(2018)Barletta, Bevis, Smith, Wilson, Brown, Bordoni,
Willis, Khan, Rovira-Navarro, Dalziel et al.</label><mixed-citation>
      
Barletta, V. R., Bevis, M., Smith, B. E., Wilson, T., Brown, A., Bordoni, A.,
Willis, M., Khan, S. A., Rovira-Navarro, M., Dalziel, I.,   Smalley Jr., R.,   Kendrick, E.,   Konfal, S.,   Caccamise II, D. J.,   Aster, R. C., Nyblade, A., and Wiens, D. A.: Observed
rapid bedrock uplift in Amundsen Sea Embayment promotes ice-sheet stability,
Science, 360, 1335–1339, <a href="https://doi.org/10.1126/science.aao1447" target="_blank">https://doi.org/10.1126/science.aao1447</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Bercea et al.(2016)Bercea, McRae, Ham, Mitchell, Rathgeber, Nardi,
Luporini, and Kelly</label><mixed-citation>
      
Bercea, G.-T., McRae, A. T. T., Ham, D. A., Mitchell, L., Rathgeber, F., Nardi, L., Luporini, F., and Kelly, P. H. J.: A structure-exploiting numbering algorithm for finite elements on extruded meshes, and its performance evaluation in Firedrake, Geosci. Model Dev., 9, 3803–3815, <a href="https://doi.org/10.5194/gmd-9-3803-2016" target="_blank">https://doi.org/10.5194/gmd-9-3803-2016</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Bunge et al.(2003)Bunge, Hagelberg, and Travis</label><mixed-citation>
      
Bunge, H.-P., Hagelberg, C., and Travis, B.: Mantle circulation models with
variational data assimilation: inferring past mantle flow and structure from
plate motion histories and seismic tomography, Geophys. J. Int., 152, 280–301, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Caron and Ivins(2020)</label><mixed-citation>
      
Caron, L. and Ivins, E. R.: A baseline Antarctic GIA correction for space
gravimetry, Earth   Planet. Sc. Lett., 531, 115957, <a href="https://doi.org/10.1016/j.epsl.2019.115957" target="_blank">https://doi.org/10.1016/j.epsl.2019.115957</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Cathles(2024)</label><mixed-citation>
      
Cathles, L.: On calculating glacial isostatic adjustment, Geodesy
Geodyn., 15, 441–452, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Cathles(2016)</label><mixed-citation>
      
Cathles, L. M.: Viscosity of the Earth's Mantle, Princeton University
Press, ISBN 978-0-691-64492-9, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Chaljub and Valette(2004)</label><mixed-citation>
      
Chaljub, E. and Valette, B.: Spectral element modelling of three-dimensional
wave propagation in a self-gravitating Earth with an arbitrarily stratified
outer core, Geophys. J. Int., 158, 131–141, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Chao et al.(2008)Chao, Wu, and Li</label><mixed-citation>
      
Chao, B. F., Wu, Y.-H., and Li, Y.: Impact of artificial reservoir water
impoundment on global sea level, Science, 320, 212–214, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Church et al.(2004)Church, White, Coleman, Lambeck, and
Mitrovica</label><mixed-citation>
      
Church, J. A., White, N. J., Coleman, R., Lambeck, K., and Mitrovica, J. X.:
Estimates of the regional distribution of sea level rise over the 1950–2000
period, J. Climate, 17, 2609–2625, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Crawford et al.(2017)Crawford, Al-Attar, Tromp, and
Mitrovica</label><mixed-citation>
      
Crawford, O., Al-Attar, D., Tromp, J., and Mitrovica, J. X.: Forward and
inverse modelling of post-seismic deformation, Geophys. J. Int., 208, 845–876, <a href="https://doi.org/10.1093/gji/ggw414" target="_blank">https://doi.org/10.1093/gji/ggw414</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Crawford et al.(2018)Crawford, Al-Attar, Tromp, Mitrovica,
Austermann, and Lau</label><mixed-citation>
      
Crawford, O., Al-Attar, D., Tromp, J., Mitrovica, J. X., Austermann, J., and
Lau, H. C. P.: Quantifying the sensitivity of post-glacial sea level change
to laterally varying viscosity, Geophys. J. Int., 214,
1324–1363, <a href="https://doi.org/10.1093/gji/ggy184" target="_blank">https://doi.org/10.1093/gji/ggy184</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Crittenden(1963)</label><mixed-citation>
      
Crittenden Jr., M. D.: Effective viscosity of the earth derived from isostatic
loading of Pleistocene Lake Bonneville, J. Geophys. Res., 68,
5517–5530, 1963.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Crowley et al.(2006)Crowley, Mitrovica, Bailey, Tamisiea, and
Davis</label><mixed-citation>
      
Crowley, J. W., Mitrovica, J. X., Bailey, R. C., Tamisiea, M. E., and Davis,
J. L.: Land water storage within the Congo Basin inferred from GRACE
satellite gravity data, Geophys. Res. Lett., 33, <a href="https://doi.org/10.1029/2006GL027070" target="_blank">https://doi.org/10.1029/2006GL027070</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Dahlen and Tromp(1998)</label><mixed-citation>
      
Dahlen, A. F. and Tromp, J.: Theoretical Global Seismology, Princeton
University Press, ISBN 978-0-691-00124-1, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Daly(1925)</label><mixed-citation>
      
Daly, R. A.: Pleistocene changes of level,  Am. J. Sci., 10,
281, <a href="https://doi.org/10.2475/ajs.s5-10.58.281" target="_blank">https://doi.org/10.2475/ajs.s5-10.58.281</a>, 1925.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Davies et al.(2022)Davies, Kramer, Ghelichkhan, and
Gibson</label><mixed-citation>
      
Davies, D. R., Kramer, S. C., Ghelichkhan, S., and Gibson, A.: Towards automatic finite-element methods for geodynamics via Firedrake, Geosci. Model Dev., 15, 5127–5166, <a href="https://doi.org/10.5194/gmd-15-5127-2022" target="_blank">https://doi.org/10.5194/gmd-15-5127-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>Dehant et al.(1999)Dehant, Defraigne, and Wahr</label><mixed-citation>
      
Dehant, V., Defraigne, P., and Wahr, J.: Tides for a convective Earth, J. Geophys. Res.-Sol. Ea., 104, 1035–1058, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Epshteyn and Rivière(2007)</label><mixed-citation>
      
Epshteyn, Y. and Rivière, B.: Estimation of penalty parameters for symmetric
interior penalty Galerkin methods, J. Comput. Appl.
Math., 206, 843–872, <a href="https://doi.org/10.1016/j.cam.2006.08.029" target="_blank">https://doi.org/10.1016/j.cam.2006.08.029</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Errico(1997)</label><mixed-citation>
      
Errico, R. M.: What is an adjoint model?, B. Am.
Meteorol. Soc., 78, 2577–2591, 1997.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Farrell et al.(2013)Farrell, Ham, Funke, and
Rognes</label><mixed-citation>
      
Farrell, P. E., Ham, D. A., Funke, S. W., and Rognes, M. E.: Automated
derivation of the adjoint of high-level transient finite element programs,
SIAM J. Sci. Comput., 35, 369–393, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Farrell and Clark(1976)</label><mixed-citation>
      
Farrell, W. E. and Clark, J. A.: On postglacial sea level, Geophys.
J. Roy. Astron. Soc., 46, 647–667, 1976.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Faul and Jackson(2015)</label><mixed-citation>
      
Faul, U. and Jackson, I.: Transient Creep and Strain Energy Dissipation: An
Experimental Perspective, Annu. Rev. Earth  Pl. Sc., 43,
541–569, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Fichtner et al.(2006)Fichtner, Bunge, and Igel</label><mixed-citation>
      
Fichtner, A., Bunge, H.-P., and Igel, H.: The adjoint method in seismology: I.
Theory, Phys. Earth  Planet. In., 157, 86–104, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>firedrake zenodo(2026)</label><mixed-citation>
      
firedrake zenodo: Software used in “Automated forward and adjoint modelling of
viscoelastic deformation of the solid Earth”,  Zenodo [code], <a href="https://doi.org/10.5281/zenodo.18880361" target="_blank">https://doi.org/10.5281/zenodo.18880361</a>,
2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Forget et al.(2015)Forget, Campin, Heimbach, Hill, Ponte, and
Wunsch</label><mixed-citation>
      
Forget, G., Campin, J.-M., Heimbach, P., Hill, C. N., Ponte, R. M., and Wunsch, C.: ECCO version 4: an integrated framework for non-linear inverse modeling and global ocean state estimation, Geosci. Model Dev., 8, 3071–3104, <a href="https://doi.org/10.5194/gmd-8-3071-2015" target="_blank">https://doi.org/10.5194/gmd-8-3071-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Gasperini et al.(2004)Gasperini, Dal Forno, and
Boschi</label><mixed-citation>
      
Gasperini, P., Dal Forno, G., and Boschi, E.: Linear or non-linear rheology in
the Earth's mantle: the prevalence of power-law creep in the postglacial
isostatic readjustment of Laurentia, Geophys. J. Int., 157,
1297–1302, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Geuzaine and Remacle(2009)</label><mixed-citation>
      
Geuzaine, C. and Remacle, J.-F.: Gmsh: A 3-D finite element mesh generator with
built-in pre-and post-processing facilities, Int. J.
Numer. Meth. Eng., 79, 1309–1331, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Gharti and Tromp(2017)</label><mixed-citation>
      
Gharti, H. N. and Tromp, J.: A spectral-infinite-element solution of Poisson's
equation: an application to self gravity, arXiv [preprint],
<a href="https://doi.org/10.48550/arXiv.1706.00855" target="_blank">https://doi.org/10.48550/arXiv.1706.00855</a>,
2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Ghelichkhan et al.(2021)Ghelichkhan, Bunge, and
Oeser</label><mixed-citation>
      
Ghelichkhan, S., Bunge, H.-P., and Oeser, J.: Global mantle flow retrodictions
for the early Cenozoic using an adjoint method: evolving dynamic
topographies, deep mantle structures, flow trajectories and sublithospheric
stresses, Geophys. J. Int., 226, 1432–1460, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Ghelichkhan et al.(2024)Ghelichkhan, Gibson, Davies, Kramer, and
Ham</label><mixed-citation>
      
Ghelichkhan, S., Gibson, A., Davies, D. R., Kramer, S. C., and Ham, D. A.: Automatic adjoint-based inversion schemes for geodynamics: reconstructing the evolution of Earth's mantle in space and time, Geosci. Model Dev., 17, 5057–5086, <a href="https://doi.org/10.5194/gmd-17-5057-2024" target="_blank">https://doi.org/10.5194/gmd-17-5057-2024</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Gibson et al.(2024)Gibson, Davies, Kramer, Ghelichkhan, Turner,
Duvernay, and Scott</label><mixed-citation>
      
Gibson, A., Davies, R., Kramer, S., Ghelichkhan, S., Turner, R., Duvernay, T.,
and Scott, W.: G-ADOPT, Zenodo [code], <a href="https://doi.org/10.5281/zenodo.5644391" target="_blank">https://doi.org/10.5281/zenodo.5644391</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Gilbert(1886)</label><mixed-citation>
      
Gilbert, G. K.: The inculcation of scientific method by example, with an
illustration drawn from the Quaternary geology of Utah, Am. J.
Sci., 3, 284–299, 1886.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Gowan et al.(2021)Gowan, Zhang, Khosravi, Rovere, Stocchi, Hughes,
Gyllencreutz, Mangerud, Svendsen, and Lohmann</label><mixed-citation>
      
Gowan, E. J., Zhang, X., Khosravi, S., Rovere, A., Stocchi, P., Hughes, A. L.,
Gyllencreutz, R., Mangerud, J., Svendsen, J.-I., and Lohmann, G.: A new
global ice sheet reconstruction for the past 80&thinsp;000 years, Nat.
Commun., 12, 1199, <a href="https://doi.org/10.1038/s41467-021-21469-w" target="_blank">https://doi.org/10.1038/s41467-021-21469-w</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Ham et al.(2023)Ham, Kelly, Mitchell, Cotter, Kirby, Sagiyama,
Bouziani, Vorderwuelbecke, Gregory, Betteridge, Shapero, Nixon-Hill, Ward,
Farrell, Brubeck, Marsden, Gibson, Homolya, Sun, McRae, Luporini, Gregory,
Lange, Funke, Rathgeber, Bercea, and Markall</label><mixed-citation>
      
Ham, D. A., Kelly, P. H. J., Mitchell, L., Cotter, C. J., Kirby, R. C.,
Sagiyama, K., Bouziani, N., Vorderwuelbecke, S., Gregory, T. J., Betteridge,
J., Shapero, D. R., Nixon-Hill, R. W., Ward, C. J., Farrell, P. E., Brubeck,
P. D., Marsden, I., Gibson, T. H., Homolya, M., Sun, T., McRae, A. T. T.,
Luporini, F., Gregory, A., Lange, M., Funke, S. W., Rathgeber, F., Bercea,
G.-T., and Markall, G. R.: Firedrake User Manual, Imperial College London and
University of Oxford and Baylor University and University of Washington,
1st Edn., <a href="https://doi.org/10.25561/104839" target="_blank">https://doi.org/10.25561/104839</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Haskell(1935)</label><mixed-citation>
      
Haskell, N.: The motion of a viscous fluid under a surface load, Physics, 6,
265–269, 1935.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Hay et al.(2017)Hay, Lau, Gomez, Austermann, Powell, Mitrovica,
Latychev, and Wiens</label><mixed-citation>
      
Hay, C. C., Lau, H. C., Gomez, N., Austermann, J., Powell, E., Mitrovica,
J. X., Latychev, K., and Wiens, D. A.: Sea-level fingerprints in a region of
complex earth structure: The case of WAIS, J. Climate, 30,
1881–1892, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Hillewaert(2013)</label><mixed-citation>
      
Hillewaert, K.: Development of the discontinuous Galerkin method for
high-resolution, large scale CFD and acoustics in industrial geometries,
Ph.D. thesis, University of Liege, ISBN-13 9782875581198, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Huang et al.(2023)Huang, Steffen, Steffen, Klemann, Wu, Van Der Wal,
Martinec, and Tanaka</label><mixed-citation>
      
Huang, P., Steffen, R., Steffen, H., Klemann, V., Wu, P., Van Der Wal, W.,
Martinec, Z., and Tanaka, Y.: A commercial finite element approach to
modelling Glacial Isostatic Adjustment on spherical self-gravitating
compressible earth models, Geophys. J. Int., 235,
2231–2256, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Ivins et al.(2013)Ivins, James, Wahr, O. Schrama, Landerer, and
Simon</label><mixed-citation>
      
Ivins, E. R., James, T. S., Wahr, J., O. Schrama, E. J., Landerer, F. W., and
Simon, K. M.: Antarctic contribution to sea level rise observed by GRACE with
improved GIA correction, J. Geophys. Res.-Sol. Ea., 118,
3126–3141, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Kalnay(2003)</label><mixed-citation>
      
Kalnay, E.: Atmospheric modeling, data assimilation and predictability,
Cambridge University Press,  ISBN-13 978-0521796293, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Kang et al.(2022)Kang, Zhong, Geruo, and Mao</label><mixed-citation>
      
Kang, K., Zhong, S., Geruo, A., and Mao, W.: The effects of non-Newtonian
rheology in the upper mantle on relative sea level change and geodetic
observables induced by glacial isostatic adjustment process, Geophys. J. Int., 228, 1887–1906, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Karato and Wu(1993)</label><mixed-citation>
      
Karato, S.-I. and Wu, P.: Rheology of the upper mantle: A synthesis, Science,
260, 771–778, 1993.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Kendall et al.(2005)Kendall, Mitrovica, and
Milne</label><mixed-citation>
      
Kendall, R. A., Mitrovica, J. X., and Milne, G. A.: On post-glacial sea level
– II. Numerical formulation and comparative results on spherically symmetric
models, Geophys. J. Int., 161, 679–706, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Kim et al.(2022)Kim, Crawford, Al-Attar, Lau, Mitrovica, and
Latychev</label><mixed-citation>
      
Kim, A. J., Crawford, O., Al-Attar, D., Lau, H. C. P., Mitrovica, J. X., and
Latychev, K.: Ice age effects on the satellite-derived J2 datum: Mapping the
sensitivity to 3D variations in mantle viscosity, Earth  Planet.
Sc. Lett., 581, 117372,
<a href="https://doi.org/10.1016/j.epsl.2022.117372" target="_blank">https://doi.org/10.1016/j.epsl.2022.117372</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>King et al.(2012)King, Bingham, Moore, Whitehouse, Bentley, and
Milne</label><mixed-citation>
      
King, M. A., Bingham, R. J., Moore, P., Whitehouse, P. L., Bentley, M. J., and
Milne, G. A.: Lower satellite-gravimetry estimates of Antarctic sea-level
contribution, Nature, 491, 586–589, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Kramer et al.(2012)Kramer, Wilson, and Davies</label><mixed-citation>
      
Kramer, S. C., Wilson, C. R., and Davies, D. R.: An implicit free surface
algorithm for geodynamical simulations, Phys. Earth Planet.
Int., 194–195, 25–37, <a href="https://doi.org/10.1016/j.pepi.2012.01.001" target="_blank">https://doi.org/10.1016/j.pepi.2012.01.001</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Lambeck et al.(2014)Lambeck, Rouby, Purcell, Sun, and
Sambridge</label><mixed-citation>
      
Lambeck, K., Rouby, H., Purcell, A., Sun, Y., and Sambridge, M.: Sea level and
global ice volumes from the Last Glacial Maximum to the Holocene, P.
Natl. Acad. Sci. USA, 111, 15296–15303, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Latychev et al.(2005)Latychev, Mitrovica, Tromp, Tamisiea,
Komatitsch, and Christara</label><mixed-citation>
      
Latychev, K., Mitrovica, J. X., Tromp, J., Tamisiea, M. E., Komatitsch, D., and
Christara, C. C.: Glacial isostatic adjustment on 3-D Earth models: a
finite-volume formulation, Geophys. J. Int., 161, 421–444,
<a href="https://doi.org/10.1111/j.1365-246X.2005.02536.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2005.02536.x</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Lau(2024)</label><mixed-citation>
      
Lau, H.: Surface loading on a self-gravitating, linear viscoelastic Earth:
moving beyond Maxwell, Geophys. J. Int., 237, 1842–1857,
2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Lau et al.(2017)Lau, Mitrovica, Davis, Tromp, Yang, and
Al-Attar</label><mixed-citation>
      
Lau, H. C., Mitrovica, J. X., Davis, J. L., Tromp, J., Yang, H.-Y., and
Al-Attar, D.: Tidal tomography constrains Earth’s deep-mantle buoyancy,
Nature, 551, 321–326, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Lau et al.(2021)Lau, Austermann, Holtzman, Havlin, Lloyd, Book, and
Hopper</label><mixed-citation>
      
Lau, H. C., Austermann, J., Holtzman, B. K., Havlin, C., Lloyd, A. J., Book,
C., and Hopper, E.: Frequency dependent mantle viscoelasticity via the
complex viscosity: Cases from Antarctica, J. Geophys. Res.-Sol. Ea., 126, e2021JB022622, <a href="https://doi.org/10.1029/2021JB022622" target="_blank">https://doi.org/10.1029/2021JB022622</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Li et al.(2017)Li, Gurnis, and Stadler</label><mixed-citation>
      
Li, D., Gurnis, M., and Stadler, G.: Towards adjoint-based inversion of
time-dependent mantle convection with nonlinear viscosity, Geophys. J. Int., 209, 86–105, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Lin and Moré(1999)</label><mixed-citation>
      
Lin, C.-J. and Moré, J. J.: Newton's method for large bound-constrained
optimization problems, SIAM J. Optimiz., 9, 1100–1127, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Lloyd et al.(2024)Lloyd, Crawford, Al-Attar, Austermann, Hoggard,
Richards, and Syvret</label><mixed-citation>
      
Lloyd, A. J., Crawford, O., Al-Attar, D., Austermann, J., Hoggard, M. J.,
Richards, F. D., and Syvret, F.: GIA imaging of 3-D mantle viscosity based on
palaeo sea level observations – Part I: Sensitivity kernels for an Earth with
laterally varying viscosity, Geophys. J. Int., 236,
1139–1171, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Martinec(2000)</label><mixed-citation>
      
Martinec, Z.: Spectral–finite element approach to three-dimensional
viscoelastic relaxation in a spherical earth, Geophys. J. Int., 142, 117–141, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Matviichuk et al.(2020)Matviichuk, King, and
Watson</label><mixed-citation>
      
Matviichuk, B., King, M., and Watson, C.: Estimating ocean tide loading displacements with GPS and GLONASS, Solid Earth, 11, 1849–1863, <a href="https://doi.org/10.5194/se-11-1849-2020" target="_blank">https://doi.org/10.5194/se-11-1849-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>May and Knepley(2011)</label><mixed-citation>
      
May, D. A. and Knepley, M. G.: Optimal, scalable forward models for computing
gravity anomalies, Geophys. J. Int., 187, 161–177, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>McRae et al.(2016)McRae, Bercea, Mitchell, Ham, and
Cotter</label><mixed-citation>
      
McRae, A. T. T., Bercea, G.-T., Mitchell, L., Ham, D. A., and Cotter, C. J.:
Automated Generation and Symbolic Manipulation of Tensor Product Finite
Elements, SIAM J. Sci. Comput., 38, S25–S47,
<a href="https://doi.org/10.1137/15M1021167" target="_blank">https://doi.org/10.1137/15M1021167</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Mitrovica(1996)</label><mixed-citation>
      
Mitrovica, J. X.: Haskell [1935] revisited, J. Geophys. Res.-Sol. Ea., 101, 555–569, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Mitrovica et al.(2005)Mitrovica, Wahr, Matsuyama, and
Paulson</label><mixed-citation>
      
Mitrovica, J. X., Wahr, J., Matsuyama, I., and Paulson, A.: The rotational
stability of an ice-age Earth, Geophys. J. Int., 161,
491–506, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>Mitrovica et al.(2011)Mitrovica, Gomez, Morrow, Hay, Latychev, and
Tamisiea</label><mixed-citation>
      
Mitrovica, J. X., Gomez, N., Morrow, E., Hay, C., Latychev, K., and Tamisiea,
M.: On the robustness of predictions of sea level fingerprints, Geophys. J. Int., 187, 729–742, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Mitusch et al.(2019)Mitusch, Funke, and Dokken</label><mixed-citation>
      
Mitusch, S. K., Funke, S. W., and Dokken, J. S.: dolfin-adjoint 2018.1:
Automated adjoints for FEniCS and Firedrake, J. Open Source
Softw., 4, 1292, <a href="https://doi.org/10.21105/joss.01292" target="_blank">https://doi.org/10.21105/joss.01292</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib73"><label>Moore(1970)</label><mixed-citation>
      
Moore, J.: Relationship between subsidence and volcanic load, Hawaii, Bulletin
Volcanologique, 34, 562–576, 1970.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib74"><label>Moresi and Solomatov(1998)</label><mixed-citation>
      
Moresi, L. and Solomatov, V.: Mantle convection with a brittle lithosphere:
thoughts on the global tectonic styles of the Earth and Venus, Geophys. J. Int., 133, 669–682, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib75"><label>Nield et al.(2014)Nield, Barletta, Bordoni, King, Whitehouse, Clarke,
Domack, Scambos, and Berthier</label><mixed-citation>
      
Nield, G. A., Barletta, V. R., Bordoni, A., King, M. A., Whitehouse, P. L.,
Clarke, P. J., Domack, E., Scambos, T. A., and Berthier, E.: Rapid bedrock
uplift in the Antarctic Peninsula explained by viscoelastic response to
recent ice unloading, Earth   Planet. Sc. Lett., 397, 32–41, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib76"><label>Nield et al.(2018)Nield, Whitehouse, van der Wal, Blank, O'Donnell,
and Stuart</label><mixed-citation>
      
Nield, G. A., Whitehouse, P. L., van der Wal, W., Blank, B., O'Donnell, J. P.,
and Stuart, G. W.: The impact of lateral variations in lithospheric thickness
on glacial isostatic adjustment in West Antarctica, Geophys. J. Int., 214, 811–824, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib77"><label>Pan et al.(2024)Pan, Mitrovica, Milne, Hoggard, and
Woodroffe</label><mixed-citation>
      
Pan, L., Mitrovica, J. X., Milne, G. A., Hoggard, M. J., and Woodroffe, S. A.:
Timescales of glacial isostatic adjustment in Greenland: is transient
rheology required?, Geophys. J. Int., 237, 989–995, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib78"><label>Paxman et al.(2023)Paxman, Lau, Austermann, Holtzman, and
Havlin</label><mixed-citation>
      
Paxman, G. J., Lau, H. C., Austermann, J., Holtzman, B. K., and Havlin, C.:
Inference of the timescale-dependent apparent viscosity structure in the
upper mantle beneath Greenland, AGU Adv., 4, e2022AV000751, <a href="https://doi.org/10.1029/2022AV000751" target="_blank">https://doi.org/10.1029/2022AV000751</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib79"><label>Peltier et al.(2015)Peltier, Argus, and Drummond</label><mixed-citation>
      
Peltier, W. R., Argus, D. F., and Drummond, R.: Space geodesy constrains ice
age terminal deglaciation: The global ICE-6G-C (VM5a) model, J.
Geophys. Res.-Sol. Ea., 120, 450–487, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib80"><label>Pollitz(1996)</label><mixed-citation>
      
Pollitz, F. F.: Coseismic deformation from earthquake faulting on a layered
spherical Earth, Geophys. J. Int., 125, 1–14, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib81"><label>Pollitz(2003)</label><mixed-citation>
      
Pollitz, F. F.: Transient rheology of the uppermost mantle beneath the Mojave
Desert, California, Earth Planet. Sc. Lett., 215, 89–104,
<a href="https://doi.org/10.1016/S0012-821X(03)00432-1" target="_blank">https://doi.org/10.1016/S0012-821X(03)00432-1</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib82"><label>Pollitz et al.(2006)Pollitz, Bürgmann, and
Banerjee</label><mixed-citation>
      
Pollitz, F. F., Bürgmann, R., and Banerjee, P.: Post-seismic relaxation
following the great 2004 Sumatra-Andaman earthquake on a compressible
self-gravitating Earth, Geophys. J. Int., 167, 397–420,
<a href="https://doi.org/10.1111/j.1365-246X.2006.03018.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2006.03018.x</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib83"><label>Powell et al.(2020)Powell, Gomez, Hay, Latychev, and
Mitrovica</label><mixed-citation>
      
Powell, E., Gomez, N., Hay, C., Latychev, K., and Mitrovica, J. X.: Viscous
effects in the solid Earth response to modern Antarctic ice mass flux:
Implications for geodetic studies of WAIS stability in a warming world,
J. Climate, 33, 443–459, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib84"><label>Rathgeber et al.(2016)Rathgeber, Ham, Mitchell, Lange, Luporini,
Mcrae, Bercea, Markall, Kelly, and London</label><mixed-citation>
      
Rathgeber, F., Ham, D. A., Mitchell, L., Lange, M., Luporini, F., Mcrae, A.
T. T., Bercea, G.-t., Markall, G. R., Kelly, P. H. J., and London, I. C.:
Firedrake: Automating the finite element method by composing abstractions,
ACM T. Math. Softw., 43, <a href="https://doi.org/10.1145/2998441" target="_blank">https://doi.org/10.1145/2998441</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib85"><label>Rundle(1982)</label><mixed-citation>
      
Rundle, J. B.: Deformation, gravity, and potential changes due to volcanic
loading of the crust, J. Geophys. Res.-Sol. Ea., 87,
10729–10744, 1982.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib86"><label>Scott(2025)</label><mixed-citation>
      
Scott, W.: G-ADOPT code and runscripts associated with “Automated forward and
adjoint modelling of viscoelastic deformation of the solid Earth”, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.17096074" target="_blank">https://doi.org/10.5281/zenodo.17096074</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib87"><label>Scott et al.(2026)Scott, Ghelichkhan, Kramer, Gibson, Davies,
Duvernay, and Roberts</label><mixed-citation>
      
Scott, W., Ghelichkhan, S., Kramer, S., Gibson, A., Davies, R., Duvernay, T.,
and Roberts, D.: g-adopt/g-adopt: Zenodo_20260306.0, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.18886888" target="_blank">https://doi.org/10.5281/zenodo.18886888</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib88"><label>Shapero et al.(2021)Shapero, Badgeley, Hoffman, and
Joughin</label><mixed-citation>
      
Shapero, D. R., Badgeley, J. A., Hoffman, A. O., and Joughin, I. R.: icepack: a new glacier flow modeling package in Python, version 1.0, Geosci. Model Dev., 14, 4593–4616, <a href="https://doi.org/10.5194/gmd-14-4593-2021" target="_blank">https://doi.org/10.5194/gmd-14-4593-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib89"><label>Simon et al.(2022)Simon, Riva, and Broerse</label><mixed-citation>
      
Simon, K. M., Riva, R. E., and Broerse, T.: Identifying geographical patterns
of transient deformation in the geological sea level record, J.
Geophys. Res.-Sol. Ea., 127, e2021JB023693, <a href="https://doi.org/10.1029/2021JB023693" target="_blank">https://doi.org/10.1029/2021JB023693</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib90"><label>Spada et al.(2004)Spada, Antonioli, Boschi, Boschi, Brandi, Cianetti,
Galvani, Giunchi, Perniola, Agostinetti, Piersanti, and
Stocchi</label><mixed-citation>
      
Spada, G., Antonioli, A., Boschi, L., Boschi, L., Brandi, V., Cianetti, S.,
Galvani, G., Giunchi, C., Perniola, B., Agostinetti, N. P., Piersanti, A.,
and Stocchi, P.: Modeling Earth's post-glacial rebound, Eos, T.
Am. Geophys. Un., 85, 62–64,
<a href="https://doi.org/10.1029/2004EO060007" target="_blank">https://doi.org/10.1029/2004EO060007</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib91"><label>Spada et al.(2011)Spada, Barletta, Klemann, Riva, Martinec,
Gasperini, Lund, Wolf, Vermeersen, and King</label><mixed-citation>
      
Spada, G., Barletta, V. R., Klemann, V., Riva, R. E. M., Martinec, Z.,
Gasperini, P., Lund, B., Wolf, D., Vermeersen, L. L. A., and King, M. A.: A
benchmark study for glacial isostatic adjustment codes, Geophys. J. Int., 185, 106–132, <a href="https://doi.org/10.1111/j.1365-246X.2011.04952.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2011.04952.x</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib92"><label>Tackley(2000)</label><mixed-citation>
      
Tackley, P. J.: Self-consistent generation of tectonic plates in
time-dependent, three-dimensional mantle convection simulations,
Geochem. Geophy. Geosy., 1, <a href="https://doi.org/10.1029/2000GC000036" target="_blank">https://doi.org/10.1029/2000GC000036</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib93"><label>Tanaka et al.(2011)Tanaka, Klemann, Martinec, and
Riva</label><mixed-citation>
      
Tanaka, Y., Klemann, V., Martinec, Z., and Riva, R.: Spectral-finite element
approach to viscoelastic relaxation in a spherical compressible Earth:
application to GIA modelling, Geophys. J. Int., 184,
220–234, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib94"><label>The ROL Project Team(2022)</label><mixed-citation>
      
The ROL Project Team: The ROL Project Website,
<a href="https://trilinos.github.io/rol.html" target="_blank"/> (last access: 6 March 2026), 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib95"><label>Tregoning et al.(2009)Tregoning, Ramillien, McQueen, and
Zwartz</label><mixed-citation>
      
Tregoning, P., Ramillien, G., McQueen, H., and Zwartz, D.: Glacial isostatic
adjustment and nonstationary signals observed by GRACE, J.
Geophys. Res.-Sol. Ea., 114, <a href="https://doi.org/10.1029/2008JB006161" target="_blank">https://doi.org/10.1029/2008JB006161</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib96"><label>Tromp et al.(2005)Tromp, Tape, and Liu</label><mixed-citation>
      
Tromp, J., Tape, C., and Liu, Q.: Seismic tomography, adjoint methods, time
reversal and banana-doughnut kernels, Geophys. J. Int., 160,
195–216, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib97"><label>van der Wal et al.(2010)van der Wal, Wu, Wang, and
Sideris</label><mixed-citation>
      
van der Wal, W., Wu, P., Wang, H., and Sideris, M. G.: Sea levels and uplift
rate from composite rheology in glacial isostatic adjustment modeling,
J. Geodynam., 50, 38–48, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib98"><label>Vermeersen and Mitrovica(2000)</label><mixed-citation>
      
Vermeersen, L. L. A. and Mitrovica, J. X.: Gravitational stability of spherical
self-gravitating relaxation models, Geophys. J. Int., 142,
351–360, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib99"><label>Weerdesteijn and Conrad(2024)</label><mixed-citation>
      
Weerdesteijn, M. F. and Conrad, C. P.: Recent ice melt above a mantle plume
track is accelerating the uplift of Southeast Greenland, Commun. Earth
Environ. 5, 791, <a href="https://doi.org/10.1038/s43247-024-01968-6" target="_blank">https://doi.org/10.1038/s43247-024-01968-6</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib100"><label>Weerdesteijn et al.(2023)Weerdesteijn, Naliboff, Conrad, Reusen,
Steffen, Heister, and Zhang</label><mixed-citation>
      
Weerdesteijn, M. F., Naliboff, J. B., Conrad, C. P., Reusen, J. M., Steffen,
R., Heister, T., and Zhang, J.: Modeling viscoelastic solid Earth
deformation due to ice age and contemporary glacial mass changes in ASPECT,
Geochem. Geophy. Geosy., 24, e2022GC010813, <a href="https://doi.org/10.1029/2022GC010813" target="_blank">https://doi.org/10.1029/2022GC010813</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib101"><label>Wilkinson et al.(2016)Wilkinson, Dumontier, Aalbersberg, Appleton,
Axton, Baak, Blomberg, Boiten, da Silva Santos, Bourne
et al.</label><mixed-citation>
      
Wilkinson, M. D., Dumontier, M., Aalbersberg, I. J., Appleton, G., Axton, M., Baak, A., Blomberg, N., Boiten, J.-W., da Silva Santos, L. B., Bourne, P. E., Bouwman, J., Brookes, A. J., Clark, T., Crosas, M., Dillo, I., Dumon, O., Edmunds, S., Evelo, C. T., Finkers, R., Gonzalez-Beltran, A., Gray, A. J. G., Groth, P., Goble, C., Grethe, J. S., Heringa, J., 't Hoen, P. A. C., Hooft, R., Kuhn, T., Kok, R., Kok, J., Lusher, S. J., Martone, M. E., Mons, A., Packer, A. L., Persson, B., Rocca-Serra, P., Roos, M., van Schaik, R., Sansone, S.-A., Schultes, E., Sengstag, T., Slater, T., Strawn, G., Swertz, M. A., Thompson, M., van der Lei, J., van Mulligen, E., Velterop, J., Waagmeester, A., Wittenburg, P., Wolstencroft, K., Zhao, J., and Mons, B.: The FAIR Guiding Principles for scientific data management and
stewardship, Sci. Data, 3, 1–9, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib102"><label>Wolf(1985)</label><mixed-citation>
      
Wolf, D.: The normal modes of a uniform, compressible Maxwell half-space,
J. Geophys., 56, 100–105, 1985.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib103"><label>Wu(1995)</label><mixed-citation>
      
Wu, P.: Can observations of postglacial rebound tell whether the rheology of
the mantle is linear or nonlinear?, Geophys. Res. Lett., 22,
1645–1648, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib104"><label>Wu(2004)</label><mixed-citation>
      
Wu, P.: Using commercial finite element packages for the study of earth
deformations, sea levels and the state of stress, Geophys. J. Int., 158, 401–408, <a href="https://doi.org/10.1111/j.1365-246X.2004.02338.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2004.02338.x</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib105"><label>Wu and Peltier(1982)</label><mixed-citation>
      
Wu, P. and Peltier, W. R.: Viscous gravitational relaxation, Geophys. J. Int., 70, 435–485,
<a href="https://doi.org/10.1111/j.1365-246X.1982.tb04976.x" target="_blank">https://doi.org/10.1111/j.1365-246X.1982.tb04976.x</a>, 1982.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib106"><label>Wu and van der Wal(2003)</label><mixed-citation>
      
Wu, P. and van der Wal, W.: Postglacial sealevels on a spherical,
self-gravitating viscoelastic Earth: Effects of lateral viscosity variations
in the upper mantle on the inference of viscosity contrasts in the lower
mantle, Earth   Planet. Sc. Lett., 211, 57–68, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib107"><label>Yamauchi and Takei(2016)</label><mixed-citation>
      
Yamauchi, H. and Takei, Y.: Polycrystal anelasticity at near-solidus
temperatures, J. Geophys. Res.-Sol. Ea., 121, 7790–7820,
2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib108"><label>Yu et al.(2025)Yu, Al-Attar, Syvret, and Lloyd</label><mixed-citation>
      
Yu, Z., Al-Attar, D., Syvret, F., and Lloyd, A. J.: Application of first-and
second-order adjoint methods to glacial isostatic adjustment incorporating
rotational feedbacks, Geophys. J. Int., 240, 329–348, 2025.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib109"><label>Zhong et al.(2003)Zhong, Paulson, and
Wahr</label><mixed-citation>
      
Zhong, S., Paulson, A., and Wahr, J.: Three-dimensional finite-element
modelling of Earth's viscoelastic deformation: effects of lateral
variations in lithospheric thickness, Geophys. J. Int., 155,
679–695, <a href="https://doi.org/10.1046/j.1365-246X.2003.02084.x" target="_blank">https://doi.org/10.1046/j.1365-246X.2003.02084.x</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib110"><label>Zhong et al.(2022)Zhong, Kang, A, and Qin</label><mixed-citation>
      
Zhong, S., Kang, K., A, G., and Qin, C.: CitcomSVE: A Three-Dimensional
Finite Element Software Package for Modeling Planetary
Mantle’s Viscoelastic Deformation in Response to Surface and
Tidal Loads, Geochem. Geophy. Geosy., 23, e2022GC010359,
<a href="https://doi.org/10.1029/2022GC010359" target="_blank">https://doi.org/10.1029/2022GC010359</a>,   2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib111"><label>Zwinger et al.(2020)Zwinger, Nield, Ruokolainen, and
King</label><mixed-citation>
      
Zwinger, T., Nield, G. A., Ruokolainen, J., and King, M. A.: A new open-source viscoelastic solid earth deformation module implemented in Elmer (v8.4), Geosci. Model Dev., 13, 1155–1164, <a href="https://doi.org/10.5194/gmd-13-1155-2020" target="_blank">https://doi.org/10.5194/gmd-13-1155-2020</a>, 2020.

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