<?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">TC</journal-id><journal-title-group>
    <journal-title>The Cryosphere</journal-title>
    <abbrev-journal-title abbrev-type="publisher">TC</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">The Cryosphere</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1994-0424</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/tc-20-6283-2026</article-id><title-group><article-title>SeidarT: an open-source full-waveform seismic and electromagnetic wave propagation modeling toolbox demonstrated in snow and ice</article-title><alt-title>SeidarT</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Bernsen</surname><given-names>Steven</given-names></name>
          <email>steven.bernsen@maine.edu</email>
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Gerbi</surname><given-names>Christopher</given-names></name>
          
        <ext-link>https://orcid.org/0000-0002-0619-4833</ext-link></contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2">
          <name><surname>Vel</surname><given-names>Senthil</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff3">
          <name><surname>Christianson</surname><given-names>Knut</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Campbell</surname><given-names>Seth</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>School of Earth and Climate Sciences, University of Maine, 5790 Bryand Global Sciences Center, Orono, Maine 04469, USA</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Department of Mechanical Engineering, University of Maine, Ferland Engineering Education and Design Center, Orono, Maine 04469, USA</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Earth and Space Sciences, University of Washington, 1707 NE Grant Lane, Seattle, Washington 98195, USA</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Steven Bernsen (steven.bernsen@maine.edu)</corresp></author-notes><pub-date><day>4</day><month>November</month><year>2026</year></pub-date>
      
      <volume>20</volume>
      <issue>11</issue>
      <fpage>6283</fpage><lpage>6308</lpage>
      <history>
        <date date-type="received"><day>11</day><month>March</month><year>2026</year></date>
           <date date-type="rev-request"><day>31</day><month>March</month><year>2026</year></date>
           <date date-type="rev-recd"><day>31</day><month>July</month><year>2026</year></date>
           <date date-type="accepted"><day>3</day><month>August</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Steven Bernsen 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://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026.html">This article is available from https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026.html</self-uri><self-uri xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026.pdf">The full text article is available as a PDF file from https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e134">We present <italic>SeidarT</italic>, an open-source, community-driven software package for full-waveform finite-difference time-domain (FDTD) modeling of elastic and electromagnetic wave propagation in heterogeneous, anisotropic, and attenuating media. <italic>SeidarT</italic> natively incorporates full-tensor anisotropy (all 21 stiffness coefficients), frequency-independent attenuation through a generalized <inline-formula><mml:math id="M1" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> formulation, and unified treatment of both seismic and electromagnetic wave physics on a simple Cartesian grid. The software prioritizes accessibility and extensibility by combining the computational efficiency of Fortran with the user-friendly scripting capabilities of Python. Model construction leverages an intuitive image-based geometry workflow and JSON project files, eliminating the need for complex mesh generation while allowing flexible specification of arbitrary stiffness or permittivity tensors, material distributions, and boundary conditions. We implement the Convolutional Perfectly Matched Layer (CPML) with explicit tuning strategies adapted for anisotropic media, and provide automatic stability checking via the Courant-Friedrichs-Lévy and wavenumber-bandlimit criteria. The software is validated against analytical solutions for elastic wave propagation and empirically constrained through comparison with ground-penetrating radar and seismic field observations in snow and ice. We document the physical property parameterizations for ice and snow as functions of temperature, pressure, and liquid water content, and provide multiple material homogenization schemes (Hill average, Gassmann substitution, Self-Consistent Approximation) to accommodate variable porosity and fluid saturation regimes. <italic>SeidarT</italic> is designed to lower economic and technical barriers for scientists, engineers, and students integrating sophisticated wave-physics simulations into workflows spanning cryospheric research, environmental monitoring, subsurface characterization, and civil infrastructure assessment. The open-source development model on GitHub and PyPI encourages community contributions and iterative improvements, positioning <italic>SeidarT</italic> as a versatile platform for advancing both fundamental understanding and applied geophysical imaging.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>Armament Research, Development and Engineering Center</funding-source>
<award-id>W913E523C0003</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="d2e165">Wave propagation modeling plays a central role across a wide range of disciplines – from exploration seismology using elastic  <xref ref-type="bibr" rid="bib1.bibx45 bib1.bibx64" id="paren.1"/> and environmental monitoring <xref ref-type="bibr" rid="bib1.bibx36" id="paren.2"/> to civil infrastructure assessment <xref ref-type="bibr" rid="bib1.bibx58 bib1.bibx5" id="paren.3"/> and planetary science <xref ref-type="bibr" rid="bib1.bibx16" id="paren.4"/> – by providing detailed insights into subsurface and structural properties that are otherwise inaccessible. Whether probing for groundwater reservoirs <xref ref-type="bibr" rid="bib1.bibx37" id="paren.5"/>, characterizing fracture networks in geothermal fields <xref ref-type="bibr" rid="bib1.bibx48" id="paren.6"/>, imaging buried archaeological sites <xref ref-type="bibr" rid="bib1.bibx72" id="paren.7"/>, or evaluating the integrity of concrete bridges <xref ref-type="bibr" rid="bib1.bibx46" id="paren.8"/>, elastic and electromagnetic waves offer non-invasive means of imaging and characterizing the subsurface. Numerical experiments are particularly valuable when direct measurements are impractical or hazardous, enabling parameter studies, sensitivity analyses, and synthetic data generation for developing advanced processing workflows, including machine-learning approaches in regions with sparse field observations <xref ref-type="bibr" rid="bib1.bibx89 bib1.bibx88" id="paren.9"/>.</p>
      <p id="d2e196">Numerical solvers for wave phenomena are ideal in situations where complex mathematics and modeling domains do not allow for analytical solutions, such as when heterogeneity, anisotropy, attenuation, or irregular boundaries make closed-form solutions intractable. Modeling approaches can be categorized using two different methods: (1) full waveform, which includes Finite Difference Time Domain (FDTD) <xref ref-type="bibr" rid="bib1.bibx61 bib1.bibx86 bib1.bibx56" id="paren.10"/>, Finite Element Method (FEM) <xref ref-type="bibr" rid="bib1.bibx91 bib1.bibx65" id="paren.11"/>, pseudo-spectral <xref ref-type="bibr" rid="bib1.bibx55" id="paren.12"/>, and spectral element methods <xref ref-type="bibr" rid="bib1.bibx57" id="paren.13"/>, and (2) ray tracing methods <xref ref-type="bibr" rid="bib1.bibx51 bib1.bibx84" id="paren.14"/>. Although ray tracing methods are computationally less expensive yet effective in modeling travel time of specific modes, full waveform techniques provide the elastodynamic response, capturing the time variability of wave phenomena <xref ref-type="bibr" rid="bib1.bibx8" id="paren.15"/>.</p>
      <p id="d2e218">Implementing full-waveform solvers in heterogeneous, anisotropic media poses significant challenges: meshing complex geometries for spectral or finite‐element schemes can become unwieldy, while high‐order finite differences must carefully balance accuracy, stability, and computational cost. In snow and ice, for example, preferred crystal‐orientation fabrics, varying water content, and thermal gradients introduce full‐tensor anisotropy and frequency-dependent attenuation that significantly alter both seismic and electromagnetic responses <xref ref-type="bibr" rid="bib1.bibx17 bib1.bibx7 bib1.bibx78 bib1.bibx73" id="paren.16"/>. Similar complexities arise in subsurface petroleum systems (fractured carbonates, shales), geotechnical investigations (i.e. seismic site amplification, reinforced concrete GPR imaging), anthropological/archaeological surveys (preferential artifact orientations, heterogeneous burial stratigraphy, disturbed sediments) and even biomedical ultrasound (i.e. anisotropic soft tissues), motivating a need for versatile modeling frameworks that can flexibly accommodate a variety of physical parameters and boundary conditions.</p>
      <p id="d2e224">In this work, we present <italic>SeidarT</italic>, an open-source FDTD code that natively incorporates full‐tensor anisotropy, frequency‐independent attenuation (via a generalized <inline-formula><mml:math id="M2" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula> formulation) <xref ref-type="bibr" rid="bib1.bibx54" id="paren.17"/>, and both seismic and electromagnetic wave physics within a unified, computationally efficient environment. Its design emphasizes simplicity of implementation – avoiding complex mesh generation – while allowing users to specify arbitrary stiffness or permittivity tensors, material distributions, and boundary conditions by coupling an image-based geometry and JSON project workflow. The software package is validated against analytical solutions and snow/ice-focused field observations, and includes explicit treatment of the Convolutional Perfectly Matched Layer (CPML) tuning and stability in anisotropic media with a focus on cryospheric applications. As computing power becomes increasingly accessible, <italic>SeidarT</italic> is designed to lower economic and technical barriers by providing a ready-to-use, extensible framework that scientists and engineers can integrate into workflows ranging from cryospheric research and hydrocarbon exploration to civil–environmental engineering.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Software Description</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Key Features and Architecture</title>
      <p id="d2e258"><italic>SeidarT</italic> is designed to enhance usability and performance in geophysical modeling, particularly for wave propagation in snow and ice environments. One of its key features is that it is open-source and hosted on GitHub, accompanied by robust documentation to support users in its implementation and development. Its architecture is designed to be open and extensible, making it easy to integrate with additional Python packages or other scripting languages as needed. The design philosophy follows a modular and flexible approach to cater to a wide range of geophysical applications and user skill sets. The core of the software is built around the staggered grid finite difference time domain (FDTD) method, which provides robust and accurate solutions for 4th order seismic and 2nd-order electromagnetic wave propagation.</p>
      <p id="d2e263">Model development in <italic>SeidarT</italic> leverages illustration software used to generate PDF and PNG files. There are open source tools such as <italic>GIMP</italic> and Inkscape, but the actual choice is the user's preference. This approach provides users with significant control over defining complex geometries, such as the varying sloped sidewalls and changes in ice facies found in glaciers. Programmatically defining such intricate geometries can be cumbersome and limiting, whereas using RGB values in raster based illustrations to identify different materials streamlines the process, allowing for more precise and versatile model creation.</p>
      <p id="d2e272">Models are organized in a JSON (JavaScript Object Notation) file <xref ref-type="bibr" rid="bib1.bibx18" id="paren.18"/> where users can define domain parameters, source locations, and the properties associated with the materials present within the domain. The use of JSON provides a readable platform, and this approach streamlines the setup and management of simulations, making it straightforward to configure and run their models.</p>
      <p id="d2e278">The software supports the calculation of bulk properties from Euler angle inputs for material fabrics, but material tensors can be manually input when available. Users can input text files from Electron Backscatter Diffraction (EBSD) directly into the program for material homogenization, employing three Euler angles for Bunge rotation (<inline-formula><mml:math id="M3" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M4" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M5" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>) <xref ref-type="bibr" rid="bib1.bibx20" id="paren.19"/> and fourth-order tensors. This allows for detailed incorporation of natural sample (i.e. ice core) observations, which can then be compared with Ground Penetrating Radar (GPR) and seismic observations, in order to provide correlation between observed and modeled data.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Workflow</title>
      <p id="d2e313">Building and creating a wave propagation model follows the simple image plus JSON workflow (Fig. <xref ref-type="fig" rid="F1"/>). A rectilinear Cartesian grid with uniform spacing along each coordinate direction, represented by a PNG image, establishes the simulation domain, where each pixel corresponds to an FDTD node and each color is automatically assigned an integer ID. This ID serves as a relational value that is later referenced in the model configuration to link material properties and wave parameters to regions in the grid. With the PNG defined, the user creates a JSON project file specifying domain attributes (dimensions, resolution), material settings (e.g., stiffness or permittivity and conductivity tensors), and model parameters (seismic or electromagnetic mode). Tensors can be supplied explicitly or generated, and for 2.5D simulations the <inline-formula><mml:math id="M6" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M7" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> plane properties are extruded in the <inline-formula><mml:math id="M8" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-direction with corresponding CPML settings.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e341">The general workflow tree for creating a wave propagation model and survey simultations. All of the simulations are supersets of the basic simulation. The common shot gather can be built post run making it possible to build different array configurations without rerunning the model.</p></caption>
          <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f01.png"/>

        </fig>

      <p id="d2e350">Only two files are strictly required to run a simulation: the JSON project file and the PNG image. At build time, the user specifies at least the number of time steps and source center frequency, and may optionally define initial conditions. <italic>SeidarT</italic> automatically checks that the grid spacing and velocity model satisfy the Courant–Friedrichs–Lewy (CFL) condition and chooses a stable time step <xref ref-type="bibr" rid="bib1.bibx26" id="paren.20"/>. Default CPML parameters are also initiated using in ranges provided by <xref ref-type="bibr" rid="bib1.bibx79" id="paren.21"/>, but these values can be tuned individually to improve boundary performance. While running the simulation, outputs are written either as Fortran unformatted binary files (<monospace>.dat</monospace>) at each time step or chunked block outputs compressed using Zstandard formatting <xref ref-type="bibr" rid="bib1.bibx24" id="paren.22"/>. This increases storage requirements with the tradeoff of preserving the full wavefield, allowing post hoc construction of arbitrary receiver arrays and extraction of particle-velocity or electric-field time series at any node, including dense virtual-sensor networks.</p>
      <p id="d2e369"><italic>SeidarT</italic> supports common-offset profiling by extending internal class variables to generate series of model runs. For common-offset surveys, a CSV file specifies paired source and receiver locations, with each row containing a source–receiver pair. Results from common shot gathers and common-offset surveys can be exported as pickle-formatted files and/or CSV files. Pickle files retain model parameters and metadata, time series, and derived products within a single object, while CSV output facilitates import into external signal-processing workflows. Receiver geometry for common-offset surveys is fixed for a given run, so changing array layout requires rerunning the survey, but the modular design makes it straightforward to set up, rerun, and analyze different acquisition scenarios.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Computational Framework</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Governing Equations</title>
      <p id="d2e391">Wave propagation refers to the manner in which elastic (seismic) or electromagnetic perturbations travel through often heterogeneous materials. Accurately capturing those waves – especially in anisotropic or attenuating media – requires a discretization strategy that resolves both fine‐scale interfaces and broad‐scale structures. While finite‐element (FEM) and spectral‐element (SEM) methods offer high accuracy per degree of freedom, they introduce substantial implementation complexity and often rely on external libraries. By contrast, a finite‐difference time‐domain (FDTD) approach, though computationally heavier, remains remarkably minimalist: it directly discretizes Maxwell's equations (for EM) or the elastodynamic equations (for seismic) on a simple Cartesian grid. This simplicity makes the codebase easier to inspect, modify, and extend.</p>
      <p id="d2e394">The FDTD approach has undergone continuous refinement to handle increasingly complex media and boundary conditions. Maxwell's equations or the equations of motion can be discretized using a grid where the electric and magnetic field (or stress and velocity) components are staggered in both space and time. The early work of <xref ref-type="bibr" rid="bib1.bibx86" id="text.23"/> laid a strong foundation with the development of velocity-stress finite-difference methods for horizontal shear wave propagation. By introducing a staggered‐grid formulation, <xref ref-type="bibr" rid="bib1.bibx86" id="text.24"/> was able to discretize both velocity and stress without artificially smoothing internal boundaries, computing each component so that it is centered between neighboring components. During each time step, the velocity from the previous step is first used to update the current stress, and this updated stress is then used to compute the current velocity before advancing to the next time step. His method was based on the first‐order hyperbolic system for SH‐wave propagation and became the prototype for many later FDTD schemes.</p>
      <p id="d2e403">Implementation of Maxwell's equations and the elastic wave equation follow similar approaches and we will lay out both sequentially. To derive the staggered‐grid formulation, we start from the continuous constitutive relations that couple stress to particle velocity in an elastic medium. The generalized form for the constitutive equations of motion <xref ref-type="bibr" rid="bib1.bibx60" id="paren.25"/> is

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M9" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E1"><mml:mtd><mml:mtext>1</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E2"><mml:mtd><mml:mtext>2</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="italic">ρ</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>u</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M10" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula> is the Cauchy stress tensor, <inline-formula><mml:math id="M11" display="inline"><mml:mi mathvariant="double-struck">C</mml:mi></mml:math></inline-formula> is the 4th-order stiffness tensor, <inline-formula><mml:math id="M12" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> is the density, <inline-formula><mml:math id="M13" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is displacement, and <inline-formula><mml:math id="M14" display="inline"><mml:mi mathvariant="bold-italic">γ</mml:mi></mml:math></inline-formula> describes viscoelastic attenuation. Sources are prescribed either as stress-type moment-tensor terms (e.g., double couple, CLVD, explosive)

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M15" display="block"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the moment tensor and <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> denotes a point source at location <inline-formula><mml:math id="M18" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, or as equivalent body forces

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M19" display="block"><mml:mrow><mml:msubsup><mml:mi>F</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="bold-italic">x</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>e</mml:mi><mml:mo stretchy="false" mathvariant="normal">^</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the <inline-formula><mml:math id="M21" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th unit basis vector. The source wavelet <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> may be chosen from a range of user-defined functions (e.g., Gaussian pulse, Ricker, higher-order Gaussian derivatives, multi-modal sweeps, chirps), allowing the incident spectrum and time–frequency content to be tailored to a given application. Finite-difference expansions of Eqs. (<xref ref-type="disp-formula" rid="Ch1.E1"/>)–(<xref ref-type="disp-formula" rid="Ch1.E2"/>) follow standard staggered-grid formulations <xref ref-type="bibr" rid="bib1.bibx86" id="paren.26"/>, and in <italic>SeidarT</italic> we employ a 2nd-order stencil on the staggered grids to obtain an overall 4th-order scheme in space.</p>
      <p id="d2e834">The finite difference expansion of Eqs. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) and (<xref ref-type="disp-formula" rid="Ch1.E2"/>) are relatively straightforward at this point and can be referred to in more detail in <xref ref-type="bibr" rid="bib1.bibx86" id="text.27"/>. This approach ensured that both the stress and velocity fields are modeled in heterogeneous media with a minimum of 2nd-order accuracy in both time and space. We have applied a 2nd-order finite difference stencil to both grids to provide a 4th-order modeling scheme.</p>
      <p id="d2e845">Attenuation is modeled through the amplitude decay of a wave traveling distance <inline-formula><mml:math id="M23" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> from a directional source with initial amplitude <inline-formula><mml:math id="M24" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx4" id="paren.28"/>

            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M25" display="block"><mml:mrow><mml:mi mathvariant="bold">A</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">A</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi mathvariant="bold-italic">α</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M26" display="inline"><mml:mi mathvariant="bold-italic">α</mml:mi></mml:math></inline-formula> is a 2nd-order tensor with components applied component-wise in a chosen coordinate frame,

            <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M27" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi>c</mml:mi></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Here <inline-formula><mml:math id="M28" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> is frequency, <inline-formula><mml:math id="M29" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula> is phase velocity, and <inline-formula><mml:math id="M30" display="inline"><mml:mi mathvariant="bold">Q</mml:mi></mml:math></inline-formula> is the quality factor, which is often treated as frequency independent over limited bandwidths <xref ref-type="bibr" rid="bib1.bibx54 bib1.bibx38 bib1.bibx2" id="paren.29"/>. In the most general case, the attenuation tensor <inline-formula><mml:math id="M31" display="inline"><mml:mi mathvariant="bold-italic">γ</mml:mi></mml:math></inline-formula> is 4th-order and couples relaxation of all stress components. For computational efficiency and stability, we assume component-wise relaxation and reduce <inline-formula><mml:math id="M32" display="inline"><mml:mi mathvariant="bold-italic">γ</mml:mi></mml:math></inline-formula> to a 2nd-order tensor while retaining the ability to represent direction- and mode-dependent attenuation in the materials of interest.</p>
      <p id="d2e995">Electromagnetic wave propagation is described by a parallel structure governed by Maxwell's equations <xref ref-type="bibr" rid="bib1.bibx23 bib1.bibx79" id="paren.30"/>. Faraday's law,

            <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M33" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">H</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          relates spatial gradients of the electric field <inline-formula><mml:math id="M34" display="inline"><mml:mi mathvariant="bold-italic">E</mml:mi></mml:math></inline-formula> to temporal changes in the magnetic field <inline-formula><mml:math id="M35" display="inline"><mml:mi mathvariant="bold-italic">H</mml:mi></mml:math></inline-formula>, where <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the Levi-Civita symbol and <inline-formula><mml:math id="M37" display="inline"><mml:mi mathvariant="bold-italic">μ</mml:mi></mml:math></inline-formula> is the magnetic permeability tensor. Ampère's law for a lossy medium,

            <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M38" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">H</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="bold-italic">E</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>J</mml:mi><mml:mi>i</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msubsup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          introduces the conductivity tensor <inline-formula><mml:math id="M39" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula>, permittivity tensor <inline-formula><mml:math id="M40" display="inline"><mml:mi mathvariant="bold-italic">ε</mml:mi></mml:math></inline-formula>, and source term <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">J</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula>, which is treated analogously to the body-force source in Eq. (<xref ref-type="disp-formula" rid="Ch1.E4"/>). For many non-magnetic materials and in air–ice–water mixtures relevant to cryospheric studies, the magnetic permeability tensor is isotropic and close to that of free space, allowing us to set <inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">δ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> without loss of generality. In this lossy, anisotropic medium, wave attenuation is fundamentally captured by the conductivity tensor <inline-formula><mml:math id="M43" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula>. For a given frequency, <inline-formula><mml:math id="M44" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula> maps directly to the amplitude attenuation vector <inline-formula><mml:math id="M45" display="inline"><mml:mi mathvariant="bold-italic">α</mml:mi></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E5"/>), where an increase in conductivity fundamentally dictates a higher spatial attenuation constant.</p>
      <p id="d2e1241">The numerical implementation of electromagnetic wave propagation and seismic wave propagation follows very similar approaches. While the equations of motion and Maxwell's equations describe different physical phenomena, they share structural similarities since they are both systems of partial differential equations; thus, they can be decomposed similarly into their respective finite-difference approximations. The primary difference between them is the material properties (i.e. stiffness and permittivity) that relate the stress and velocity fields or the electric and magnetic fields.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Absorbing Boundary</title>
      <p id="d2e1252">To suppress artificial reflections from the outer model boundaries, <italic>SeidarT</italic> uses a Convolutional Perfectly Matched Layer (CPML) formulation <xref ref-type="bibr" rid="bib1.bibx79 bib1.bibx56 bib1.bibx68 bib1.bibx69 bib1.bibx67" id="paren.31"/>. Without an absorbing layer, outgoing waves reflect at the domain limits and contaminate the interior solution <xref ref-type="bibr" rid="bib1.bibx79 bib1.bibx56 bib1.bibx67" id="paren.32"/>. CPML extends the classical PML <xref ref-type="bibr" rid="bib1.bibx25 bib1.bibx79" id="paren.33"/> by introducing complex-frequency stretching and recursive convolution terms to improve damping of grazing and evanescent waves, especially in anisotropic media.</p>
      <p id="d2e1267">Following <xref ref-type="bibr" rid="bib1.bibx79" id="text.34"/>, the CPML parameters along each Cartesian direction <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>∈</mml:mo><mml:mo mathvariant="italic">{</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi><mml:mo mathvariant="italic">}</mml:mo></mml:mrow></mml:math></inline-formula> are defined as 

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M47" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E9"><mml:mtd><mml:mtext>9</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi>d</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mi>m</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E10"><mml:mtd><mml:mtext>10</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi>d</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>n</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E11"><mml:mtd><mml:mtext>11</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:msup><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi>d</mml:mi></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>n</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M48" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula> is the CPML thickness, <inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula> is the distance from the inner CPML interface into the layer, <inline-formula><mml:math id="M50" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M51" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> are grading exponents, and <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> control the strength and distribution of damping. We can then compute the auxiliary coefficients

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M55" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E12"><mml:mtd><mml:mtext>12</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>d</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mi>exp⁡</mml:mi><mml:mfenced open="[" close="]"><mml:mrow><mml:mo>-</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          to be implemented into recursive convolution memory variable. Large <inline-formula><mml:math id="M56" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M57" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> push most attenuation toward the outer edge of the CPML, which is desirable for long wavelengths, whereas smaller exponents concentrate damping closer to the physical domain.</p>
      <p id="d2e1660">For electromagnetic simulations, <xref ref-type="bibr" rid="bib1.bibx79" id="text.35"/> relate <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> to the desired reflection coefficient via

            <disp-formula id="Ch1.E14" content-type="numbered"><label>14</label><mml:math id="M59" display="block"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mo>min⁡</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><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:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mspace width="2em" linebreak="nobreak"/><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msub><mml:mi>s</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">μ</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M61" 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> are the permeability and permittivity of free space, respectively, and <inline-formula><mml:math id="M62" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> is an <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> tuning factor. Values in the ranges <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mn mathvariant="normal">5</mml:mn><mml:mo>≤</mml:mo><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:mn mathvariant="normal">0.9</mml:mn><mml:mo>≤</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> typically achieve reflection levels on the order of <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">60</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">70</mml:mn></mml:mrow></mml:math></inline-formula> dB <xref ref-type="bibr" rid="bib1.bibx79" id="paren.36"/>. <xref ref-type="bibr" rid="bib1.bibx30" id="text.37"/> further recommend choosing

            <disp-formula id="Ch1.E15" content-type="numbered"><label>15</label><mml:math id="M68" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          with <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ω</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> the dominant angular frequency of the source. In <italic>SeidarT</italic>, we introduce an additional scaling factor <inline-formula><mml:math id="M70" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula> and, for the EM case, rescale by <inline-formula><mml:math id="M71" 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> to remain consistent with the use of relative permittivity, giving

            <disp-formula id="Ch1.E16" content-type="numbered"><label>16</label><mml:math id="M72" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mi mathvariant="italic">π</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="italic">γ</mml:mi><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:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e1951">For seismic simulations, the same functional forms are used for <inline-formula><mml:math id="M73" 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> and <inline-formula><mml:math id="M74" 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>, while <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> is adapted to the elastic case by incorporating the reflection coefficient <inline-formula><mml:math id="M76" display="inline"><mml:mi mathvariant="normal">Γ</mml:mi></mml:math></inline-formula> and a quasi–pressure-wave speed <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx30" id="paren.38"/>:

            <disp-formula id="Ch1.E17" content-type="numbered"><label>17</label><mml:math id="M78" display="block"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mo>-</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi>e</mml:mi><mml:mi mathvariant="normal">Γ</mml:mi></mml:msup><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>d</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          In anisotropic media, <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo stretchy="false" mathvariant="normal">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is evaluated from the largest diagonal stiffness components (i.e., the dominant “P-like” speed) because the true pressure mode no longer propagates with a single isotropic velocity.</p>
      <p id="d2e2079">Although <italic>SeidarT</italic> supplies reasonable default values for <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M82" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula>, and <inline-formula><mml:math id="M83" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula>, performance can be further tuned. Roughly: <list list-type="bullet"><list-item>
      <p id="d2e2124"><inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> reduces CPML to a classical PML, degrading damping for grazing and low-frequency waves, whereas large <inline-formula><mml:math id="M85" 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> effectively thickens the layer but may introduce dispersion if chosen too high.</p></list-item><list-item>
      <p id="d2e2153"><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:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> leaves low-frequency reflections, while large <inline-formula><mml:math id="M87" 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> eliminates them at the cost of waveform smearing or potential instability.</p></list-item><list-item>
      <p id="d2e2182">Too small <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> (or <inline-formula><mml:math id="M89" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula>) yields insufficient attenuation and visible boundary echoes; too large values create sharp impedance contrasts and spurious reflections inside the CPML.</p></list-item></list> The defaults are chosen to work well for typical snow and ice models, but complex geometries or strong anisotropy may require modest adjustments to these parameters.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Stability Conditions</title>
      <p id="d2e2212">The explicit staggered-grid schemes in <italic>SeidarT</italic> must satisfy both a Courant–Friedrichs–Lewy (CFL) condition and a wavenumber-bandlimit criterion to ensure stability and accuracy. For a maximum wave speed <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> on a grid with minimum spacing <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula> in <inline-formula><mml:math id="M92" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula> dimensions, the CFL condition <xref ref-type="bibr" rid="bib1.bibx26" id="paren.39"/> is

            <disp-formula id="Ch1.E18" content-type="numbered"><label>18</label><mml:math id="M93" display="block"><mml:mrow><mml:mtext>CFL</mml:mtext><mml:mo>≤</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          A standard von Neumann stability analysis of the 2nd-order explicit scheme for the scalar wave equation yields a quadratic constraint on the directional Courant numbers as <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msubsup><mml:mo>∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>D</mml:mi></mml:msubsup><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> <xref ref-type="bibr" rid="bib1.bibx83" id="paren.40"/> where <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. For a uniform grid with <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mtext>CFL</mml:mtext></mml:mrow></mml:math></inline-formula> this reduces to <inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">λ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mi>D</mml:mi></mml:msqrt></mml:mrow></mml:math></inline-formula>, which is the default choice when initiating a model. The time step is computed from Eq. (<xref ref-type="disp-formula" rid="Ch1.E18"/>), and when more stability is needed or non-uniform grid spacing across axes, the default CFL can be redefined to an appropriate value.</p>
      <p id="d2e2385">In addition to the CFL limit, the wavenumber-bandlimit criterion <xref ref-type="bibr" rid="bib1.bibx85" id="paren.41"/>

            <disp-formula id="Ch1.E19" content-type="numbered"><label>19</label><mml:math id="M98" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mtext>max</mml:mtext></mml:msub><mml:mo>≤</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:mn mathvariant="normal">4</mml:mn><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          is checked to avoid spatial aliasing of the shortest resolved wavelengths where <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:msub><mml:mi>u</mml:mi><mml:mtext>min</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the minimum relevant phase velocity and <inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the central frequency of the source. This condition ensures at least four grid points per smallest propagating wavelength. Violating the CFL condition typically produces severe numerical instability and exponential amplitude growth, whereas violating the bandlimit criterion leads to phase errors, dispersion, and spurious modes. <italic>SeidarT</italic> checks Eqs. (<xref ref-type="disp-formula" rid="Ch1.E18"/>) and (<xref ref-type="disp-formula" rid="Ch1.E19"/>) suggests a maximum allowable spatial step. If numerical dispersion or artifacts appear near the high-frequency end of the modeled band, users can either refine the grid (reducing <inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>) or decrease the CFL to introduce additional temporal safety margin.</p>
      <p id="d2e2464">Discretization of the model domain on a rectilinear grid produces staircased artifacts at non-axis-aligned material boundaries, introducing a numerical error that is distinct from, and independent of, a poorly tuned CFL (Eq. <xref ref-type="disp-formula" rid="Ch1.E18"/>) or wavenumber-bandlimit (Eq. <xref ref-type="disp-formula" rid="Ch1.E19"/>) criterion. Staircase discretization introduces an error of <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> concentrated at the boundary that decays exponentially with the number of grid cells away from the interface, in addition to an <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:mi mathvariant="script">O</mml:mi><mml:mo>(</mml:mo><mml:mi>h</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> phase error in the effective reflection coefficient <xref ref-type="bibr" rid="bib1.bibx41" id="paren.42"/>. This error is most severe for interfaces oriented near <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:mn mathvariant="normal">45</mml:mn><mml:mi mathvariant="italic">°</mml:mi></mml:mrow></mml:math></inline-formula> to the grid axes and vanishes for grid-aligned boundaries <xref ref-type="bibr" rid="bib1.bibx22" id="paren.43"/>. Consequently, achieving accuracy comparable to a smoothly represented boundary can require grid spacing 2–4 times finer than the wavenumber-bandlimit criterion alone would dictate <xref ref-type="bibr" rid="bib1.bibx28" id="paren.44"/>. A stable solution does not guarantee a geometrically or physically well-posed one, and results should be checked against independent resolution or convergence tests before quantitative interpretation.</p>
</sec>
<sec id="Ch1.S3.SS4">
  <label>3.4</label><title>Orientation</title>
      <p id="d2e2527">Given a specific crystal system (i.e cubic, hexagonal, etc.) many of the terms in Eq. (<xref ref-type="disp-formula" rid="Ch1.E1"/>) are zero due to coefficients in <inline-formula><mml:math id="M105" display="inline"><mml:mi mathvariant="double-struck">C</mml:mi></mml:math></inline-formula> being zero. However, anisotropy, heterogeneities, and preferred crystal orientation fabrics (PCOF) have been observed in glacier systems and are shown to have significant impacts on the flow dynamics of glaciers <xref ref-type="bibr" rid="bib1.bibx6 bib1.bibx78 bib1.bibx35 bib1.bibx42 bib1.bibx74" id="paren.45"/>, therefore we consider the bulk effective medium of snow and ice in our numerical implementation which, as a circumstance, produces stiffness tensors that exhibit lower symmetry.</p>
      <p id="d2e2542">For reasons of being computationally fast and easy to implement while maintaining an acceptable degree of accuracy <xref ref-type="bibr" rid="bib1.bibx14" id="paren.46"/>, we use the Hill average which is the arithmetic mean from <xref ref-type="bibr" rid="bib1.bibx87" id="text.47"/> and <xref ref-type="bibr" rid="bib1.bibx77" id="text.48"/> upper and lower bounds, respectively, in order to calculate the bulk effective medium <xref ref-type="bibr" rid="bib1.bibx43 bib1.bibx66" id="paren.49"/>. For 2nd-order tensor, as seen in the electromagnetic constitutive equations (Eqs. <xref ref-type="disp-formula" rid="Ch1.E7"/> and <xref ref-type="disp-formula" rid="Ch1.E8"/>), we can compute the bulk permittivity and conductivity tensors from rotation matrices derived from the Euler angles – <inline-formula><mml:math id="M106" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M107" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M108" display="inline"><mml:mi mathvariant="italic">ψ</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e2583">The orientation of a crystal relative to a reference coordinate system can be described by a rotation matrix. A rotation matrix can be formed in a variety of ways (e.g. roll, pitch, yaw), but for simplicity and commonality we can consider the Bunge (<inline-formula><mml:math id="M109" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M110" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M111" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>) Euler angle rotation <xref ref-type="bibr" rid="bib1.bibx20" id="paren.50"/>. For the rotation about each of the three axes for a given angle <inline-formula><mml:math id="M112" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> we have 

            <disp-formula id="Ch1.E20" content-type="numbered"><label>20</label><mml:math id="M113" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>sin⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          therefore, the <inline-formula><mml:math id="M114" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M115" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M116" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> rotator is matrix product of the three rotation matrices of 3 independent angles

            <disp-formula id="Ch1.E21" content-type="numbered"><label>21</label><mml:math id="M117" display="block"><mml:mrow><mml:mi mathvariant="bold">R</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:msub><mml:mi mathvariant="bold">R</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          and rotation of a <inline-formula><mml:math id="M118" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> tensor follows as

            <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M119" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="bold">T</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="bold">RTR</mml:mi><mml:mo>⊤</mml:mo></mml:msup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Thus we can compute the Voigt and Reuss tensors, <inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Voigt</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M121" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Reuss</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> approximations from

                <disp-formula specific-use="align" content-type="numbered"><mml:math id="M122" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E23"><mml:mtd><mml:mtext>23</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Voigt</mml:mtext></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E24"><mml:mtd><mml:mtext>24</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Reuss</mml:mtext><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mi>n</mml:mi></mml:mfrac></mml:mstyle><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:msub><mml:mi mathvariant="italic">ν</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msubsup><mml:mi mathvariant="bold">T</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E25"><mml:mtd><mml:mtext>25</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Hill</mml:mtext></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Voigt</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="bold">T</mml:mi><mml:mtext>Reuss</mml:mtext></mml:msub></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

          where <inline-formula><mml:math id="M123" display="inline"><mml:mi mathvariant="italic">ν</mml:mi></mml:math></inline-formula> is the fractional volume of the crystal <xref ref-type="bibr" rid="bib1.bibx87 bib1.bibx77 bib1.bibx20" id="paren.51"/>.</p>
      <p id="d2e3105">For a 2nd-order tensor such as the permittivity tensor, rotation and bulk effective estimation, Eqs. (<xref ref-type="disp-formula" rid="Ch1.E22"/>)–(<xref ref-type="disp-formula" rid="Ch1.E25"/>) can easily be applied. However, rotation of the stiffness tensor requires additional steps to compute bulk effective estimates. For a <inline-formula><mml:math id="M124" display="inline"><mml:mrow><mml:mn mathvariant="normal">6</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> matrix rotation such as those required for the stiffness and compliance tensor, it can be shown that

            <disp-formula id="Ch1.E26" content-type="numbered"><label>26</label><mml:math id="M125" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi><mml:mi>r</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>

          although, for brevity, we will revert to the simplification from <xref ref-type="bibr" rid="bib1.bibx15" id="text.52"/> who provided a more computationally efficient and concise description of the rotation matrix needed for a <inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:mn mathvariant="normal">6</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">6</mml:mn></mml:mrow></mml:math></inline-formula> rotation. The Bond matrix is thus written as

            <disp-formula id="Ch1.E27" content-type="numbered"><label>27</label><mml:math id="M127" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="bold">B</mml:mi><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">32</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">31</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">23</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">22</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">21</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

          Likewise, for the rotation of the compliance matrix, as a consequence of the properties of orthogonal matrices, we can avoid computing the inverse and simply apply the transpose inverse bond matrix, <inline-formula><mml:math id="M128" display="inline"><mml:mi mathvariant="bold">N</mml:mi></mml:math></inline-formula>, such that

            <disp-formula id="Ch1.E28" content-type="numbered"><label>28</label><mml:math id="M129" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="double-struck">S</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="bold">N</mml:mi><mml:mi mathvariant="double-struck">S</mml:mi><mml:msup><mml:mi mathvariant="bold">N</mml:mi><mml:mo>⊤</mml:mo></mml:msup></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:mi mathvariant="double-struck">S</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> is the compliance matrix.</p>
      <p id="d2e3813">Estimating the isotropic tensor from a single anisotropic crystal can follow two approaches. One method involves applying rotations from Euler angles to generate a large population of crystal orientations, which must reach extremely high numbers to effectively converge to the isotropic case. However, this approach is computationally intensive and can be approximated more efficiently. For a transversely isotropic material, the shear and bulk moduli can be extracted directly from the stiffness coefficients. Under the Voigt approximation, the effective shear modulus is simply the arithmetic mean of the shear components <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">44</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">66</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, while the effective bulk modulus is given by <xref ref-type="bibr" rid="bib1.bibx27" id="paren.53"/>

            <disp-formula id="Ch1.E29" content-type="numbered"><label>29</label><mml:math id="M133" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">Voigt</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">44</mml:mn></mml:msub><mml:mo>/</mml:mo><mml:mn mathvariant="normal">6</mml:mn><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          Similarly, the Reuss effective shear and bulk moduli can be calculated from the compliance tensor.</p>
<sec id="Ch1.S3.SS4.SSS1">
  <label>3.4.1</label><title>Permittivity of Ice and Snow</title>
      <p id="d2e3907">For a pure, single crystal of ice, the real permittivity – denoted <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to indicate the relative permittivity – can first be related to its density, <inline-formula><mml:math id="M135" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> (in kg m<sup>−3</sup>), via the empirical fit of <xref ref-type="bibr" rid="bib1.bibx59" id="text.54"/>

              <disp-formula id="Ch1.E30" content-type="numbered"><label>30</label><mml:math id="M137" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.845</mml:mn><mml:mo>⋅</mml:mo><mml:mi mathvariant="italic">ρ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></disp-formula>

            At microwave and higher frequencies, however, ice is a lossy dielectric, and its permittivity must be treated as a complex quantity <xref ref-type="bibr" rid="bib1.bibx31 bib1.bibx32 bib1.bibx70" id="paren.55"/>

              <disp-formula id="Ch1.E31" content-type="numbered"><label>31</label><mml:math id="M138" display="block"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∗</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:mi>j</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>

            Because ice is anisotropic (hexagonal crystal), the complex permittivity takes a diagonal tensor form in the crystal coordinate frame, with one value parallel to the <inline-formula><mml:math id="M139" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula>-axis and one perpendicular

              <disp-formula id="Ch1.E32" content-type="numbered"><label>32</label><mml:math id="M140" display="block"><mml:mrow><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo><mml:mo>∗</mml:mo></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo><mml:mo>∗</mml:mo></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo><mml:mo>∗</mml:mo></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:math></disp-formula>

            The real part <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> shows a slight, nearly linear increase with temperature, <inline-formula><mml:math id="M142" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula> (in °C) <xref ref-type="bibr" rid="bib1.bibx31" id="paren.56"/>

              <disp-formula id="Ch1.E33" content-type="numbered"><label>33</label><mml:math id="M143" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3.1884</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">9.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:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The difference in the extraordinary-ordinary real permittivity, <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo><mml:mo>′</mml:mo></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo><mml:mo>′</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula>, is temperature dependent with the following relationship <xref ref-type="bibr" rid="bib1.bibx31" id="paren.57"/>

              <disp-formula id="Ch1.E34" content-type="numbered"><label>34</label><mml:math id="M145" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mo>′</mml:mo></mml:msubsup><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.0256</mml:mn><mml:mo>±</mml:mo><mml:mn mathvariant="normal">0.00137</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">3.57</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:mo>(</mml:mo><mml:mn mathvariant="normal">6.0</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:mo>)</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:math></disp-formula>

            Computing the imaginary part of the permittivity – <xref ref-type="bibr" rid="bib1.bibx32" id="text.58"/> solved the following set of equations based on data from <xref ref-type="bibr" rid="bib1.bibx49" id="text.59"/>

              <disp-formula id="Ch1.E35" content-type="numbered"><label>35</label><mml:math id="M146" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>A</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mi>f</mml:mi></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mi>B</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>

            such that <inline-formula><mml:math id="M147" display="inline"><mml:mi>A</mml:mi></mml:math></inline-formula> describes Debye relaxation, the second term containing <inline-formula><mml:math id="M148" display="inline"><mml:mi>B</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M149" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula> corresponds to infrared absorption.</p>
      <p id="d2e4317">When moving from the simple case of a single ice crystal to the naturally occurring polyphase material of ice found in snowpacks, the complexity of electrical permittivity increases substantially. Snow often incorporates air pockets and liquid water inclusions among an ice matrix, and as a result, depends on key physical parameters. Among these are the liquid water content (LWC), the dry snow density (<inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and the temperature (<inline-formula><mml:math id="M151" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>) of the material.</p>
      <p id="d2e4338">Multiple models have been developed to quantify the dependence of permittivity on these factors. From <xref ref-type="bibr" rid="bib1.bibx82" id="text.60"/>, we have the expression for the real permittivity

              <disp-formula id="Ch1.E36" content-type="numbered"><label>36</label><mml:math id="M152" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8.8</mml:mn><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">LWC</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">70.4</mml:mn><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="normal">LWC</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1.17</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.7</mml:mn><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:math></disp-formula>

            which incorporates both linear and quadratic terms in the LWC and <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, highlighting their non-linear influence on permittivity. The corresponding expression for the loss factor (imaginary component), accounting for frequency dependence, was empirically derived as: and the complex permittivity

              <disp-formula id="Ch1.E37" content-type="numbered"><label>37</label><mml:math id="M154" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi>f</mml:mi><mml:mrow><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle><mml:mo mathsize="2.0em">(</mml:mo><mml:mn mathvariant="normal">0.9</mml:mn><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">LWC</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.72</mml:mn><mml:mo>⋅</mml:mo><mml:msup><mml:mi mathvariant="normal">LWC</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo mathsize="2.0em">)</mml:mo></mml:mrow></mml:math></disp-formula>

            Similarly, according to the Wise Snow Liquid Water Content Sensor User Manual <xref ref-type="bibr" rid="bib1.bibx1" id="paren.61"/>

              <disp-formula id="Ch1.E38" content-type="numbered"><label>38</label><mml:math id="M155" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1.202</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.983</mml:mn><mml:mo>⋅</mml:mo><mml:msubsup><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mn mathvariant="normal">21.4</mml:mn><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">LWC</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e4517">The permittivity of snow near its melting point becomes dominated by the presence of liquid water. Measuring the liquid water content in situ can be challenging due to technical limitations and complexities involved. To address this, alternative models have been proposed that relate permittivity directly to temperature facilitating precise measurements of the LWC. <xref ref-type="bibr" rid="bib1.bibx62" id="text.62"/> provide us with:

              <disp-formula id="Ch1.E39" content-type="numbered"><label>39</label><mml:math id="M156" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">77.66</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">103.3</mml:mn><mml:mo>⋅</mml:mo><mml:mo mathsize="2.0em">(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">300</mml:mn><mml:mi>T</mml:mi></mml:mfrac></mml:mstyle><mml:mo mathsize="2.0em">)</mml:mo></mml:mrow></mml:math></disp-formula>

            allowing temperature to serve as a proxy for the influence of water within the snow pack. Expanding on this, <xref ref-type="bibr" rid="bib1.bibx50" id="text.63"/> formulated a higher-order temperature-dependent model

              <disp-formula id="Ch1.E40" content-type="numbered"><label>40</label><mml:math id="M157" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mi mathvariant="normal">r</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">78.51</mml:mn><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.579</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">3</mml:mn></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">298</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1.19</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:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">298</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8</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">8</mml:mn></mml:mrow></mml:msup><mml:mo>⋅</mml:mo><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">298</mml:mn><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            enabling accurate prediction of permittivity across a wider thermal range without direct liquid water content measurement.</p>
      <p id="d2e4683">Equations (<xref ref-type="disp-formula" rid="Ch1.E36"/>) and (<xref ref-type="disp-formula" rid="Ch1.E37"/>) are incorporated in <italic>SeidarT</italic> as the default because they account for both the real and imaginary components, but they may not be appropriate in some situations. Their empirical calibration is limited in snow density, liquid water content, and frequency, and they may neglect some microstructural and temperature-dependent effects, so it is up to the user to decide when alternative parameterization should be used. To ensure accurate treatment of liquid water contributions, temperature corrections are applied to the density of water using the well-established Kell equation <xref ref-type="bibr" rid="bib1.bibx53" id="paren.64"/>.</p>
</sec>
<sec id="Ch1.S3.SS4.SSS2">
  <label>3.4.2</label><title>Ice Stiffness</title>
      <p id="d2e4704">The stiffness coefficients for a single ice crystal are presented by <xref ref-type="bibr" rid="bib1.bibx33" id="text.65"/> with units in bars as:

                  <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M158" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E41"><mml:mtd><mml:mtext>41</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">148.389</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4.7546</mml:mn><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.1307</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">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2.8941</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">1</mml:mn></mml:mrow></mml:msup><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.7827</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">3</mml:mn></mml:mrow></mml:msup><mml:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E42"><mml:mtd><mml:mtext>42</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">72.639</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">7.2109</mml:mn><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.7096</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">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.4673</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">1</mml:mn></mml:mrow></mml:msup><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">9.0362</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E43"><mml:mtd><mml:mtext>43</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">61.445</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">8.4732</mml:mn><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4.2016</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">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.1916</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">7.3120</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E44"><mml:mtd><mml:mtext>44</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">157.960</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2.8083</mml:mn><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.2510</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">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mn mathvariant="normal">3.112910</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msup><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.8948</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">3</mml:mn></mml:mrow></mml:msup><mml:mi>T</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E45"><mml:mtd><mml:mtext>45</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">44</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">29.490</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.5055</mml:mn><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.2677</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">2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.2874</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">2</mml:mn></mml:mrow></mml:msup><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3.8956</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:mi>T</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            and by <xref ref-type="bibr" rid="bib1.bibx76" id="text.66"/> such that

                  <disp-formula specific-use="align" content-type="numbered"><mml:math id="M159" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E46"><mml:mtd><mml:mtext>46</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">11.0</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.4</mml:mn><mml:mo>⋅</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E47"><mml:mtd><mml:mtext>47</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5.0</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.03</mml:mn><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.3</mml:mn><mml:mo>⋅</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E48"><mml:mtd><mml:mtext>48</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">13</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4.5</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.03</mml:mn><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.35</mml:mn><mml:mo>⋅</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E49"><mml:mtd><mml:mtext>49</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">33</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">11.5</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.05</mml:mn><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn><mml:mo>⋅</mml:mo><mml:mi>P</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E50"><mml:mtd><mml:mtext>50</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>c</mml:mi><mml:mn mathvariant="normal">44</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3.2</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.02</mml:mn><mml:mo>⋅</mml:mo><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn><mml:mo>⋅</mml:mo><mml:mi>P</mml:mi><mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The density of a single ice crystal in relation to the stiffness values in Eq. (<xref ref-type="disp-formula" rid="Ch1.E45"/>) can be written in two equivalent forms. First, a simple thermal‐expansion law,

              <disp-formula id="Ch1.E51" content-type="numbered"><label>51</label><mml:math id="M160" display="block"><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi>o</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>

            with <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">51</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> °C. Or combining pressure and temperature effects explicitly,

              <disp-formula id="Ch1.E52" content-type="numbered"><label>52</label><mml:math id="M162" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">922.15</mml:mn><mml:mo>+</mml:mo><mml:mn mathvariant="normal">10.28</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">2</mml:mn></mml:mrow></mml:msup><mml:mi>P</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.2503</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:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mi>P</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.1445</mml:mn><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2.77</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            These expressions can serve as a basis for individual grains in crystal fabrics, homogeneous ice, or polyphase (i.e. snow) and polymineralic conglomerates that include ice crystals (i.e. sediment entrained ice).</p>
</sec>
<sec id="Ch1.S3.SS4.SSS3">
  <label>3.4.3</label><title>Snow Stiffness</title>
      <p id="d2e5530">In contrast to consolidated ice or rock  –  where the microstructure is relatively uniform and connectivity assumptions hold  –  materials such as snow exhibit highly variable porosity, grain contact networks, and liquid-water saturation <xref ref-type="bibr" rid="bib1.bibx80 bib1.bibx21" id="paren.67"/>. As temperature and melt conditions fluctuate, the ice skeleton can transition from a continuous framework to isolated granules or foam-like structures which invalidate some of the assumptions that make the aforementioned averaging inaccurate <xref ref-type="bibr" rid="bib1.bibx40" id="paren.68"/>. Consequently, estimating the effective stiffness of snow requires an appropriate selection of a homogenization method that accounts for both solid-matrix connectivity and pore-fluid effects.</p>
      <p id="d2e5539">For modeling snow stiffness from its polyphase constituents – ice, water, and air – the choice between the Hill estimate and other averaging schemes such as Gassmann's equations or the Self-Consistent Approximation (SCA) depends on porosity and liquid water content. The Hill estimate <xref ref-type="bibr" rid="bib1.bibx43" id="paren.69"/> is suitable for moderate porosity (typically <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> %) where the ice matrix remains connected, providing an average of the Voigt and Reuss bounds. Gassmann's equations <xref ref-type="bibr" rid="bib1.bibx34" id="paren.70"/> apply when the pore space is highly saturated (typically above 80 % liquid water content), assuming a connected pore fluid network that primarily affects bulk modulus while leaving the shear modulus unchanged.</p>
      <p id="d2e5558">For high porosity conditions (greater than or equal to 50 %), where the ice skeleton becomes largely disconnected, SCA <xref ref-type="bibr" rid="bib1.bibx13" id="paren.71"/> is better suited because it explicitly represents snow as a granular or foam-like composite. In this regime, SCA provides a more realistic estimate of the effective stiffness tensor than simple Voigt-Reuss averaging by accounting for the loss of frame connectivity and the mechanical contrast between ice and the pore phase. Choosing an appropriate homogenization scheme is therefore essential for predicting effective stiffness in a way that is consistent with both microstructural connectivity and fluid saturation.</p>
      <p id="d2e5564">To parameterize these models, we first define the bulk modulus of the pore fluids – water and air since these moduli enter directly into both the dry-frame scaling and the Gassmann fluid substitution. The bulk modulus of water is expressed as a function of temperature <inline-formula><mml:math id="M164" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula>, with separate polynomial fits for the liquid state and the supercooled regime:

              <disp-formula id="Ch1.E53" content-type="numbered"><label>53</label><mml:math id="M165" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>water</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="{" close=""><mml:mtable class="cases" rowspacing="0.2ex" columnspacing="1em" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2.15</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.0164</mml:mn><mml:mi>T</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">4.72</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.5</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">0</mml:mn><mml:mo>≤</mml:mo><mml:mi>T</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">2.25</mml:mn><mml:mo>-</mml:mo><mml:mn mathvariant="normal">0.016</mml:mn><mml:mi>T</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">6.9</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:msup><mml:mi>T</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">30</mml:mn><mml:mo>≤</mml:mo><mml:mi>T</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            while the bulk modulus of air is estimated from its thermodynamic properties as

              <disp-formula id="Ch1.E54" content-type="numbered"><label>54</label><mml:math id="M166" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>air</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mtext>adi</mml:mtext></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mtext>air</mml:mtext></mml:msub><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>R</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mi>M</mml:mi></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            
            with the air density

              <disp-formula id="Ch1.E55" content-type="numbered"><label>55</label><mml:math id="M167" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>P</mml:mi><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M168" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula> is the pressure, <inline-formula><mml:math id="M169" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> is the ideal gas constant, <inline-formula><mml:math id="M170" display="inline"><mml:mi>M</mml:mi></mml:math></inline-formula> is the molar mass, and <inline-formula><mml:math id="M171" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mtext>adi</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the adiabatic index. From Eq. (<xref ref-type="disp-formula" rid="Ch1.E55"/>) the adiabatic sound speed simplifies to <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mtext>adi</mml:mtext></mml:msub><mml:mi>R</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msqrt></mml:mrow></mml:math></inline-formula>, making temperature a key control on wave speeds in air-filled pore space even when pressure is fixed.</p>
      <p id="d2e5857">Gassmann's equation for the saturated bulk modulus is given by:

              <disp-formula id="Ch1.E56" content-type="numbered"><label>56</label><mml:math id="M173" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>sat</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mtext>dry</mml:mtext></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mfenced open="(" close=")"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>dry</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>mineral</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfenced><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>fluid</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>mineral</mml:mtext></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>dry</mml:mtext></mml:msub></mml:mrow><mml:mrow><mml:msubsup><mml:mi>K</mml:mi><mml:mtext>mineral</mml:mtext><mml:mn mathvariant="normal">2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>dry</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the bulk modulus of the dry snow matrix, <inline-formula><mml:math id="M175" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>mineral</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the bulk modulus of the solid mineral (ice), <inline-formula><mml:math id="M176" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>fluid</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is the bulk modulus of the saturating fluid, and <inline-formula><mml:math id="M177" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> is the porosity. Gassmann's relation assumes that the saturating fluid is homogeneously distributed, the pore structure is well-connected, and that the solid grains are significantly stiffer than the pore fluid.</p>
      <p id="d2e5992">In our implementation, the dry frame modulus is estimated by scaling the ice modulus as

              <disp-formula id="Ch1.E57" content-type="numbered"><label>57</label><mml:math id="M178" display="block"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>dry</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mtext>ice</mml:mtext></mml:msub><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:msup><mml:mo>)</mml:mo><mml:mi>n</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            with an exponent <inline-formula><mml:math id="M179" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> (typically tuned between 2 and 5) that controls the reduction in stiffness with increasing porosity. A similar scaling is applied to the shear modulus to obtain a dry shear modulus <inline-formula><mml:math id="M180" display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mtext>dry</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e6046">SCA models the porous medium as a two-phase composite, where the pores (typically filled with a much softer material such as air) are embedded in a continuous ice matrix. The effective stiffness tensor, <inline-formula><mml:math id="M181" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula>, is determined by considering the interaction between the inclusions (pores) and the matrix. A key component in this framework is the Eshelby tensor, <inline-formula><mml:math id="M182" display="inline"><mml:mi mathvariant="bold">S</mml:mi></mml:math></inline-formula>, which characterizes the influence of an isolated, ellipsoidal inclusion on the surrounding matrix <xref ref-type="bibr" rid="bib1.bibx29" id="text.72"/>. For spherical inclusions (aspect ratio equal to 1), the Eshelby tensor in Voigt notation is given by

              <disp-formula id="Ch1.E58" content-type="numbered"><label>58</label><mml:math id="M183" display="block"><mml:mrow><mml:mi mathvariant="bold">S</mml:mi><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mfrac><mml:mn mathvariant="normal">3</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:mfrac><mml:mi mathvariant="bold">I</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mn mathvariant="normal">4</mml:mn></mml:mfrac></mml:mstyle></mml:mstyle><mml:mi mathvariant="bold">I</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            where <inline-formula><mml:math id="M184" display="inline"><mml:mi mathvariant="bold">I</mml:mi></mml:math></inline-formula> is the <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:mn mathvariant="normal">3</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> identity matrix.</p>
      <p id="d2e6132">The effective stiffness is obtained by iteratively solving a self-consistent relation. Let <inline-formula><mml:math id="M186" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>matrix</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> denote the stiffness tensor of pure ice and <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>inclusion</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> that of the pore-filling phase (which is nearly zero for air). If <inline-formula><mml:math id="M188" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> is the porosity (expressed as a fraction between 0 and 1), then the update equation for the effective stiffness is <xref ref-type="bibr" rid="bib1.bibx19 bib1.bibx14" id="paren.73"/>

              <disp-formula id="Ch1.E59" content-type="numbered"><label>59</label><mml:math id="M189" display="block"><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>inclusion</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msup><mml:mfenced close="]" open="["><mml:mrow><mml:mi mathvariant="bold">I</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="bold">S</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>inclusion</mml:mtext></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            with an initial guess

              <disp-formula id="Ch1.E60" content-type="numbered"><label>60</label><mml:math id="M190" display="block"><mml:mrow><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>matrix</mml:mtext></mml:msub><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

            The iteration is continued until the change satisfies

              <disp-formula id="Ch1.E61" content-type="numbered"><label>61</label><mml:math id="M191" display="block"><mml:mrow><mml:mo>‖</mml:mo><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>-</mml:mo><mml:msubsup><mml:mi mathvariant="double-struck">C</mml:mi><mml:mtext>eff</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>‖</mml:mo><mml:mo>&lt;</mml:mo><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

            for a prescribed tolerance <inline-formula><mml:math id="M192" display="inline"><mml:mi mathvariant="italic">ϵ</mml:mi></mml:math></inline-formula>.</p>
      <p id="d2e6355">The self-consistent framework, as further developed by <xref ref-type="bibr" rid="bib1.bibx44" id="text.74"/> and <xref ref-type="bibr" rid="bib1.bibx19" id="text.75"/>, provides a means to capture the non-linear reduction in stiffness that occurs as the ice matrix loses connectivity with increasing porosity. Once <inline-formula><mml:math id="M193" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> is determined, the effective bulk modulus <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> and the shear modulus <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mtext>eff</mml:mtext></mml:msub></mml:mrow></mml:math></inline-formula> can be derived using standard relationships for isotropic media, and these moduli ultimately determine the seismic velocities (e.g., <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) in snow.</p>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e6423">Effective seismic velocities of snow computed at –10 °C over a range of porosity (0 %–90 %) and liquid water content (0 %–90 %) using three different homogenization approaches. Top row: vertical (compressional) wave velocity, <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>; bottom row: shear wave velocity, <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The dashed lines represent the default threshold values with Gassman's equations being used when LWC is above 80 % and SCA used when porosity is above 50 %. </p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f02.jpg"/>

          </fig>

      <p id="d2e6454">Although the Hill estimate simply averages the Voigt and Reuss bounds, it tends to overestimate stiffness in highly porous snow because it does not fully account for the loss of connectivity in the ice skeleton. In such cases, the SCA provides a more realistic estimation of the effective stiffness by iteratively accounting for pore interactions. When the pore space is highly saturated, the Gassmann fluid substitution is applied to update the bulk modulus, while the shear modulus is assumed to remain that of the dry frame. A comparison of the various methods intrinsic to the <italic>SeidarT</italic> software in Fig. (<xref ref-type="fig" rid="F2"/>) shows that while the Hill and SCA methods exhibit the expected decrease in <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> with increasing porosity and saturation, the Gassmann approach produces higher <inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and anomalous <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> trends. These differences highlight the sensitivity of effective elastic properties to the chosen homogenization technique, which is critical for accurate seismic interpretation in snow-covered and cold-region environments.</p>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e6509">Benchmark throughput (<inline-formula><mml:math id="M204" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Mcells</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) across 2D and 2.5D solvers configured for Serial, GPU, Threaded (8 threads), and Hybrid CPU–GPU execution. Hatched segments indicate Legacy I/O (individual <monospace>.dat</monospace> channel output per step), while solid segments indicate optimized Block I/O. Each bar is organized from lowest performing (bottom) to highest performing (top).</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f03.png"/>

          </fig>

      <p id="d2e6538">To guide model selection, the <italic>SeidarT</italic> software automatically chooses the appropriate homogenization method based on the porosity and liquid water content though users may override the default method and explicitly specify a preferred scheme. For snow with moderate porosity (typically <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> %) and limited saturation, the Hill estimate offers a simple and efficient approximation. When liquid water saturation exceeds 80 %, indicating a well-connected pore-fluid network, the Gassmann fluid substitution is applied to adjust the bulk modulus accordingly while keeping the shear modulus fixed. In high-porosity conditions (<inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula> %), especially when the ice matrix becomes discontinuous or foam-like, the Self-Consistent Approximation (SCA) is used to more accurately account for the interactions between inclusions and the solid matrix. These thresholds reflect physically meaningful transitions in snow microstructure and ensure that the selected method remains consistent with the dominant mechanical behavior of the medium. </p>
</sec>
</sec>
<sec id="Ch1.S3.SS5">
  <label>3.5</label><title>Fluid Inclusions</title>
      <p id="d2e6579">For seismic specific modeling, numerical instabilities can occur in regions where there exists high density gradients most commonly observed in the air-surface interface and is due to division by small values. As seen in Eq. (<xref ref-type="disp-formula" rid="Ch1.E2"/>) the density moves to the right hand side of the equation and becomes part of the denominator in all of the terms. In purely elastic‐wave simulations, that boundary is usually handled as a traction‐free (free‐surface) condition, i.e.

            <disp-formula id="Ch1.E62" content-type="numbered"><label>62</label><mml:math id="M207" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>z</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi mathvariant="italic">σ</mml:mi><mml:mrow><mml:mi>y</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></disp-formula>

          However, when modeling fluid‐ or air‐filled cavities deeper within the snowpack (for example englacial air pockets, crevasse voids, or infrasound–seismic coupling problems), the density can be sharply reduced locally in places other than the surface.</p>
      <p id="d2e6622">Whenever the physical wavelength <inline-formula><mml:math id="M208" display="inline"><mml:mi mathvariant="italic">λ</mml:mi></mml:math></inline-formula> is comparable to – or smaller than – the characteristic size of a cavity, homogenization breaks down and an effective medium approximation is no longer valid. To mitigate this, we replace the sharp discontinuity at the solid/fluid (or solid/air) interface with a smoothed transition zone. Specifically, we apply one of three discrete averaging schemes across the grid cells straddling the boundary. These being: the geometric mean

            <disp-formula id="Ch1.E63" content-type="numbered"><label>63</label><mml:math id="M209" display="block"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mtext>geo</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:msqrt><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          the harmonic mean

            <disp-formula id="Ch1.E64" content-type="numbered"><label>64</label><mml:math id="M210" display="block"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mtext>harm</mml:mtext></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and the arithmetic mean

            <disp-formula id="Ch1.E65" content-type="numbered"><label>65</label><mml:math id="M211" display="block"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mtext>arithmetic</mml:mtext></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:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          which represents the midpoint between the 2 values.</p>
      <p id="d2e6743">The geometric mean remains closest to the smaller of the two values, helping preserve impedance contrast and energy flux across the boundary, and thus better conserving energy. Likewise, the harmonic mean is biased toward smaller values of modulus or density, effectively weighting low values more heavily. However, unlike the geometric mean, it does not preserve properties such as multiplicative consistency and self-reciprocity, which can lead to violations of energy conservation in this context. It produces a transition that is slightly smoother than the geometric mean while still retaining much of the contrast. In contrast, the arithmetic mean yields the smoothest variation between solid and fluid or air and is the most numerically stable, but it can significantly smear sharp features and does not conserve energy.</p>
      <p id="d2e6746">These differences reflect a tradeoff between numerical stability and physical accuracy. The choice of averaging scheme should therefore be guided by the modeling objective, particularly whether preserving sharp impedance contrasts is more important than maximizing numerical stability.</p>
</sec>
<sec id="Ch1.S3.SS6">
  <label>3.6</label><title>Computational Performance</title>
      <p id="d2e6757">To accelerate numerical wave propagation across large spatial domains, OpenMP multi-threading and CUDA GPU offloading are integrated directly into the core time-stepping loops. The subroutines support four compile-time execution modes: single-threaded serial CPU, multi-threaded CPU processing, GPU offloading, and a hybrid CPU–GPU pipeline.</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e6762">Simulated zero offset profile from parameters gathered by <xref ref-type="bibr" rid="bib1.bibx39" id="text.76"/>. The source was a 100 MHz vertically polarized point source. The theoretical arrival times are seen in the left plot and denoted by the pink lines. The right subplots are reconstructions from <xref ref-type="bibr" rid="bib1.bibx39" id="text.77"/> of the full radar gather profile for the ZOP1 (top) and ZOP2 (center) profiles and their associated source-receiver distances (bottom). The actual source and receiver location for ZOP1 wasn't disclosed so the values were tuned to portray this. </p></caption>
          <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f04.png"/>

        </fig>

      <p id="d2e6777">Performance was evaluated using three transversely isotropic ice models with grid resolutions of <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:mn mathvariant="normal">250</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">250</mml:mn></mml:mrow></mml:math></inline-formula> (small), <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mn mathvariant="normal">500</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula> (medium), and <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:mn mathvariant="normal">1000</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula> (large) nodes. Benchmarks were conducted on a workstation equipped with an AMD Ryzen 7 7700 8-core CPU (8 threads allocated), an NVIDIA GeForce RTX 5060 GPU, and 64 GB of DDR5 RAM running Fedora 44, compiled using <monospace>gfortran</monospace>/<monospace>gcc</monospace>.</p>
      <p id="d2e6823">Computational complexity varies significantly by dimensionality and physics kernel. Analytical floating-point operation (FLOP) counts per time step are <inline-formula><mml:math id="M215" display="inline"><mml:mrow><mml:mn mathvariant="normal">51</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:mn mathvariant="normal">342</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for 2D and 2.5D electromagnetic subroutines, and <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:mn mathvariant="normal">178</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mn mathvariant="normal">1252</mml:mn><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for 2D and 2.5D seismic subroutines, respectively. Because grid-based finite-difference updates are primarily memory-bandwidth limited, theoretical FLOP counts do not fully reflect real-world runtime. We therefore quantify domain-independent performance using Million Grid Cell Updates per Second (<inline-formula><mml:math id="M219" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Mcells</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>) <xref ref-type="bibr" rid="bib1.bibx47 bib1.bibx90" id="paren.78"/>:

            <disp-formula id="Ch1.E66" content-type="numbered"><label>66</label><mml:math id="M220" display="block"><mml:mrow><mml:mrow class="unit"><mml:mi mathvariant="normal">Mcells</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">compute</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are grid spatial dimensions, <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi mathvariant="normal">t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is total time steps, and <inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">compute</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is wall-clock execution time spent within the finite-difference solver kernel.</p>
      <p id="d2e7034">Figure <xref ref-type="fig" rid="F3"/> summarizes execution throughput across backends, grid sizes, and I/O strategies with block outputs of 50 time steps. CPU multi-threading consistently yields peak performance across nearly all grid scales and physics domains, delivering up to <inline-formula><mml:math id="M225" display="inline"><mml:mn mathvariant="normal">35.7</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M226" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Mcells</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in 2D and <inline-formula><mml:math id="M227" display="inline"><mml:mn mathvariant="normal">27.5</mml:mn></mml:math></inline-formula> <inline-formula><mml:math id="M228" display="inline"><mml:mrow class="unit"><mml:mi mathvariant="normal">Mcells</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msup><mml:mi mathvariant="normal">s</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> in 2.5D configurations. Serial CPU performance scales competently on smaller domains (<inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mn mathvariant="normal">250</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">250</mml:mn></mml:mrow></mml:math></inline-formula>) but degrades relative to thread scaling on larger grids. Conversely, GPU offloading exhibits significant latency overhead on small domain sizes, achieving parity or speedups only as grid resolution increases toward <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mn mathvariant="normal">1000</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">1000</mml:mn></mml:mrow></mml:math></inline-formula>. Comparing I/O implementations reveals that Block I/O consistently outperforms Legacy per-channel file writing, reducing write penalties by up to <inline-formula><mml:math id="M231" display="inline"><mml:mn mathvariant="normal">40</mml:mn></mml:math></inline-formula> % on bandwidth-constrained runs.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Validation</title>
      <p id="d2e7128">In this section, we demonstrate the accuracy and robustness of our FDTD implementation by systematically validating its key physical outputs, namely travel time predictions, amplitude decay behavior, and full‐tensor anisotropic response – against both experimental and analytical benchmarks.</p>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Electromagnetic</title>
      <p id="d2e7138">We begin with an electromagnetic zero-offset profile (ZOP) that replicates the ZOP surveys conducted by <xref ref-type="bibr" rid="bib1.bibx39" id="text.79"/>, verifying that the synthetic arrivals and the signal attenuation in Fig. <xref ref-type="fig" rid="F4"/> are in agreement with the experimental field results.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e7148">The 3-component plot of the electric fields rotated to show the wave energy for the extraordinary, ordinary, and vertical axes (top to bottom left, respectively) and the plane polarization energy (right) propagating though a transversely isotropic medium. Green is high anisotropy, red is moderate anisotropy, and blue is near isotropic with vertical dashed lines of the expected arrival times. Wave splitting is expected to be evident on the <inline-formula><mml:math id="M232" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-<inline-formula><mml:math id="M233" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> plane which is why all colors are overlayn on the <inline-formula><mml:math id="M234" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-<inline-formula><mml:math id="M235" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M236" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula>-<inline-formula><mml:math id="M237" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula> planes.</p></caption>
          <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f05.png"/>

        </fig>

      <p id="d2e7200">Gusmeroli et al. (2010) investigated the vertical distribution of water in the polythermal Storglacieren, Sweden, by combining borehole radar measurements with nearby temperature observations. They collected 100 MHz zero-offset profiles between 2 pairs of <inline-formula><mml:math id="M238" display="inline"><mml:mo>∼</mml:mo></mml:math></inline-formula> 80 m deep hot-water drilled boreholes in the upper ablation area to obtain high-resolution radio-wave speed and amplitude profiles across the ice column. These radar data were corrected for borehole geometry, electronic timing errors, and the influence of air bubbles, then converted to volumetric water content using a dielectric mixing model, yielding nearly uniform temperate-ice water contents of about 0.6 % with localized enhancements at the cold–temperate transition surface (CTS). Thermistor-based estimates at the CTS supported the radar-derived water contents and demonstrated that the temperate layer is several times softer than the overlying cold ice, providing a quantitative hydrothermal structure that is well suited for numerical experiments.</p>
      <p id="d2e7211">The vertical dielectric permittivity, temperature, and water content profiles provided by <xref ref-type="bibr" rid="bib1.bibx39" id="text.80"/> are used to build a layered model in which we can simulate the 2D electromagnetic response. Our simulation shows a clear reduction in wave velocity and an increase in attenuation below the CTS, consistent with the observed increase in water content within the temperate layer. The <italic>SeidarT</italic> derived conductivity estimates were slightly tuned to provide better energy loss behavior in facies with higher water content. We contribute the mismatch in our modeled conductivity values to chemical differences and acidity that is not constrained well enough to be modeled with <italic>SeidarT</italic>.</p>
      <p id="d2e7223">The ZOP survey of <xref ref-type="bibr" rid="bib1.bibx39" id="text.81"/> was conducted in water filled boreholes and their effects were corrected for in their observed travel times. Our initial setup included these water filled boreholes but we observed high levels of ringing within them, so we chose to leave them out. This assumption limits our source accuracy and energy coupling, but our simulated waveform amplitudes and travel times exhibit similar behavior with the field-based measurements.</p>
      <p id="d2e7229">Our results show very similar results to those provided by <xref ref-type="bibr" rid="bib1.bibx39" id="text.82"/>, but there is a slight difference in their interpretation and what we see. They attributed the hyperbola seen propagating from the surface (left side) of the image to be due to reflections from a nearby ablation stake. While we do not dispute this, we see a similar hyperbola forming from the reflection off of the air-ice interface even though our model does not contain an ablation stake.</p>
      <p id="d2e7235">Next, we illustrate a synthetic 2.5D electromagnetic simulation that incorporates three transversely isotropic media with different degrees of anisotropy: strong (66 % – <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>), moderate (33 % – <inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula>), and near-isotropic (<inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi mathvariant="italic">%</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3.205</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3.179</mml:mn></mml:mrow></mml:math></inline-formula>) with the latter being <italic>SeidarT</italic>'s intrinsic values for ice. In all cases, the symmetry axis is confined to the <inline-formula><mml:math id="M245" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M246" display="inline"><mml:mi>y</mml:mi></mml:math></inline-formula> plane and is oriented 45° from the <inline-formula><mml:math id="M247" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-axis. The <inline-formula><mml:math id="M248" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-direction is defined as zero degrees with positive rotation in the counterclockwise direction. The model is energized by an <inline-formula><mml:math id="M249" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>-polarized point source, and the plane wave energy is measured as a function of the propagation direction. The source to receiver distance is 21.375 m to allow for the development of a polarized plane wave.</p>
      <p id="d2e7377">The results presented in Fig. (<xref ref-type="fig" rid="F5"/>) show distinct anisotropy-induced polarization effects because the source energy aligns with the symmetry axes. In the high-anisotropy models, electric field energy is preferentially aligned along the fast and slow axes of the material, demonstrating birefringent splitting and directionally dependent energy maxima. In contrast, the near-isotropic (ice) model exhibits minimal directional dependence, as expected. Some <inline-formula><mml:math id="M250" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>-polarized leakage is observed across models, particularly in high anisotropy scenarios. This leakage is attributable to the three-dimensional nature of the wavefield and confirms that the solver correctly captures mode conversion and polarization rotation due to anisotropic material properties. The observed numerical dispersion in the high anisotropy model is due to the high contrast in velocities and the difficulty in accommodating the directional dependence into the absorbing boundary.</p>
</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Seismic Validation</title>
      <p id="d2e7397">We validated our seismic wave propagation model using three distinct tests: body-wave imaging, surface wave dispersion analysis, and anisotropy/attenuation assessment. Each test was designed to benchmark the solver against expected physical phenomena in layered or anisotropic elastic media. Table (<xref ref-type="table" rid="T1"/>) provides the isotropic velocity model for the surface wave and body wave focused simulations. Each of these models was tuned to present clear modes.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e7405">Layer-wise P and S wave velocities and densities for surface and body wave models. </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="9">
     <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" colsep="1"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="right"/>
     <oasis:colspec colnum="8" colname="col8" align="right"/>
     <oasis:colspec colnum="9" colname="col9" align="right"/>
     <oasis:thead>
       <oasis:row>

         <oasis:entry rowsep="1" colname="col1" morerows="1">Layer</oasis:entry>

         <oasis:entry rowsep="1" namest="col2" nameend="col5" align="center" colsep="1">Surface Wave Model </oasis:entry>

         <oasis:entry rowsep="1" namest="col6" nameend="col9" align="center">Body Wave Model </oasis:entry>

       </oasis:row>
       <oasis:row rowsep="1">

         <oasis:entry colname="col2"><inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m s<sup>−1</sup>)</oasis:entry>

         <oasis:entry colname="col3"><inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m s<sup>−1</sup>)</oasis:entry>

         <oasis:entry colname="col4"><inline-formula><mml:math id="M255" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> (kg m<sup>−3</sup>)</oasis:entry>

         <oasis:entry colname="col5"><inline-formula><mml:math id="M257" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> (m)</oasis:entry>

         <oasis:entry colname="col6"><inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m s<sup>−1</sup>)</oasis:entry>

         <oasis:entry colname="col7"><inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">S</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m s<sup>−1</sup>)</oasis:entry>

         <oasis:entry colname="col8"><inline-formula><mml:math id="M262" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula> (kg m<sup>−3</sup>)</oasis:entry>

         <oasis:entry colname="col9"><inline-formula><mml:math id="M264" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> (m)</oasis:entry>

       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>

         <oasis:entry colname="col1">1</oasis:entry>

         <oasis:entry colname="col2">343</oasis:entry>

         <oasis:entry colname="col3">0</oasis:entry>

         <oasis:entry colname="col4">1.4</oasis:entry>

         <oasis:entry colname="col5">30</oasis:entry>

         <oasis:entry colname="col6">1000</oasis:entry>

         <oasis:entry colname="col7">500</oasis:entry>

         <oasis:entry colname="col8">1800</oasis:entry>

         <oasis:entry colname="col9">10</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">2</oasis:entry>

         <oasis:entry colname="col2">500</oasis:entry>

         <oasis:entry colname="col3">287</oasis:entry>

         <oasis:entry colname="col4">1800</oasis:entry>

         <oasis:entry colname="col5">5</oasis:entry>

         <oasis:entry colname="col6">1500</oasis:entry>

         <oasis:entry colname="col7">800</oasis:entry>

         <oasis:entry colname="col8">1900</oasis:entry>

         <oasis:entry colname="col9">20</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">3</oasis:entry>

         <oasis:entry colname="col2">1000</oasis:entry>

         <oasis:entry colname="col3">291</oasis:entry>

         <oasis:entry colname="col4">1900</oasis:entry>

         <oasis:entry colname="col5">10</oasis:entry>

         <oasis:entry colname="col6">2000</oasis:entry>

         <oasis:entry colname="col7">1100</oasis:entry>

         <oasis:entry colname="col8">2000</oasis:entry>

         <oasis:entry colname="col9">30</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">4</oasis:entry>

         <oasis:entry colname="col2">1800</oasis:entry>

         <oasis:entry colname="col3">989</oasis:entry>

         <oasis:entry colname="col4">2000</oasis:entry>

         <oasis:entry colname="col5">20</oasis:entry>

         <oasis:entry colname="col6">2500</oasis:entry>

         <oasis:entry colname="col7">1400</oasis:entry>

         <oasis:entry colname="col8">2100</oasis:entry>

         <oasis:entry colname="col9">60</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">5</oasis:entry>

         <oasis:entry colname="col2">2522</oasis:entry>

         <oasis:entry colname="col3">1300</oasis:entry>

         <oasis:entry colname="col4">2200</oasis:entry>

         <oasis:entry colname="col5">60</oasis:entry>

         <oasis:entry colname="col6">3000</oasis:entry>

         <oasis:entry colname="col7">1700</oasis:entry>

         <oasis:entry colname="col8">2200</oasis:entry>

         <oasis:entry colname="col9">100</oasis:entry>

       </oasis:row>
       <oasis:row>

         <oasis:entry colname="col1">6</oasis:entry>

         <oasis:entry colname="col2">3500</oasis:entry>

         <oasis:entry colname="col3">1575</oasis:entry>

         <oasis:entry colname="col4">2400</oasis:entry>

         <oasis:entry colname="col5">inf</oasis:entry>

         <oasis:entry colname="col6">3500</oasis:entry>

         <oasis:entry colname="col7">2000</oasis:entry>

         <oasis:entry colname="col8">2300</oasis:entry>

         <oasis:entry colname="col9">inf</oasis:entry>

       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<sec id="Ch1.S4.SS2.SSS1">
  <label>4.2.1</label><title>Surface Wave Excitation</title>
      <p id="d2e7809">To assess stability in the solver at high impedance boundaries as well as surface wave behavior and frequency-dependent phase velocity, we simulated a 6-layer stratified elastic half-space with low-velocity surface layers. Our source function was an accelerated weight drop broadband pulse that spanned 1.25–10 Hz located within the first subsurface layer at 4 m depth. Receivers were located at 1 m spacing and 1 m below the surface, with a total aperture length of 576 m. Figure <xref ref-type="fig" rid="F6"/>a shows the resulting vertical component shot gather, dominated by dispersive Rayleigh mode surface waves propagating across the array.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e7816">Common shot gather (left) and the resulting multichannel analysis to highlight surface waves generated in the layered model in Table <xref ref-type="table" rid="T1"/>. The source is an accelerated weight drop at the surface with a multimodal wavelet that spans 3 octaves. The dominant fundamental mode <inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> up to the third mode <inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> are identified with theoretical dispersion curves overlain.</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f06.png"/>

          </fig>

      <p id="d2e7849">Figure <xref ref-type="fig" rid="F6"/>b is a frequency–velocity (<inline-formula><mml:math id="M267" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M268" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula>) transformation from the shot gather with overlaying theoretical dispersion curves calculated using the <italic>disba</italic> package <xref ref-type="bibr" rid="bib1.bibx63" id="paren.83"/> in <italic>Python</italic>. Our implementation follows the general MASW framework proposed by <xref ref-type="bibr" rid="bib1.bibx75" id="text.84"/>, with energy imaging based on a slant-stack method <xref ref-type="bibr" rid="bib1.bibx71" id="text.85"/>, and smoothed in the frequency–velocity domain. The results in Fig. <xref ref-type="fig" rid="F6"/>b show clear dispersion branches and coherent energy for the fundamental mode (<inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) that has good alignment with simulated energy ridges. The fundamental mode is dominant to about 20 Hz at which point the first (<inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) and second (<inline-formula><mml:math id="M271" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>) modes dominate the energy spectra.  The theoretical dispersion curves were velocity shifted across all modes by <inline-formula><mml:math id="M272" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>45 m s<sup>−1</sup> to match the synthetics. The slight velocity shift could be due to apparent velocities in the FDTD solver being lower than the analytical dispersion.</p>
</sec>
<sec id="Ch1.S4.SS2.SSS2">
  <label>4.2.2</label><title>Body Waves</title>
      <p id="d2e7948">In order to emphasize body waves, we comprised a vertically stacked six-layer isotropic model with increasing velocity and density with depth. A 40 Hz Gaussian derivative point source was placed 10 m from the left boundary at a 3 m depth with 486 receivers at 1 m spacing. In order to avoid complexity in the wavefield, we intentionally excluded a free surface boundary condition and air layer to suppress surface wave excitation and associated ground roll. This creates a virtually infinite boundary which would also suppress body wave reverberations at the surface.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e7953">Common shot gather (left) for the six layer velocity model (Table <xref ref-type="table" rid="T1"/>), and the <inline-formula><mml:math id="M274" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M275" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> analysis of the shot gather (right). Each time series is normalized using a 1200 point auto-gain control. The identified phase arrivals are labeled near their wavefronts using expected arrival times. Signal-to-noise ratios decrease rapidly causing boundary reflections to dominate later in the time series. The slopes of energy envelopes corresponding to specific velocities can be seen in the <inline-formula><mml:math id="M276" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M277" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> plot for shear waves (red dotted) and pressure waves (blue dashed).</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f07.png"/>

          </fig>

      <p id="d2e7992">The velocity and density structure (Table <xref ref-type="table" rid="T1"/>) was selected to avoid artificial waveguides and suppress evanescent energy by minimizing sharp impedance contrasts at thin layers but also to permit clean observation of P and S body wave arrivals and their internal reflections, refractions, and conversions. The shot gather (Fig. <xref ref-type="fig" rid="F7"/>a) exhibits clear PP, PS, and SP phases, as well as higher-order multiples and converted waves. The large aperture length of 486 m allowed for clear refracted shear (<inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) and pressure (<inline-formula><mml:math id="M279" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi mathvariant="normal">ref</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) waves to be observed for the top 3 velocity boundaries (layers 1–4). Reflected waves are shrouded in more noise and interference and harder to distinguish without more sophisticated processing.</p>
      <p id="d2e8022">The corresponding frequency-wavenumber analysis (Fig. <xref ref-type="fig" rid="F7"/>b) confirms that the simulated energy is confined within the expected velocity range (500–3500 m s<sup>−1</sup>; Table <xref ref-type="table" rid="T1"/>), consistent with theoretical limits imposed by the layered structure. The model's fidelity in capturing reflection travel times and conversion kinematics validates both the spatial discretization and time integration of the solver for short-wavelength elastic wave phenomena.</p>
</sec>
<sec id="Ch1.S4.SS2.SSS3">
  <label>4.2.3</label><title>Seismic Anisotropy and Attenuation</title>
      <p id="d2e8049">Incorporating the full 21-component stiffness tensor introduces several numerical and conceptual challenges for seismic wave propagation modeling. Unlike isotropic or transversely isotropic formulations, the general triclinic stiffness tensor removes most symmetries, requiring all off-diagonal coupling terms to be explicitly computed and applied at each spatial location. This increases both computational load and storage requirements, as well as the complexity of accurately implementing the stress-strain update equations within the finite-difference time domain (FDTD) scheme. The full tensor also introduces strong shear-mode coupling, non-orthogonal polarization directions, and oblique energy partitioning, which can create mode conversions and apparent cross-component leakage that are difficult to distinguish from numerical dispersion or grid anisotropy. Small numerical errors or minor parameter inconsistencies can lead to non-physical instabilities, non-causal behavior, or failure to satisfy the strong stability conditions required for elastic FDTD.</p>
      <p id="d2e8052">To identify instability within the primary model domain or the CPML layer, we set up a simple single material domain using a velocity model for the primary crystal symmetries: hexagonal, orthorhombic, monoclinic, and triclinic. While monoclinic and triclinic media are not common to snow and ice, this represents an end member in the complexity of implementation but also shows that this is a highly generalized modeling routine. The maximum stable timestep for each material is determined using the full Christoffel eigenvalue solution, sampling multiple propagation directions to capture the maximum phase velocity arising from the full stiffness tensor. The maximum p-wave and shear wave velocities are matched throughout the different tensors to provide a point of reference and synchronization of energy entering the CPML boundary.</p>

      <fig id="F8" specific-use="star"><label>Figure 8</label><caption><p id="d2e8057">The temporal evolution of the maximum value of the velocity (left) and stress (right) field norms. This is not a full accuracy assessment but instead shows that the time window of the solver has a practical limit especially in the lower order symmetries.</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f08.png"/>

          </fig>

      <p id="d2e8067">Calculating the absolute maximums for the directional velocity and stress norms, we can see in Fig. (<xref ref-type="fig" rid="F8"/>) similar behavior identified by <xref ref-type="bibr" rid="bib1.bibx9" id="text.86"/>. For both the velocity (Fig. <xref ref-type="fig" rid="F8"/>a) and stress (Fig. <xref ref-type="fig" rid="F8"/>b) norms, instabilities begin to propagate soon after the slower shear modes enter the CPML. The theoretical first arrivals for the maximum P wave velocity and minimum shear wave velocity of 0.012  and 0.039 s, respectively. There is slightly more prolonged stability in the isotropic, hexagonal, and orthorhombic cases (diminishing in that order), but given enough time, numerical instabilities will dominate the signal. This shows limits to the capabilities of the model but also provides practical design considerations in order to model lower symmetry media. Lower symmetry allows more directions where the PML stretching is misaligned with the energy flux, which promotes numerical instability in the absorbing layer.</p>
      <p id="d2e8079">To verify that the anisotropic solver and CPML do not introduce grid-induced anisotropy, spurious mode coupling, or boundary artifacts, we calculated 3D polar velocity maps for an orthorhombic fabric. An explosive source was situated at the domain center, surrounded by 4824 receiver nodes forming a spherical shell at an omnidirectional radius of <inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">47</mml:mn></mml:mrow></mml:math></inline-formula> m. To automate phase identification across the array, 3-component velocity traces (<inline-formula><mml:math id="M282" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) at each receiver were first transformed into ray-centered quasi-coordinates (<inline-formula><mml:math id="M283" display="inline"><mml:mrow><mml:mi>Q</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">SV</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">SH</mml:mi></mml:mrow></mml:math></inline-formula>) using the Christoffel eigenvectors. From these rotated components, a moving-window rectilinearity <inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> was computed following <xref ref-type="bibr" rid="bib1.bibx52" id="text.87"/>.</p>
      <p id="d2e8150">Phase arrival pick candidates are initially detected where rectilinearity drops below a defined threshold (<inline-formula><mml:math id="M285" display="inline"><mml:mrow><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0.8</mml:mn></mml:mrow></mml:math></inline-formula>). To refine these arrival times, a discrete Akaike Information Criterion (AIC) picker <xref ref-type="bibr" rid="bib1.bibx81 bib1.bibx3" id="paren.88"/> is applied directly to the rectilinearity time series. The AIC approach models the signal as two locally stationary auto-regressive segments separated by an unknown onset point <inline-formula><mml:math id="M286" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula>. For a series <inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of length <inline-formula><mml:math id="M288" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula>, the sample variances, <inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, before and after candidate split-point <inline-formula><mml:math id="M290" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> are defined as:

              <disp-formula id="Ch1.E67" content-type="numbered"><label>67</label><mml:math id="M291" display="block"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Var</mml:mi><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>x</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:msub><mml:mi>x</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo mathsize="1.1em">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" linebreak="nobreak"/><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Var</mml:mi><mml:mo mathsize="1.1em">(</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mo mathsize="1.1em">)</mml:mo></mml:mrow></mml:math></disp-formula>

            
            The AIC function evaluates the objective score for each candidate index <inline-formula><mml:math id="M292" display="inline"><mml:mrow><mml:mi>k</mml:mi><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>:

              <disp-formula id="Ch1.E68" content-type="numbered"><label>68</label><mml:math id="M293" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="normal">AIC</mml:mi><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>=</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mfenced open="{" close=""><mml:mtable rowspacing="0.2ex" class="cases" columnspacing="1em" columnalign="left left" framespacing="0em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>k</mml:mi><mml:mi>ln⁡</mml:mi><mml:mspace linebreak="nobreak" width="-0.125em"/><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mi>k</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:mi>ln⁡</mml:mi><mml:mspace width="-0.125em" linebreak="nobreak"/><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if </mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mtext> and </mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">∞</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mtext>otherwise</mml:mtext></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>

            The optimal phase arrival sample <inline-formula><mml:math id="M294" display="inline"><mml:mover accent="true"><mml:mi>k</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover></mml:math></inline-formula> minimizes the global log-likelihood function across the window:

              <disp-formula id="Ch1.E69" content-type="numbered"><label>69</label><mml:math id="M295" display="block"><mml:mrow><mml:mover accent="true"><mml:mi>k</mml:mi><mml:mo mathvariant="normal" stretchy="false">^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>arg⁡</mml:mi><mml:munder><mml:mo movablelimits="false">min⁡</mml:mo><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>≤</mml:mo><mml:mi>k</mml:mi><mml:mo>≤</mml:mo><mml:mi>N</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:munder><mml:mi mathvariant="normal">AIC</mml:mi><mml:mo>(</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>

      <fig id="F9" specific-use="star"><label>Figure 9</label><caption><p id="d2e8519">Polar azimuthal velocity maps for <inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M297" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (top row) as determined by auto-picked arrival times. The residual maps (bottom row) show an elevated but localized area of misfit. Overall, the auto-picker and wave speeds show good accuracy with expected anisotropic patterns.</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f09.jpg"/>

          </fig>

      <p id="d2e8567">For each phase and receiver, the velocity field (<inline-formula><mml:math id="M299" display="inline"><mml:mrow><mml:msub><mml:mi>v</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) was transformed into ray-centered quasi-coordinates (<inline-formula><mml:math id="M300" display="inline"><mml:mrow><mml:mi>Q</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">SV</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">SH</mml:mi></mml:mrow></mml:math></inline-formula>) using the Christoffel eigenvectors before calculating the rectilinearity. We then compute theoretical travel times from the Christoffel solution and form a final arrival time by taking the error-weighted mean of the polarization and AIC picks. Sharp drops in rectilinearity suggest phase arrivals, but interference from diffuse or stacked wavefronts can create more minima and less confidence. Therefore, search windows of 0.01 s were applied around the theoretical travel times with more weight towards the theoretical travel times when confidence was lower (rectilinearity <inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:mo>≥</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mn mathvariant="normal">0.8</mml:mn></mml:mrow></mml:math></inline-formula>) so that picks more consistent with the reference model contribute more strongly while still allowing both methods to influence the estimate.</p>

      <fig id="F10"><label>Figure 10</label><caption><p id="d2e8625">The rectilinearity <bold>(a)</bold> computed from the 3-component rotated seismograms <bold>(b–d)</bold> with instantaneous power envelopes (gray fills) highlighting phase energy onsets. The source-receiver distance was increased to 105 m (compared to 47 m in Fig. <xref ref-type="fig" rid="F9"/>) to resolve phase ambiguity. Theoretical arrival times for the quasi-P wave (<inline-formula><mml:math id="M302" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>), fast shear wave (<inline-formula><mml:math id="M303" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>), and slow shear wave (<inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) are indicated by vertical dashed lines.</p></caption>
            <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f10.png"/>

          </fig>

      <p id="d2e8682">To demonstrate this picking workflow, Fig. <xref ref-type="fig" rid="F10"/>a illustrates how the moving-window rectilinearity tracks changes in particle-motion linearity as individual modes traverse the array. At the onset of the quasi-P wave (<inline-formula><mml:math id="M305" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">P</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.029</mml:mn></mml:mrow></mml:math></inline-formula> s), rectilinearity drops below the 0.8 threshold, successfully triggering the automated P wave pick. Notably, residual quasi-P energy bleeds onto the Quasi-SV component (Fig. <xref ref-type="fig" rid="F10"/>c), which likely stems from slight misorientation of the assumed phase normal during coordinate rotation. A secondary drop in rectilinearity occurs near <inline-formula><mml:math id="M306" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.038</mml:mn></mml:mrow></mml:math></inline-formula> s, corresponding to the theoretical arrival of the fast shear mode (<inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>). Although the theoretical travel time for the slow shear mode (<inline-formula><mml:math id="M308" display="inline"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.065</mml:mn></mml:mrow></mml:math></inline-formula> s) slightly underestimates the peak energy arrival, the true phase onset remains well within the designated search window.</p>
      <p id="d2e8749">The auto-picker doesn't perform perfectly and we can see the residuals between the auto-picked travel times and the theoretical travel times have a small percent differential in a compact angular wedge across the boundary of the 1st and 2nd quadrants of the residual map (Fig. <xref ref-type="fig" rid="F9"/>) rather than along whole symmetry axes or mirrored quadrants. Since this radiation pattern does not reflect the material symmetry, we attribute these localized pick anomalies as being influenced by a combination of discrete grid geometry and the wavefront still being strongly curved. The receivers are only 1.5 wavelengths from the source so the wavefront is still far from planar and more sensitive to local discretization and staggering.</p>
</sec>
</sec>
</sec>
<sec id="Ch1.S5" sec-type="conclusions">
  <label>5</label><title>Summary and Conclusion</title>
      <p id="d2e8765"><italic>SeidarT</italic> provides a versatile, open-source framework for full-waveform modeling of both seismic and electromagnetic wave propagation in anisotropic, heterogeneous, and attenuating materials, with a particular emphasis on snow and ice environments. Through systematic validation – including comparison with experimental field results and analytical solutions – our implementation demonstrates robust accuracy in capturing key physical phenomena such as elastic and electromagnetic wave travel times, amplitude decay, and tensor-driven anisotropy effects.</p>
      <p id="d2e8770">The design philosophy of <italic>SeidarT</italic> reflects a deliberate choice to prioritize accessibility and extensibility over the absolute performance gains offered by more specialized implementations. By coupling the computational efficiency of Fortran with the user-friendly scripting capabilities of Python, we have created a software package that maintains high performance for time-critical simulations while remaining intuitive for rapid model development and iteration. The image-based geometry specification and JSON project workflow eliminate the need for complex, error-prone mesh generation routines – a significant barrier for many users transitioning from theoretical frameworks to practical numerical experiments.</p>
      <p id="d2e8776">The incorporation of empirically derived relationships for ice and snow material properties (permittivity, stiffness, density) ensures that synthetic models can be directly constrained by field observations, EBSD crystal orientation data, and laboratory measurements. The multiple homogenization schemes (Hill average, Gassmann substitution, Self-Consistent Approximation) provide flexibility to match effective medium assumptions to the microstructural regime, whether modeling consolidated ice, temperate snow with liquid water, or air-filled cavities. This adaptability is essential given the high variability of snow and ice properties across thermal and porosity regimes.</p>
      <p id="d2e8779">While our validation demonstrates the solver's capability across a range of scenarios, we acknowledge important limitations. The CPML absorbing boundary, though effective across most conditions, exhibits instabilities in lower symmetry (monoclinic and triclinic) materials at late times, as evidenced in our anisotropy tests (Sect. 4.2.3 and Fig. 8). This limitation, identified by <xref ref-type="bibr" rid="bib1.bibx9" id="text.89"/> in the broader FDTD literature, stems from the misalignment of PML stretching with energy flux in non-orthogonal crystal systems. Parameter tuning strategies and explicit stability checks will provide the ability to model highly anisotropic materials but users should remain cognizant of practical time windows for reliable results.</p>
      <p id="d2e8786">There is ample room for future growth and performance optimizations; however, <italic>SeidarT</italic> was designed around community-driven development to bridge the gap between specialized academic research and commercial, proprietary software packages. It not only increases accessibility to advanced wave-propagation modeling but also enables the development of innovative approaches in geophysical imaging and subsurface characterization. We anticipate that as computing resources continue to expand and open-source collaboration grows, <italic>SeidarT</italic> will serve as a foundation for ever-richer simulations that link (micro)structural heterogeneity to macroscopic wavefield behavior.</p>
</sec>

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

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title/>

<table-wrap id="TA1a"><label>Table A1</label><caption><p id="d2e8809">List of Symbols.</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="justify" colwidth="6cm"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="justify" colwidth="6cm"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Physics</oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M309" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ϵ</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Levi-Civita permutation symbol</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M310" display="inline"><mml:mi mathvariant="bold-italic">σ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Cauchy stress tensor (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M311" display="inline"><mml:mi mathvariant="bold">C</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Fourth-order elastic stiffness tensor (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M312" display="inline"><mml:mi mathvariant="bold">S</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Compliance tensor (Pa<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M314" display="inline"><mml:mi mathvariant="italic">ρ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Mass density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M316" display="inline"><mml:mi mathvariant="bold-italic">γ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Viscoelastic attenuation tensor (seismic)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M317" display="inline"><mml:mi mathvariant="bold">F</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Seismic body-force (source) vector (N m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M319" display="inline"><mml:mi mathvariant="bold">M</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Moment tensor (N m or J)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Source wavelet (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Source amplitude at reference position (dimensionless)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M322" display="inline"><mml:mi>Q</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Seismic quality factor (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M323" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Central frequency of source wavelet (Hz)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M324" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Phase velocity (m s<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M326" display="inline"><mml:mi mathvariant="bold-italic">E</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Electric field vector (V m<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M328" display="inline"><mml:mi mathvariant="bold-italic">H</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Magnetic field vector (A m<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M330" display="inline"><mml:mi mathvariant="bold-italic">ε</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Permittivity tensor (F m<sup>−1</sup> or dimensionless)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M332" display="inline"><mml:mi mathvariant="italic">ε</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Scalar relative permittivity (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M333" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∗</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Complex permittivity, <inline-formula><mml:math id="M334" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∗</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>′</mml:mo></mml:msup><mml:mo>-</mml:mo><mml:mi>j</mml:mi><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M335" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Real part of permittivity</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M336" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="italic">ε</mml:mi><mml:mrow><mml:mo>′</mml:mo><mml:mo>′</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Imaginary part of permittivity</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M337" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>⟂</mml:mo><mml:mo>∗</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Permittivity perpendicular to <inline-formula><mml:math id="M338" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula>-axis</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M339" display="inline"><mml:mrow><mml:msubsup><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>∥</mml:mo><mml:mo>∗</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Permittivity parallel to <inline-formula><mml:math id="M340" display="inline"><mml:mi>c</mml:mi></mml:math></inline-formula>-axis</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M341" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold-italic">σ</mml:mi><mml:mi mathvariant="normal">e</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Electrical conductivity tensor (S m<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M343" display="inline"><mml:mi mathvariant="italic">μ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Magnetic permeability (H m<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M345" 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" align="left">Permeability of free space (H m<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M347" 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="col4" align="left">Permittivity of free space (F m<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M349" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">J</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">EM source current density (A m<sup>−2</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M351" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Air density (kg m<sup>−3</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M353" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ρ</mml:mi><mml:mi mathvariant="normal">d</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Dry snow density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M355" 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="col4" align="left">Reference density (kg m<sup>−3</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M357" display="inline"><mml:mi mathvariant="italic">ϕ</mml:mi></mml:math></inline-formula> (porosity)</oasis:entry>
         <oasis:entry colname="col2" align="left">Porosity of snow/composite (dimensionless fraction)</oasis:entry>
         <oasis:entry colname="col3">LWC</oasis:entry>
         <oasis:entry colname="col4" align="left">Liquid water content (%)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M358" display="inline"><mml:mi>T</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Temperature (°C)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M359" display="inline"><mml:mi>P</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Pressure  (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M360" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Universal gas constant  (J mol<sup>−1</sup> K<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M363" display="inline"><mml:mi>M</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Molar mass of air (kg mol<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M365" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">γ</mml:mi><mml:mi mathvariant="normal">adi</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Adiabatic index of air (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M366" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Compressional-wave velocity (m s<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M368" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Shear-wave velocity (m s<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M370" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">S</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Fast and slow shear-wave velocities m s<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M372" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">geo</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Geometric-mean interface density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M374" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">harm</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Harmonic-mean interface density (kg m<sup>−3</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M376" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi mathvariant="italic">ρ</mml:mi><mml:mo mathvariant="normal">¯</mml:mo></mml:mover><mml:mi mathvariant="normal">arith</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Arithmetic-mean interface density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M378" display="inline"><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Sample variance used in the AIC estimate</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"><inline-formula><mml:math id="M379" display="inline"><mml:mi mathvariant="script">R</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Rectilinearity</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Homogenization</oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M380" display="inline"><mml:mrow><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ψ</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Euler angles (Bunge <inline-formula><mml:math id="M381" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M382" display="inline"><mml:mi>x</mml:mi></mml:math></inline-formula>–<inline-formula><mml:math id="M383" display="inline"><mml:mi>z</mml:mi></mml:math></inline-formula>)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M384" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>R</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Axis rotation matrices</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M385" display="inline"><mml:mrow><mml:mi>R</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">ϕ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="italic">ψ</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Composite rotation matrix</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M386" display="inline"><mml:mi mathvariant="bold">T</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Second-order tensor (e.g., permittivity)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M387" display="inline"><mml:mrow><mml:msup><mml:mi mathvariant="bold">T</mml:mi><mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Rotated tensor</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M388" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">Voigt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Voigt effective tensor</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M389" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">Reuss</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Reuss effective tensor</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M390" display="inline"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi mathvariant="normal">Hill</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Hill-averaged tensor</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M391" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Volume fraction of <inline-formula><mml:math id="M392" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>th phase</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M393" display="inline"><mml:mi mathvariant="bold">B</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Bond 6 <inline-formula><mml:math id="M394" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> 6 rotation matrix</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M395" display="inline"><mml:mrow><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Bulk and shear moduli (generic) (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M396" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">Voigt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Voigt bulk modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M397" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">Reuss</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Reuss bulk modulus (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M398" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">Hill</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Hill bulk modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M399" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">ice</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Bulk modulus of ice (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M400" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">water</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Bulk modulus of water (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M401" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">air</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Bulk modulus of air (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M402" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">dry</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Dry-frame bulk modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M403" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">sat</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Saturated bulk modulus (Gassmann) (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M404" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">mineral</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Mineral (ice) bulk modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M405" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">fluid</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Pore-fluid bulk modulus (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M406" display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi mathvariant="normal">dry</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Dry-frame shear modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M407" display="inline"><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Effective bulk modulus (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M408" display="inline"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Effective shear modulus (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M409" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Effective stiffness tensor (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M410" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">matrix</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Matrix stiffness tensor (Pa)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M411" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">inclusion</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Inclusion stiffness tensor (Pa)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M412" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="bold">S</mml:mi><mml:mi mathvariant="normal">E</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Eshelby tensor (Voigt) (dimensionless)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

<table-wrap id="TA1b"><label>Table A1</label><caption><p id="d2e10438">Continued.</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="justify" colwidth="6cm"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="justify" colwidth="6cm"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Domain and CPML</oasis:entry>
         <oasis:entry colname="col2"/>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M413" 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" align="left">Time step in FDTD scheme (s)</oasis:entry>
         <oasis:entry colname="col3"/>
         <oasis:entry colname="col4"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M414" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Grid spacing in <inline-formula><mml:math id="M415" display="inline"><mml:mrow><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:mi>z</mml:mi></mml:mrow></mml:math></inline-formula> (m)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M416" display="inline"><mml:mi>D</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Number of spatial dimensions (dimensionless)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M417" display="inline"><mml:mi>C</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Courant–Friedrichs–Lewy (CFL) number (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M418" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Minimum spatial step (m)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M419" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>x</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Maximum spatial step (m)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M420" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi mathvariant="normal">c</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Central source frequency (Hz)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M421" display="inline"><mml:mi>d</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Propagation distance or CPML thickness (m)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M422" display="inline"><mml:mi mathvariant="italic">γ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Scalar attenuation tuning parameter in CPML (dimensionless)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M423" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">CPML stretching function in direction <inline-formula><mml:math id="M424" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M425" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">CPML scaling function in direction <inline-formula><mml:math id="M426" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> (s<sup>−1</sup>)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M428" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">CPML frequency-shift function in direction <inline-formula><mml:math id="M429" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M430" display="inline"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">κ</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mo>max⁡</mml:mo></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Maximum CPML parameters</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M431" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">CPML grading exponents (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M432" display="inline"><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Auxiliary CPML coefficients (dimensionless)</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M433" display="inline"><mml:mi mathvariant="normal">Γ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2" align="left">Target CPML reflection coefficient (dimensionless)</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M434" display="inline"><mml:mrow><mml:msub><mml:mover accent="true"><mml:mi>u</mml:mi><mml:mo mathvariant="normal" stretchy="false">̃</mml:mo></mml:mover><mml:mi mathvariant="normal">p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4" align="left">Quasi–P wave velocity for CPML m s<sup>−1</sup>)</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

</app>

<app id="App1.Ch1.S2">
  <label>Appendix B</label><title>Zero Offset Profile</title>
      <p id="d2e10877">See Fig. <xref ref-type="fig" rid="FB1"/> for the labeling of the layers as given in Table <xref ref-type="table" rid="TB1"/>.</p>

<table-wrap id="TB1"><label>Table B1</label><caption><p id="d2e10888">The model parameters used to generate the zero-offset profile in Fig. <xref ref-type="fig" rid="F4"/>. </p></caption><oasis:table frame="topbot"><oasis:tgroup cols="8">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <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:colspec colnum="7" colname="col7" align="right"/>
     <oasis:colspec colnum="8" colname="col8" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">ID<sup>*</sup></oasis:entry>
         <oasis:entry colname="col2">Name</oasis:entry>
         <oasis:entry colname="col3">Thickness (m)</oasis:entry>
         <oasis:entry colname="col4">R/G/B</oasis:entry>
         <oasis:entry colname="col5">Temperature (°C)</oasis:entry>
         <oasis:entry colname="col6">Density (kg m<sup>−3</sup>)</oasis:entry>
         <oasis:entry colname="col7">Porosity (%)</oasis:entry>
         <oasis:entry colname="col8">LWC (%)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">1</oasis:entry>
         <oasis:entry colname="col2">2.5</oasis:entry>
         <oasis:entry colname="col3">air</oasis:entry>
         <oasis:entry colname="col4">242/242/242</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M439" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>20</oasis:entry>
         <oasis:entry colname="col6">1.4</oasis:entry>
         <oasis:entry colname="col7">0</oasis:entry>
         <oasis:entry colname="col8">0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">2</oasis:entry>
         <oasis:entry colname="col2">10.0</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">255/213/213</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M440" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>20</oasis:entry>
         <oasis:entry colname="col6">900</oasis:entry>
         <oasis:entry colname="col7">5</oasis:entry>
         <oasis:entry colname="col8">0</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">3</oasis:entry>
         <oasis:entry colname="col2">10.0</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">255/170/170</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M441" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>10</oasis:entry>
         <oasis:entry colname="col6">910</oasis:entry>
         <oasis:entry colname="col7">3</oasis:entry>
         <oasis:entry colname="col8">5</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">4</oasis:entry>
         <oasis:entry colname="col2">2.5</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">63/105/202</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M442" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col6">910</oasis:entry>
         <oasis:entry colname="col7">5</oasis:entry>
         <oasis:entry colname="col8">100</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">5</oasis:entry>
         <oasis:entry colname="col2">47.5</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">255/42/42</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M443" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>3</oasis:entry>
         <oasis:entry colname="col6">910</oasis:entry>
         <oasis:entry colname="col7">5</oasis:entry>
         <oasis:entry colname="col8">20</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">6</oasis:entry>
         <oasis:entry colname="col2">1.0</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">80/163/255</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M444" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col6">910</oasis:entry>
         <oasis:entry colname="col7">3</oasis:entry>
         <oasis:entry colname="col8">100</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">7</oasis:entry>
         <oasis:entry colname="col2">13.5</oasis:entry>
         <oasis:entry colname="col3">ice1h</oasis:entry>
         <oasis:entry colname="col4">170/0/0</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M445" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>1</oasis:entry>
         <oasis:entry colname="col6">910</oasis:entry>
         <oasis:entry colname="col7">2</oasis:entry>
         <oasis:entry colname="col8">60</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><table-wrap-foot><p id="d2e10893"><sup>*</sup> The ID refers to the value in the figure and not in the JSON project file in the GitHub repository.</p></table-wrap-foot></table-wrap>

<fig id="FB1"><label>Figure B1</label><caption><p id="d2e11223">The annotated image of the model domain used to replicate the zero-offset profile in Fig. <xref ref-type="fig" rid="F4"/>. The sources and receivers were located along a vertical profile to mimic the borehole profiling.</p></caption>
        
        <graphic xlink:href="https://tc.copernicus.org/articles/20/6283/2026/tc-20-6283-2026-f11.png"/>

      </fig>

</app>

<app id="App1.Ch1.S3">
  <label>Appendix C</label><title>Seismic Anisotropic Parameters</title>
      <p id="d2e11244">The Python scripts and JSON project files can be found in the <italic>SeidarT-Recipes</italic> repository. The stiffness tensors used in these models are:

              <disp-formula specific-use="align"><mml:math id="M446" display="block"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtext>Isotropic</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>Hexagonal</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">6.62</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">6.62</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">6.62</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">14.57</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">9.27</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">3.86</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">14.57</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">3.86</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">14.57</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">2.65</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>Orthorhombic</mml:mtext></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtext>Monoclinic</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced open="[" close="]"><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.65</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1.99</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">15.89</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.32</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">11.92</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">2.98</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.64</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.65</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1.99</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.36</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">15.89</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.32</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.36</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">11.92</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.36</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">2.98</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.64</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>Triclinic</mml:mtext></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle class="stylechange" displaystyle="true"/></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced close="]" open="["><mml:mtable class="matrix" columnalign="center center center center center center" framespacing="0em"><mml:mtr><mml:mtd><mml:mn mathvariant="normal">13.24</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.65</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">1.99</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.15</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.17</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.18</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">15.89</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">2.32</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.12</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.13</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.15</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">11.92</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.09</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.10</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.01</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">2.98</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.60</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.60</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.31</mml:mn></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0.66</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd/><mml:mtd><mml:mn mathvariant="normal">3.64</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</app>
  </app-group><notes notes-type="codeavailability"><title>Code availability</title>

      <p id="d2e11748">The current version of <italic>SeidarT</italic> is available from the project website <uri>https://github.com/UMainedynamics/SeidarT</uri> (last access: 6 October 2026) under the GNU General Public licence. The exact version of the model used to produce the results used in this paper is archived on repository under DOI <ext-link xlink:href="https://doi.org/10.5281/zenodo.21982065" ext-link-type="DOI">10.5281/zenodo.21982065</ext-link> <xref ref-type="bibr" rid="bib1.bibx12" id="paren.90"/>. The backend finite-difference solvers are available at <uri>https://github.com/UMainedynamics/SeidarT-Backend</uri> (last access: 6 October 2026) under DOI <ext-link xlink:href="https://doi.org/10.5281/zenodo.18956126" ext-link-type="DOI">10.5281/zenodo.18956126</ext-link> <xref ref-type="bibr" rid="bib1.bibx10" id="paren.91"/>. Example workflows and reproducible modeling scripts are available at <uri>https://github.com/UMainedynamics/SeidarT-Recipes</uri> (last access: 6 October 2026) under DOI <ext-link xlink:href="https://doi.org/10.5281/zenodo.18956061" ext-link-type="DOI">10.5281/zenodo.18956061</ext-link> <xref ref-type="bibr" rid="bib1.bibx11" id="paren.92"/>. SeidarT can be installed from source by cloning the repositories and creating the provided Conda environment, as documented in the SeidarT online documentation and README files. Required dependencies are Miniconda or Anaconda, Python3, git, GCC along with 64-bit Intel or ARM CPU, and at least 8-GB RAM (more recommended for large models).</p>
  </notes><notes notes-type="dataavailability"><title>Data availability</title>

      <p id="d2e11785">Synthetic data used to generate the figures can be accessed or reproduced in their respective folders in the SeidarT-Backend repository (<uri>https://github.com/UMainedynamics/SeidarT-Recipes</uri>, last access: 6 October 2026, and <ext-link xlink:href="https://doi.org/10.5281/zenodo.18956126" ext-link-type="DOI">10.5281/zenodo.18956126</ext-link>; <xref ref-type="bibr" rid="bib1.bibx10" id="altparen.93"/>). Plotting scripts are also included to regenerate the figures.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e11800">CG, SV, KC, and SC led funding acquisition; SB, CG, SV, and KC conceptualized the project; SB and CG developed the methodology; SB developed the software; SB conducted the formal analysis; SB performed validation; SB wrote the manuscript draft; CG, SV, KC, and SC reviewed and edited the manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e11806">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="d2e11812">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="d2e11818">During the preparation of this work, generative AI tools (Perplexity, powered by GPT-based models) were used to assist with literature searching, language polishing (grammar and spellchecking), and limited code development (e.g., plotting routines and generation of docstrings). The authors reviewed, verified, and take full responsibility for all content, including the text and code, and for the appropriateness and correctness of any material produced with the assistance of these tools.</p></ack><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e11823">Support for this work is provded from U.S. Army Engineering and Research Development Center and the Department of the Army contract number W913E523C0003.</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e11829">This paper was edited by Adrian Flores Orozco and reviewed by Henry Moore, Matthias Steiner, and one anonymous referee.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>A2 Photonics Sensors(2019)</label><mixed-citation> A2 Photonics Sensors: Wise Snow Liquid Water Content Sensor User Manual, A2 Photonics Sensors, Grenoble, France, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Agnew et al.(2023)Agnew, Clark, Booth, Brisbourne, and Smith</label><mixed-citation>Agnew, R. S., Clark, R. A., Booth, A. D., Brisbourne, A. M., and Smith, A. M.: Measuring seismic attenuation in polar firn: method and application to Korff Ice Rise, West Antarctica, J. Glaciol., 69, 2075–2086, <ext-link xlink:href="https://doi.org/10.1017/jog.2023.82" ext-link-type="DOI">10.1017/jog.2023.82</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Akaike(2003)</label><mixed-citation> Akaike, H.: A new look at the statistical model identification, IEEE T.  Automat. Contr., 19, 716–723, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Aki and Richards(2002)</label><mixed-citation> Aki, K. and Richards, P.: Quantitative seismology, MIT Press, ISBN 978-1891389634, 2002.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Ali et al.(2023)Ali, Eldin, and Haider</label><mixed-citation>Ali, T., Eldin, M. N., and Haider, W.: The effect of soil-structure interaction on the seismic response of structures using machine learning, finite element modeling and ASCE 7-16 methods, Sensors, 23, 2047, <ext-link xlink:href="https://doi.org/10.3390/s23042047" ext-link-type="DOI">10.3390/s23042047</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Alley(1988)</label><mixed-citation>Alley, R. B.: Fabrics in polar ice sheets: development and prediction, Science, 240, 493, <ext-link xlink:href="https://doi.org/10.1126/science.240.4851.493" ext-link-type="DOI">10.1126/science.240.4851.493</ext-link>, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Bælum and Benn(2011)</label><mixed-citation>Bælum, K. and Benn, D. I.: Thermal structure and drainage system of a small valley glacier (Tellbreen, Svalbard), investigated by ground penetrating radar, The Cryosphere, 5, 139–149, <ext-link xlink:href="https://doi.org/10.5194/tc-5-139-2011" ext-link-type="DOI">10.5194/tc-5-139-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Bai et al.(2013)Bai, Huang, Li, Zhou, and Greenhalgh</label><mixed-citation>Bai, C.-Y., Huang, G.-J., Li, X.-L., Zhou, B., and Greenhalgh, S.: Ray tracing of multiple transmitted/reflected/converted waves in 2-D/3-D layered anisotropic TTI media and application to crosswell traveltime tomography, Geophys. J. Int., 195, 1068–1087, <ext-link xlink:href="https://doi.org/10.1093/gji/ggt267" ext-link-type="DOI">10.1093/gji/ggt267</ext-link>, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Bécache et al.(2003)Bécache, Fauqueux, and Joly</label><mixed-citation> Bécache, E., Fauqueux, S., and Joly, P.: Stability of perfectly matched layers, group velocities and anisotropic waves, J. Comput. Phys., 188, 399–433, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Bernsen(2026a)</label><mixed-citation>Bernsen, S. P.: UMainedynamics/SeidarT-Backend: v3.0.21, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.18956126" ext-link-type="DOI">10.5281/zenodo.18956126</ext-link>, 2026a.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Bernsen(2026b)</label><mixed-citation>Bernsen, S. P.: UMainedynamics/SeidarT-Recipes: v1.0.0, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.18956061" ext-link-type="DOI">10.5281/zenodo.18956061</ext-link>, 2026b.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Bernsen and ChristopherGerbi(2026)</label><mixed-citation>Bernsen, S. P. and ChristopherGerbi: UMainedynamics/SeidarT: v3, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.21982065" ext-link-type="DOI">10.5281/zenodo.21982065</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Berryman(1980)</label><mixed-citation> Berryman, J. G.: Long-wavelength propagation in composite elastic media I. Spherical inclusions,   J. Acoust. Soc. Am., 68, 1809–1819, 1980.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>Berryman(1995)</label><mixed-citation> Berryman, J. G.: Mixture theories for rock properties, Rock physics and phase relations: A handbook of physical constants, 3, 205–228, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Bond(1943)</label><mixed-citation> Bond, W. L.: The mathematics of the physical properties of crystals,   Bell Syst. Tech. J., 22, 1–72, 1943.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Bozdağ et al.(2017)Bozdağ, Ruan, Metthez, Khan, Leng, Van Driel, Wieczorek, Rivoldini, Larmat, Giardini et al.</label><mixed-citation> Bozdağ, E., Ruan, Y., Metthez, N., Khan, A., Leng, K., Van Driel, M., Wieczorek, M., Rivoldini, A., Larmat, C. S., Giardini, D., Tromp, J., Lognonne, P., and Banerdt, B. W.: Simulations of seismic wave propagation on Mars, Space Sci. Rev., 211, 571–594, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Bradford et al.(2009)Bradford, Harper, and Brown</label><mixed-citation>Bradford, J. H., Harper, J. T., and Brown, J.: Complex dielectric permittivity measurements from ground‐penetrating radar data to estimate snow liquid water content in the pendular regime, Water Resour. Res., 45, <ext-link xlink:href="https://doi.org/10.1029/2008WR007341" ext-link-type="DOI">10.1029/2008WR007341</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Bray(2017)</label><mixed-citation>Bray, T.: The JavaScript Object Notation (JSON) Data Interchange Format, RFC 8259, <ext-link xlink:href="https://doi.org/10.17487/RFC8259" ext-link-type="DOI">10.17487/RFC8259</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Budiansky(1965)</label><mixed-citation> Budiansky, B.: On the elastic moduli of some heterogeneous materials, J. Mech. Phys. Solids, 13, 223–227, 1965.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Bunge(2013)</label><mixed-citation> Bunge, H.-J.: Texture analysis in materials science: mathematical methods, Elsevier, ISBN 978-0408106429, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Calonne et al.(2011)Calonne, Flin, Morin, Lesaffre, du Roscoat, and Geindreau</label><mixed-citation>Calonne, N., Flin, F., Morin, S., Lesaffre, B., du Roscoat, S. R., and Geindreau, C.: Numerical and experimental investigations of the effective thermal conductivity of snow, Geophys. Res. Lett., 38, <ext-link xlink:href="https://doi.org/10.1029/2011GL049234" ext-link-type="DOI">10.1029/2011GL049234</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Cangellaris and Wright(1991)</label><mixed-citation> Cangellaris, A. C. and Wright, D. B.: Analysis of the numerical error caused by the stair-stepped approximation of a conducting boundary in FDTD simulations of electromagnetic phenomena, IEEE T. Antenn. Propag., 39, 1518–1525, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>Chew(1999)</label><mixed-citation> Chew, W. C.: Waves and fields in inhomogenous media, John Wiley &amp; Sons, ISBN 0-7803-4749-8, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Collet and Kucherawy(2021)</label><mixed-citation>Collet, Y. and Kucherawy, M.: Zstandard Compression and the application/zstd Media Type, RFC 8878, RFC Editor, ISSN 2070-1721, <ext-link xlink:href="https://doi.org/10.17487/RFC8878" ext-link-type="DOI">10.17487/RFC8878</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx25"><label>Collino and Tsogka(1998)</label><mixed-citation>Collino, F. and Tsogka, C.: Application of the PML Absorbing Layer Model to the Linear Elastodynamic Problem in Anisotropic Hetereogeneous Media, Geophysics, 66, 294–307, <ext-link xlink:href="https://doi.org/10.1190/1.1444908" ext-link-type="DOI">10.1190/1.1444908</ext-link>, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx26"><label>Courant et al.(1928)Courant, Friedrichs, and Lewy</label><mixed-citation> Courant, R., Friedrichs, K., and Lewy, H.: Über die partiellen Differenzengleichungen der mathematischen Physik, Math. Ann., 100, 32–74, 1928.</mixed-citation></ref>
      <ref id="bib1.bibx27"><label>deWit(2008)</label><mixed-citation> deWit, R.: Elastic constants and thermal expansion averages of a nontextured polycrystal, J. Mech. Mater. Struct., 3, 195–212, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx28"><label>Dridi et al.(2001)Dridi, Hesthaven, and Ditkowski</label><mixed-citation> Dridi, K., Hesthaven, J. S., and Ditkowski, A.: Staircase-free finite-difference time-domain formulation for general materials in complex geometries, IEEE T. Antenn. Propag., 49, 749–756, 2001.</mixed-citation></ref>
      <ref id="bib1.bibx29"><label>Eshelby and Peierls(1957)</label><mixed-citation>Eshelby, J. D. and Peierls, R. E.: The determination of the elastic field of an ellipsoidal inclusion, and related problems, P. Roy. Soc. Lond. Ser. A, 241, 376–396, <ext-link xlink:href="https://doi.org/10.1098/rspa.1957.0133" ext-link-type="DOI">10.1098/rspa.1957.0133</ext-link>, 1957.</mixed-citation></ref>
      <ref id="bib1.bibx30"><label>Festa and Vilotte(2005)</label><mixed-citation>Festa, G. and Vilotte, J.-P.: The Newmark scheme as velocity-stress time-staggering: An efficient implementation for spectral element simulations of elastodynamics, Geophys. J. Int., 161, 789–812, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2005.02601.x" ext-link-type="DOI">10.1111/j.1365-246X.2005.02601.x</ext-link>, 2005.</mixed-citation></ref>
      <ref id="bib1.bibx31"><label>Fujita et al.(1993)Fujita, Matsuoka, Morishima, and Mae</label><mixed-citation>Fujita, S., Matsuoka, T., Morishima, S., and Mae, S.: The measurement on the dielectric properties of ice at HF, VHF and microwave frequencies, in: Geoscience and Remote Sensing Symposium, 1993, IGARSS'93, Better Understanding of Earth Environment, International,  IEEE, 1258–1260, <ext-link xlink:href="https://doi.org/10.1109/IGARSS.1993.32267" ext-link-type="DOI">10.1109/IGARSS.1993.32267</ext-link>, 1993.</mixed-citation></ref>
      <ref id="bib1.bibx32"><label>Fujita et al.(2000)Fujita, Matsuoka, Ishida, Matsuoka, and Mae</label><mixed-citation> Fujita, S., Matsuoka, T., Ishida, T., Matsuoka, K., and Mae, S.: A summary of the complex dielectric permittivity of ice in the megahertz range and its applications for radar sounding of polar ice sheets, in: Physics of ice core records, Hokkaido University Press, 185–212, hdl:2115/32469, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx33"><label>Gagnon et al.(1987)Gagnon, Kiefte, Clouter, and Whalley</label><mixed-citation> Gagnon, R., Kiefte, H., Clouter, M., and Whalley, E.: Elastic constants of ice Ih, up to 2.8 kbar, by Brillouin spectroscopy, Le Journal de Physique Colloques, 48, C1–23, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx34"><label>Gassmann(2007)</label><mixed-citation> Gassmann, F.: On elasticity of porous media, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx35"><label>Gerbi et al.(2021)Gerbi, Mills, Clavette, Campbell, Bernsen, Clemens-Sewall, Lee, Hawley, Kreutz, and Hruby</label><mixed-citation>Gerbi, C., Mills, S., Clavette, R., Campbell, S., Bernsen, S., Clemens-Sewall, D., Lee, I., Hawley, R., Kreutz, K., and Hruby, K.: Microstructures in a shear margin: Jarvis Glacier, Alaska, J. Glaciol., 67, 1163–1176, <ext-link xlink:href="https://doi.org/10.1017/jog.2021.62" ext-link-type="DOI">10.1017/jog.2021.62</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx36"><label>Graves and Day(2003)</label><mixed-citation> Graves, R. W. and Day, S. M.: Stability and accuracy analysis of coarse-grain viscoelastic simulations, Bull. Seismol. Soc. Am., 93, 283–300, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx37"><label>Gueting et al.(2017)Gueting, Vienken, Klotzsche, van der Kruk, Vanderborght, Caers, Vereecken, and Englert</label><mixed-citation> Gueting, N., Vienken, T., Klotzsche, A., van der Kruk, J., Vanderborght, J., Caers, J., Vereecken, H., and Englert, A.: High resolution aquifer characterization using crosshole GPR full-waveform tomography: Comparison with direct-push and tracer test data, Water Resour. Res., 53, 49–72, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx38"><label>Gusmeroli et al.(2010a)Gusmeroli, Clark, Murray, Booth, Kulessa, and Barrett</label><mixed-citation> Gusmeroli, A., Clark, R. A., Murray, T., Booth, A. D., Kulessa, B., and Barrett, B. E.: Seismic wave attenuation in the uppermost glacier ice of Storglaciären, Sweden, J. Glaciol., 56, 249–256, 2010a.</mixed-citation></ref>
      <ref id="bib1.bibx39"><label>Gusmeroli et al.(2010b)Gusmeroli, Murray, Jansson, Pettersson, Aschwanden, and Booth</label><mixed-citation>Gusmeroli, A., Murray, T., Jansson, P., Pettersson, R., Aschwanden, A., and Booth, A. D.: Vertical distribution of water within the polythermal Storglaciären, Sweden, J. Geophys. Res.-Earth, 115, <ext-link xlink:href="https://doi.org/10.1029/2009JF001539" ext-link-type="DOI">10.1029/2009JF001539</ext-link>, 2010b.</mixed-citation></ref>
      <ref id="bib1.bibx40"><label>Hagenmuller(2022)</label><mixed-citation> Hagenmuller, P.: Snow mechanics: from snow microstructure to avalanche formation, Ph.D. thesis, Université Grenoble Alpes, hal_id: tel-04143903, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx41"><label>Häggblad and Runborg(2014)</label><mixed-citation> Häggblad, J. and Runborg, O.: Accuracy of staircase approximations in finite-difference methods for wave propagation, Numer. Math., 128, 741–771, 2014.</mixed-citation></ref>
      <ref id="bib1.bibx42"><label>Hellmann et al.(2021)Hellmann, Grab, Kerch, Löwe, Bauder, Weikusat, and Maurer</label><mixed-citation>Hellmann, S., Grab, M., Kerch, J., Löwe, H., Bauder, A., Weikusat, I., and Maurer, H.: Acoustic velocity measurements for detecting the crystal orientation fabrics of a temperate ice core, The Cryosphere, 15, 3507–3521, <ext-link xlink:href="https://doi.org/10.5194/tc-15-3507-2021" ext-link-type="DOI">10.5194/tc-15-3507-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx43"><label>Hill(1952)</label><mixed-citation>Hill, R.: The elastic behaviour of a crystalline aggregate, Proc. Phys. Soc.  A, 65, 349, <ext-link xlink:href="https://doi.org/10.1088/0370-1298/65/5/307" ext-link-type="DOI">10.1088/0370-1298/65/5/307</ext-link>, 1952.</mixed-citation></ref>
      <ref id="bib1.bibx44"><label>Hill(1965)</label><mixed-citation>Hill, R.: A self-consistent mechanics of composite materials, J. Mech. Phys. Solids, 13, 213–222, <ext-link xlink:href="https://doi.org/10.1016/0022-5096(65)90010-4" ext-link-type="DOI">10.1016/0022-5096(65)90010-4</ext-link>, 1965.</mixed-citation></ref>
      <ref id="bib1.bibx45"><label>Hu et al.(2023)Hu, Yang, Han, Huang, Qin, Sun, and Yu</label><mixed-citation>Hu, Z., Yang, J., Han, L., Huang, J., Qin, S., Sun, J., and Yu, Y.: Modeling seismic wave propagation in the Loess Plateau using a viscoacoustic wave equation with explicitly expressed quality factor, Front. Earth Sci.,  10, <ext-link xlink:href="https://doi.org/10.3389/feart.2022.1069166" ext-link-type="DOI">10.3389/feart.2022.1069166</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx46"><label>Hugenschmidt and Mastrangelo(2006)</label><mixed-citation> Hugenschmidt, J. and Mastrangelo, R.: GPR inspection of concrete bridges, Cement and Concrete Composites, 28, 384–392, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx47"><label>Inman et al.(2007)Inman, Elsherbeni, Maloney, and Baker</label><mixed-citation>Inman, M. J., Elsherbeni, A. Z., Maloney, J. G., and Baker, B. N.: GPU based FDTD solver with CPML boundaries, in: 2007 IEEE Antennas and Propagation Society International Symposium,   IEEE, 5255–5258, <ext-link xlink:href="https://doi.org/10.1109/APS.2007.4396732" ext-link-type="DOI">10.1109/APS.2007.4396732</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx48"><label>Jiang et al.(2023)Jiang, Ringel, Bayer, and Xu</label><mixed-citation>Jiang, Z., Ringel, L. M., Bayer, P., and Xu, T.: Fracture network characterization in reservoirs by joint inversion of microseismicity and thermal breakthrough data: Method development and verification, Water Resour. Res., 59, e2022WR034339, <ext-link xlink:href="https://doi.org/10.1029/2022WR034339" ext-link-type="DOI">10.1029/2022WR034339</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx49"><label>Jiracek(1967)</label><mixed-citation>Jiracek, G. R.: Radio sounding of Antarctic ice, <uri>https://api.semanticscholar.org/CorpusID:222386279</uri> (last access: 16 October 2026), 1967.</mixed-citation></ref>
      <ref id="bib1.bibx50"><label>Jones and Or(2005)</label><mixed-citation>Jones, S. B. and Or, D.: Thermal and geometrical effects on bulk permittivity of porous mixtures containing bound water, in: Electromagnetic Aquametry: Electromagnetic Wave Interaction with Water and Moist Substances, Springer, 71–92, <uri>https://api.semanticscholar.org/CorpusID:222386279</uri> (last access: 20 October 2026), 2005.</mixed-citation></ref>
      <ref id="bib1.bibx51"><label>Julian and Gubbins(1977)Julian, Gubbins et al.</label><mixed-citation> Julian, B. R. and Gubbins, D.: Three-dimensional seismic ray tracing, J. Geophys., 43, 95–113, 1977.</mixed-citation></ref>
      <ref id="bib1.bibx52"><label>Jurkevics(1988)</label><mixed-citation> Jurkevics, A.: Polarization analysis of three-component array data, Bull. Seismol. Soc. Am., 78, 1725–1743, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx53"><label>Kell(1975)</label><mixed-citation> Kell, G. S.: Density, thermal expansivity, and compressibility of liquid water from 0. deg. to 150. deg.. Correlations and tables for atmospheric pressure and saturation reviewed and expressed on 1968 temperature scale, J. Chem. Eng. Data, 20, 97–105, 1975.</mixed-citation></ref>
      <ref id="bib1.bibx54"><label>Kjartansson(1979)</label><mixed-citation> Kjartansson, E.: Constant Q-wave propagation and attenuation, J. Geophys. Res.-Solid Ea., 84, 4737–4748, 1979.</mixed-citation></ref>
      <ref id="bib1.bibx55"><label>Klin et al.(2010)Klin, Priolo, and Seriani</label><mixed-citation> Klin, P., Priolo, E., and Seriani, G.: Numerical simulation of seismic wave propagation in realistic 3-D geo-models with a Fourier pseudo-spectral method, Geophys. J. Int., 183, 905–922, 2010.</mixed-citation></ref>
      <ref id="bib1.bibx56"><label>Komatitsch and Martin(2007)</label><mixed-citation>Komatitsch, D. and Martin, R.: An unsplit convolutional Perfectly Matched Layer improved at grazing incidence for the seismic wave equation, Geophysics, 72, SM155–SM167, <ext-link xlink:href="https://doi.org/10.1190/1.2757586" ext-link-type="DOI">10.1190/1.2757586</ext-link>, 2007.</mixed-citation></ref>
      <ref id="bib1.bibx57"><label>Komatitsch and Tromp(1999)</label><mixed-citation> Komatitsch, D. and Tromp, J.: Introduction to the spectral element method for three-dimensional seismic wave propagation, Geophys. J. Int., 139, 806–822, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx58"><label>Komatitsch and Vilotte(1998)</label><mixed-citation> Komatitsch, D. and Vilotte, J.-P.: The spectral element method: an efficient tool to simulate the seismic response of 2D and 3D geological structures, Bull. Seismol. Soc. Am., 88, 368–392, 1998.</mixed-citation></ref>
      <ref id="bib1.bibx59"><label>Kovacs et al.(1995)Kovacs, Gow, and Morey</label><mixed-citation> Kovacs, A., Gow, A. J., and Morey, R. M.: Dielectric Properties of Saline Ice at Microwave Frequencies, Tech. Rep. CRREL Report 95-18, Cold Regions Research and Engineering Laboratory (CRREL), Hanover, NH, USA, DTIC Accession Number: ADA301222, 1995.</mixed-citation></ref>
      <ref id="bib1.bibx60"><label>Lai et al.(2009)Lai, Rubin, and Krempl</label><mixed-citation>Lai, W. M., Rubin, D., and Krempl, E.: Introduction to continuum mechanics, Butterworth-Heinemann, ISBN 978-0-7506-8560-3, <ext-link xlink:href="https://doi.org/10.1016/B978-0-7506-8560-3.X0001-1" ext-link-type="DOI">10.1016/B978-0-7506-8560-3.X0001-1</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx61"><label>Levander(1988)</label><mixed-citation> Levander, A. R.: Fourth-order finite-difference P-SV seismograms, Geophysics, 53, 1425–1436, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx62"><label>Liebe et al.(1991)Liebe, Hufford, and Manabe</label><mixed-citation> Liebe, H. J., Hufford, G. A., and Manabe, T.: A model for the complex permittivity of water at frequencies below 1 THz, Int.  J. Infrared   Milli., 12, 659–675, 1991.</mixed-citation></ref>
      <ref id="bib1.bibx63"><label>Luu(2021)</label><mixed-citation>Luu, K.: disba: Numba-accelerated computation of surface wave dispersion, Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.14534395" ext-link-type="DOI">10.5281/zenodo.14534395</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx64"><label>Lyu et al.(2025)Lyu, Romanowicz, Zhao, and Masson</label><mixed-citation>Lyu, C., Romanowicz, B., Zhao, L., and Masson, Y.: Efficient hybrid numerical modeling of the seismic wavefield in the presence of solid-fluid boundaries, Nat. Commun., 16, 1722, <ext-link xlink:href="https://doi.org/10.1038/s41467-025-56530-5" ext-link-type="DOI">10.1038/s41467-025-56530-5</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx65"><label>Mahmoudian and Margrave(2003)</label><mixed-citation>Mahmoudian, F. and Margrave, G. F.: A review of the finite-element method in seismic wave modelling, Technical report, CREWES Research Report, <uri>https://crewes.org</uri> (last access: 20 October 2026), 2003.</mixed-citation></ref>
      <ref id="bib1.bibx66"><label>Man and Huang(2011)</label><mixed-citation> Man, C.-S. and Huang, M.: A simple explicit formula for the Voigt-Reuss-Hill average of elastic polycrystals with arbitrary crystal and texture symmetries, J. Elasticity, 105, 29–48, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx67"><label>Martin and Komatitsch(2009)</label><mixed-citation>Martin, R. and Komatitsch, D.: An unsplit convolutional perfectly matched layer technique improved at grazing incidence for the viscoelastic wave equation, Geophys. J. Int., 179, 333–344, <ext-link xlink:href="https://doi.org/10.1111/j.1365-246X.2009.04278.x" ext-link-type="DOI">10.1111/j.1365-246X.2009.04278.x</ext-link>, 2009.</mixed-citation></ref>
      <ref id="bib1.bibx68"><label>Martin et al.(2008a)Martin, Komatitsch, and Ezziani</label><mixed-citation>Martin, R., Komatitsch, D., and Ezziani, A.: An unsplit convolutional perfectly matched layer improved at grazing incidence for seismic wave equation in poroelastic media, Geophysics, 73, T51–T61, <ext-link xlink:href="https://doi.org/10.1190/1.2939484" ext-link-type="DOI">10.1190/1.2939484</ext-link>, 2008a.</mixed-citation></ref>
      <ref id="bib1.bibx69"><label>Martin et al.(2008b)Martin, Komatitsch, and Gedney</label><mixed-citation> Martin, R., Komatitsch, D., and Gedney, S. D.: A variational formulation of a stabilized unsplit convolutional perfectly matched layer for the isotropic or anisotropic seismic wave equation, CMES-Comp. Model. Eng., 37, 274–304, 2008b.</mixed-citation></ref>
      <ref id="bib1.bibx70"><label>Matsuoka et al.(2012)Matsuoka, Power, Fujita, and Raymond</label><mixed-citation>Matsuoka, K., Power, D., Fujita, S., and Raymond, C. F.: Rapid development of anisotropic ice-crystal-alignment fabrics inferred from englacial radar polarimetry, central West Antarctica, J. Geophys. Res.-Earth, 117, <ext-link xlink:href="https://doi.org/10.1029/2012JF002440" ext-link-type="DOI">10.1029/2012JF002440</ext-link>, 2012.</mixed-citation></ref>
      <ref id="bib1.bibx71"><label>McMechan and Yedlin(1981)</label><mixed-citation> McMechan, G. A. and Yedlin, M. J.: Analysis of dispersive waves by wave field transformation, Geophysics, 46, 869–874, 1981.</mixed-citation></ref>
      <ref id="bib1.bibx72"><label>Miller et al.(2018)Miller, Kelley, Kelley, Belknap, and Spiess</label><mixed-citation> Miller, J. F., Kelley, A. R., Kelley, J. T., Belknap, D. F., and Spiess, A. E.: Ground-penetrating radar as a cultural resource management tool for assessment of eroding shell middens, Conserv. Manage. Archa., 20, 199–214, 2018.</mixed-citation></ref>
      <ref id="bib1.bibx73"><label>Montagnat et al.(2020)Montagnat, Löwe, Calonne, Schneebeli, Matzl, and Jaggi</label><mixed-citation>Montagnat, M., Löwe, H., Calonne, N., Schneebeli, M., Matzl, M., and Jaggi, M.: On the birth of structural and crystallographic fabric signals in polar snow: A case study from the EastGRIP snowpack, Front. Earth Sci., 8, 365, <ext-link xlink:href="https://doi.org/10.3389/feart.2020.00365" ext-link-type="DOI">10.3389/feart.2020.00365</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx74"><label>Monz et al.(2021)Monz, Hudleston, Prior, Michels, Fan, Negrini, Langhorne, and Qi</label><mixed-citation>Monz, M. E., Hudleston, P. J., Prior, D. J., Michels, Z., Fan, S., Negrini, M., Langhorne, P. J., and Qi, C.: Full crystallographic orientation (c and a axes) of warm, coarse-grained ice in a shear-dominated setting: a case study, Storglaciären, Sweden, The Cryosphere, 15, 303–324, <ext-link xlink:href="https://doi.org/10.5194/tc-15-303-2021" ext-link-type="DOI">10.5194/tc-15-303-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bibx75"><label>Park et al.(1999)Park, Miller, and Xia</label><mixed-citation> Park, C. B., Miller, R. D., and Xia, J.: Multichannel analysis of surface waves, Geophysics, 64, 800–808, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx76"><label>Petrenko and Whitworth(1999)</label><mixed-citation> Petrenko, V. F. and Whitworth, R. W.: Physics of ice, OUP Oxford, ISBN 0-19-851895-1, 1999.</mixed-citation></ref>
      <ref id="bib1.bibx77"><label>Reuß(1929)</label><mixed-citation> Reuß, A.: Berechnung der fließgrenze von mischkristallen auf grund der plastizitätsbedingung für einkristalle, J. Appl. Math. Mech., 9, 49–58, 1929.</mixed-citation></ref>
      <ref id="bib1.bibx78"><label>Riche et al.(2013)Riche, Montagnat, and Schneebeli</label><mixed-citation> Riche, F., Montagnat, M., and Schneebeli, M.: Evolution of crystal orientation in snow during temperature gradient metamorphism, J. Glaciol., 59, 47–55, 2013.</mixed-citation></ref>
      <ref id="bib1.bibx79"><label>Roden and Gedney(2000)</label><mixed-citation>Roden, J. A. and Gedney, S. D.: Convolution PML (CPML): An Efficient FDTD Implementation of the CFS-PML for Arbitrary Media, Microw. Opt. Techn. Let., 27, 334–339, <ext-link xlink:href="https://doi.org/10.1002/1098-2760(20001205)27:5&lt;334::AID-MOP14&gt;3.0.CO;2-A" ext-link-type="DOI">10.1002/1098-2760(20001205)27:5&lt;334::AID-MOP14&gt;3.0.CO;2-A</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bibx80"><label>Schneebeli and Sokratov(2004)</label><mixed-citation>Schneebeli, M. and Sokratov, S.: Tomography of temperature gradient metamorphism of snow and associated changes in heat conductivity, Hydrol. Process., 18, 3655–3665, <ext-link xlink:href="https://doi.org/10.1002/hyp.5800" ext-link-type="DOI">10.1002/hyp.5800</ext-link>, 2004.</mixed-citation></ref>
      <ref id="bib1.bibx81"><label>Takanami and Kitagawa(1988)</label><mixed-citation> Takanami, T. and Kitagawa, G.: A new efficient procedure for the estimation of onset times of seismic waves, J. Phys. Earth, 36, 267–290, 1988.</mixed-citation></ref>
      <ref id="bib1.bibx82"><label>Tiuri et al.(1984)Tiuri, Sihvola, Nyfors, and Hallikaiken</label><mixed-citation>Tiuri, M., Sihvola, A., Nyfors, E., and Hallikaiken, M.: The complex dielectric constant of snow at microwave frequencies, IEEE J. Ocean. Eng., 9, 377–382, <ext-link xlink:href="https://doi.org/10.1109/JOE.1984.1145645" ext-link-type="DOI">10.1109/JOE.1984.1145645</ext-link>, 1984.</mixed-citation></ref>
      <ref id="bib1.bibx83"><label>Trefethen and Bau(2022)</label><mixed-citation>Trefethen, L. N. and Bau, D.: Numerical linear algebra, Society for Industrial and Applied Mathematics (SIAM), ISBN 978-1-61197-715-8, <ext-link xlink:href="https://doi.org/10.1137/1.9781611977165" ext-link-type="DOI">10.1137/1.9781611977165</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx84"><label>Um and Thurber(1987)</label><mixed-citation> Um, J. and Thurber, C.: A fast algorithm for two-point seismic ray tracing, Bull. Seismol. Soc. Am., 77, 972–986, 1987.</mixed-citation></ref>
      <ref id="bib1.bibx85"><label>Valovcan et al.(2024)Valovcan, Moczo, Kristek, Galis, and Kristekova</label><mixed-citation>Valovcan, J., Moczo, P., Kristek, J., Galis, M., and Kristekova, M.: How Accurate Numerical Simulation of Seismic Waves in a Heterogeneous Medium Can Be?, Bull. Seismol. Soc. Am., 114, 2287–2309, <ext-link xlink:href="https://doi.org/10.1785/0120240049" ext-link-type="DOI">10.1785/0120240049</ext-link>, 2024.</mixed-citation></ref>
      <ref id="bib1.bibx86"><label>Virieux(1984)</label><mixed-citation>Virieux, J.: SH-wave propagation in heterogeneous media: Velocity-stress finite-difference method, Geophysics, 49, 1933–1957, 1984.  </mixed-citation></ref>
      <ref id="bib1.bibx87"><label>Voigt(1910)</label><mixed-citation> Voigt, W.: Lehrbuch der kristallphysik: (mit ausschluss der kristalloptik), vol. 34, BG Teubner, ISBN 978-3-663-15316-0, 1910.</mixed-citation></ref>
      <ref id="bib1.bibx88"><label>Witsil et al.(2022)Witsil, Fee, Dickey, Peña, Waxler, and Blom</label><mixed-citation>Witsil, A., Fee, D., Dickey, J., Peña, R., Waxler, R., and Blom, P.: Detecting large explosions with machine learning models trained on synthetic infrasound data, Geophys. Res. Lett., 49, e2022GL097785, <ext-link xlink:href="https://doi.org/10.1029/2022GL097785" ext-link-type="DOI">10.1029/2022GL097785</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bibx89"><label>Wu et al.(2019)Wu, Liang, Shi, and Fomel</label><mixed-citation> Wu, X., Liang, L., Shi, Y., and Fomel, S.: FaultSeg3D: Using synthetic data sets to train an end-to-end convolutional neural network for 3D seismic fault segmentation, Geophysics, 84, IM35–IM45, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx90"><label>Xu et al.(2023)Xu, Yu, Cai, Yang, and Wei</label><mixed-citation>Xu, Z., Yu, M., Cai, J., Yang, Q., and Wei, T.: A Finite-Difference Time-Domain (FDTD) solver with linearly scalable performance in an FPGA cluster, in: 2023 IEEE International Conference on Cluster Computing (CLUSTER),  307–317, <ext-link xlink:href="https://doi.org/10.1109/CLUSTER52292.2023.00033" ext-link-type="DOI">10.1109/CLUSTER52292.2023.00033</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx91"><label>Zienkiewicz et al.(1977)Zienkiewicz, Taylor, Nithiarasu, and Zhu</label><mixed-citation>Zienkiewicz, O. C., Taylor, R. L., Nithiarasu, P., and Zhu, J.: The finite element method, vol. 3, Elsevier, ISBN 978-0-443-16044-8, <ext-link xlink:href="https://doi.org/10.1016/C2022-0-01494-X" ext-link-type="DOI">10.1016/C2022-0-01494-X</ext-link>, 1977.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>SeidarT: an open-source full-waveform seismic and electromagnetic wave propagation modeling toolbox demonstrated in snow and ice</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>A2 Photonics Sensors(2019)</label><mixed-citation>
      
A2 Photonics Sensors: Wise Snow Liquid Water Content Sensor User Manual, A2
Photonics Sensors, Grenoble, France, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Agnew et al.(2023)Agnew, Clark, Booth, Brisbourne, and
Smith</label><mixed-citation>
      
Agnew, R. S., Clark, R. A., Booth, A. D., Brisbourne, A. M., and Smith, A. M.:
Measuring seismic attenuation in polar firn: method and application to Korff
Ice Rise, West Antarctica, J. Glaciol., 69, 2075–2086,
<a href="https://doi.org/10.1017/jog.2023.82" target="_blank">https://doi.org/10.1017/jog.2023.82</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Akaike(2003)</label><mixed-citation>
      
Akaike, H.: A new look at the statistical model identification, IEEE
T.  Automat. Contr., 19, 716–723, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Aki and Richards(2002)</label><mixed-citation>
      
Aki, K. and Richards, P.: Quantitative seismology, MIT Press, ISBN 978-1891389634, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Ali et al.(2023)Ali, Eldin, and Haider</label><mixed-citation>
      
Ali, T., Eldin, M. N., and Haider, W.: The effect of soil-structure interaction
on the seismic response of structures using machine learning, finite element
modeling and ASCE 7-16 methods, Sensors, 23, 2047, <a href="https://doi.org/10.3390/s23042047" target="_blank">https://doi.org/10.3390/s23042047</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Alley(1988)</label><mixed-citation>
      
Alley, R. B.: Fabrics in polar ice sheets: development and prediction, Science,
240, 493, <a href="https://doi.org/10.1126/science.240.4851.493" target="_blank">https://doi.org/10.1126/science.240.4851.493</a>, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Bælum and Benn(2011)</label><mixed-citation>
      
Bælum, K. and Benn, D. I.: Thermal structure and drainage system of a small valley glacier (Tellbreen, Svalbard), investigated by ground penetrating radar, The Cryosphere, 5, 139–149, <a href="https://doi.org/10.5194/tc-5-139-2011" target="_blank">https://doi.org/10.5194/tc-5-139-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Bai et al.(2013)Bai, Huang, Li, Zhou, and Greenhalgh</label><mixed-citation>
      
Bai, C.-Y., Huang, G.-J., Li, X.-L., Zhou, B., and Greenhalgh, S.: Ray tracing
of multiple transmitted/reflected/converted waves in 2-D/3-D layered
anisotropic TTI media and application to crosswell traveltime tomography,
Geophys. J. Int., 195, 1068–1087, <a href="https://doi.org/10.1093/gji/ggt267" target="_blank">https://doi.org/10.1093/gji/ggt267</a>,
2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Bécache et al.(2003)Bécache, Fauqueux, and
Joly</label><mixed-citation>
      
Bécache, E., Fauqueux, S., and Joly, P.: Stability of perfectly matched
layers, group velocities and anisotropic waves, J. Comput.
Phys., 188, 399–433, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Bernsen(2026a)</label><mixed-citation>
      
Bernsen, S. P.: UMainedynamics/SeidarT-Backend: v3.0.21, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.18956126" target="_blank">https://doi.org/10.5281/zenodo.18956126</a>, 2026a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Bernsen(2026b)</label><mixed-citation>
      
Bernsen, S. P.: UMainedynamics/SeidarT-Recipes: v1.0.0, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.18956061" target="_blank">https://doi.org/10.5281/zenodo.18956061</a>, 2026b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Bernsen and ChristopherGerbi(2026)</label><mixed-citation>
      
Bernsen, S. P. and ChristopherGerbi: UMainedynamics/SeidarT: v3, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.21982065" target="_blank">https://doi.org/10.5281/zenodo.21982065</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Berryman(1980)</label><mixed-citation>
      
Berryman, J. G.: Long-wavelength propagation in composite elastic media I.
Spherical inclusions,   J. Acoust. Soc. Am., 68,
1809–1819, 1980.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>Berryman(1995)</label><mixed-citation>
      
Berryman, J. G.: Mixture theories for rock properties, Rock physics and phase
relations: A handbook of physical constants, 3, 205–228, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Bond(1943)</label><mixed-citation>
      
Bond, W. L.: The mathematics of the physical properties of crystals,   Bell
Syst. Tech. J., 22, 1–72, 1943.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Bozdağ et al.(2017)Bozdağ, Ruan, Metthez, Khan, Leng,
Van Driel, Wieczorek, Rivoldini, Larmat, Giardini et al.</label><mixed-citation>
      
Bozdağ, E., Ruan, Y., Metthez, N., Khan, A., Leng, K., Van Driel, M., Wieczorek, M., Rivoldini, A., Larmat, C. S., Giardini, D., Tromp, J., Lognonne, P., and Banerdt, B. W.:
Simulations of seismic wave propagation on Mars, Space Sci. Rev., 211,
571–594, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Bradford et al.(2009)Bradford, Harper, and Brown</label><mixed-citation>
      
Bradford, J. H., Harper, J. T., and Brown, J.: Complex dielectric permittivity
measurements from ground‐penetrating radar data to estimate snow liquid
water content in the pendular regime, Water Resour. Res., 45,
<a href="https://doi.org/10.1029/2008WR007341" target="_blank">https://doi.org/10.1029/2008WR007341</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Bray(2017)</label><mixed-citation>
      
Bray, T.: The JavaScript Object Notation (JSON) Data Interchange Format, RFC
8259, <a href="https://doi.org/10.17487/RFC8259" target="_blank">https://doi.org/10.17487/RFC8259</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Budiansky(1965)</label><mixed-citation>
      
Budiansky, B.: On the elastic moduli of some heterogeneous materials, J.
Mech. Phys. Solids, 13, 223–227, 1965.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Bunge(2013)</label><mixed-citation>
      
Bunge, H.-J.: Texture analysis in materials science: mathematical methods,
Elsevier, ISBN 978-0408106429, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Calonne et al.(2011)Calonne, Flin, Morin, Lesaffre, du Roscoat, and
Geindreau</label><mixed-citation>
      
Calonne, N., Flin, F., Morin, S., Lesaffre, B., du Roscoat, S. R., and
Geindreau, C.: Numerical and experimental investigations of the effective
thermal conductivity of snow, Geophys. Res. Lett., 38, <a href="https://doi.org/10.1029/2011GL049234" target="_blank">https://doi.org/10.1029/2011GL049234</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Cangellaris and Wright(1991)</label><mixed-citation>
      
Cangellaris, A. C. and Wright, D. B.: Analysis of the numerical error caused by
the stair-stepped approximation of a conducting boundary in FDTD simulations
of electromagnetic phenomena, IEEE T. Antenn. Propag.,
39, 1518–1525, 1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>Chew(1999)</label><mixed-citation>
      
Chew, W. C.: Waves and fields in inhomogenous media, John Wiley &amp; Sons, ISBN 0-7803-4749-8, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Collet and Kucherawy(2021)</label><mixed-citation>
      
Collet, Y. and Kucherawy, M.: Zstandard Compression and the application/zstd
Media Type, RFC 8878, RFC Editor, ISSN 2070-1721, <a href="https://doi.org/10.17487/RFC8878" target="_blank">https://doi.org/10.17487/RFC8878</a>,
2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>Collino and Tsogka(1998)</label><mixed-citation>
      
Collino, F. and Tsogka, C.: Application of the PML Absorbing Layer Model to
the Linear Elastodynamic Problem in Anisotropic Hetereogeneous Media, Geophysics, 66, 294–307, <a href="https://doi.org/10.1190/1.1444908" target="_blank">https://doi.org/10.1190/1.1444908</a>, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>Courant et al.(1928)Courant, Friedrichs, and Lewy</label><mixed-citation>
      
Courant, R., Friedrichs, K., and Lewy, H.: Über die partiellen
Differenzengleichungen der mathematischen Physik, Math. Ann., 100,
32–74, 1928.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>deWit(2008)</label><mixed-citation>
      
deWit, R.: Elastic constants and thermal expansion averages of a nontextured
polycrystal, J. Mech. Mater. Struct., 3, 195–212,
2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>Dridi et al.(2001)Dridi, Hesthaven, and Ditkowski</label><mixed-citation>
      
Dridi, K., Hesthaven, J. S., and Ditkowski, A.: Staircase-free
finite-difference time-domain formulation for general materials in complex
geometries, IEEE T. Antenn. Propag., 49, 749–756,
2001.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>Eshelby and Peierls(1957)</label><mixed-citation>
      
Eshelby, J. D. and Peierls, R. E.: The determination of the elastic field of an
ellipsoidal inclusion, and related problems, P. Roy. Soc.
Lond. Ser. A, 241, 376–396,
<a href="https://doi.org/10.1098/rspa.1957.0133" target="_blank">https://doi.org/10.1098/rspa.1957.0133</a>, 1957.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>Festa and Vilotte(2005)</label><mixed-citation>
      
Festa, G. and Vilotte, J.-P.: The Newmark scheme as velocity-stress
time-staggering: An efficient implementation for spectral element simulations
of elastodynamics, Geophys. J. Int., 161, 789–812,
<a href="https://doi.org/10.1111/j.1365-246X.2005.02601.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2005.02601.x</a>, 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>Fujita et al.(1993)Fujita, Matsuoka, Morishima, and Mae</label><mixed-citation>
      
Fujita, S., Matsuoka, T., Morishima, S., and Mae, S.: The measurement on the
dielectric properties of ice at HF, VHF and microwave frequencies, in:
Geoscience and Remote Sensing Symposium, 1993, IGARSS'93, Better
Understanding of Earth Environment, International,  IEEE, 1258–1260, <a href="https://doi.org/10.1109/IGARSS.1993.32267" target="_blank">https://doi.org/10.1109/IGARSS.1993.32267</a>,
1993.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>Fujita et al.(2000)Fujita, Matsuoka, Ishida, Matsuoka, and
Mae</label><mixed-citation>
      
Fujita, S., Matsuoka, T., Ishida, T., Matsuoka, K., and Mae, S.: A summary of
the complex dielectric permittivity of ice in the megahertz range and its
applications for radar sounding of polar ice sheets, in: Physics of ice core
records, Hokkaido University Press, 185–212, hdl:2115/32469, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>Gagnon et al.(1987)Gagnon, Kiefte, Clouter, and Whalley</label><mixed-citation>
      
Gagnon, R., Kiefte, H., Clouter, M., and Whalley, E.: Elastic constants of ice
Ih, up to 2.8 kbar, by Brillouin spectroscopy, Le Journal de Physique
Colloques, 48, C1–23, 1987.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>Gassmann(2007)</label><mixed-citation>
      
Gassmann, F.: On elasticity of porous media, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>Gerbi et al.(2021)Gerbi, Mills, Clavette, Campbell, Bernsen,
Clemens-Sewall, Lee, Hawley, Kreutz, and Hruby</label><mixed-citation>
      
Gerbi, C., Mills, S., Clavette, R., Campbell, S., Bernsen, S., Clemens-Sewall,
D., Lee, I., Hawley, R., Kreutz, K., and Hruby, K.: Microstructures in a
shear margin: Jarvis Glacier, Alaska, J. Glaciol., 67, 1163–1176, <a href="https://doi.org/10.1017/jog.2021.62" target="_blank">https://doi.org/10.1017/jog.2021.62</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>Graves and Day(2003)</label><mixed-citation>
      
Graves, R. W. and Day, S. M.: Stability and accuracy analysis of coarse-grain
viscoelastic simulations, Bull. Seismol. Soc. Am.,
93, 283–300, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>Gueting et al.(2017)Gueting, Vienken, Klotzsche, van der Kruk,
Vanderborght, Caers, Vereecken, and Englert</label><mixed-citation>
      
Gueting, N., Vienken, T., Klotzsche, A., van der Kruk, J., Vanderborght, J.,
Caers, J., Vereecken, H., and Englert, A.: High resolution aquifer
characterization using crosshole GPR full-waveform tomography: Comparison
with direct-push and tracer test data, Water Resour. Res., 53, 49–72,
2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>Gusmeroli et al.(2010a)Gusmeroli, Clark, Murray, Booth,
Kulessa, and Barrett</label><mixed-citation>
      
Gusmeroli, A., Clark, R. A., Murray, T., Booth, A. D., Kulessa, B., and
Barrett, B. E.: Seismic wave attenuation in the uppermost glacier ice of
Storglaciären, Sweden, J. Glaciol., 56, 249–256,
2010a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>Gusmeroli et al.(2010b)Gusmeroli, Murray, Jansson,
Pettersson, Aschwanden, and Booth</label><mixed-citation>
      
Gusmeroli, A., Murray, T., Jansson, P., Pettersson, R., Aschwanden, A., and
Booth, A. D.: Vertical distribution of water within the polythermal
Storglaciären, Sweden, J. Geophys. Res.-Earth,
115, <a href="https://doi.org/10.1029/2009JF001539" target="_blank">https://doi.org/10.1029/2009JF001539</a>, 2010b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>Hagenmuller(2022)</label><mixed-citation>
      
Hagenmuller, P.: Snow mechanics: from snow microstructure to avalanche
formation, Ph.D. thesis, Université Grenoble Alpes, hal_id: tel-04143903, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>Häggblad and Runborg(2014)</label><mixed-citation>
      
Häggblad, J. and Runborg, O.: Accuracy of staircase approximations in
finite-difference methods for wave propagation, Numer. Math., 128,
741–771, 2014.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>Hellmann et al.(2021)Hellmann, Grab, Kerch, Löwe, Bauder, Weikusat,
and Maurer</label><mixed-citation>
      
Hellmann, S., Grab, M., Kerch, J., Löwe, H., Bauder, A., Weikusat, I., and Maurer, H.: Acoustic velocity measurements for detecting the crystal orientation fabrics of a temperate ice core, The Cryosphere, 15, 3507–3521, <a href="https://doi.org/10.5194/tc-15-3507-2021" target="_blank">https://doi.org/10.5194/tc-15-3507-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>Hill(1952)</label><mixed-citation>
      
Hill, R.: The elastic behaviour of a crystalline aggregate, Proc.
Phys. Soc.  A, 65, 349, <a href="https://doi.org/10.1088/0370-1298/65/5/307" target="_blank">https://doi.org/10.1088/0370-1298/65/5/307</a>, 1952.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>Hill(1965)</label><mixed-citation>
      
Hill, R.: A self-consistent mechanics of composite materials, J.
Mech. Phys. Solids, 13, 213–222,
<a href="https://doi.org/10.1016/0022-5096(65)90010-4" target="_blank">https://doi.org/10.1016/0022-5096(65)90010-4</a>, 1965.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>Hu et al.(2023)Hu, Yang, Han, Huang, Qin, Sun, and Yu</label><mixed-citation>
      
Hu, Z., Yang, J., Han, L., Huang, J., Qin, S., Sun, J., and Yu, Y.: Modeling
seismic wave propagation in the Loess Plateau using a viscoacoustic wave
equation with explicitly expressed quality factor, Front. Earth
Sci.,  10, <a href="https://doi.org/10.3389/feart.2022.1069166" target="_blank">https://doi.org/10.3389/feart.2022.1069166</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>Hugenschmidt and Mastrangelo(2006)</label><mixed-citation>
      
Hugenschmidt, J. and Mastrangelo, R.: GPR inspection of concrete bridges,
Cement and Concrete Composites, 28, 384–392, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>Inman et al.(2007)Inman, Elsherbeni, Maloney, and Baker</label><mixed-citation>
      
Inman, M. J., Elsherbeni, A. Z., Maloney, J. G., and Baker, B. N.: GPU based
FDTD solver with CPML boundaries, in: 2007 IEEE Antennas and Propagation
Society International Symposium,   IEEE, 5255–5258, <a href="https://doi.org/10.1109/APS.2007.4396732" target="_blank">https://doi.org/10.1109/APS.2007.4396732</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib48"><label>Jiang et al.(2023)Jiang, Ringel, Bayer, and Xu</label><mixed-citation>
      
Jiang, Z., Ringel, L. M., Bayer, P., and Xu, T.: Fracture network
characterization in reservoirs by joint inversion of microseismicity and
thermal breakthrough data: Method development and verification, Water
Resour. Res., 59, e2022WR034339, <a href="https://doi.org/10.1029/2022WR034339" target="_blank">https://doi.org/10.1029/2022WR034339</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib49"><label>Jiracek(1967)</label><mixed-citation>
      
Jiracek, G. R.: Radio sounding of Antarctic ice, <a href="https://api.semanticscholar.org/CorpusID:222386279" target="_blank"/> (last access: 16 October 2026), 1967.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib50"><label>Jones and Or(2005)</label><mixed-citation>
      
Jones, S. B. and Or, D.: Thermal and geometrical effects on bulk permittivity
of porous mixtures containing bound water, in: Electromagnetic Aquametry:
Electromagnetic Wave Interaction with Water and Moist Substances,
Springer, 71–92, <a href="https://api.semanticscholar.org/CorpusID:222386279" target="_blank"/> (last access: 20 October 2026), 2005.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib51"><label>Julian and Gubbins(1977)Julian, Gubbins et al.</label><mixed-citation>
      
Julian, B. R. and Gubbins, D.: Three-dimensional seismic ray tracing, J.
Geophys., 43, 95–113, 1977.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib52"><label>Jurkevics(1988)</label><mixed-citation>
      
Jurkevics, A.: Polarization analysis of three-component array data, Bull. Seismol. Soc. Am., 78, 1725–1743, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib53"><label>Kell(1975)</label><mixed-citation>
      
Kell, G. S.: Density, thermal expansivity, and compressibility of liquid water
from 0. deg. to 150. deg.. Correlations and tables for atmospheric pressure
and saturation reviewed and expressed on 1968 temperature scale, J.
Chem. Eng. Data, 20, 97–105, 1975.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib54"><label>Kjartansson(1979)</label><mixed-citation>
      
Kjartansson, E.: Constant Q-wave propagation and attenuation, J.
Geophys. Res.-Solid Ea., 84, 4737–4748, 1979.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib55"><label>Klin et al.(2010)Klin, Priolo, and Seriani</label><mixed-citation>
      
Klin, P., Priolo, E., and Seriani, G.: Numerical simulation of seismic wave
propagation in realistic 3-D geo-models with a Fourier pseudo-spectral
method, Geophys. J. Int., 183, 905–922, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib56"><label>Komatitsch and Martin(2007)</label><mixed-citation>
      
Komatitsch, D. and Martin, R.: An unsplit convolutional Perfectly Matched
Layer improved at grazing incidence for the seismic wave equation,
Geophysics, 72, SM155–SM167, <a href="https://doi.org/10.1190/1.2757586" target="_blank">https://doi.org/10.1190/1.2757586</a>, 2007.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib57"><label>Komatitsch and Tromp(1999)</label><mixed-citation>
      
Komatitsch, D. and Tromp, J.: Introduction to the spectral element method for
three-dimensional seismic wave propagation, Geophys. J.
Int., 139, 806–822, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib58"><label>Komatitsch and Vilotte(1998)</label><mixed-citation>
      
Komatitsch, D. and Vilotte, J.-P.: The spectral element method: an efficient
tool to simulate the seismic response of 2D and 3D geological structures,
Bull. Seismol. Soc. Am., 88, 368–392, 1998.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib59"><label>Kovacs et al.(1995)Kovacs, Gow, and Morey</label><mixed-citation>
      
Kovacs, A., Gow, A. J., and Morey, R. M.: Dielectric Properties of Saline Ice
at Microwave Frequencies, Tech. Rep. CRREL Report 95-18, Cold Regions
Research and Engineering Laboratory (CRREL), Hanover, NH, USA, DTIC Accession Number: ADA301222, 1995.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib60"><label>Lai et al.(2009)Lai, Rubin, and Krempl</label><mixed-citation>
      
Lai, W. M., Rubin, D., and Krempl, E.: Introduction to continuum mechanics,
Butterworth-Heinemann, ISBN 978-0-7506-8560-3, <a href="https://doi.org/10.1016/B978-0-7506-8560-3.X0001-1" target="_blank">https://doi.org/10.1016/B978-0-7506-8560-3.X0001-1</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib61"><label>Levander(1988)</label><mixed-citation>
      
Levander, A. R.: Fourth-order finite-difference P-SV seismograms, Geophysics,
53, 1425–1436, 1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib62"><label>Liebe et al.(1991)Liebe, Hufford, and Manabe</label><mixed-citation>
      
Liebe, H. J., Hufford, G. A., and Manabe, T.: A model for the complex
permittivity of water at frequencies below 1 THz, Int.  J.
Infrared   Milli., 12, 659–675, 1991.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib63"><label>Luu(2021)</label><mixed-citation>
      
Luu, K.: disba: Numba-accelerated computation of surface wave dispersion, Zenodo [code],
<a href="https://doi.org/10.5281/zenodo.14534395" target="_blank">https://doi.org/10.5281/zenodo.14534395</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib64"><label>Lyu et al.(2025)Lyu, Romanowicz, Zhao, and Masson</label><mixed-citation>
      
Lyu, C., Romanowicz, B., Zhao, L., and Masson, Y.: Efficient hybrid numerical
modeling of the seismic wavefield in the presence of solid-fluid boundaries,
Nat. Commun., 16, 1722, <a href="https://doi.org/10.1038/s41467-025-56530-5" target="_blank">https://doi.org/10.1038/s41467-025-56530-5</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib65"><label>Mahmoudian and Margrave(2003)</label><mixed-citation>
      
Mahmoudian, F. and Margrave, G. F.: A review of the finite-element method in
seismic wave modelling, Technical report, CREWES Research Report, <a href="https://crewes.org" target="_blank"/> (last access: 20 October 2026), 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib66"><label>Man and Huang(2011)</label><mixed-citation>
      
Man, C.-S. and Huang, M.: A simple explicit formula for the Voigt-Reuss-Hill
average of elastic polycrystals with arbitrary crystal and texture
symmetries, J. Elasticity, 105, 29–48, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib67"><label>Martin and Komatitsch(2009)</label><mixed-citation>
      
Martin, R. and Komatitsch, D.: An unsplit convolutional perfectly matched layer
technique improved at grazing incidence for the viscoelastic wave equation,
Geophys. J. Int., 179, 333–344,
<a href="https://doi.org/10.1111/j.1365-246X.2009.04278.x" target="_blank">https://doi.org/10.1111/j.1365-246X.2009.04278.x</a>, 2009.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib68"><label>Martin et al.(2008a)Martin, Komatitsch, and
Ezziani</label><mixed-citation>
      
Martin, R., Komatitsch, D., and Ezziani, A.: An unsplit convolutional perfectly
matched layer improved at grazing incidence for seismic wave equation in
poroelastic media, Geophysics, 73, T51–T61, <a href="https://doi.org/10.1190/1.2939484" target="_blank">https://doi.org/10.1190/1.2939484</a>,
2008a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib69"><label>Martin et al.(2008b)Martin, Komatitsch, and
Gedney</label><mixed-citation>
      
Martin, R., Komatitsch, D., and Gedney, S. D.: A variational formulation of a
stabilized unsplit convolutional perfectly matched layer for the isotropic or
anisotropic seismic wave equation, CMES-Comp. Model. Eng., 37, 274–304, 2008b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib70"><label>Matsuoka et al.(2012)Matsuoka, Power, Fujita, and
Raymond</label><mixed-citation>
      
Matsuoka, K., Power, D., Fujita, S., and Raymond, C. F.: Rapid development of
anisotropic ice-crystal-alignment fabrics inferred from englacial radar
polarimetry, central West Antarctica, J. Geophys. Res.-Earth, 117, <a href="https://doi.org/10.1029/2012JF002440" target="_blank">https://doi.org/10.1029/2012JF002440</a>, 2012.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib71"><label>McMechan and Yedlin(1981)</label><mixed-citation>
      
McMechan, G. A. and Yedlin, M. J.: Analysis of dispersive waves by wave field
transformation, Geophysics, 46, 869–874, 1981.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib72"><label>Miller et al.(2018)Miller, Kelley, Kelley, Belknap, and
Spiess</label><mixed-citation>
      
Miller, J. F., Kelley, A. R., Kelley, J. T., Belknap, D. F., and Spiess, A. E.:
Ground-penetrating radar as a cultural resource management tool for
assessment of eroding shell middens, Conserv. Manage.
Archa., 20, 199–214, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib73"><label>Montagnat et al.(2020)Montagnat, Löwe, Calonne, Schneebeli,
Matzl, and Jaggi</label><mixed-citation>
      
Montagnat, M., Löwe, H., Calonne, N., Schneebeli, M., Matzl, M., and Jaggi,
M.: On the birth of structural and crystallographic fabric signals in polar
snow: A case study from the EastGRIP snowpack, Front. Earth Sci., 8,
365, <a href="https://doi.org/10.3389/feart.2020.00365" target="_blank">https://doi.org/10.3389/feart.2020.00365</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib74"><label>Monz et al.(2021)Monz, Hudleston, Prior, Michels, Fan, Negrini,
Langhorne, and Qi</label><mixed-citation>
      
Monz, M. E., Hudleston, P. J., Prior, D. J., Michels, Z., Fan, S., Negrini, M., Langhorne, P. J., and Qi, C.: Full crystallographic orientation (c and a axes) of warm, coarse-grained ice in a shear-dominated setting: a case study, Storglaciären, Sweden, The Cryosphere, 15, 303–324, <a href="https://doi.org/10.5194/tc-15-303-2021" target="_blank">https://doi.org/10.5194/tc-15-303-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib75"><label>Park et al.(1999)Park, Miller, and Xia</label><mixed-citation>
      
Park, C. B., Miller, R. D., and Xia, J.: Multichannel analysis of surface
waves, Geophysics, 64, 800–808, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib76"><label>Petrenko and Whitworth(1999)</label><mixed-citation>
      
Petrenko, V. F. and Whitworth, R. W.: Physics of ice, OUP Oxford, ISBN 0-19-851895-1, 1999.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib77"><label>Reuß(1929)</label><mixed-citation>
      
Reuß, A.: Berechnung der fließgrenze von mischkristallen auf grund der
plastizitätsbedingung für einkristalle, J. Appl.
Math. Mech., 9, 49–58, 1929.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib78"><label>Riche et al.(2013)Riche, Montagnat, and Schneebeli</label><mixed-citation>
      
Riche, F., Montagnat, M., and Schneebeli, M.: Evolution of crystal orientation
in snow during temperature gradient metamorphism, J. Glaciol., 59,
47–55, 2013.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib79"><label>Roden and Gedney(2000)</label><mixed-citation>
      
Roden, J. A. and Gedney, S. D.: Convolution PML (CPML): An Efficient
FDTD Implementation of the CFS-PML for Arbitrary Media, Microw. Opt. Techn. Let., 27, 334–339,
<a href="https://doi.org/10.1002/1098-2760(20001205)27:5&lt;334::AID-MOP14&gt;3.0.CO;2-A" target="_blank">https://doi.org/10.1002/1098-2760(20001205)27:5&lt;334::AID-MOP14&gt;3.0.CO;2-A</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib80"><label>Schneebeli and Sokratov(2004)</label><mixed-citation>
      
Schneebeli, M. and Sokratov, S.: Tomography of temperature gradient
metamorphism of snow and associated changes in heat conductivity,
Hydrol. Process., 18, 3655–3665, <a href="https://doi.org/10.1002/hyp.5800" target="_blank">https://doi.org/10.1002/hyp.5800</a>, 2004.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib81"><label>Takanami and Kitagawa(1988)</label><mixed-citation>
      
Takanami, T. and Kitagawa, G.: A new efficient procedure for the estimation of
onset times of seismic waves, J. Phys. Earth, 36, 267–290,
1988.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib82"><label>Tiuri et al.(1984)Tiuri, Sihvola, Nyfors, and
Hallikaiken</label><mixed-citation>
      
Tiuri, M., Sihvola, A., Nyfors, E., and Hallikaiken, M.: The complex dielectric
constant of snow at microwave frequencies, IEEE J. Ocean.
Eng., 9, 377–382, <a href="https://doi.org/10.1109/JOE.1984.1145645" target="_blank">https://doi.org/10.1109/JOE.1984.1145645</a>, 1984.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib83"><label>Trefethen and Bau(2022)</label><mixed-citation>
      
Trefethen, L. N. and Bau, D.: Numerical linear algebra, Society for Industrial and Applied Mathematics (SIAM), ISBN 978-1-61197-715-8, <a href="https://doi.org/10.1137/1.9781611977165" target="_blank">https://doi.org/10.1137/1.9781611977165</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib84"><label>Um and Thurber(1987)</label><mixed-citation>
      
Um, J. and Thurber, C.: A fast algorithm for two-point seismic ray tracing,
Bull. Seismol. Soc. Am., 77, 972–986, 1987.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib85"><label>Valovcan et al.(2024)Valovcan, Moczo, Kristek, Galis, and
Kristekova</label><mixed-citation>
      
Valovcan, J., Moczo, P., Kristek, J., Galis, M., and Kristekova, M.: How
Accurate Numerical Simulation of Seismic Waves in a Heterogeneous Medium Can
Be?, Bull. Seismol. Soc. Am., 114, 2287–2309,
<a href="https://doi.org/10.1785/0120240049" target="_blank">https://doi.org/10.1785/0120240049</a>, 2024.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib86"><label>Virieux(1984)</label><mixed-citation>
      
Virieux, J.: SH-wave propagation in heterogeneous media: Velocity-stress
finite-difference method, Geophysics, 49, 1933–1957, 1984.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib87"><label>Voigt(1910)</label><mixed-citation>
      
Voigt, W.: Lehrbuch der kristallphysik: (mit ausschluss der kristalloptik),
vol. 34, BG Teubner, ISBN 978-3-663-15316-0, 1910.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib88"><label>Witsil et al.(2022)Witsil, Fee, Dickey, Peña, Waxler, and
Blom</label><mixed-citation>
      
Witsil, A., Fee, D., Dickey, J., Peña, R., Waxler, R., and Blom, P.:
Detecting large explosions with machine learning models trained on synthetic
infrasound data, Geophys. Res. Lett., 49, e2022GL097785, <a href="https://doi.org/10.1029/2022GL097785" target="_blank">https://doi.org/10.1029/2022GL097785</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib89"><label>Wu et al.(2019)Wu, Liang, Shi, and Fomel</label><mixed-citation>
      
Wu, X., Liang, L., Shi, Y., and Fomel, S.: FaultSeg3D: Using synthetic data
sets to train an end-to-end convolutional neural network for 3D seismic fault
segmentation, Geophysics, 84, IM35–IM45, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib90"><label>Xu et al.(2023)Xu, Yu, Cai, Yang, and Wei</label><mixed-citation>
      
Xu, Z., Yu, M., Cai, J., Yang, Q., and Wei, T.: A Finite-Difference Time-Domain
(FDTD) solver with linearly scalable performance in an FPGA cluster, in: 2023
IEEE International Conference on Cluster Computing (CLUSTER),  307–317,
<a href="https://doi.org/10.1109/CLUSTER52292.2023.00033" target="_blank">https://doi.org/10.1109/CLUSTER52292.2023.00033</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib91"><label>Zienkiewicz et al.(1977)Zienkiewicz, Taylor, Nithiarasu, and
Zhu</label><mixed-citation>
      
Zienkiewicz, O. C., Taylor, R. L., Nithiarasu, P., and Zhu, J.: The finite
element method, vol. 3, Elsevier, ISBN 978-0-443-16044-8, <a href="https://doi.org/10.1016/C2022-0-01494-X" target="_blank">https://doi.org/10.1016/C2022-0-01494-X</a>, 1977.

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