<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article article-type="methods-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Phys.</journal-id>
<journal-title>Frontiers in Physics</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Phys.</abbrev-journal-title>
<issn pub-type="epub">2296-424X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1005621</article-id>
<article-id pub-id-type="doi">10.3389/fphy.2022.1005621</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Physics</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>HUXt&#x2014;An open source, computationally efficient reduced-physics solar wind model, written in Python</article-title>
<alt-title alt-title-type="left-running-head">Barnard and Owens</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/fphy.2022.1005621">10.3389/fphy.2022.1005621</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Barnard</surname>
<given-names>Luke</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1654035/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Owens</surname>
<given-names>Mathew</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1695508/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>Department of Meteorology</institution>, <institution>University of Reading</institution>, <addr-line>Reading</addr-line>, <country>United Kingdom</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/720789/overview">Sophie A Murray</ext-link>, Dublin Institute for Advanced Studies (DIAS), Ireland</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/533275/overview">Stefano Markidis</ext-link>, KTH Royal Institute of Technology, Sweden</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1972057/overview">Camilla Scolini</ext-link>, University of New Hampshire, United States</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1931526/overview">Ravindra Desai</ext-link>, Imperial College London, United Kingdom</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Luke Barnard&#x2009;, <email>l.a.barnard@reading.ac.uk</email>; Mathew Owens, <email>m.j.owens@reading.ac.uk</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Space Physics, a section of the journal Frontiers in Physics</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>20</day>
<month>10</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>10</volume>
<elocation-id>1005621</elocation-id>
<history>
<date date-type="received">
<day>28</day>
<month>07</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>05</day>
<month>10</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Barnard and Owens.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Barnard and Owens</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>HUXt is an open source numerical model of the solar wind written in Python. It is based on the solution of the 1D inviscid Burger&#x2019;s equation. This reduced-physics approach produces solar wind flow simulations that closely emulate the flow produced by 3-D magnetohydrodynamic (MHD) solar wind models at a small fraction of the computational expense. While not intended as a replacement for 3-D MHD, the simplicity and computational efficiency of HUXt offers several key advantages that enable experiments and the use of techniques that would otherwise be cost prohibitive. For example, large ensembles of 10<sup>2</sup>&#x2013;10<sup>5</sup> members can easily be run with modest computing resources, which are useful for exploring and quantifying the uncertainty in space weather predictions, as well as for the application of some data assimilation methods. In this article we present the developments in the latest version of HUXt, v4.0, and discuss our plans for future developments and applications of the model. The three key developments in v4.0 are: 1) a restructuring of the models solver to enable fully time-dependent boundary conditions, such that HUXt can in principle be initialised with <italic>in-situ</italic> observations from any of the fleet of heliospheric monitors; 2) new functionality to trace streaklines through the HUXt flow solutions, which can be used to track features such as the Heliospheric Current Sheet; 3) introduction of a small test-suite so that we can better ensure the reliability and reproducibility of HUXt simulations for all users across future versions. Other more minor developments are discussed in the article. Future applications of HUXt are discussed, including the development of both sequential and variational data assimilation schemes for assimilation of both remote sensing and <italic>in-situ</italic> plasma measures. Finally, we briefly discuss the progress of transitioning HUXt into an operational model at the UK&#x2019;s Met Office Space Weather Operations Center as part of the UK governments SWIMMR programme.</p>
</abstract>
<kwd-group>
<kwd>space weather</kwd>
<kwd>heliophysics</kwd>
<kwd>simulations</kwd>
<kwd>Python</kwd>
<kwd>open source</kwd>
</kwd-group>
<contract-num rid="cn001">ST/R000921/1</contract-num>
<contract-sponsor id="cn001">Science and Technology Facilities Council<named-content content-type="fundref-id">10.13039/501100000271</named-content>
</contract-sponsor>
<contract-sponsor id="cn002">Natural Environment Research Council<named-content content-type="fundref-id">10.13039/501100000270</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>1 Introduction</title>
<p>Variability in the near-Earth space environment gives rise to space weather, which can have adverse effects on space- and ground-based technologies [<xref ref-type="bibr" rid="B1">1</xref>]. The largest disturbances to the terrestrial magnetospheric system are the result of coronal mass ejections (CMEs) arriving in near-Earth space [<xref ref-type="bibr" rid="B2">2</xref>]. Thus, advanced forecasting of the arrival time and properties of CMEs at Earth is highly desirable [<xref ref-type="bibr" rid="B3">3</xref>]. While near-Sun CME properties&#x2014;notably speed and direction &#x2013; can be estimated from coronagraph observations [<xref ref-type="bibr" rid="B4">4</xref>], forecasting at Earth also requires accurate knowledge of the variable solar wind conditions through which CMEs propagate [<xref ref-type="bibr" rid="B5">5</xref>].</p>
<p>The dynamic interaction between a CME and the ambient solar wind is typically modelled using time-dependent magnetohydrodynamic (MHD) simulations of the solar wind (e.g., [<xref ref-type="bibr" rid="B6">6</xref>&#x2013;<xref ref-type="bibr" rid="B9">9</xref>]). These models capture the large-scale MHD fluid behaviour which governs much of the physics of CME propagation and evolution to Earth, and are a vital tool that enable both heliophysics research and space weather forecasting (e.g., [<xref ref-type="bibr" rid="B3">3</xref>,<xref ref-type="bibr" rid="B10">10</xref>,<xref ref-type="bibr" rid="B11">11</xref>]). More recently, it has been demonstrated that similar forecasting results, at least to first order, can be obtained with greatly simplified models [<xref ref-type="bibr" rid="B12">12</xref>,<xref ref-type="bibr" rid="B13">13</xref>]. Such models are not intended to replace the more sophisticated simulations, but open up complementary capabilities <italic>via</italic> greatly reduced computational overhead.</p>
<p>This paper is intended to briefly review the reduced-physics model, HUXt (heliospheric upwind extrapolation with time-dependence), and then highlight some of the functionality of the HUXt Python implementation.</p>
<p>HUXt has already proved useful in a number of contexts. Barnard et al. [<xref ref-type="bibr" rid="B14">14</xref>] demonstrated how an ensemble of HUXt runs could be weighted by comparison with STEREO Heliospheric Imager (HI) time-elongation profiles of CME fronts to return improved ensemble hindcasts of CME arrival times. Chi et al. [<xref ref-type="bibr" rid="B15">15</xref>] used HUXt simulations to examine the evolving structure of two interacting CMEs, finding that the HUXt simulations were consistent with the STEREO HI observations of these CMEs.</p>
<p>Barnard and Owens [<xref ref-type="bibr" rid="B16">16</xref>] used HUXt simulations of Cone CMEs to examine the validity of the assumptions of CME geometric models and the ability of these models to reconstruct a CMEs kinematic profile from time-elongation profiles of a CMEs flank, such as those derived from HI observations. Similarly, Hinterreiter et al. [<xref ref-type="bibr" rid="B17">17</xref>] used HUXt simulations as part of their work to introduce time-dependent structure to their ElEvoHI geometric model. These works both highlighted the importance of including time-dependent structure and solar-wind CME interactions for increasing the real-world representivity of CME modelling.</p>
<p>Additionally, separate from these CME focused studies, Macneil et al. [<xref ref-type="bibr" rid="B18">18</xref>] demonstrated how HUXt may be used to backmap <italic>in-situ</italic> solar wind observation to the source regions in the low corona, which is an important technique for estimating the origins of solar wind plasma structures. Furthermore, Bunting and Morgan [<xref ref-type="bibr" rid="B19">19</xref>] used HUXt simulations in their calibration and long-term validation experiments into using coronal tomography to generate inner boundary conditions for solar wind numerical models.</p>
<p>We now proceed to review both the background and the current status of our Python implementation of HUXt. <xref ref-type="sec" rid="s2">Section 2</xref> describes the theoretical background to HUXt, whilst <xref ref-type="sec" rid="s3">Section 3</xref> discusses the numerical scheme used to solve the discretised model equations. <xref ref-type="sec" rid="s3-1">Section 3.1</xref> presents some new results of testing the performance of the numerical scheme. <xref ref-type="sec" rid="s5">Section 5</xref> describes some of they key functionality included in our Python implementation of HUXt. Finally, some developing applications of HUXt are described in <xref ref-type="sec" rid="s6">Section 6</xref>.</p>
</sec>
<sec id="s2">
<title>2 The HUXt reduced-physics solar wind model</title>
<p>HUXt takes a reduced-physics approach to modelling the solar wind flow, employing approximations to greatly reduce the complexity of the MHD momentum equation. A full derivation is provided in Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>] and so we provide only a summary here. Magnetic, gravitational, and pressure gradient forces are neglected, as in the solar wind these terms are typically small compared to the flow momentum [<xref ref-type="bibr" rid="B12">12</xref>]. Additionally, the solar wind is assumed to be purely radial, and so non radial terms are neglected. In this limit, the solar wind is modelled by the inviscid Burger&#x2019;s equation.<disp-formula id="e1">
<mml:math id="m1">
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:math>
<label>(1)</label>
</disp-formula>
</p>
<p>Where <italic>V</italic>
<sub>
<italic>r</italic>
</sub> is the radial solar wind speed. Pizzo [<xref ref-type="bibr" rid="B20">20</xref>] and Riley and Lionello [<xref ref-type="bibr" rid="B12">12</xref>] outlined this simplified description of the solar wind and made the further assumption of time-stationary flows to give the Heliospheric Upwind eXtrapolation (HUX) model (see also [<xref ref-type="bibr" rid="B21">21</xref>]). HUXt, however, maintains explicit time dependence, allowing structures such as coronal mass ejections (CMEs) and time-dependent ambient solar wind flow to be modelled.</p>
<p>The solar wind continues to accelerate throughout the inner heliosphere and in HUXt this residual acceleration, &#x394;<italic>V</italic>(<italic>r</italic>), is represented by an empirical parameterisation, which for a uniform solar wind is represented as<disp-formula id="e2">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>V</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Where <italic>V</italic>
<sub>0</sub> is the speed at a reference height and<disp-formula id="e3">
<mml:math id="m3">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>V</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>Where <italic>&#x3b1;</italic> is the acceleration factor, set to be 0.15, and <italic>r</italic>
<sub>
<italic>h</italic>
</sub> is the scale height over which it applies, set to be 50 <italic>r</italic>
<sub>&#x2299;</sub>, whilst <italic>r</italic>
<sub>0</sub> is the radial distance at the reference height corresponding to <italic>V</italic>
<sub>0</sub>, taken to be 30 <italic>r</italic>
<sub>&#x2299;</sub>. This form is designed to mimic that arising from the energy equations in MHD solar wind models [<xref ref-type="bibr" rid="B12">12</xref>].</p>
<p>Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>] analysed the performance of HUXt relative to the HelioMAS MHD model of the solar wind, comparing each models representation of phenomena such as CIRs and Cone CMEs. <xref ref-type="fig" rid="F1">Figure 1</xref> of Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>] shows that HUXt and HelioMAS both return very similar CIR structures. However, there are small but systematic discrepancies. For example, in HUXt, CIRs tend to have sharper gradients and higher maximum speeds relative to HelioMAS. Two factors likely affect this; firstly, this could be due to non-radial dynamics in HelioMAS allowing flow deflections that HUXt does not model; secondly, the upwind numerical scheme used in HUXt is known to permit sharper gradients than the numerical schemes employed by MHD models. For a more complete review of the scientific justification of HUXt, and its comparison to MHD simulations, see Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>].</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>This diagram highlights the classes used within HUXt, and their associated methods, and the relationships between them.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g001.tif"/>
</fig>
</sec>
<sec id="s3">
<title>3 Numerical scheme</title>
<p>The HUXt model equations are solved numerically using a first order upwind scheme [<xref ref-type="bibr" rid="B22">22</xref>], and the discretised equations are given in Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>].</p>
<p>The default radial grid of HUXt has an inner boundary at 30 <italic>r</italic>
<sub>&#x2299;</sub>, outer boundary at 240 <italic>r</italic>
<sub>&#x2299;</sub>, with a radial grid step of 1.5 <italic>r</italic>
<sub>&#x2299;</sub>. However, HUXt has built-in functionality to work with different radial grids and boundary heights, as discussed in <xref ref-type="sec" rid="s5-6">Sections 5.2.3</xref> and <xref ref-type="sec" rid="s5-4-1">Section 5.2.1</xref>.</p>
<p>Fundamentally, HUXt is a 1-D radial model of the solar wind. Single 1D solutions are useful in their own right, due to the rapid computation time (much less than a second on a modest CPU for a 5-day simulation out to Earth orbit). Thus, one use-case is to run HUXt in a synodic frame of reference and simulate the Earth-Sun line. This can be done in large ensembles of O (10<sup>3</sup>&#x2013;10<sup>5</sup>), enabling case-specific estimates of forecast uncertainty (e.g., [<xref ref-type="bibr" rid="B23">23</xref>]). Examples of idealised and data-driven 1-D solutions are provided in the <italic>HUXt_examples.ipynb</italic> notebook, discussed in <xref ref-type="sec" rid="s4">Section 4</xref>. Here, the examples shown are for the more generalised case of 2-D and 3-D solutions that incorporate a range of longitudes and/or latitudes by assembling a set of the 1-D radial HUXt solutions. Such 2-D and 3-D solutions would generally be performed in the sidereal reference frame.</p>
<p>The default longitudinal grid spans 0 to 2<italic>&#x3c0;</italic> in 128 bins. The default latitudinal grid has 45 equally spaced cells in sine latitude. On initialisation, a single longitude or range of longitudes must be specified, whilst, unless otherwise specified, the latitude is assumed to be 0&#xb0;. Finer or coarser grids can be used as required. The model grid sets zero longitude to that of Earth at the time of the start of the run. In the synodic reference frame, this is maintained throughout the run. For the sidereal reference frame, Earth increases in longitude by around 1&#xb0; per day. Note that because the 2-D and 3-D solutions are collections of independent 1-D radial solutions, any subset of the longitude and latitude grid can be considered, without any impact on the solution due to longitude or latitude boundary conditions. (<xref ref-type="fig" rid="F2">Figure 2</xref> shows an example of this functionality for a 3-D solution, discussed in <xref ref-type="sec" rid="s5-7">Section 5.2.4</xref>.).</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>A snapshot of a HUXt3D simulation from February 2003. (left) A radius-longitude cut at Earth latitude and (right) a radius-latitude cut at Earth longitude. The boundaries of two cone CMEs are shown in red and cyan.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g002.tif"/>
</fig>
<p>The model time-step, &#x394;<italic>t</italic> is set by the Courant&#x2013;Friedrichs&#x2013;Lewy (CFL) condition, <inline-formula id="inf1">
<mml:math id="m4">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
</inline-formula>, with the default value of <italic>v</italic>
<sub>max</sub> &#x3d; 2000&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup> resulting in &#x394;<italic>t</italic> &#x3d; 8.70&#xa0;min. The default <italic>v</italic>
<sub>max</sub> is chosen as a compromise that is suitable for all plausible ambient solar winds and the large majority of plausible Cone CME scenarios, whilst also not being set so high to be an inefficient use of computing resources.</p>
<p>To initialise HUXt, a uniform solar wind speed of 400&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup> is set at all model coordinates. The model is then spun up for a time period that depends on the minimum solar wind speed in the time-dependent boundary conditions. The spin up time is set to 1.5 times the travel time it would take the slowest speed to traverse the model domain. The results of the spin up are discarded, meaning the user is presented with &#x2018;usable&#x2019; solar wind conditions from the start of the requested simulation time.</p>
<sec id="s3-1">
<title>3.1 Testing the numerical scheme</title>
<p>HUXt was primarily developed as a surrogate for 3-D MHD simulations for situations where 3-D MHD simulations would be too computationally expensive or complex. Consequently, Owens et al. [<xref ref-type="bibr" rid="B13">13</xref>] presented a thorough comparison between HUXt and HelioMAS simulations. Over a 40<sup>&#x2b;</sup> year period of 578 Carrington rotations, the mean absolute error in the ambient solar wind solutions of HUXt and HelioMAS was 25.6&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup> or 6.4%. In this sense, the HUXt numerical scheme and default parameters were considered fit-for-purpose in serving as an surrogate for 3-D MHD solar wind simulations. Here we present new analysis that examines the consistency and convergence of the discretised HUXt numerical scheme in approximating the continuous solutions to the model equations.</p>
<p>To assess the consistency of HUXt with a solution to the continuous model equations, we first compare the numerical solution with the analytical solution for the simple scenario of a uniform and stationary inner boundary condition. <xref ref-type="fig" rid="F3">Figure 3</xref> compares the solutions for a constant inner boundary condition of 400&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup>. There is excellent agreement between the HUXt and analytical solution, with a very small negative bias that approaches an asymptotic value of approximately &#x2212;0.03%. Further experiments show that the magnitude of this error is a function of the radial grid step and so we conclude that this error is related to the discretisation of the HUXt residual acceleration equation. However, the magnitude of this error is insignificant compared to the uncertainties relating to observationally derived boundary conditions (e.g., from coronal models) and from the simplifying physical assumptions used to derive the HUXt equations.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Comparison of the analytic and numerical solutions to the HUXt equations for a simplified scenario of uniform and stationary inner boundary conditions. (Left) The solar wind speed as a function of radius for the analytic (black) and HUXt solutions (red). (Right) The percentage error of the HUXt solution relative to the analytical solution as a function of radius.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g003.tif"/>
</fig>
<p>The second test is convergence testing, which seeks to assess if and how the numerical solutions are converging towards an exact continuous solution as the discretised grid steps are reduced in size. We ran HUXt for a time dependent scenario of a bimodal solar wind, with slow and fast streams of 350&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup> and 600&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup>&#xa0;at the inner boundary. The model ran for 13.5&#xa0;days, along a single longitude. The simulations of this scenario were generated using a range of decreasing radial grid steps, with <italic>dr</italic> being in the set {12, 6, 3, 1.5, 0.75, 0.375, 0.188, 0.094, 0.047}, in units of <italic>R</italic>
<sub>&#x2299;</sub>. The finest radial grid step, <italic>dr</italic> &#x3d; 0.047<italic>R</italic>
<sub>&#x2299;</sub>, was used as a reference standard to compare the other grid steps against.</p>
<p>
<xref ref-type="fig" rid="F4">Figure 4</xref> presents the results of these simulations. For the largest values of <italic>dr</italic>, there are large regions of significant disagreement with the reference standard. But these errors rapidly decrease with decreasing grid step, which indicates that the model is converging. As the grid step decreases the errors become more localised to the shock regions between fast and slow streams.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>(Top) Hovm&#xf6;ller (distance-time) diagrams of the HUXt solar wind speed solutions for the set of different radial grid steps, with radial grid step decreasing from right to left. (Bottom) Hovm&#xf6;ller diagrams of the fractional error in the HUXt solution at a given radial grid step relative the HUXt solution at the finest radial grid step of <italic>dr</italic> &#x3d; 0.047&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g004.tif"/>
</fig>
<p>Assessment of the domain over which the model can be said to have converged is subjective, and depends on the acceptable tolerance of error for a particular application. For each of these radial grid steps, we computed both the mean absolute error (MAE) and root mean square error (RMSE). <xref ref-type="fig" rid="F5">Figure 5</xref> presents the fractional MAE and RMSE data as a function of radial grid step. This summarises what could be inferred from <xref ref-type="fig" rid="F4">Figure 4</xref>, that the errors do decrease with grid step. The red dashed line marks the 1.5&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> grid step, which is the default configuration for HUXt. At this radial grid step, the errors are modest, with MAE being 0.7% and RMSE being 3.3%. Therefore, we consider 1.5&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> to be a sensible upper limit on the radial grid step, which was chosen as the default <italic>dr</italic> to balance the requirement that HUXt run efficiently against the discretisation errors associated with larger radial grid steps. It is simple to specify other radial grid steps in HUXt by modifying the <bold>huxt_constants</bold> function in <italic>huxt.py</italic>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>
<bold>(A)</bold> The fractional root mean square error (RMSE) of the convergence tests in <xref ref-type="fig" rid="F4">Figure 4</xref> as a function of radial grid step. <bold>(B)</bold> The corresponding fractional mean absolute error (MAE) as a function of radial grid step. The red dashed lines mark the default HUXt radial grid step of 1.5&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g005.tif"/>
</fig>
</sec>
</sec>
<sec id="s4">
<title>4 Python implementation</title>
<p>A Jupyter notebook of examples, <italic>HUXt_examples.ipynb</italic>, is provided with HUXt, which shows in detail how HUXt can be used in different scenarios. Here we provide a brief overview of this Python implementation of HUXt. The core codes of HUXt are contained in <italic>huxt.py</italic>, and use of HUXt depends on three classes; <bold>HUXt</bold>, <bold>ConeCME</bold>, and <bold>Observer</bold>. <xref ref-type="fig" rid="F1">Figure 1</xref> presents a diagram of these classes and their methods. In this diagram, arrows indicate the passing of information from instances of one class to another.</p>
<p>Instantiating an instance of the <bold>HUXt</bold> class configures and initialises the model. There is a minimum required input of specifying the inner boundary condition with an array of solar wind speeds. Different examples of how these can be derived are presented below. Three main methods are attached to the <bold>HUXt</bold> class, <bold>HUXt.solve</bold>, <bold>HUXt.save</bold>, and <bold>HUXt.get_observer</bold>. The <bold>HUXt.solve</bold> method sets the model running with optional inputs such as CMEs and streakline tracing, after which the results will be stored as <bold>HUXt</bold> attributes. In this way it is possible and practical to work with HUXt both programatically and interactively. The <bold>HUXt.save</bold> method writes all the data stored in attributes to an HDF5 file. The <bold>HUXt.ts_from_vlong</bold> method is used to convert a Carrington longitude profile of solar wind speeds into an time series of solar wind speeds at the HUXt inner boundary, under the assumption of synodic or sidereal rotation of the inner boundary. Whilst the <bold>HUXt.get_observer</bold> links to the <bold>Observer</bold> class to provide ephemeris data on a range of solar system bodies interpolated onto the model time grid.</p>
<p>The <bold>Observer</bold> class provides access to ephemeris data for mercury, Venus, Earth, Mars, Jupiter, and Saturn as well as STEREO-A and STEREO-B, for the period spanning 1963-01-01 to 2029-01-01&#xa0;at 4&#xa0;h resolution. The <bold>Observer</bold> class requires as input the name of the body and an array of times to output the ephemeris data. The ephemeris are linearly interpolated onto the output times from the 4&#xa0;h resolution data, and positions are provided in the Heliocentric Earth Equatorial (HEEQ), Heliocentric Aries Ecliptic (HAE), and Carrington coordinate systems.</p>
<p>Cone CMEs are represented by their own class, <bold>ConeCME</bold>. This class requires as input the 6 Cone CME parameters of source longitude, source latitude, full angular width, CME initial speed, CME radial thickness, and launch time relative to the model initiation time. Including Cone CMEs in a HUXt simulation is performed by passing a list of <bold>ConeCME</bold> objects to the <bold>HUXt.solve</bold> method. Attributes of the <bold>ConeCME</bold> class describe all of the CME&#x2019;s properties and its coordinates throughout the HUXt solution. There is also a method attached to the <bold>ConeCME</bold> class to compute the CME arrival time at any of the solar system bodies included in the HUXt ephemeris data. The <bold>ConeCME.parameter_array</bold> method returns a numpy array of the Cone CME parameters, which is primarily intended to pass the CME parameters to the Numba optimised numerical core. This is required as the <bold>HUXt</bold> and <bold>ConeCME</bold> attributes relating to physical parameters are stored as Astropy quantities with the associated units, which are not interoperable with Numba optimised functions. More details on the updated implementation and use of Cone CMEs are discussed <xref ref-type="sec" rid="s5-2">Section 5.1.2</xref>.</p>
<p>Basic support for 3-D simulations is provided as part of the <bold>HUXt3d</bold> class. In essence, this class is a wrapper around a collection of <bold>HUXt</bold> classes; one for each latitude simulated. Cone CMEs can be included using the same syntax as with the <bold>HUXt</bold> class. At present time-dependent boundary conditions are not fully supported for the <bold>HUXt3d</bold> container class, but all standard data and methods can be accessed for the individual <bold>HUXt</bold> inner classes in the standard manner.</p>
<sec id="s4-1">
<title>4.1 Test suite</title>
<p>In the latest release of HUXt, v4.0.0, a small test suite has been included in <italic>test_huxt.py</italic>. The aim of the test suite is to help ensure consistency and robustness of HUXt simulations for different users, as well as across future versions of HUXt. The test suite uses the <italic>pytest</italic> testing framework and, at present, includes four tests. The first test is based on the comparison of the HUXt numerical solution and the analytical solution for the simple scenario of a constant inner boundary condition, as discussed in 3.1 and <xref ref-type="fig" rid="F3">Figure 3</xref>. Therefore, this test helps ensure that the numerical scheme is working as expected.</p>
<p>The second test compares a HUXt simulation of a Cone CME erupting into structured solar wind with a reference simulation of the same scenario, where these reference data are included as part of HUXt. The solar wind solution, as well as the Cone CME properties and arrival time at Earth are checked for consistency. This test helps to ensure that the core functionality of HUXt is producing consistent results for different users, on different systems, and across different future versions.</p>
<p>The third test similarly compares output with reference data, but to test the reproduction of streakline tracing, described in <xref ref-type="sec" rid="s5-5">Section 5.2.2</xref>.</p>
<p>Finally, the fourth test compares solutions using an inner boundary at 30&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> with the same boundary conditions backmapped to 10&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>, as described in <xref ref-type="sec" rid="s5-6">Section 5.2.3</xref>. While solutions are not expected to be identical, we define the acceptable tolerance for resulting conditions at 1 AU.</p>
<p>Whilst the current test suite goes some way to ensuring the core functionality of HUXt is performing reliably, at present not all of the HUXt functionality is supported by tests. Therefore it is a development priority to expand the test suite in future versions of HUXt.</p>
</sec>
</sec>
<sec id="s5">
<title>5 Functionality</title>
<sec id="s5-1">
<title>5.1 Updated functionality</title>
<sec id="s5-1-1">
<title>5.1.1 Heliospheric extrapolations of coronal model output</title>
<p>The primary function of HUXt is to provide a computationally efficient heliospheric extrapolation of the radial solar wind speed estimated by coronal models, such as, for example, Wang-Sheeley-Arge (WSA) [<xref ref-type="bibr" rid="B24">24</xref>], Magnetohydrodyanmics-About-A-Sphere (MAS) Riley et al. [<xref ref-type="bibr" rid="B7">7</xref>] and the Durham Magnetofrictional (DUMFRIC) model [<xref ref-type="bibr" rid="B25">25</xref>]. HUXt is agnostic concerning the input data series; it is not tuned or intended to be used with any particular source of boundary conditions. <xref ref-type="fig" rid="F6">Figure 6</xref> shows the HUXt solutions for Carrington rotation 2254 (beginning 2022-02-08) using boundary conditions taken from the MAS, WSA, and DUMFRIC coronal models, as well as boundary conditions derived from Coronal Tomography (CorTom)[<xref ref-type="bibr" rid="B26">26</xref>,<xref ref-type="bibr" rid="B27">27</xref>]. MAS provides conditions at 30&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>, WSA and DUMFRIC produce conditions at 21.5&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>, while CorTom output is at 8&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>. HUXt is used with inner boundaries at these heights, without need to map the speeds to other radial distances. Whilst there is some agreement between the stream structure in these solutions, the absolute values and fine scale structure are significantly different. This serves to highlight the impact different model assumptions and architectures can have on the resulting estimate of the state of the corona, and consequently the state of the heliosphere. A detailed analysis of which factors determine the differences between these boundary conditions is outside the scope of this article. But we note that these models each make different approximations regarding the physics governing the structure of the coronal magnetic field; WSA approximates the coronal magnetic field as a potential magnetic field; DUMFRIC approximates the coronal magnetic field as a non-potential field; MAS approximates the coronal state using MHD. Furthermore, for WSA, DUMFRIC, and MHD, differences can arise due to the source and processing of the required magnetogram data [<xref ref-type="bibr" rid="B28">28</xref>]. CorTom is more fundamentally distinct from MAS, WSA and DUMFRIC, being based on a tomographic reconstruction of the coronal mass density derived from coronagraph data. Gonzi et al. [<xref ref-type="bibr" rid="B28">28</xref>] examined the sensitivity of ENLIL simulations to WSA and DUMFRIC inner boundary conditions. We think a future study that examines the differences between WSA, DUMFRIC, MAS and CorTom derived boundary conditions and their impact on heliospheric simulations would be a valuable addition to the literature.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>HUXt solutions for Carrington rotation 2254, using inner boundary conditions taken from the MAS, WSA, DUMFRIC and CorTom models at the heliographic equator.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g006.tif"/>
</fig>
<p>We also recognise the possibility of using HUXt &#x2013; which can investigate a large parameter space rapidly&#x2014;to calibrate the coronal model solar wind speeds [<xref ref-type="bibr" rid="B29">29</xref>] in a manner which accounts for heliospheric acceleration and stream interactions. For example, Bunting and Morgan [<xref ref-type="bibr" rid="B19">19</xref>] used HUXt in the calibrating an empirical relationship that converts the CorTom coronal densities into solar wind speeds.</p>
<p>Regarding the ambient solar wind boundary conditions, several convenience functions are provided in <italic>huxt_inputs.py</italic> for loading and processing solar wind speed data from the MAS, WSA, PFSS, and DUMFRIC models and CorTom outputs.</p>
</sec>
</sec>
<sec id="s5-2">
<title>5.1.2 Cone coronal mass ejections</title>
<p>CMEs are incorporated in HUXt <italic>via</italic> the Cone CME parameterisation, wherein CMEs are treated as a velocity perturbation at the model inner boundary. Cone CMEs are purely hydrodyanmic structures, and have no magnetic field structure. In Cartesian space the shape of Cone CME is formed by two hemispheres connected by a cylindrical section, akin to a short sausage, with a limiting case of a sphere. A detailed description of the Cone CME geometry is presented in Na et al. [<xref ref-type="bibr" rid="B30">30</xref>]. This structure is directed radially away from the Sun and advects through the model inner boundary at the CME speed. Any location on the model inner boundary that intersects the Cone CME volume is assigned the CME speed. A Cone CME is fully specified by 6 parameters; longitude and latitude in HEEQ coordinates, full angular width, speed, thickness (radial length of the cylindrical section), and the launch time relative to the model initialisation time. Conversion of CME coordinates for use with synodic and sidereal frames is handled automatically. Functionality exists for importing a standard &#x2018;Cone CME&#x2019; input file, such as produced by the UK Met Office CAT tool.</p>
<p>In HUXt v1.0, the position of a Cone CME was tracked by comparing simulations with and without the Cone CME and extracting the boundaries of regions where the simulations differed by more than 20<italic>&#xa0;km s</italic>
<sup>&#x2212;1</sup>. This approach was generally successful but could struggle to identify the boundary of Cone CMEs with speeds similar to the ambient solar wind speed. To improve upon this, we experimented with tracking the Cone CMEs using a discretised tracer field, but this was found to be too diffusive in practice and consequently required arbitrary thresholds to determine the CME boundaries. Therefore, from v2.0 onwards, Cone CMEs are tracked through the HUXt solution using individual tracer particles that follow the leading and trailing edge of the CME. These tracer particles are inserted into the flow onto the CME boundary as it advects through the model inner boundary and the tracer particles then passively advect through the flow solution. The tracer particles are injected onto every longitudinal and latitudinal coordinate that intersects the ConeCME. An outline of the tracer particle advection algorithm is given in <xref ref-type="statement" rid="Algorithm_1">Algorithm 1</xref> The CME boundary is computed automatically at each time-step from the locations of the tracer particles. This method of tracking the CME boundary performs well for all CME speeds, and so is a significant improvement over the tracker function in v1.0.</p>
<p>
<statement content-type="algorithm" id="Algorithm_1">
<p>
<inline-graphic xlink:href="fphy-10-1005621-fx1.tif"/>
</p>
</statement>
</p>
<p>
<xref ref-type="fig" rid="F7">Figure 7</xref> shows snapshots from an example HUXt simulation including a Cone CME, with the red line marking the boundary of the CME. The Cone CME parameters were set to represent an Earth directed climatological average CME, with initial speed of 495<italic>&#xa0;km s</italic>
<sup>&#x2212;1</sup> and full width of 37.4&#xb0;, where these values were the median speed and width values from the KINCAT catalogue of CME parameters in the HELCATS database [<xref ref-type="bibr" rid="B31">31</xref>]. Using the <bold>ConeCME.compute_arrival_at_body()</bold> method, we calculated that the CME in the simulation in <xref ref-type="fig" rid="F7">Figure 7</xref> arrived at Earth after approximately 93.9&#xa0;h, with an arrival speed of 360&#xa0;<italic>km s</italic>
<sup>&#x2212;1</sup>.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Snapshots a HUXt solution including a cone CME. The ambient solar wind boundary condition was taken from MAS for Carrington rotation 2254, as in <xref ref-type="fig" rid="F6">Figure 6</xref>, while the Cone CME parameters represent a climatologically average CME. From left to right, the panels show the Cone CME (in red) shortly after initiation, halfway through its transit to Earth, an on arrival at Earth.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g007.tif"/>
</fig>
</sec>
<sec id="s5-3">
<title>5.1.3 Analysis, figures, and animations</title>
<p>A range of basic analysis and plotting capabilities are provided in <italic>huxt_analysis.py</italic>. These capabilities are demonstrated throughout the figures in this paper. Support is provided for:<list list-type="simple">
<list-item>
<p>&#x2022; Plotting time vs. speed at fixed spatial coordinate.</p>
</list-item>
<list-item>
<p>&#x2022; Plotting radius vs. speed at fixed longitude and time.</p>
</list-item>
<list-item>
<p>&#x2022; Polar plot of speed as function of radius and longitude at fixed time and latitude.</p>
</list-item>
<list-item>
<p>&#x2022; Polar plot of speed as function of radius and latitude at fixed time and longitude.</p>
</list-item>
<list-item>
<p>&#x2022; Extracting time series of model parameters at bodies included in the <bold>Observer</bold> class.</p>
</list-item>
<list-item>
<p>&#x2022; Comparison of HUXt simulations with NASA&#x2019;s OMNI data.</p>
</list-item>
</list>
</p>
<p>Furthermore, both the latitudinal (e.g. <xref ref-type="fig" rid="F6">Figure 6</xref>) and longitudinal (right-hand panel of <xref ref-type="fig" rid="F2">Figure 2</xref>) cuts through the model can be animated over the model run duration using functions provided in <italic>huxt_analysis.py</italic>. Comparison of HUXt simulations with the NASA&#x2019;s OMNI data [<xref ref-type="bibr" rid="B32">32</xref>] is facilitated <italic>via</italic> the on-demand download of OMNI data using SunPy&#x2019;s FIDO functionality [<xref ref-type="bibr" rid="B33">33</xref>].</p>
</sec>
<sec id="s5-4">
<title>5.2 New functionality</title>
<sec id="s5-4-1">
<title>5.2.1 <italic>In situ</italic> boundary conditions</title>
<p>HUXt accepts fully time-dependent boundary conditions by specifying solar wind speed (and magnetic field polarity, see <xref ref-type="sec" rid="s5-5">Section 5.2.2</xref>) as a function of Carrington longitude and time at the inner boundary. In principle, this allows time-dependent coronal model output to be utilised, though this has yet to be fully tested. The second use case is initialisation of HUXt with <italic>in-situ</italic> solar wind measurements that are gridded into a Carrington longitude map. Functions for downloading the necessary OMNI data on-demand and generating the inner boundary condition, as well as setting up the HUXt model, are provided in <bold>huxt_inputs.py</bold>. Simple corotation smoothed back and forward in time (see [<xref ref-type="bibr" rid="B34">34</xref>], for more detail) is used to construct the boundary conditions. HUXt will accept inputs from more advanced methods, such as dynamic time warping [<xref ref-type="bibr" rid="B34">34</xref>], though such processing is not included as part of the HUXt codebase and can instead be accessed at <ext-link ext-link-type="uri" xlink:href="https://github.com/University-of-Reading-Space-Science/SolarWindInputs_DTW">https://github.com/University-of-Reading-Space-Science/SolarWindInputs_DTW</ext-link>.</p>
<p>
<xref ref-type="fig" rid="F8">Figure 8</xref> shows an example of a HUXt simulation of the region from 1 AU to 6 AU, with the inner boundary condition derived from 4&#xa0;months of near-Earth solar wind speed observations in the OMNI database [<xref ref-type="bibr" rid="B32">32</xref>]. These three snapshots are each approximately one solar rotation (27&#xa0;days) apart, meaning for time-independent boundary conditions, they would be identical. Here, the time evolution of the ambient solar wind structure can clearly be seen, with the fast solar wind streams decreasing in strength from late 2021 into early 2022. Cone CMEs can be included in such time-dependent boundary condition runs, in the same manner as for &#x2018;standard&#x2019; HUXt runs.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>Snapshots from a HUXt simulation of a radial domain spanning 1 AU to 6 AU, initialised with the OMNI observations of <italic>in-situ</italic> solar wind conditions near-Earth. The snapshots are taken approximately 27 days apart.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g008.tif"/>
</fig>
</sec>
</sec>
<sec id="s5-5">
<title>5.2.2 Streakline tracing and sector structure mapping</title>
<p>Functionality exists for tracing streaklines through HUXt flow fields. A streakline is the locus formed by connecting the locations of fluid parcels that originated or passed through a particular location, for example, the curve formed by smoke flowing from a chimney [<xref ref-type="bibr" rid="B35">35</xref>]. In HUXt, streaklines are computed by advecting test particles through the flow field from a fixed Carrington longitude. The algorithm for tracking a streakline from a fixed Carrington longitude is similar to tracking the Cone CME boundaries and hence depends primarily on <xref ref-type="statement" rid="Algorithm_1">Algorithm 1</xref>. The difference between the streakline tracing and the CME boundary tracing is in computing when and where the tracer particles are initialised. For the streaklines, this is done by computing the set of model time and longitude coordinates corresponding to when a specified Carrington longitude rotates into a model longitude bin. Because of the frozen-in-flux theorem, and under the assumption that the magnetic field is passive, the computed streakline will approximate a Parker spiral magnetic field line.</p>
<p>
<xref ref-type="fig" rid="F9">Figure 9</xref> shows a snapshot from a HUXt simulation of CR2254 with streaklines plotted that originate from every 22.5&#xb0; of Carrington longitude. As expected, the streaklines follow the expected Parker spiral pattern, with &#x2018;field lines&#x2019; in faster flow regions being less tightly wound than in slower flow (c.f. <xref ref-type="fig" rid="F4">Figure 4</xref> of [<xref ref-type="bibr" rid="B36">36</xref>]). An Earth-directed cone CME has been inserted to show the disruption of the Parker spiral, with draping of the &#x2018;field&#x2019; across the CME front.</p>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>A snapshot of the HUXt simulation of Carrington rotation 2254 with streaklines (black lines) plotted for every 22.5&#xb0; of Carrington longitude. The boundary of a cone CME is shown in red.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g009.tif"/>
</fig>
<p>Previous versions of HUXt used the radial magnetic field polarity at the inner boundary to track magnetic sector structure as a discretised passive tracer field. Unfortunately, this approach proved too diffusive, with narrow sectors being eroded away, particularly for long-duration, outer heliosphere simulations.</p>
<p>The streakline functionality can be used to more effectively track the position of Carrington longitudes of interest through the solar wind, such as the heliospheric current sheet (HCS). Changes in polarity of the radial magnetic field from a coronal model, such as MAS or WSA, can be traced out through the HUXt flow field. This is shown in the left-hand panel of <xref ref-type="fig" rid="F10">Figure 10</xref>. The HCS locations which mark the transition from positive to negative radial field (with increasing radial distance) are shown by white lines, while the converse are shown by black lines. Then, the polarity map is found by associating regions of the model domain between the streaklines of the HCS with the appropriate polarity, shown in the right-hand panel of <xref ref-type="fig" rid="F10">Figure 10</xref>. While this period, CR2254, shows a predominantly two-sector magnetic structure, there is a very short pair of HCS crossings around Earth longitude. Despite their proximity, these are preserved by the streakline method. It can also be seen how the addition of a cone CME disrupts the normal Parker spiral pattern of the HCS.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>Snapshots of the HUXt solar wind speed (left) and magnetic field polarity (right) for Carrington rotation 2254. The boundary of a cone CME is shown in red. Black and white lines show heliospheric current sheet positions of positive to negative radial field transitions (with increasing radial distance) and negative to positive, respectively.</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g010.tif"/>
</fig>
</sec>
<sec id="s5-6">
<title>5.2.3 Backmapping</title>
<p>Although the default inner boundary of HUXt is 30 <italic>r</italic>
<sub>&#x2299;</sub>, it is easily configured to use different inner boundary heights. This facilitates easier comparisons with a range of observables, as well as models initialised at other radial distances&#x2014;for example, the commonly used 21.5 <italic>r</italic>
<sub>&#x2299;</sub> inner boundary. In these circumstances, it can be necessary to map inner boundary conditions at one altitude to another. For example, mapping the input solar wind speed boundary condition from 30 <italic>r</italic>
<sub>&#x2299;</sub> down to 15 <italic>r</italic>
<sub>&#x2299;</sub>.</p>
<p>This is a non-trivial calculation, because it is necessary to account for the expected solar wind acceleration between the original and desired altitudes. HUXt provides a function to compute this mapping. For a solar wind parcel on the initial boundary height, this function computes both the expected speed and source longitude of this parcel at the desired altitude, in a manner consistent with the HUXt model dynamics. The derivation of the equations used to compute this mapping are provided in <xref ref-type="app" rid="app1">Appendix A</xref>. Note that stream interactions are ignored for backmapping, though this effect is expected to be very small close to the Sun.</p>
<p>
<xref ref-type="fig" rid="F11">Figure 11</xref> shows an example of the results of the backmapping procedure. The left panel shows a HUXt simulation initialised at 30&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> with data from a MAS simulation of CR2254. The middle panel shows a HUXt simulation where the inner boundary was backmapped to 10&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>. The right panel shows the resulting solar wind speed time series at Earth for 27&#xa0;days. The time series are very similar, but the gradients and magnitudes are slightly smaller in the solution initialised at 10&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>. This is an artefact of the backmapping procedure, which cannot distinguish between solar wind parcels of different speeds that have distinct source longitudes at a larger radii, but are estimated to have the same source longitude at a smaller radii. These overlapping parcels must necessarily be averaged and interpolated onto the regular HUXt longitude grid, which serves to smooth the inner boundary condition. It is important to be aware of this impact when backmapping an inner boundary condition to a different height.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>(Left) A snapshot of the HUXt simulation of Carrington rotation 2254 initialised at 30&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>. (Middle) A snapshot of a HUXt simulation of Carrington rotation 2254 where the inner boundary condition has been backmapped to 10&#xa0;<italic>R</italic>
<sub>&#x2299;</sub>. (Right) Time series of the solar wind speed at Earth from the HUXt simulations initialised at 30&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> (red line) and 10&#xa0;<italic>R</italic>
<sub>&#x2299;</sub> (black line).</p>
</caption>
<graphic xlink:href="fphy-10-1005621-g011.tif"/>
</fig>
<p>Note that Cone CME parameters are defined relative to the model inner boundary. Thus moving the inner boundary closer to the Sun will require an earlier Cone CME insertion time and will likely need an increased initial speed, to counteract the addition deceleration of the increased propagation path. As the duration of the Cone CME speed perturbation at the inner boundary is set by the radius of the spherical disturbance, it may also be necessary to increase the Cone CME thickness in order to obtain the same speed perturbation far from the Sun.</p>
</sec>
<sec id="s5-7">
<title>5.2.4 3-D solutions</title>
<p>
<xref ref-type="fig" rid="F2">Figure 2</xref> shows snapshots from a <bold>HUXt3D</bold> simulation of Carrington rotation 2000, from February 2003. The right-hand panel of <xref ref-type="fig" rid="F2">Figure 2</xref> shows a snapshot of the radial-latitudinal plane containing Earth. The left-hand panel of <xref ref-type="fig" rid="F2">Figure 2</xref> shows the ecliptic plane (i.e. the radial-longitude plane at a constant latitude closest to Earth&#x2019;s latitude). This simulation shows a somewhat typical declining/minimum solar cycle phase structure of fast wind at the poles and slower wind at mid-to-low latitudes. Two cone CMEs have been inserted, with their boundaries shown by the cyan and red lines.</p>
</sec>
</sec>
<sec id="s6">
<title>6 Summary and future work</title>
<p>HUXt is an open source reduced physics numerical model of the solar wind, built in Python. The primary purpose of HUXt is to provide a solar wind model that is very computationally cheap and is of minimal complexity, so that it can serve as a surrogate for 3d-MHD solar wind models in context where such simulations are currently impractical, for example, large ensemble simulations and data asssimilative applications.</p>
<p>Version 4.0 includes two key improvements to the models functionality. Firstly, HUXt now accepts fully time-dependant boundary conditions, allowing HUXt to be run by time-series of solar wind speed observations from <italic>in-situ</italic> monitors, such as those provided by the OMNI dataset. Secondly, methods have been included to compute flow streaklines of the HUXt simulations. With these streaklines it is then possible to estimate the location of the Heliospheric Current Sheet, and produce maps radial heliospheric magnetic field polarity.</p>
<p>Additionally, this version is the first to incorporate a small test-suite, which tests the HUXt numerical scheme against a simple analytical solution, and checks a HUXt simulation for consistency with some reference simulation data. This is a first step to improving the reliability and reproducibility of HUXt. Expanding this test suite to cover all of HUXt&#x2019;s functionality is a development priority for future versions.</p>
<sec id="s6-1">
<title>6.1 Data assimilation</title>
<p>Data assimilation (DA) is the process of combining observations and models, accounting for the uncertainty in both, to achieve an optimal estimate of the state of a system [<xref ref-type="bibr" rid="B37">37</xref>]. It is widely used in meteorology to dramatically improve forecasting skill [<xref ref-type="bibr" rid="B38">38</xref>], as well as in a number of areas of space physics [<xref ref-type="bibr" rid="B39">39</xref>&#x2013;<xref ref-type="bibr" rid="B43">43</xref>]. There are two broad categories of DA methods, variational methods and sequential methods. Variational methodologies, such as 4DVar, aim to find the most probable system state by processing all the observations simultaneously; whereas sequential methodologies, such as the particle filters, aim to find the minimal-variance state by processing observations one-by-one, in a sequential fashion [<xref ref-type="bibr" rid="B43">43</xref>]. HUXt is of value to solar wind DA for two reasons.</p>
<p>Firstly, as it is computationally cheap, HUXt is amenable to ensemble DA methods, which require running 10s&#x2013;1000s of instances of a model for each analysis, be this for research purposes or in a forecasting context [<xref ref-type="bibr" rid="B43">43</xref>]. For example, sequential DA methods, such as particle filters [<xref ref-type="bibr" rid="B37">37</xref>], use an ensemble of simulations to return an estimate of the state of a dynamical system. DA systems such as this are simple to implement and applicable in a broader range of contexts than some other DA methods (e.g., non-linear systems), but require an ensemble of particles that increases with the dimension of the state space of the model. Consequently, this can become very expensive to compute and becomes quickly impractical for models with large domains and/or numbers of parameters. HUXt is well suited to use with these methods, and we are developing a particle filter DA scheme for assimilating time-elongation profiles of CMEs observed by white-light imagers such as coronagraphs and heliospheric imagers.</p>
<p>Variational DA methods, such as 4DVar, often require the formulation of an &#x2018;adjoint&#x2019; model, with which a models sensitivities to perturbations can be assessed. The relatively simplicity of the HUXt equations and code base means that the &#x2018;adjoint&#x2019; model can be constructed with (relative) ease. This enables powerful variational DA methods to be employed Lang and Owens [<xref ref-type="bibr" rid="B44">44</xref>], which are proving very promising for assimilating <italic>in situ</italic> solar wind observations [<xref ref-type="bibr" rid="B45">45</xref>].</p>
</sec>
<sec id="s6-2">
<title>6.2 Space weather instrumentation, measurement, modelling and risk</title>
<p>The UK government is funding the improvement of its national space weather forecasting capability, particularly through the targeted Space Weather Instrumentation, Measurement, Modelling and Risk (SWIMMR) programme. Within SWIMMR, HUXt is being developed for operational use at the UK Met Office Space Weather Operations Center, as part of the Space Weather Empirical Ensembles Package (SWEEP). The motivation for SWEEP is that the dominant source of uncertainty in numerical model predictions and forecasts of heliosperhic solar wind speed are the uncertainties at the inner boundary of these models.</p>
<p>SWEEP aims to better quantify these uncertainties by producing a large ensemble of forecasts driven with boundary conditions derived from independent data sources (e.g., magnetograms and white light coronal observations) and different physical assumptions, e.g., potential and non-potential coronal magnetic fields. In doing so, SWEEP will produce ensemble forecasts with improved real-world representivity. This work depends critically on having a computationally cheap numerical model like HUXt, as such large ensembles across multiple inputs can not yet be practically generated with operationally used 3D MHD models. SWEEP is expected to be operational by 2024.</p>
</sec>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s7">
<title>Data availability statement</title>
<p>The datasets presented in this study can be found in online repositories. The names of the repository/repositories and accession number(s) can be found in the article/supplementary material.</p>
</sec>
<sec id="s8">
<title>Author contributions</title>
<p>LB and MO contributed to the conception of this article. MO conceived the HUXt model, whilst both MO and LB co-lead the development of HUXt. Both authors contributed to the writing and revision of the submitted article.</p>
</sec>
<sec id="s9">
<title>Funding</title>
<p>This work was part-funded by Science and Technology Facilities Council (STFC) grant numbers ST/R000921/1 and ST/V000497/1, and NERC grant number NE/S010033/1.</p>
</sec>
<ack>
<p>This research made use of Astropy (<ext-link ext-link-type="uri" xlink:href="http://www.astropy.org">http://www.astropy.org</ext-link>), a community-developed core Python package for Astronomy [<xref ref-type="bibr" rid="B46">46</xref>,<xref ref-type="bibr" rid="B47">47</xref>]. This research used version 4.0.0 [<xref ref-type="bibr" rid="B48">48</xref>] of the SunPy open source software package [<xref ref-type="bibr" rid="B33">33</xref>]. Figures for this article were made with version 3.3.4 of Matplotlib [<xref ref-type="bibr" rid="B49">49</xref>,<xref ref-type="bibr" rid="B50">50</xref>]. We have benefited greatly from the availability of the large archive of Predictive Science Inc&#x2019;s MAS coronal model solutions (<ext-link ext-link-type="uri" xlink:href="https://www.predsci.com/mhdweb/home.php">https://www.predsci.com/mhdweb/home.php</ext-link>) for much of the HUXt testing and development and thank Pete Riley for useful discussions on solar wind modelling.</p>
</ack>
<sec sec-type="COI-statement" id="s10">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s11">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<label>1.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cannon</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Angling</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Barclay</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Curry</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Dyer</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Edwards</surname>
<given-names>R</given-names>
</name>
<etal/>
</person-group> <source>Extreme space weather : Impacts on engineered Systems and infrastructure</source>. <publisher-loc>London</publisher-loc>: <publisher-name>Royal Academy of Engineering</publisher-name> (<year>2013</year>). <comment>Tech. rep.</comment> </citation>
</ref>
<ref id="B2">
<label>2.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gosling</surname>
<given-names>JT</given-names>
</name>
</person-group>. <article-title>The solar flare myth</article-title>. <source>J Geophys Res</source> (<year>1993</year>) <volume>98</volume>:<fpage>18937</fpage>&#x2013;<lpage>49</lpage>. <pub-id pub-id-type="doi">10.1029/93JA01896</pub-id> </citation>
</ref>
<ref id="B3">
<label>3.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Mays</surname>
<given-names>ML</given-names>
</name>
<name>
<surname>Andries</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Amerstorfer</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Biesecker</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Delouille</surname>
<given-names>V</given-names>
</name>
<etal/>
</person-group> <article-title>Forecasting the arrival time of coronal mass ejections: Analysis of the CCMC CME scoreboard</article-title>. <source>Space Weather</source> (<year>2018</year>) <volume>16</volume>:<fpage>1245</fpage>&#x2013;<lpage>60</lpage>. <pub-id pub-id-type="doi">10.1029/2018SW001962</pub-id> </citation>
</ref>
<ref id="B4">
<label>4.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gopalswamy</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Yashiro</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Michalek</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Stenborg</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Vourlidas</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Freeland</surname>
<given-names>S</given-names>
</name>
<etal/>
</person-group> <article-title>The SOHO/LASCO CME catalog</article-title>. <source>Earth Moon Planets</source> (<year>2009</year>) <volume>104</volume>:<fpage>295</fpage>&#x2013;<lpage>313</lpage>. <pub-id pub-id-type="doi">10.1007/s11038-008-9282-7</pub-id> </citation>
</ref>
<ref id="B5">
<label>5.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Case</surname>
<given-names>AW</given-names>
</name>
<name>
<surname>Spence</surname>
<given-names>HE</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
</person-group>. <article-title>Ambient solar wind&#x2019;s effect on ICME transit times</article-title>. <source>Geophys Res Lett</source> (<year>2008</year>) <volume>35</volume>:<fpage>L15105</fpage>. <pub-id pub-id-type="doi">10.1029/2008GL034493</pub-id> </citation>
</ref>
<ref id="B6">
<label>6.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Merkin</surname>
<given-names>VG</given-names>
</name>
<name>
<surname>Lyon</surname>
<given-names>JG</given-names>
</name>
<name>
<surname>Lario</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
<name>
<surname>Henney</surname>
<given-names>CJ</given-names>
</name>
</person-group>. <article-title>Time-dependent magnetohydrodynamic simulations of the inner heliosphere</article-title>. <source>JGR Space Phys</source> (<year>2016</year>) <volume>121</volume>:<fpage>2866</fpage>&#x2013;<lpage>90</lpage>. <pub-id pub-id-type="doi">10.1002/2015JA022200</pub-id> </citation>
</ref>
<ref id="B7">
<label>7.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Linker</surname>
<given-names>JA</given-names>
</name>
<name>
<surname>Miki&#x107;</surname>
<given-names>Z</given-names>
</name>
</person-group>. <article-title>An empirically-driven global MHD model of the solar corona and inner heliosphere</article-title>. <source>J Geophys Res</source> (<year>2001</year>) <volume>106</volume>:<fpage>15889</fpage>&#x2013;<lpage>901</lpage>. <pub-id pub-id-type="doi">10.1029/2000JA000121</pub-id> </citation>
</ref>
<ref id="B8">
<label>8.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
</person-group>. <article-title>Modeling 3-D solar wind structure</article-title>. <source>Adv Space Res</source> (<year>2003</year>) <volume>32</volume>:<fpage>497</fpage>&#x2013;<lpage>506</lpage>. <pub-id pub-id-type="doi">10.1016/S0273-1177(03)00332-6</pub-id> </citation>
</ref>
<ref id="B9">
<label>9.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Narechania</surname>
<given-names>NM</given-names>
</name>
<name>
<surname>Nikoli&#x107;</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Freret</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Sterck</surname>
<given-names>HD</given-names>
</name>
<name>
<surname>Groth</surname>
<given-names>CPT</given-names>
</name>
</person-group>. <article-title>An integrated data-driven solar wind &#x2013; CME numerical framework for space weather forecasting</article-title>. <source>J Space Weather Space Clim</source> (<year>2021</year>) <volume>11</volume>:<fpage>8</fpage>. <pub-id pub-id-type="doi">10.1051/swsc/2020068</pub-id> </citation>
</ref>
<ref id="B10">
<label>10.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mays</surname>
<given-names>ML</given-names>
</name>
<name>
<surname>Taktakishvili</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Pulkkinen</surname>
<given-names>A</given-names>
</name>
<name>
<surname>MacNeice</surname>
<given-names>PJ</given-names>
</name>
<name>
<surname>Rast&#xe4;tter</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
<etal/>
</person-group> <article-title>Ensemble modeling of CMEs using the WSA&#x2013;ENLIL&#x2b;Cone model</article-title>. <source>Sol Phys</source> (<year>2015</year>) <volume>290</volume>:<fpage>1775</fpage>&#x2013;<lpage>814</lpage>. <pub-id pub-id-type="doi">10.1007/s11207-015-0692-1</pub-id> </citation>
</ref>
<ref id="B11">
<label>11.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Mays</surname>
<given-names>ML</given-names>
</name>
<name>
<surname>Hess</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Jones</surname>
<given-names>SI</given-names>
</name>
<name>
<surname>Henney</surname>
<given-names>CJ</given-names>
</name>
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
</person-group>. <article-title>Operational modeling of heliospheric space weather for the parker solar probe</article-title>. <source>Astrophys J Suppl Ser</source> (<year>2020</year>) <volume>246</volume>:<fpage>73</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4365/ab77cb</pub-id> </citation>
</ref>
<ref id="B12">
<label>12.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Lionello</surname>
<given-names>R</given-names>
</name>
</person-group>. <article-title>Mapping solar wind streams from the Sun to 1 AU: A comparison of techniques</article-title>. <source>Sol Phys</source> (<year>2011</year>) <volume>270</volume>:<fpage>575</fpage>&#x2013;<lpage>92</lpage>. <pub-id pub-id-type="doi">10.1007/s11207-011-9766-x</pub-id> </citation>
</ref>
<ref id="B13">
<label>13.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Lang</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Barnard</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Ben-Nun</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Scott</surname>
<given-names>CJ</given-names>
</name>
<etal/>
</person-group> <article-title>A computationally efficient, time-dependent model of the solar wind for use as a surrogate to three-dimensional numerical magnetohydrodynamic simulations</article-title>. <source>Sol Phys</source> (<year>2020</year>) <volume>295</volume>:<fpage>43</fpage>. <pub-id pub-id-type="doi">10.1007/s11207-020-01605-3</pub-id> </citation>
</ref>
<ref id="B14">
<label>14.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Barnard</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Scott</surname>
<given-names>CJ</given-names>
</name>
<name>
<surname>de Koning</surname>
<given-names>CA</given-names>
</name>
</person-group>. <article-title>Ensemble CME modeling constrained by heliospheric imager observations</article-title>. <source>AGU Adv</source> (<year>2020</year>) <volume>1</volume>:<fpage>e2020AV000214</fpage>. <pub-id pub-id-type="doi">10.1029/2020AV000214</pub-id> </citation>
</ref>
<ref id="B15">
<label>15.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chi</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Scott</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Barnard</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>M</given-names>
</name>
<etal/>
</person-group> <article-title>Modeling the observed distortion of multiple (ghost) CME fronts in STEREO heliospheric imagers</article-title>. <source>Astrophys J Lett</source> (<year>2021</year>) <volume>917</volume>:<fpage>L16</fpage>. <pub-id pub-id-type="doi">10.3847/2041-8213/ac1203</pub-id> </citation>
</ref>
<ref id="B16">
<label>16.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Barnard</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>M</given-names>
</name>
</person-group>. <article-title>University-of-Reading-Space-Science/HUXt</article-title>. <source>Huxt Zenodo</source>. (<year>2021</year>). <pub-id pub-id-type="doi">10.5281/zenodo.4889327</pub-id> </citation>
</ref>
<ref id="B17">
<label>17.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hinterreiter</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Amerstorfer</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Temmer</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Reiss</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>Weiss</surname>
<given-names>AJ</given-names>
</name>
<name>
<surname>M&#xf6;stl</surname>
<given-names>C</given-names>
</name>
<etal/>
</person-group> <article-title>Drag-based CME modeling with heliospheric images incorporating frontal deformation: ELEvoHI 2.0</article-title>. <source>Space Weather</source> (<year>2021</year>) <volume>19</volume>:<fpage>e2021SW002836</fpage>. <pub-id pub-id-type="doi">10.1029/2021SW002836</pub-id> </citation>
</ref>
<ref id="B18">
<label>18.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Macneil</surname>
<given-names>AR</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Finley</surname>
<given-names>AJ</given-names>
</name>
<name>
<surname>Matt</surname>
<given-names>SP</given-names>
</name>
</person-group>. <article-title>A statistical evaluation of ballistic backmapping for the slow solar wind: The interplay of solar wind acceleration and corotation</article-title>. <source>Mon Not R Astron Soc</source> (<year>2022</year>) <volume>509</volume>:<fpage>2390</fpage>&#x2013;<lpage>403</lpage>. <pub-id pub-id-type="doi">10.1093/mnras/stab2965</pub-id> </citation>
</ref>
<ref id="B19">
<label>19.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bunting</surname>
<given-names>KA</given-names>
</name>
<name>
<surname>Morgan</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>An inner boundary condition for solar wind models based on coronal density</article-title>. <source>J Space Weather Space Clim</source> (<year>2022</year>) <volume>12</volume>:<fpage>30</fpage>. <pub-id pub-id-type="doi">10.1051/swsc/2022026</pub-id> </citation>
</ref>
<ref id="B20">
<label>20.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pizzo</surname>
<given-names>V</given-names>
</name>
</person-group>. <article-title>A three-dimensional model of corotating streams in the solar wind, 1. Theoretical foundations</article-title>. <source>J Geophys Res</source> (<year>1978</year>) <volume>83</volume>:<fpage>5563</fpage>&#x2013;<lpage>72</lpage>. <pub-id pub-id-type="doi">10.1029/JA083iA12p05563</pub-id> </citation>
</ref>
<ref id="B21">
<label>21.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reiss</surname>
<given-names>MA</given-names>
</name>
<name>
<surname>MacNeice</surname>
<given-names>PJ</given-names>
</name>
<name>
<surname>Muglach</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
<name>
<surname>M&#xf6;stl</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
<etal/>
</person-group> <article-title>Forecasting the ambient solar wind with numerical models. II. An adaptive prediction system for specifying solar wind speed near the Sun</article-title>. <source>Astrophys J</source> (<year>2020</year>) <volume>891</volume>:<fpage>165</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4357/ab78a0</pub-id> </citation>
</ref>
<ref id="B22">
<label>22.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Press</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Teukolsky</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Vetterling</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Flannery</surname>
<given-names>B</given-names>
</name>
</person-group>. <source>Numerical recipes - the art of scientific computing</source>. <edition>3rd ed</edition>. <publisher-name>Cambridge University Press</publisher-name> (<year>2007</year>). </citation>
</ref>
<ref id="B23">
<label>23.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
</person-group>. <article-title>Probabilistic solar wind forecasting using large ensembles of near-sun conditions with a simple one-dimensional &#x201c;upwind&#x201d; scheme</article-title>. <source>Space Weather</source> (<year>2017</year>) <volume>15</volume>:<fpage>1461</fpage>&#x2013;<lpage>74</lpage>. <pub-id pub-id-type="doi">10.1002/2017SW001679</pub-id> </citation>
</ref>
<ref id="B24">
<label>24.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
<name>
<surname>Pizzo</surname>
<given-names>VJ</given-names>
</name>
</person-group>. <article-title>Improvement in the prediction of solar wind conditions using near-real time solar magnetic field updates</article-title>. <source>J Geophys Res</source> (<year>2000</year>) <volume>105</volume>:<fpage>10465</fpage>&#x2013;<lpage>79</lpage>. <pub-id pub-id-type="doi">10.1029/1999JA000262</pub-id> </citation>
</ref>
<ref id="B25">
<label>25.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yeates</surname>
<given-names>AR</given-names>
</name>
<name>
<surname>Mackay</surname>
<given-names>DH</given-names>
</name>
<name>
<surname>van Ballegooijen</surname>
<given-names>AA</given-names>
</name>
<name>
<surname>Constable</surname>
<given-names>JA</given-names>
</name>
</person-group>. <article-title>A nonpotential model for the Sun&#x2019;s open magnetic flux</article-title>. <source>J Geophys Res</source> (<year>2010</year>) <volume>115</volume>. <pub-id pub-id-type="doi">10.1029/2010JA015611</pub-id> </citation>
</ref>
<ref id="B26">
<label>26.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Morgan</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>An atlas of coronal electron density at 5R<sub>&#x2299;</sub>. II. A spherical harmonic method for density reconstruction</article-title>. <source>Astrophys J Suppl Ser</source> (<year>2019</year>) <volume>242</volume>:<fpage>3</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4365/ab125d</pub-id> </citation>
</ref>
<ref id="B27">
<label>27.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Morgan</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Cook</surname>
<given-names>AC</given-names>
</name>
</person-group>. <article-title>The width, density, and outflow of solar coronal streamers</article-title>. <source>Astrophys J</source> (<year>2020</year>) <volume>893</volume>:<fpage>57</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4357/ab7e32</pub-id> </citation>
</ref>
<ref id="B28">
<label>28.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gonzi</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Weinzierl</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Bocquet</surname>
<given-names>F-X</given-names>
</name>
<name>
<surname>Bisi</surname>
<given-names>MM</given-names>
</name>
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Jackson</surname>
<given-names>BV</given-names>
</name>
<etal/>
</person-group> <article-title>Impact of inner heliospheric boundary conditions on solar wind predictions at Earth</article-title>. <source>Space Weather</source> (<year>2020</year>) <volume>19</volume>:<fpage>1</fpage>&#x2013;<lpage>40</lpage>. <pub-id pub-id-type="doi">10.1029/2020SW002499</pub-id> </citation>
</ref>
<ref id="B29">
<label>29.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>McGregor</surname>
<given-names>SL</given-names>
</name>
<name>
<surname>Hughes</surname>
<given-names>WJ</given-names>
</name>
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Odstrcil</surname>
<given-names>D</given-names>
</name>
</person-group>. <article-title>The distribution of solar wind speeds during solar minimum: Calibration for numerical solar wind modeling constraints on the source of the slow solar wind</article-title>. <source>J Geophys Res</source> (<year>2011</year>) <volume>116</volume>. <pub-id pub-id-type="doi">10.1029/2010JA015881</pub-id> </citation>
</ref>
<ref id="B30">
<label>30.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Na</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Moon</surname>
<given-names>Y-J</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>H</given-names>
</name>
</person-group>. <article-title>Development of a full ice-cream cone model for halo coronal mass ejections</article-title>. <source>Astrophys J</source> (<year>2017</year>) <volume>839</volume>:<fpage>82</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4357/aa697c</pub-id> </citation>
</ref>
<ref id="B31">
<label>31.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Barnes</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Davies</surname>
<given-names>JA</given-names>
</name>
<name>
<surname>Harrison</surname>
<given-names>RA</given-names>
</name>
<name>
<surname>Byrne</surname>
<given-names>JP</given-names>
</name>
<name>
<surname>Perry</surname>
<given-names>CH</given-names>
</name>
<name>
<surname>Bothmer</surname>
<given-names>V</given-names>
</name>
<etal/>
</person-group> <article-title>CMEs in the heliosphere: III. A statistical analysis of the kinematic properties derived from stereoscopic geometrical modelling techniques applied to CMEs detected in the heliosphere from 2008 to 2014 by STEREO/HI-1</article-title>. <source>Sol Phys</source> (<year>2020</year>) <volume>295</volume>:<fpage>150</fpage>. <pub-id pub-id-type="doi">10.1007/s11207-020-01717-w</pub-id> </citation>
</ref>
<ref id="B32">
<label>32.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>King</surname>
<given-names>JH</given-names>
</name>
<name>
<surname>Papitashvili</surname>
<given-names>NE</given-names>
</name>
</person-group>. <article-title>Solar wind spatial scales in and comparisons of hourly Wind and ACE plasma and magnetic field data</article-title>. <source>J Geophys Res</source> (<year>2005</year>) <volume>110</volume>:<fpage>A02104</fpage>. <pub-id pub-id-type="doi">10.1029/2004JA010649</pub-id> </citation>
</ref>
<ref id="B33">
<label>33.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Barnes</surname>
<given-names>WT</given-names>
</name>
<name>
<surname>Bobra</surname>
<given-names>MG</given-names>
</name>
<name>
<surname>Christe</surname>
<given-names>SD</given-names>
</name>
<name>
<surname>Freij</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Hayes</surname>
<given-names>LA</given-names>
</name>
<name>
<surname>Ireland</surname>
<given-names>J</given-names>
</name>
<etal/>
</person-group> <article-title>The SunPy project: Open source development and status of the version 1.0 core package</article-title>. <source>Astrophys J</source> (<year>2020</year>) <volume>890</volume>:<fpage>68</fpage>. <pub-id pub-id-type="doi">10.3847/1538-4357/ab4f7a</pub-id> </citation>
</ref>
<ref id="B34">
<label>34.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Nichols</surname>
<given-names>JD</given-names>
</name>
</person-group>. <article-title>Using <italic>in situ</italic> solar-wind observations to generate inner-boundary conditions to outer-heliosphere simulations &#x2013; I. Dynamic time warping applied to synthetic observations</article-title>. <source>Mon Not R Astron Soc</source> (<year>2021</year>) <volume>508</volume>:<fpage>2575</fpage>&#x2013;<lpage>82</lpage>. <pub-id pub-id-type="doi">10.1093/mnras/stab2512</pub-id> </citation>
</ref>
<ref id="B35">
<label>35.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Batchelor</surname>
<given-names>GK</given-names>
</name>
</person-group>. <source>An introduction to fluid dynamics</source>. <publisher-loc>Cambridge</publisher-loc>: <publisher-name>Cambridge Mathematical LibraryCambridge University Press</publisher-name> (<year>2000</year>). <pub-id pub-id-type="doi">10.1017/CBO9780511800955</pub-id> </citation>
</ref>
<ref id="B36">
<label>36.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Forsyth</surname>
<given-names>RJ</given-names>
</name>
</person-group>. <article-title>The heliospheric magnetic field</article-title>. <source>Living Rev Sol Phys</source> (<year>2013</year>) <volume>10</volume>. <pub-id pub-id-type="doi">10.12942/lrsp-2013-5</pub-id> </citation>
</ref>
<ref id="B37">
<label>37.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Van Leeuwen</surname>
<given-names>PJ</given-names>
</name>
</person-group>. <article-title>Particle filtering in geophysical systems</article-title>. <source>Mon Weather Rev</source> (<year>2009</year>) <volume>137</volume>:<fpage>4089</fpage>&#x2013;<lpage>114</lpage>. <pub-id pub-id-type="doi">10.1175/2009MWR2835.1</pub-id> </citation>
</ref>
<ref id="B38">
<label>38.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Kalnay</surname>
<given-names>E</given-names>
</name>
</person-group>. <source>Atmospheric modeling, data assimilation and predictability &#x2014; atmospheric science and meteorology</source>. <publisher-name>Cambridge University Press</publisher-name> (<year>2005</year>). <pub-id pub-id-type="doi">10.1017/CBO9780511802270</pub-id> </citation>
</ref>
<ref id="B39">
<label>39.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Brun</surname>
<given-names>AS</given-names>
</name>
</person-group>. <article-title>Towards using modern data assimilation and weather forecasting methods in solar physics</article-title>. <source>Astron Nachr</source> (<year>2007</year>) <volume>328</volume>:<fpage>329</fpage>&#x2013;<lpage>38</lpage>. <pub-id pub-id-type="doi">10.1002/asna.200610739</pub-id> </citation>
</ref>
<ref id="B40">
<label>40.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hickmann</surname>
<given-names>KS</given-names>
</name>
<name>
<surname>Godinez</surname>
<given-names>HC</given-names>
</name>
<name>
<surname>Henney</surname>
<given-names>CJ</given-names>
</name>
<name>
<surname>Arge</surname>
<given-names>CN</given-names>
</name>
</person-group>. <article-title>Data assimilation in the ADAPT photospheric flux transport model</article-title>. <source>Sol Phys</source> (<year>2015</year>) <volume>290</volume>:<fpage>1105</fpage>&#x2013;<lpage>18</lpage>. <pub-id pub-id-type="doi">10.1007/s11207-015-0666-3</pub-id> </citation>
</ref>
<ref id="B41">
<label>41.</label>
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Murray</surname>
<given-names>SA</given-names>
</name>
<name>
<surname>Henley</surname>
<given-names>EM</given-names>
</name>
<name>
<surname>Jackson</surname>
<given-names>DR</given-names>
</name>
<name>
<surname>Bruinsma</surname>
<given-names>SL</given-names>
</name>
</person-group>. <article-title>Assessing the performance of thermospheric modeling with data assimilation throughout solar cycles 23 and 24</article-title>. <source>Space Weather</source> (<year>2015</year>) <volume>13</volume>(<issue>4</issue>): <fpage>220</fpage>&#x2013;<lpage>232</lpage>. <pub-id pub-id-type="doi">10.1002/2015SW001163</pub-id> </citation>
</ref>
<ref id="B42">
<label>42.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chartier</surname>
<given-names>AT</given-names>
</name>
<name>
<surname>Matsuo</surname>
<given-names>T</given-names>
</name>
<name>
<surname>Anderson</surname>
<given-names>JL</given-names>
</name>
<name>
<surname>Collins</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Hoar</surname>
<given-names>TJ</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>G</given-names>
</name>
<etal/>
</person-group> <article-title>Ionospheric data assimilation and forecasting during storms</article-title>. <source>J Geophys Res Space Phys</source> (<year>2016</year>) <volume>121</volume>:<fpage>764</fpage>&#x2013;<lpage>78</lpage>. <pub-id pub-id-type="doi">10.1002/2014JA020799</pub-id> </citation>
</ref>
<ref id="B43">
<label>43.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lang</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Browne</surname>
<given-names>P</given-names>
</name>
<name>
<surname>van Leeuwen</surname>
<given-names>PJ</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
</person-group>. <article-title>Data assimilation in the solar wind: Challenges and first results</article-title>. <source>Space Weather</source> (<year>2017</year>) <volume>15</volume>:<fpage>1490</fpage>&#x2013;<lpage>510</lpage>. <pub-id pub-id-type="doi">10.1002/2017SW001681</pub-id> </citation>
</ref>
<ref id="B44">
<label>44.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lang</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
</person-group>. <article-title>A variational approach to data assimilation in the solar wind</article-title>. <source>Space Weather</source> (<year>2019</year>) <volume>17</volume>:<fpage>59</fpage>&#x2013;<lpage>83</lpage>. <pub-id pub-id-type="doi">10.1029/2018SW001857</pub-id> </citation>
</ref>
<ref id="B45">
<label>45.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lang</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Witherington</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Turner</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Owens</surname>
<given-names>MJ</given-names>
</name>
<name>
<surname>Riley</surname>
<given-names>P</given-names>
</name>
</person-group>. <article-title>Improving solar wind forecasting using data assimilation</article-title>. <source>Space Weather</source> (<year>2021</year>) <volume>19</volume>:<fpage>e2020SW002698</fpage>. <pub-id pub-id-type="doi">10.1029/2020SW002698</pub-id> </citation>
</ref>
<ref id="B46">
<label>46.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Robitaille</surname>
<given-names>TP</given-names>
</name>
<name>
<surname>Tollerud</surname>
<given-names>EJ</given-names>
</name>
<name>
<surname>Greenfield</surname>
<given-names>P</given-names>
</name>
<name>
<surname>Droettboom</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Bray</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Aldcroft</surname>
<given-names>T</given-names>
</name>
<etal/>
</person-group> <article-title>Astropy: A community Python package for astronomy</article-title>. <source>Astron Astrophys</source> (<year>2013</year>) <volume>558</volume>:<fpage>A33</fpage>. <pub-id pub-id-type="doi">10.1051/0004-6361/201322068</pub-id> </citation>
</ref>
<ref id="B47">
<label>47.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Price-Whelan</surname>
<given-names>AM</given-names>
</name>
<name>
<surname>Sip&#x151;cz</surname>
<given-names>BM</given-names>
</name>
<name>
<surname>G&#xfc;nther</surname>
<given-names>HM</given-names>
</name>
<name>
<surname>Lim</surname>
<given-names>PL</given-names>
</name>
<name>
<surname>Crawford</surname>
<given-names>SM</given-names>
</name>
<name>
<surname>Conseil</surname>
<given-names>S</given-names>
</name>
<etal/>
</person-group> <article-title>The Astropy project: Building an open-science project and status of the v2.0 core package</article-title>. <source>Astron J</source> (<year>2018</year>) <volume>156</volume>:<fpage>123</fpage>. <pub-id pub-id-type="doi">10.3847/1538-3881/aabc4f</pub-id> </citation>
</ref>
<ref id="B48">
<label>48.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mumford</surname>
<given-names>SJ</given-names>
</name>
<name>
<surname>Freij</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Stansby</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Christe</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Ireland</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Mayer</surname>
<given-names>F</given-names>
</name>
<etal/>
</person-group> <article-title>SunPy</article-title>. <source>Zenodo</source> (<year>2022</year>). <pub-id pub-id-type="doi">10.5281/zenodo.6524764</pub-id> </citation>
</ref>
<ref id="B49">
<label>49.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Caswell</surname>
<given-names>TA</given-names>
</name>
<name>
<surname>Droettboom</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>A</given-names>
</name>
<name>
<surname>de Andrade</surname>
<given-names>ES</given-names>
</name>
<name>
<surname>Hunter</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Firing</surname>
<given-names>E</given-names>
</name>
<etal/>
</person-group> <article-title>Matplotlib/matplotlib: Rel: V3.3.4</article-title>. <source>Zenodo</source> (<year>2021</year>). <pub-id pub-id-type="doi">10.5281/zenodo.4475376</pub-id> </citation>
</ref>
<ref id="B50">
<label>50.</label>
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hunter</surname>
<given-names>JD</given-names>
</name>
</person-group>. <article-title>Matplotlib: A 2D graphics environment</article-title>. <source>Comput Sci Eng</source> (<year>2007</year>) <volume>9</volume>:<fpage>90</fpage>&#x2013;<lpage>5</lpage>. <pub-id pub-id-type="doi">10.1109/MCSE.2007.55</pub-id> </citation>
</ref>
</ref-list>
<app-group>
<app id="app1">
<title>Appendix A: Backmapping equations</title>
<p>Substituting <xref ref-type="disp-formula" rid="e3">Eq. 3</xref> into <xref ref-type="disp-formula" rid="e2">Eq. 2</xref>, we obtain<disp-formula id="e4">
<mml:math id="m5">
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>The travel time for a solar wind parcel to propagate between and inner radius, <italic>r</italic>
<sub>
<italic>in</italic>
</sub>, to an outer radius, <italic>r</italic>
<sub>
<italic>out</italic>
</sub>, is<disp-formula id="e5">
<mml:math id="m6">
<mml:mi>T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">out</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mi>d</mml:mi>
<mml:mi>r</mml:mi>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>Defining <italic>A</italic> &#x3d; <italic>V</italic>
<sub>0</sub> &#x2b; <italic>&#x3b1;V</italic>
<sub>0</sub>, this integral becomes<disp-formula id="e6">
<mml:math id="m7">
<mml:mi>T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x222b;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">out</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mi>d</mml:mi>
<mml:mi>r</mml:mi>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>For which the solution is<disp-formula id="e7">
<mml:math id="m8">
<mml:mi>T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2061;</mml:mo>
<mml:mi mathvariant="italic">log</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>A</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">out</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>This travel time can be used in conjunction with the synodic solar rotation rate to estimate the source longitude of a solar wind parcel at an inner radius relative to its source longitude at the outer radius.</p>
</app>
</app-group>
</back>
</article>