[xmds2] 02/09: Imported Upstream version 2.2.1+dfsg

Rafael Laboissière rlaboiss-guest at moszumanska.debian.org
Wed Oct 1 08:16:18 UTC 2014


This is an automated email from the git hooks/post-receive script.

rlaboiss-guest pushed a commit to branch master
in repository xmds2.

commit 3a67cb2b002eae36fe23d027c055bf1bd564b646
Author: Rafael Laboissiere <rafael at laboissiere.net>
Date:   Tue Sep 30 20:56:13 2014 -0300

    Imported Upstream version 2.2.1+dfsg
---
 documentation/.buildinfo                           |   2 +-
 documentation/_static/pygments.css                 |   4 +-
 documentation/advanced_topics.html                 |  32 +-
 documentation/bulirschStoer.html                   |  43 +-
 documentation/developer.html                       |  26 +-
 documentation/doctrees/advanced_topics.doctree     | Bin 52243 -> 52275 bytes
 documentation/doctrees/bulirschStoer.doctree       | Bin 20930 -> 20718 bytes
 documentation/doctrees/developer.doctree           | Bin 92336 -> 92922 bytes
 documentation/doctrees/documentation_toc.doctree   | Bin 3820 -> 3873 bytes
 documentation/doctrees/environment.pickle          | Bin 95216 -> 97493 bytes
 documentation/doctrees/faq.doctree                 | Bin 30364 -> 30155 bytes
 documentation/doctrees/index.doctree               | Bin 51060 -> 52560 bytes
 documentation/doctrees/installation.doctree        | Bin 112933 -> 110242 bytes
 documentation/doctrees/introduction.doctree        | Bin 24322 -> 24110 bytes
 documentation/doctrees/licensing.doctree           | Bin 114056 -> 114118 bytes
 documentation/doctrees/news.doctree                | Bin 46171 -> 47172 bytes
 documentation/doctrees/news_content.doctree        | Bin 44579 -> 45578 bytes
 documentation/doctrees/optimisation_hints.doctree  | Bin 53561 -> 57173 bytes
 documentation/doctrees/reference_elements.doctree  | Bin 458770 -> 461641 bytes
 documentation/doctrees/reference_index.doctree     | Bin 3181 -> 3235 bytes
 ...eference_installation_and_configuration.doctree | Bin 12623 -> 12693 bytes
 documentation/doctrees/reference_schema.doctree    | Bin 67499 -> 67561 bytes
 .../doctrees/reference_usefulXMLSyntax.doctree     | Bin 4535 -> 4588 bytes
 documentation/doctrees/tutorial.doctree            | Bin 49177 -> 49005 bytes
 documentation/doctrees/upgrade.doctree             | Bin 6003 -> 6065 bytes
 documentation/doctrees/worked_examples.doctree     | Bin 197981 -> 196994 bytes
 documentation/doctrees/xsil2graphics2.doctree      | Bin 5939 -> 6001 bytes
 documentation/documentation_toc.html               |  13 +-
 documentation/faq.html                             |  26 +-
 documentation/genindex.html                        |  12 +-
 documentation/index.html                           | 138 ++-
 documentation/installation.html                    |  49 +-
 documentation/introduction.html                    |  26 +-
 documentation/latex/xmds2.aux                      | 799 ++++++++---------
 documentation/latex/xmds2.idx                      |  96 +--
 documentation/latex/xmds2.ilg                      |   4 +-
 documentation/latex/xmds2.ind                      |  96 +--
 documentation/latex/xmds2.log                      | 897 +++++++++++--------
 documentation/latex/xmds2.out                      | 127 +--
 documentation/latex/xmds2.pdf                      | Bin 7331787 -> 7004746 bytes
 documentation/latex/xmds2.tex                      | 946 +++++++++++----------
 documentation/latex/xmds2.toc                      |  51 +-
 documentation/licensing.html                       |  26 +-
 documentation/news.html                            |  24 +-
 documentation/news_content.html                    |  17 +-
 documentation/optimisation_hints.html              |  46 +-
 documentation/reference_elements.html              |  47 +-
 documentation/reference_index.html                 |  26 +-
 .../reference_installation_and_configuration.html  |  29 +-
 documentation/reference_schema.html                |  29 +-
 documentation/reference_usefulXMLSyntax.html       |  29 +-
 documentation/search.html                          |  12 +-
 documentation/searchindex.js                       |   2 +-
 documentation/tutorial.html                        |  26 +-
 documentation/upgrade.html                         |  26 +-
 documentation/worked_examples.html                 |  36 +-
 documentation/xsil2graphics2.html                  |  26 +-
 examples/cpc_example5.xmds                         |  14 +-
 setup.py                                           |   2 +-
 xpdeint/Features/Arguments.py                      |   6 +-
 xpdeint/Features/AsciiFormat.py                    |   6 +-
 xpdeint/Features/AutoVectorise.py                  |   6 +-
 xpdeint/Features/Benchmark.py                      |   6 +-
 xpdeint/Features/BinaryFormat.py                   |   6 +-
 xpdeint/Features/Bing.py                           |   6 +-
 xpdeint/Features/CFlags.py                         |   6 +-
 xpdeint/Features/ChunkedOutput.py                  |   6 +-
 xpdeint/Features/Diagnostics.py                    |   6 +-
 xpdeint/Features/ErrorCheck.py                     |   6 +-
 xpdeint/Features/Globals.py                        |   6 +-
 xpdeint/Features/HDF5Format.py                     |   6 +-
 xpdeint/Features/HaltNonFinite.py                  |   6 +-
 xpdeint/Features/MaxIterations.py                  |   6 +-
 xpdeint/Features/OpenMP.py                         |   6 +-
 xpdeint/Features/Output.py                         |   6 +-
 xpdeint/Features/OutputFormat.py                   |  10 +-
 xpdeint/Features/Stochastic.py                     |   6 +-
 xpdeint/Features/Transforms/Basis.py               |   6 +-
 xpdeint/Features/Transforms/BesselBasis.py         |   6 +-
 .../Features/Transforms/BesselNeumannTransform.py  |   6 +-
 xpdeint/Features/Transforms/BesselTransform.py     |   6 +-
 xpdeint/Features/Transforms/EPBasis.py             |   6 +-
 .../Features/Transforms/FourierTransformFFTW3.py   |   6 +-
 .../Transforms/FourierTransformFFTW3MPI.py         |   6 +-
 .../Transforms/FourierTransformFFTW3Threads.py     |   6 +-
 xpdeint/Features/Transforms/HermiteGaussEPBasis.py |   6 +-
 .../Transforms/HermiteGaussFourierEPBasis.py       |   6 +-
 .../Features/Transforms/HermiteGaussTransform.py   |   6 +-
 .../Transforms/HermiteGaussTwiddleBasis.py         |   6 +-
 xpdeint/Features/Transforms/MMT.py                 |   6 +-
 xpdeint/Features/Transforms/NoTransformMPI.py      |   6 +-
 .../Features/Transforms/TransformMultiplexer.py    |   6 +-
 xpdeint/Features/Validation.py                     |   6 +-
 xpdeint/Geometry/BesselDimensionRepresentation.py  |   6 +-
 .../BesselNeumannDimensionRepresentation.py        |   6 +-
 xpdeint/Geometry/DimensionRepresentation.py        |   6 +-
 xpdeint/Geometry/FieldElement.py                   |   6 +-
 xpdeint/Geometry/GeometryElement.py                |   6 +-
 .../HermiteGaussDimensionRepresentation.py         |   6 +-
 .../Geometry/NonUniformDimensionRepresentation.py  |   6 +-
 .../SphericalBesselDimensionRepresentation.py      |   6 +-
 .../SplitUniformDimensionRepresentation.py         |   6 +-
 xpdeint/Geometry/UniformDimensionRepresentation.py |   6 +-
 xpdeint/HDF5.py                                    |  28 +-
 xpdeint/MomentGroupElement.py                      |   6 +-
 xpdeint/Operators/ConstantEXOperator.py            |   6 +-
 xpdeint/Operators/ConstantIPOperator.py            |   6 +-
 xpdeint/Operators/CrossPropagationOperator.py      |   6 +-
 xpdeint/Operators/DeltaAOperator.py                |   6 +-
 xpdeint/Operators/FilterOperator.py                |   6 +-
 xpdeint/Operators/FunctionsOperator.py             |   6 +-
 xpdeint/Operators/NonConstantEXOperator.py         |   6 +-
 xpdeint/Operators/NonConstantIPOperator.py         |   6 +-
 xpdeint/Operators/Operator.py                      |   6 +-
 xpdeint/Operators/OperatorContainer.py             |  28 +-
 xpdeint/Operators/SICDeltaAOperator.py             |   6 +-
 xpdeint/ParserException.py                         |   2 +-
 xpdeint/Preferences.py                             |   2 +-
 xpdeint/ScriptElement.py                           |  28 +-
 xpdeint/Segments/BreakpointSegment.py              |   6 +-
 xpdeint/Segments/FilterSegment.py                  |   6 +-
 xpdeint/Segments/Integrators/AdaptiveStep.py       |   6 +-
 xpdeint/Segments/Integrators/FixedStep.py          |  28 +-
 xpdeint/Segments/Integrators/FixedStepWithCross.py |   6 +-
 xpdeint/Segments/Integrators/Integrator.py         |   6 +-
 xpdeint/Segments/Integrators/MMStepper.py          |   6 +-
 xpdeint/Segments/Integrators/RK45Stepper.py        |   6 +-
 xpdeint/Segments/Integrators/RK4Stepper.py         |   6 +-
 xpdeint/Segments/Integrators/RK89Stepper.py        |   6 +-
 xpdeint/Segments/Integrators/RK9Stepper.py         |   6 +-
 .../Segments/Integrators/RichardsonFixedStep.py    |   6 +-
 xpdeint/Segments/Integrators/SICStepper.py         |   6 +-
 xpdeint/Segments/Integrators/SIStepper.py          |   6 +-
 xpdeint/Segments/SequenceSegment.py                |   6 +-
 xpdeint/Segments/TopLevelSequenceElement.py        |   6 +-
 xpdeint/Simulation.py                              |   6 +-
 .../AdaptiveMPIMultiPathDriver.py                  |   6 +-
 xpdeint/SimulationDrivers/DistributedMPIDriver.py  |  28 +-
 xpdeint/SimulationDrivers/MPI.py                   |   6 +-
 xpdeint/SimulationDrivers/MPIMultiPathDriver.py    |   6 +-
 xpdeint/SimulationDrivers/MultiPathDriver.py       |  28 +-
 xpdeint/SimulationDrivers/SimulationDriver.py      |   6 +-
 xpdeint/SimulationElement.py                       |   6 +-
 xpdeint/Stochastic/Generators/DSFMTGenerator.py    |   6 +-
 xpdeint/Stochastic/Generators/Generator.py         |   6 +-
 xpdeint/Stochastic/Generators/MKLGenerator.py      |   6 +-
 xpdeint/Stochastic/Generators/POSIXGenerator.py    |   6 +-
 xpdeint/Stochastic/Generators/SolirteGenerator.py  |   6 +-
 .../GaussianBoxMuellerRandomVariable.py            |   6 +-
 .../RandomVariables/GaussianMKLRandomVariable.py   |   6 +-
 .../RandomVariables/GaussianRandomVariable.py      |  28 +-
 .../GaussianSolirteRandomVariable.py               |   6 +-
 .../RandomVariables/PoissonianRandomVariable.py    |  50 +-
 .../RandomVariables/UniformRandomVariable.py       |   6 +-
 xpdeint/Vectors/ComputedVector.py                  |   6 +-
 xpdeint/Vectors/NoiseVector.py                     |   6 +-
 xpdeint/Vectors/VectorElement.py                   |  28 +-
 xpdeint/Vectors/VectorInitialisation.py            |   6 +-
 xpdeint/Vectors/VectorInitialisationFromCDATA.py   |   6 +-
 xpdeint/Vectors/VectorInitialisationFromHDF5.py    |   6 +-
 xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl  |  89 +-
 xpdeint/Version.py                                 |   2 +-
 xpdeint/XMDS2Parser.py                             |  45 +-
 xpdeint/parser2.py                                 |   2 +-
 xpdeint/support/wscript                            |  39 +-
 xpdeint/xsil2graphics2/MathematicaImport.py        |   6 +-
 xpdeint/xsil2graphics2/MatlabOctaveImport.py       |   6 +-
 xpdeint/xsil2graphics2/PythonImport.py             |   6 +-
 xpdeint/xsil2graphics2/RImport.py                  |   6 +-
 169 files changed, 2737 insertions(+), 2090 deletions(-)

diff --git a/documentation/.buildinfo b/documentation/.buildinfo
index d19f58e..e76da15 100644
--- a/documentation/.buildinfo
+++ b/documentation/.buildinfo
@@ -1,4 +1,4 @@
 # Sphinx build info version 1
 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: cf01567310e10be74fec2fe5c88d85cf
+config: 255724fa0f98cc8ba825de9899897ccf
 tags: fbb0d17656682115ca4d033fb2f83ba1
diff --git a/documentation/_static/pygments.css b/documentation/_static/pygments.css
index 1683ee9..ed79e79 100644
--- a/documentation/_static/pygments.css
+++ b/documentation/_static/pygments.css
@@ -13,11 +13,11 @@
 .highlight .gr { color: #FF0000 } /* Generic.Error */
 .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
 .highlight .gi { color: #00A000 } /* Generic.Inserted */
-.highlight .go { color: #303030 } /* Generic.Output */
+.highlight .go { color: #333333 } /* Generic.Output */
 .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
 .highlight .gs { font-weight: bold } /* Generic.Strong */
 .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #0040D0 } /* Generic.Traceback */
+.highlight .gt { color: #0044DD } /* Generic.Traceback */
 .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
 .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
 .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */
diff --git a/documentation/advanced_topics.html b/documentation/advanced_topics.html
index 74f8870..398fbaa 100644
--- a/documentation/advanced_topics.html
+++ b/documentation/advanced_topics.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Advanced Topics — XMDS2 2.2.0 documentation</title>
+    <title>Advanced Topics — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Frequently Asked Questions" href="faq.html" />
+    <link rel="prev" title="Modified Midpoint Method" href="bulirschStoer.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="faq.html" title="Frequently Asked Questions"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="bulirschStoer.html" title="Modified Midpoint Method"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -49,14 +57,14 @@
 <span id="advancedtopics"></span><span id="index-0"></span><h1>Advanced Topics<a class="headerlink" href="#advanced-topics" title="Permalink to this headline">¶</a></h1>
 <p>This section has further details on some important topics.</p>
 <p><a class="reference internal" href="#importing"><em>Importing data</em></a> (importing data into XMDS2, and data formats used in the export)</p>
-<p><a class="reference internal" href="#convolutions"><em>Convolutions and Fourier transforms</em></a> (extra information on the Fourier transforms used in XMDS2, and applications to defining convolutions)</p>
+<p><a class="reference internal" href="#convolutions"><em>Convolutions and Fourier transforms</em></a> (extra information on the Fourier transforms used in XMDS2, how this applies to convolutions)</p>
 <p><a class="reference internal" href="#dimensionaliases"><em>Dimension aliases</em></a> (dimensions which are declared to be identical, useful for correlation functions)</p>
 <div class="section" id="importing-data">
 <span id="importing"></span><span id="index-1"></span><h2>Importing data<a class="headerlink" href="#importing-data" title="Permalink to this headline">¶</a></h2>
 <p>There are many cases where it is advantageous to import previously acquired data into XMDS2. For example, the differential equation you wish to solve may depend on a complicated functional form, which is more easily obtained via an analytical package such as Mathematica or Maple. Furthermore, importing data from another source can be quicker than needlessly performing calculations in XMDS2. In this tutorial, we shall consider an example of importing into XMDS2 a function generated in  [...]
 <p>Suppose we want to import the following function into XMDS2:</p>
 <div class="math">
-\[f(x) = x^2\]</div>
+\[f(x) = x^2.\]</div>
 <p>The first step is to create an hdf5 file, from XMDS2, which specifies the dimensions of the grid for the x dimension. Create and save a new XMDS2 file. For the purposes of this tutorial we shall call it “grid_specifier.xmds” with name “grid_specifier”. Within this file, enter the following “dummy” vector - which we shall call “gen_dummy” - which depends on the x dimension:</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><vector</span> <span class="na">type=</span><span class="s">"real"</span> <span class="na">name=</span><span class="s">"gen_dummy"</span> <span class="na">dimensions=</span><span class="s">"x"</span><span class="nt">></span>
   <span class="nt"><components></span>dummy<span class="nt"></components></span>
@@ -77,7 +85,7 @@
   <span class="nt"></breakpoint></span>
 </pre></div>
 </div>
-<p>In terminal, compile the file “grid_specifier.xmds” in XMDS2 and run the c code as usual. This creates two files - “grid.xsil” and “grid.h5”. The file “grid.h5” contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function <span class="math">\(f(x)\)</span> which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.</p>
+<p>In terminal, compile the file “grid_specifier.xmds” in XMDS2 and run the C code as usual. This creates two files - “grid.xsil” and “grid.h5”. The file “grid.h5” contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function <span class="math">\(f(x)\)</span> which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.</p>
 <p>In order to read the “grid.h5” data into Mathematica version 6.0, type the following command into terminal:.. code-block:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre>xsil2graphics2 -e grid.xsil
 </pre></div>
@@ -294,12 +302,18 @@ Export["func.h5", {func, x1, y1}, {"Datasets", { "funct
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="faq.html" title="Frequently Asked Questions"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="bulirschStoer.html" title="Modified Midpoint Method"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/bulirschStoer.html b/documentation/bulirschStoer.html
index 4b34919..bec1f12 100644
--- a/documentation/bulirschStoer.html
+++ b/documentation/bulirschStoer.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Modified Midpoint Method — XMDS2 2.2.0 documentation</title>
+    <title>Modified Midpoint Method — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,10 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="up" title="Reference section" href="reference_index.html" />
+    <link rel="next" title="Advanced Topics" href="advanced_topics.html" />
+    <link rel="prev" title="XMDS2 script elements" href="reference_elements.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +39,14 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="advanced_topics.html" title="Advanced Topics"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="reference_elements.html" title="XMDS2 script elements"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" accesskey="U">Reference section</a> »</li> 
       </ul>
     </div>  
 
@@ -47,7 +57,7 @@
             
   <div class="section" id="modified-midpoint-method">
 <span id="mmdetail"></span><span id="index-0"></span><h1>Modified Midpoint Method<a class="headerlink" href="#modified-midpoint-method" title="Permalink to this headline">¶</a></h1>
-<p>The modified midpoint can be used standalone as an ordinary differential equation integrator, however it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.</p>
+<p>Although the modified midpoint can be used standalone as an ordinary differential equation integrator, it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.</p>
 <p>The modified midpoint method advances a vector of dependent variables <span class="math">\(y(x)\)</span> from a point <span class="math">\(x\)</span>, to a point <span class="math">\(x + H\)</span> by a sequence of <span class="math">\(n\)</span> substeps, each of size <span class="math">\(h=H/n\)</span>.</p>
 <p>The number of right-hand side evaluations required by the modified midpoint method is <span class="math">\(n+1\)</span>.  The formulas for the method are</p>
 <div class="math">
@@ -55,19 +65,19 @@
 z_1 &= z_0 + h f(x, z_0) \\
 z_{m+1} &= z_{m-1} + 2 h f(x + m h, z_m)\; \text{ for } m = 1, 2, \dots, n-1 \\
 y(x+H) \approx y_n &= \frac{1}{2} \left[ z_n + z_{n-1} + h f(x + H, z_n) \right]\end{split}\]</div>
-<p>The error of this, expressed as a power series in <span class="math">\(h\)</span>, the stepsize, contains only even powers of <span class="math">\(h\)</span>.</p>
+<p>The error of this, expressed as a power series in <span class="math">\(h\)</span>, the stepsize, contains only even powers of <span class="math">\(h\)</span>:</p>
 <div class="math">
 \[\begin{split}y_n - y(x + H) &= \sum_{i=1}^{\infty} \alpha_i h^{2i}\end{split}\]</div>
-<p>Where <span class="math">\(H\)</span> is held constant, but <span class="math">\(h\)</span> changes <span class="math">\(y\)</span> by varing the <span class="math">\(n\)</span> in <span class="math">\(h = H/n\)</span>.</p>
+<p>where <span class="math">\(H\)</span> is held constant, but <span class="math">\(h\)</span> changes <span class="math">\(y\)</span> by varing the <span class="math">\(n\)</span> in <span class="math">\(h = H/n\)</span>.</p>
 <p>The importance of this even power series is that using Richardson Extrapolation to combine steps and knock out higher-order error terms gains us two orders at a time.</p>
-<p>The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires 1 derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.</p>
+<p>The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires one derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.</p>
 </div>
 <div class="section" id="bulirsch-stoer-algorithm">
 <span id="bsdetail"></span><span id="index-1"></span><h1>Bulirsch-Stoer Algorithm<a class="headerlink" href="#bulirsch-stoer-algorithm" title="Permalink to this headline">¶</a></h1>
-<p>The Bulirsch-Stoer algorithm utilizes three core concepts in its design. These are;</p>
-<p>Firstly, the usage of Richardson Extrapolation</p>
+<p>The Bulirsch-Stoer algorithm utilizes three core concepts in its design.</p>
+<p>First, the usage of Richardson Extrapolation.</p>
 <img alt="_images/richardsonExtrapolation.png" class="align-center" src="_images/richardsonExtrapolation.png" />
-<p>Richardson Extrapolation considers the final answer of a numerical calculation, as being an analytic function of an adjustable parameter such as the stepsize <span class="math">\(h\)</span>. That analytic function can be probed by performing the calculation with various values of <span class="math">\(h\)</span>, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it, [...]
+<p>Richardson Extrapolation considers the final answer of a numerical calculation as being an analytic function of an adjustable parameter such as the stepsize <span class="math">\(h\)</span>. That analytic function can be probed by performing the calculation with various values of <span class="math">\(h\)</span>, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it a [...]
 <p>Secondly, the usage of rational function extrapolation in Richardson-type applications. Rational function fits can remain good approximations to analytic functions even after the various terms in powers of <span class="math">\(h\)</span>, all have comparable magnitudes. In other words, <span class="math">\(h\)</span> can be so large as to make the whole notion of the “order” of the method meaningless — and the method can still work superbly.</p>
 <p>The third idea is to use an integration method whose error function is strictly even, allowing the rational function or polynomial approximation to be in terms of the variable <span class="math">\(h^2\)</span> instead of just <span class="math">\(h\)</span>.</p>
 <p>These three ideas give us the Bulirsch-Stoer method, where a single step takes us from <span class="math">\(x\)</span> to <span class="math">\(x + H\)</span>, where <span class="math">\(H\)</span> is supposed to be a significantly large distance. That single step consists of many substeps of the modified midpoint method, which is then extrapolated to zero stepsize.</p>
@@ -118,12 +128,19 @@ y(x+H) \approx y_n &= \frac{1}{2} \left[ z_n + z_{n-1} + h f(x + H, z_n) \ri
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="advanced_topics.html" title="Advanced Topics"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="reference_elements.html" title="XMDS2 script elements"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" >Reference section</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/developer.html b/documentation/developer.html
index 1db0108..6073c6d 100644
--- a/documentation/developer.html
+++ b/documentation/developer.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Developer Documentation — XMDS2 2.2.0 documentation</title>
+    <title>Developer Documentation — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Licensing" href="licensing.html" />
+    <link rel="prev" title="xsil2graphics2" href="xsil2graphics2.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="licensing.html" title="Licensing"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="xsil2graphics2.html" title="xsil2graphics2"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -337,12 +345,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="licensing.html" title="Licensing"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="xsil2graphics2.html" title="xsil2graphics2"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/doctrees/advanced_topics.doctree b/documentation/doctrees/advanced_topics.doctree
index 768d8d9..07001e3 100644
Binary files a/documentation/doctrees/advanced_topics.doctree and b/documentation/doctrees/advanced_topics.doctree differ
diff --git a/documentation/doctrees/bulirschStoer.doctree b/documentation/doctrees/bulirschStoer.doctree
index ba98274..3d2eb7c 100644
Binary files a/documentation/doctrees/bulirschStoer.doctree and b/documentation/doctrees/bulirschStoer.doctree differ
diff --git a/documentation/doctrees/developer.doctree b/documentation/doctrees/developer.doctree
index 16b0b93..f3256cf 100644
Binary files a/documentation/doctrees/developer.doctree and b/documentation/doctrees/developer.doctree differ
diff --git a/documentation/doctrees/documentation_toc.doctree b/documentation/doctrees/documentation_toc.doctree
index babdfb9..4ec40dd 100644
Binary files a/documentation/doctrees/documentation_toc.doctree and b/documentation/doctrees/documentation_toc.doctree differ
diff --git a/documentation/doctrees/environment.pickle b/documentation/doctrees/environment.pickle
index 419b43a..c72bd2d 100644
Binary files a/documentation/doctrees/environment.pickle and b/documentation/doctrees/environment.pickle differ
diff --git a/documentation/doctrees/faq.doctree b/documentation/doctrees/faq.doctree
index 808c0b2..7858f68 100644
Binary files a/documentation/doctrees/faq.doctree and b/documentation/doctrees/faq.doctree differ
diff --git a/documentation/doctrees/index.doctree b/documentation/doctrees/index.doctree
index 33e154a..a3afc83 100644
Binary files a/documentation/doctrees/index.doctree and b/documentation/doctrees/index.doctree differ
diff --git a/documentation/doctrees/installation.doctree b/documentation/doctrees/installation.doctree
index c7245f8..99f7324 100644
Binary files a/documentation/doctrees/installation.doctree and b/documentation/doctrees/installation.doctree differ
diff --git a/documentation/doctrees/introduction.doctree b/documentation/doctrees/introduction.doctree
index bd8b34c..14b85b7 100644
Binary files a/documentation/doctrees/introduction.doctree and b/documentation/doctrees/introduction.doctree differ
diff --git a/documentation/doctrees/licensing.doctree b/documentation/doctrees/licensing.doctree
index 652eccd..7a626f8 100644
Binary files a/documentation/doctrees/licensing.doctree and b/documentation/doctrees/licensing.doctree differ
diff --git a/documentation/doctrees/news.doctree b/documentation/doctrees/news.doctree
index 0246d78..edfd261 100644
Binary files a/documentation/doctrees/news.doctree and b/documentation/doctrees/news.doctree differ
diff --git a/documentation/doctrees/news_content.doctree b/documentation/doctrees/news_content.doctree
index 74038fa..b7d53c0 100644
Binary files a/documentation/doctrees/news_content.doctree and b/documentation/doctrees/news_content.doctree differ
diff --git a/documentation/doctrees/optimisation_hints.doctree b/documentation/doctrees/optimisation_hints.doctree
index 905e2c4..0744dfb 100644
Binary files a/documentation/doctrees/optimisation_hints.doctree and b/documentation/doctrees/optimisation_hints.doctree differ
diff --git a/documentation/doctrees/reference_elements.doctree b/documentation/doctrees/reference_elements.doctree
index 9d395c6..eddfa89 100644
Binary files a/documentation/doctrees/reference_elements.doctree and b/documentation/doctrees/reference_elements.doctree differ
diff --git a/documentation/doctrees/reference_index.doctree b/documentation/doctrees/reference_index.doctree
index 866b7b9..ad131a3 100644
Binary files a/documentation/doctrees/reference_index.doctree and b/documentation/doctrees/reference_index.doctree differ
diff --git a/documentation/doctrees/reference_installation_and_configuration.doctree b/documentation/doctrees/reference_installation_and_configuration.doctree
index acfb0e7..70386bf 100644
Binary files a/documentation/doctrees/reference_installation_and_configuration.doctree and b/documentation/doctrees/reference_installation_and_configuration.doctree differ
diff --git a/documentation/doctrees/reference_schema.doctree b/documentation/doctrees/reference_schema.doctree
index 895b331..f5b992c 100644
Binary files a/documentation/doctrees/reference_schema.doctree and b/documentation/doctrees/reference_schema.doctree differ
diff --git a/documentation/doctrees/reference_usefulXMLSyntax.doctree b/documentation/doctrees/reference_usefulXMLSyntax.doctree
index 8727a53..23689c2 100644
Binary files a/documentation/doctrees/reference_usefulXMLSyntax.doctree and b/documentation/doctrees/reference_usefulXMLSyntax.doctree differ
diff --git a/documentation/doctrees/tutorial.doctree b/documentation/doctrees/tutorial.doctree
index 325d012..6fa87f6 100644
Binary files a/documentation/doctrees/tutorial.doctree and b/documentation/doctrees/tutorial.doctree differ
diff --git a/documentation/doctrees/upgrade.doctree b/documentation/doctrees/upgrade.doctree
index cecb50d..500b0dd 100644
Binary files a/documentation/doctrees/upgrade.doctree and b/documentation/doctrees/upgrade.doctree differ
diff --git a/documentation/doctrees/worked_examples.doctree b/documentation/doctrees/worked_examples.doctree
index 12a36bf..6618d4e 100644
Binary files a/documentation/doctrees/worked_examples.doctree and b/documentation/doctrees/worked_examples.doctree differ
diff --git a/documentation/doctrees/xsil2graphics2.doctree b/documentation/doctrees/xsil2graphics2.doctree
index cfcc35d..7b5688b 100644
Binary files a/documentation/doctrees/xsil2graphics2.doctree and b/documentation/doctrees/xsil2graphics2.doctree differ
diff --git a/documentation/documentation_toc.html b/documentation/documentation_toc.html
index 0985b08..e954157 100644
--- a/documentation/documentation_toc.html
+++ b/documentation/documentation_toc.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Welcome to the documentation for XMDS2! — XMDS2 2.2.0 documentation</title>
+    <title>Welcome to the documentation for XMDS2! — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -121,6 +121,7 @@
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="news.html">News</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
@@ -165,12 +166,12 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/faq.html b/documentation/faq.html
index 207984d..b9de38b 100644
--- a/documentation/faq.html
+++ b/documentation/faq.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Frequently Asked Questions — XMDS2 2.2.0 documentation</title>
+    <title>Frequently Asked Questions — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Upgrading From XMDS 1.X" href="upgrade.html" />
+    <link rel="prev" title="Advanced Topics" href="advanced_topics.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="upgrade.html" title="Upgrading From XMDS 1.X"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="advanced_topics.html" title="Advanced Topics"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -135,12 +143,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="upgrade.html" title="Upgrading From XMDS 1.X"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="advanced_topics.html" title="Advanced Topics"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/genindex.html b/documentation/genindex.html
index 0f0a06b..b7ac1ba 100644
--- a/documentation/genindex.html
+++ b/documentation/genindex.html
@@ -10,7 +10,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Index — XMDS2 2.2.0 documentation</title>
+    <title>Index — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -18,7 +18,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -29,7 +29,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -38,7 +38,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -1060,12 +1060,12 @@
         <li class="right" style="margin-right: 10px">
           <a href="#" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/index.html b/documentation/index.html
index 8e74ded..8765ad1 100644
--- a/documentation/index.html
+++ b/documentation/index.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Welcome to XMDS2! — XMDS2 2.2.0 documentation</title>
+    <title>Welcome to XMDS2! — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,8 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="#" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="#" />
+    <link rel="next" title="Introduction" href="introduction.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +37,10 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="#">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="introduction.html" title="Introduction"
+             accesskey="N">next</a> |</li>
+        <li><a href="#">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -55,6 +59,10 @@
 </div>
 <div class="section" id="news">
 <h2>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h2>
+<div class="section" id="xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">
+<h3>XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)<a class="headerlink" href="#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014" title="Permalink to this headline">¶</a></h3>
+<p>XMDS 2.2.1 contains minor bugfixes and updates. This includes documentation improvements, superior handling of external packages and more informative errors.</p>
+</div>
 <div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
 <h3>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h3>
 <p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
@@ -161,6 +169,91 @@
 <li><em>xmds1</em>-like generated source.</li>
 <li>All of the integrators from <em>xmds1</em> (<em>SI</em>, <em>RK4</em>, <em>ARK45</em>, <em>RK9</em>, <em>ARK89</em>).</li>
 </ul>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="installation.html#installers">Installers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation.html#linux-installer-instructions">Linux installer instructions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation.html#mac-os-x-installation">Mac OS X Installation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="installation.html#manual-installation-from-source">Manual installation from source</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Quickstart Tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="worked_examples.html">Worked Examples</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#the-nonlinear-schrodinger-equation">The nonlinear Schrödinger equation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#kubo-oscillator">Kubo Oscillator</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#fibre-noise">Fibre Noise</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#integer-dimensions">Integer Dimensions</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#wigner-function">Wigner Function</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#finding-the-ground-state-of-a-bec-continuous-renormalisation">Finding the Ground State of a BEC (continuous renormalisation)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#finding-the-ground-state-of-a-bec-again">Finding the Ground State of a BEC again</a></li>
+<li class="toctree-l2"><a class="reference internal" href="worked_examples.html#multi-component-schrodinger-equation">Multi-component Schrödinger equation</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="reference_index.html">Reference section</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="reference_installation_and_configuration.html">Configuration, installation and runtime options</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_usefulXMLSyntax.html">Useful XML Syntax</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_schema.html">XMDS2 XML Schema</a></li>
+<li class="toctree-l2"><a class="reference internal" href="reference_elements.html">XMDS2 script elements</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html">Modified Midpoint Method</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html#bulirsch-stoer-algorithm">Bulirsch-Stoer Algorithm</a></li>
+<li class="toctree-l2"><a class="reference internal" href="bulirschStoer.html#error-scaling-behaviour">Error Scaling Behaviour</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="advanced_topics.html">Advanced Topics</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="advanced_topics.html#importing-data">Importing data</a></li>
+<li class="toctree-l2"><a class="reference internal" href="advanced_topics.html#convolutions-and-fourier-transforms">Convolutions and Fourier transforms</a></li>
+<li class="toctree-l2"><a class="reference internal" href="advanced_topics.html#loose-geometry-matching-mode">‘Loose’ <tt class="docutils literal"><span class="pre">geometry_matching_mode</span></tt></a></li>
+<li class="toctree-l2"><a class="reference internal" href="advanced_topics.html#dimension-aliases">Dimension aliases</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#xmds-scripts-look-complicated-how-do-i-start">XMDS scripts look complicated! How do I start?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#where-can-i-get-help">Where can I get help?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#how-should-i-cite-xmds2">How should I cite XMDS2?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#i-think-i-found-a-bug-where-should-i-report-it">I think I found a bug! Where should I report it?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#how-do-i-put-time-dependence-into-my-vectors">How do I put time dependence into my vectors?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time">Can I specify the range of my domain and number of grid points at run-time?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators">When can I use IP operators (and why should I) and when must I use EX operators?</a></li>
+<li class="toctree-l2"><a class="reference internal" href="faq.html#visual-editors">Visual Editors</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="upgrade.html">Upgrading From XMDS 1.X</a></li>
+<li class="toctree-l1"><a class="reference internal" href="optimisation_hints.html">Optimisation Hints</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="optimisation_hints.html#geometry-and-transform-based-tricks">Geometry and transform-based tricks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="optimisation_hints.html#reduce-code-complexity">Reduce code complexity</a></li>
+<li class="toctree-l2"><a class="reference internal" href="optimisation_hints.html#compiler-and-library-tricks">Compiler and library tricks</a></li>
+<li class="toctree-l2"><a class="reference internal" href="optimisation_hints.html#atom-optics-specific-hints">Atom-optics-specific hints</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="xsil2graphics2.html">xsil2graphics2</a></li>
+<li class="toctree-l1"><a class="reference internal" href="developer.html">Developer Documentation</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#test-scripts">Test scripts</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#xmds-documentation">XMDS Documentation</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#how-to-update-xmds2-script-validator-xml-schema">How to update <tt class="docutils literal"><span class="pre">XMDS2</span></tt> script validator (XML schema)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment">How to introduce a new integrator Stepper into the XMDS2 environment</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#logical-breakdown-of-xmds2-parsing-process">Logical breakdown of XMDS2 Parsing Process</a></li>
+<li class="toctree-l2"><a class="reference internal" href="developer.html#directory-layout">Directory layout</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="licensing.html#gnu-general-public-license">GNU General Public License</a></li>
+<li class="toctree-l2"><a class="reference internal" href="licensing.html#gnu-free-documentation-license">GNU Free Documentation License</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="news.html">News</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-1-happy-mollusc-june-14-2012">XMDS 2.1 “Happy Mollusc” (June 14, 2012)</a></li>
+<li class="toctree-l2"><a class="reference internal" href="news.html#xmds-2-0-shiny-september-13-2010">XMDS 2.0 “Shiny!” (September 13, 2010)</a></li>
+</ul>
+</li>
+</ul>
+</div>
 </div>
 </div>
 </div>
@@ -174,21 +267,21 @@
             <p class="logo"><a href="#">
               <img class="logo" src="_static/xmds_logo.png" alt="Logo"/>
             </a></p>
-  <h3><a href="#">Table Of Contents</a></h3>
-  <ul>
-<li><a class="reference internal" href="#">Welcome to XMDS2!</a><ul>
-<li><a class="reference internal" href="#getting-started">Getting Started</a></li>
-<li><a class="reference internal" href="#news">News</a><ul>
-<li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
-<li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
-<li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
-<li><a class="reference internal" href="#xmds-2-1-2-happy-mollusc-october-15-2012">XMDS 2.1.2 “Happy Mollusc” (October 15, 2012)</a></li>
-<li><a class="reference internal" href="#xmds-2-1-happy-mollusc-june-14-2012">XMDS 2.1 “Happy Mollusc” (June 14, 2012)</a></li>
-<li><a class="reference internal" href="#xmds-2-0-shiny-september-13-2010">XMDS 2.0 “Shiny!” (September 13, 2010)</a></li>
-</ul>
-</li>
-</ul>
-</li>
+<h3><a href="#">Table Of Contents</a></h3>
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction</a></li>
+<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="tutorial.html">Quickstart Tutorial</a></li>
+<li class="toctree-l1"><a class="reference internal" href="worked_examples.html">Worked Examples</a></li>
+<li class="toctree-l1"><a class="reference internal" href="reference_index.html">Reference section</a></li>
+<li class="toctree-l1"><a class="reference internal" href="advanced_topics.html">Advanced Topics</a></li>
+<li class="toctree-l1"><a class="reference internal" href="faq.html">Frequently Asked Questions</a></li>
+<li class="toctree-l1"><a class="reference internal" href="upgrade.html">Upgrading From XMDS 1.X</a></li>
+<li class="toctree-l1"><a class="reference internal" href="optimisation_hints.html">Optimisation Hints</a></li>
+<li class="toctree-l1"><a class="reference internal" href="xsil2graphics2.html">xsil2graphics2</a></li>
+<li class="toctree-l1"><a class="reference internal" href="developer.html">Developer Documentation</a></li>
+<li class="toctree-l1"><a class="reference internal" href="licensing.html">Licensing</a></li>
+<li class="toctree-l1"><a class="reference internal" href="news.html">News</a></li>
 </ul>
 
 <div id="searchbox" style="display: none">
@@ -214,12 +307,15 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="#">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="introduction.html" title="Introduction"
+             >next</a> |</li>
+        <li><a href="#">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/installation.html b/documentation/installation.html
index 7fc03c8..7ee91ed 100644
--- a/documentation/installation.html
+++ b/documentation/installation.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Installation — XMDS2 2.2.0 documentation</title>
+    <title>Installation — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Quickstart Tutorial" href="tutorial.html" />
+    <link rel="prev" title="Introduction" href="introduction.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="tutorial.html" title="Quickstart Tutorial"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="introduction.html" title="Introduction"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -50,8 +58,10 @@
 <p><strong>XMDS2</strong> can be installed on any unix-like system including Linux, Tru64, and Mac OS X.  It requires a C++ compiler, python, and several installed packages.  Many of these packages are optional, but a good idea to obtain full functionality.</p>
 <div class="section" id="installers">
 <h2>Installers<a class="headerlink" href="#installers" title="Permalink to this headline">¶</a></h2>
-<p>If you are using Debian GNU/Linux, XMDS2 will eventually be available in the Debian “jessie” distribution.  In the meanwhile, a temporary APT repository has been set up, which works for both the current stable (a.k.a “wheezy”) and testing (a.k.a. “jessie”) distributions.  For using this repository, follow the instructions at <a class="reference external" href="http://xmds.laboissiere.net">http://xmds.laboissiere.net</a>.</p>
-<p>If you’re not using Debian, the easiest way to get started is with an installer.  If we don’t have an installer for your system, follow the <a class="reference internal" href="#manualinstallation"><em>manual installation</em></a> instructions.</p>
+<p>If you’re using a Mac with OSX >= 10.6, there is a simple drag-and-drop installer available.</p>
+<p>If you are using a recent version of Ubuntu or Debian, XMDS2 is available as a package in your package / software manager. Note that if using the Ubuntu Software Centre rather than Synaptic, you must explicitly search for “xmds2” rather than “xmds”, or you will only get XMDS1 as a result.</p>
+<p>If you’re using a version of Linux that’s not Ubuntu / Debian, the easiest way to get started is to use the install shell script linked to below.</p>
+<p>If we don’t have an installer for your system, follow the <a class="reference internal" href="#manualinstallation"><em>manual installation</em></a> instructions.</p>
 <table border="1" class="docutils">
 <colgroup>
 <col width="60%" />
@@ -60,10 +70,10 @@
 </colgroup>
 <tbody valign="top">
 <tr class="row-odd"><td>Linux (Ubuntu/Debian/Fedora/RedHat)</td>
-<td><a class="reference external" href="http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh">Download Linux Installer</a></td>
+<td><a class="reference external" href="http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh">Download Linux shell script installer</a></td>
 <td><a class="reference internal" href="#linux-installation"><em>Learn more</em></a></td>
 </tr>
-<tr class="row-even"><td>OS X 10.6/10.7</td>
+<tr class="row-even"><td>OS X 10.6 / 10.7 / 10.8 / 10.9</td>
 <td><a class="reference external" href="http://sourceforge.net/projects/xmds/files">Download OS X Installer</a></td>
 <td><a class="reference internal" href="#mac-installation"><em>Learn more</em></a></td>
 </tr>
@@ -77,6 +87,7 @@
 </div>
 <div class="section" id="linux-installer-instructions">
 <span id="linux-installation"></span><span id="index-1"></span><h2>Linux installer instructions<a class="headerlink" href="#linux-installer-instructions" title="Permalink to this headline">¶</a></h2>
+<p>Note: If you’re using Debian / Ubuntu, unless you want a developer install, you’re probably better off installing XMDS2 via your package manager rather than this install script.</p>
 <p>The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: <a class="reference external" href="http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh">http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux_installer.sh</a></p>
 <p>Once you have downloaded it, make the installer executable and run it by typing the following into a terminal:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre>chmod u+x linux_installer.sh
@@ -265,7 +276,7 @@ After downloading the source, execute <tt class="docutils literal"><span class="
 </div></blockquote>
 </li>
 <li><dl class="first docutils">
-<dt>Install XMDS2 into your python path by running (in the xmds-2.2.0/ directory):</dt>
+<dt>Install XMDS2 into your python path by running (in the xmds-2.2.1/ directory):</dt>
 <dd><p class="first"><tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">./setup.py</span> <span class="pre">develop</span></tt></p>
 <p>If you want to install it into your home directory, type <tt class="docutils literal"><span class="pre">./setup.py</span> <span class="pre">develop</span> <span class="pre">--prefix=~</span></tt></p>
 <p>This step requires access to the net, as it downloads any dependent packages.  If you are behind a firewall, you may need to set your HTTP_PROXY environment variable in order to do this.</p>
@@ -273,13 +284,13 @@ After downloading the source, execute <tt class="docutils literal"><span class="
 <li><dl class="first docutils">
 <dt>Developer only instructions:</dt>
 <dd><p class="first last">The Cheetah templates (*.tmpl) must be compiled into python.
-To do this, run <tt class="docutils literal"><span class="pre">make</span></tt> in the xmds-2.2.0/ directory.</p>
+To do this, run <tt class="docutils literal"><span class="pre">make</span></tt> in the xmds-2.2.1/ directory.</p>
 </dd>
 </dl>
 </li>
 <li><dl class="first docutils">
 <dt>Developer-only instructions:</dt>
-<dd><p class="first last">If you have ‘numpy’ installed, test XMDS2 by typing <tt class="docutils literal"><span class="pre">./run_tests.py</span></tt> in the xmds-2.2.0/ directory.
+<dd><p class="first last">If you have ‘numpy’ installed, test XMDS2 by typing <tt class="docutils literal"><span class="pre">./run_tests.py</span></tt> in the xmds-2.2.1/ directory.
 The package ‘numpy’ is one of the optional packages, with installation instructions below.</p>
 </dd>
 </dl>
@@ -288,9 +299,9 @@ The package ‘numpy’ is one of the optional packages, with installati
 <dt>Developer-only instructions:</dt>
 <dd><p class="first">To build the user documentation, you first need to install sphinx, either via your package manager or:
 <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">easy_install</span> <span class="pre">Sphinx</span></tt></p>
-<p>Then, to build the documentation, in the xmds-2.2.0/admin/userdoc-source/ directory run: <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt></p>
+<p>Then, to build the documentation, in the xmds-2.2.1/admin/userdoc-source/ directory run: <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt></p>
 <p>If this results in an error, you may need to run <tt class="docutils literal"><span class="pre">sudo</span> <span class="pre">./setup.py</span> <span class="pre">develop</span></tt></p>
-<p class="last">The generated html documentation will then be found at xmds-2.2.0/documentation/index.html</p>
+<p class="last">The generated html documentation will then be found at xmds-2.2.1/documentation/index.html</p>
 </dd>
 </dl>
 </li>
@@ -310,7 +321,7 @@ The package ‘numpy’ is one of the optional packages, with installati
 </div></blockquote>
 </li>
 </ol>
-<p><strong>Congratulations!</strong> You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the “xmds-2.2.0/examples” directory, and follow the worked examples in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a> and <a class="reference internal" href="worked_examples.html#workedexamples"><em>Worked Examples</em></a>.</p>
+<p><strong>Congratulations!</strong> You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the “xmds-2.2.1/examples” directory, and follow the worked examples in the <a class="reference internal" href="tutorial.html#quickstarttutorial"><em>Quickstart Tutorial</em></a> and <a class="reference internal" href="worked_examples.html#workedexamples"><em>Worked Examples</em></a>.</p>
 </div>
 </div>
 
@@ -361,12 +372,18 @@ The package ‘numpy’ is one of the optional packages, with installati
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="tutorial.html" title="Quickstart Tutorial"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="introduction.html" title="Introduction"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/introduction.html b/documentation/introduction.html
index 3d2b5f2..0445019 100644
--- a/documentation/introduction.html
+++ b/documentation/introduction.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Introduction — XMDS2 2.2.0 documentation</title>
+    <title>Introduction — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Installation" href="installation.html" />
+    <link rel="prev" title="Welcome to XMDS2!" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="installation.html" title="Installation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Welcome to XMDS2!"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -104,12 +112,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="installation.html" title="Installation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="index.html" title="Welcome to XMDS2!"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/latex/xmds2.aux b/documentation/latex/xmds2.aux
index 65a7974..3da2e20 100644
--- a/documentation/latex/xmds2.aux
+++ b/documentation/latex/xmds2.aux
@@ -1,551 +1,558 @@
 \relax 
-\ifx\hyper at anchor\@undefined
-\global \let \oldcontentsline\contentsline
-\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
-\global \let \oldnewlabel\newlabel
-\gdef \newlabel#1#2{\newlabelxx{#1}#2}
-\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
-\AtEndDocument{\let \contentsline\oldcontentsline
-\let \newlabel\oldnewlabel}
-\else
-\global \let \hyper at last\relax 
-\fi
-
+\providecommand\hyper at newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper at anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper at anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper at last\relax 
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField at AuxAddToFields[1]{}
+\providecommand\HyField at AuxAddToCoFields[2]{}
 \select at language{english}
 \@writefile{toc}{\select at language{english}}
 \@writefile{lof}{\select at language{english}}
 \@writefile{lot}{\select at language{english}}
-\newlabel{documentation_toc::doc}{{}{1}{\relax }{section*.2}{}}
+\newlabel{documentation_toc::doc}{{}{1}{}{section*.2}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{introduction:introduction}{{1}{1}{Introduction\relax }{chapter.1}{}}
-\newlabel{introduction:documentation}{{1}{1}{Introduction\relax }{chapter.1}{}}
-\newlabel{introduction::doc}{{1}{1}{Introduction\relax }{chapter.1}{}}
-\newlabel{introduction:welcome-to-the-documentation-for-xmds2}{{1}{1}{Introduction\relax }{chapter.1}{}}
-\newlabel{introduction:xmdshistory}{{1}{1}{Introduction\relax }{section*.3}{}}
+\newlabel{introduction:introduction}{{1}{1}{Introduction}{chapter.1}{}}
+\newlabel{introduction:documentation}{{1}{1}{Introduction}{chapter.1}{}}
+\newlabel{introduction::doc}{{1}{1}{Introduction}{chapter.1}{}}
+\newlabel{introduction:welcome-to-the-documentation-for-xmds2}{{1}{1}{Introduction}{chapter.1}{}}
+\newlabel{introduction:xmdshistory}{{1}{1}{Introduction}{section*.3}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {2}Installation}{3}{chapter.2}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{installation:installation}{{2}{3}{Installation\relax }{chapter.2}{}}
-\newlabel{installation:index-0}{{2}{3}{Installation\relax }{chapter.2}{}}
-\newlabel{installation::doc}{{2}{3}{Installation\relax }{chapter.2}{}}
-\newlabel{installation:id1}{{2}{3}{Installation\relax }{chapter.2}{}}
+\newlabel{installation:installation}{{2}{3}{Installation}{chapter.2}{}}
+\newlabel{installation:index-0}{{2}{3}{Installation}{chapter.2}{}}
+\newlabel{installation::doc}{{2}{3}{Installation}{chapter.2}{}}
+\newlabel{installation:id1}{{2}{3}{Installation}{chapter.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.1}Installers}{3}{section.2.1}}
-\newlabel{installation:installers}{{2.1}{3}{Installers\relax }{section.2.1}{}}
+\newlabel{installation:installers}{{2.1}{3}{Installers}{section.2.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.2}Linux installer instructions}{3}{section.2.2}}
-\newlabel{installation:linux-installation}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
-\newlabel{installation:index-1}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
-\newlabel{installation:linux-installer-instructions}{{2.2}{3}{Linux installer instructions\relax }{section.2.2}{}}
+\newlabel{installation:linux-installation}{{2.2}{3}{Linux installer instructions}{section.2.2}{}}
+\newlabel{installation:index-1}{{2.2}{3}{Linux installer instructions}{section.2.2}{}}
+\newlabel{installation:linux-installer-instructions}{{2.2}{3}{Linux installer instructions}{section.2.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.3}Mac OS X Installation}{4}{section.2.3}}
-\newlabel{installation:mac-os-x-installation}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
-\newlabel{installation:index-2}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
-\newlabel{installation:mac-installation}{{2.3}{4}{Mac OS X Installation\relax }{section.2.3}{}}
+\newlabel{installation:mac-os-x-installation}{{2.3}{4}{Mac OS X Installation}{section.2.3}{}}
+\newlabel{installation:index-2}{{2.3}{4}{Mac OS X Installation}{section.2.3}{}}
+\newlabel{installation:mac-installation}{{2.3}{4}{Mac OS X Installation}{section.2.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.1}Download}{4}{subsection.2.3.1}}
-\newlabel{installation:download}{{2.3.1}{4}{Download\relax }{subsection.2.3.1}{}}
+\newlabel{installation:download}{{2.3.1}{4}{Download}{subsection.2.3.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {2.3.2}Using the Mac OS X Installer}{4}{subsection.2.3.2}}
-\newlabel{installation:using-the-mac-os-x-installer}{{2.3.2}{4}{Using the Mac OS X Installer\relax }{subsection.2.3.2}{}}
+\newlabel{installation:using-the-mac-os-x-installer}{{2.3.2}{4}{Using the Mac OS X Installer}{subsection.2.3.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {2.4}Manual installation from source}{4}{section.2.4}}
-\newlabel{installation:manualinstallation}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
-\newlabel{installation:manual-installation-from-source}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
-\newlabel{installation:index-3}{{2.4}{4}{Manual installation from source\relax }{section.2.4}{}}
-\newlabel{installation:hdf5-installation}{{4}{5}{Manual installation from source\relax }{section*.4}{}}
+\newlabel{installation:manualinstallation}{{2.4}{4}{Manual installation from source}{section.2.4}{}}
+\newlabel{installation:manual-installation-from-source}{{2.4}{4}{Manual installation from source}{section.2.4}{}}
+\newlabel{installation:index-3}{{2.4}{4}{Manual installation from source}{section.2.4}{}}
+\newlabel{installation:hdf5-installation}{{4}{5}{Manual installation from source}{section*.4}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {3}Quickstart Tutorial}{9}{chapter.3}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{tutorial:index-0}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
-\newlabel{tutorial::doc}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
-\newlabel{tutorial:quickstart-tutorial}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
-\newlabel{tutorial:quickstarttutorial}{{3}{9}{Quickstart Tutorial\relax }{chapter.3}{}}
+\newlabel{tutorial:index-0}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
+\newlabel{tutorial::doc}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
+\newlabel{tutorial:quickstart-tutorial}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
+\newlabel{tutorial:quickstarttutorial}{{3}{9}{Quickstart Tutorial}{chapter.3}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {4}Worked Examples}{15}{chapter.4}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{worked_examples:index-0}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
-\newlabel{worked_examples:worked-examples}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
-\newlabel{worked_examples::doc}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
-\newlabel{worked_examples:workedexamples}{{4}{15}{Worked Examples\relax }{chapter.4}{}}
+\newlabel{worked_examples:index-0}{{4}{15}{Worked Examples}{chapter.4}{}}
+\newlabel{worked_examples:worked-examples}{{4}{15}{Worked Examples}{chapter.4}{}}
+\newlabel{worked_examples::doc}{{4}{15}{Worked Examples}{chapter.4}{}}
+\newlabel{worked_examples:workedexamples}{{4}{15}{Worked Examples}{chapter.4}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.1}The nonlinear Schr\IeC {\"o}dinger equation}{15}{section.4.1}}
-\newlabel{worked_examples:nonlinearschrodingerequation}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
-\newlabel{worked_examples:the-nonlinear-schrodinger-equation}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
-\newlabel{worked_examples:index-1}{{4.1}{15}{The nonlinear Schrödinger equation\relax }{section.4.1}{}}
+\newlabel{worked_examples:nonlinearschrodingerequation}{{4.1}{15}{The nonlinear Schrödinger equation}{section.4.1}{}}
+\newlabel{worked_examples:the-nonlinear-schrodinger-equation}{{4.1}{15}{The nonlinear Schrödinger equation}{section.4.1}{}}
+\newlabel{worked_examples:index-1}{{4.1}{15}{The nonlinear Schrödinger equation}{section.4.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.2}Kubo Oscillator}{19}{section.4.2}}
-\newlabel{worked_examples:kubo}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
-\newlabel{worked_examples:kubo-oscillator}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
-\newlabel{worked_examples:index-2}{{4.2}{19}{Kubo Oscillator\relax }{section.4.2}{}}
+\newlabel{worked_examples:kubo}{{4.2}{19}{Kubo Oscillator}{section.4.2}{}}
+\newlabel{worked_examples:kubo-oscillator}{{4.2}{19}{Kubo Oscillator}{section.4.2}{}}
+\newlabel{worked_examples:index-2}{{4.2}{19}{Kubo Oscillator}{section.4.2}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces The mean value of the real and imaginary components of the z variable for a single path of the simulation.}}{22}{figure.4.1}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces The mean and standard error of the z variable averaged over 10000 paths, as given by this simulation. It agrees within the standard error with the expected result of $\qopname  \relax o{exp}(-t/2)$.}}{22}{figure.4.2}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.3}Fibre Noise}{23}{section.4.3}}
-\newlabel{worked_examples:fibre}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
-\newlabel{worked_examples:fibre-noise}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
-\newlabel{worked_examples:index-5}{{4.3}{23}{Fibre Noise\relax }{section.4.3}{}}
+\newlabel{worked_examples:fibre}{{4.3}{23}{Fibre Noise}{section.4.3}{}}
+\newlabel{worked_examples:fibre-noise}{{4.3}{23}{Fibre Noise}{section.4.3}{}}
+\newlabel{worked_examples:index-5}{{4.3}{23}{Fibre Noise}{section.4.3}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces The momentum space density of the field as a function of time for a single path realisation.}}{25}{figure.4.3}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.4}{\ignorespaces The momentum space density of the field as a function of time for an average of 1024 paths.}}{26}{figure.4.4}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.4}Integer Dimensions}{27}{section.4.4}}
-\newlabel{worked_examples:integer-dimensions}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
-\newlabel{worked_examples:integerdimensionexample}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
-\newlabel{worked_examples:index-8}{{4.4}{27}{Integer Dimensions\relax }{section.4.4}{}}
+\newlabel{worked_examples:integer-dimensions}{{4.4}{27}{Integer Dimensions}{section.4.4}{}}
+\newlabel{worked_examples:integerdimensionexample}{{4.4}{27}{Integer Dimensions}{section.4.4}{}}
+\newlabel{worked_examples:index-8}{{4.4}{27}{Integer Dimensions}{section.4.4}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.5}Wigner Function}{28}{section.4.5}}
-\newlabel{worked_examples:wigner-function}{{4.5}{28}{Wigner Function\relax }{section.4.5}{}}
-\newlabel{worked_examples:wignerarguments}{{4.5}{28}{Wigner Function\relax }{section.4.5}{}}
+\newlabel{worked_examples:wigner-function}{{4.5}{28}{Wigner Function}{section.4.5}{}}
+\newlabel{worked_examples:wignerarguments}{{4.5}{28}{Wigner Function}{section.4.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.6}Finding the Ground State of a BEC (continuous renormalisation)}{31}{section.4.6}}
-\newlabel{worked_examples:groundstatebec}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)\relax }{section.4.6}{}}
-\newlabel{worked_examples:finding-the-ground-state-of-a-bec-continuous-renormalisation}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)\relax }{section.4.6}{}}
+\newlabel{worked_examples:groundstatebec}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)}{section.4.6}{}}
+\newlabel{worked_examples:finding-the-ground-state-of-a-bec-continuous-renormalisation}{{4.6}{31}{Finding the Ground State of a BEC (continuous renormalisation)}{section.4.6}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.7}Finding the Ground State of a BEC again}{35}{section.4.7}}
-\newlabel{worked_examples:finding-the-ground-state-of-a-bec-again}{{4.7}{35}{Finding the Ground State of a BEC again\relax }{section.4.7}{}}
-\newlabel{worked_examples:hermitegaussgroundstatebec}{{4.7}{35}{Finding the Ground State of a BEC again\relax }{section.4.7}{}}
+\newlabel{worked_examples:finding-the-ground-state-of-a-bec-again}{{4.7}{35}{Finding the Ground State of a BEC again}{section.4.7}{}}
+\newlabel{worked_examples:hermitegaussgroundstatebec}{{4.7}{35}{Finding the Ground State of a BEC again}{section.4.7}{}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.5}{\ignorespaces The shape of the ground state rapidly approaches the lowest eigenstate. For weak nonlinearities, it is nearly Gaussian.}}{36}{figure.4.5}}
 \@writefile{lof}{\contentsline {figure}{\numberline {4.6}{\ignorespaces When the nonlinear term is larger ($U=20$), the ground state is wider and more parabolic.}}{37}{figure.4.6}}
 \@writefile{toc}{\contentsline {section}{\numberline {4.8}Multi-component Schr\IeC {\"o}dinger equation}{40}{section.4.8}}
-\newlabel{worked_examples:dmultistatese}{{4.8}{40}{Multi-component Schrödinger equation\relax }{section.4.8}{}}
-\newlabel{worked_examples:multi-component-schrodinger-equation}{{4.8}{40}{Multi-component Schrödinger equation\relax }{section.4.8}{}}
+\newlabel{worked_examples:dmultistatese}{{4.8}{40}{Multi-component Schrödinger equation}{section.4.8}{}}
+\newlabel{worked_examples:multi-component-schrodinger-equation}{{4.8}{40}{Multi-component Schrödinger equation}{section.4.8}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {5}Reference section}{43}{chapter.5}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{reference_index:reference-section}{{5}{43}{Reference section\relax }{chapter.5}{}}
-\newlabel{reference_index::doc}{{5}{43}{Reference section\relax }{chapter.5}{}}
+\newlabel{reference_index:reference-section}{{5}{43}{Reference section}{chapter.5}{}}
+\newlabel{reference_index::doc}{{5}{43}{Reference section}{chapter.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.1}Configuration, installation and runtime options}{43}{section.5.1}}
-\newlabel{reference_installation_and_configuration:referenceconfigurationinstallationruntime}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
-\newlabel{reference_installation_and_configuration::doc}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
-\newlabel{reference_installation_and_configuration:configuration-installation-and-runtime-options}{{5.1}{43}{Configuration, installation and runtime options\relax }{section.5.1}{}}
+\newlabel{reference_installation_and_configuration:referenceconfigurationinstallationruntime}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
+\newlabel{reference_installation_and_configuration::doc}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
+\newlabel{reference_installation_and_configuration:configuration-installation-and-runtime-options}{{5.1}{43}{Configuration, installation and runtime options}{section.5.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.2}Useful XML Syntax}{44}{section.5.2}}
-\newlabel{reference_usefulXMLSyntax::doc}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
-\newlabel{reference_usefulXMLSyntax:referenceusefulxmlsyntax}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
-\newlabel{reference_usefulXMLSyntax:useful-xml-syntax}{{5.2}{44}{Useful XML Syntax\relax }{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax::doc}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax:referenceusefulxmlsyntax}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
+\newlabel{reference_usefulXMLSyntax:useful-xml-syntax}{{5.2}{44}{Useful XML Syntax}{section.5.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.3}XMDS2 XML Schema}{44}{section.5.3}}
-\newlabel{reference_schema:xmds2-xml-schema}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
-\newlabel{reference_schema:index-0}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
-\newlabel{reference_schema::doc}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
-\newlabel{reference_schema:referenceschema}{{5.3}{44}{XMDS2 XML Schema\relax }{section.5.3}{}}
+\newlabel{reference_schema:xmds2-xml-schema}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
+\newlabel{reference_schema:index-0}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
+\newlabel{reference_schema::doc}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
+\newlabel{reference_schema:referenceschema}{{5.3}{44}{XMDS2 XML Schema}{section.5.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.4}XMDS2 script elements}{46}{section.5.4}}
-\newlabel{reference_elements:index-0}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
-\newlabel{reference_elements:xmds2-script-elements}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
-\newlabel{reference_elements::doc}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
-\newlabel{reference_elements:referenceelements}{{5.4}{46}{XMDS2 script elements\relax }{section.5.4}{}}
+\newlabel{reference_elements:index-0}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
+\newlabel{reference_elements:xmds2-script-elements}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
+\newlabel{reference_elements::doc}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
+\newlabel{reference_elements:referenceelements}{{5.4}{46}{XMDS2 script elements}{section.5.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Simulation element}{47}{subsection.5.4.1}}
-\newlabel{reference_elements:simulation-element}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
-\newlabel{reference_elements:simulationelement}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
-\newlabel{reference_elements:index-1}{{5.4.1}{47}{Simulation element\relax }{subsection.5.4.1}{}}
+\newlabel{reference_elements:simulation-element}{{5.4.1}{47}{Simulation element}{subsection.5.4.1}{}}
+\newlabel{reference_elements:simulationelement}{{5.4.1}{47}{Simulation element}{subsection.5.4.1}{}}
+\newlabel{reference_elements:index-1}{{5.4.1}{47}{Simulation element}{subsection.5.4.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}Name element}{47}{subsection.5.4.2}}
-\newlabel{reference_elements:name-element}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
-\newlabel{reference_elements:nameelement}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
-\newlabel{reference_elements:index-2}{{5.4.2}{47}{Name element\relax }{subsection.5.4.2}{}}
+\newlabel{reference_elements:name-element}{{5.4.2}{47}{Name element}{subsection.5.4.2}{}}
+\newlabel{reference_elements:nameelement}{{5.4.2}{47}{Name element}{subsection.5.4.2}{}}
+\newlabel{reference_elements:index-2}{{5.4.2}{47}{Name element}{subsection.5.4.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}Author element}{47}{subsection.5.4.3}}
-\newlabel{reference_elements:author-element}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
-\newlabel{reference_elements:authorelement}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
-\newlabel{reference_elements:index-3}{{5.4.3}{47}{Author element\relax }{subsection.5.4.3}{}}
+\newlabel{reference_elements:author-element}{{5.4.3}{47}{Author element}{subsection.5.4.3}{}}
+\newlabel{reference_elements:authorelement}{{5.4.3}{47}{Author element}{subsection.5.4.3}{}}
+\newlabel{reference_elements:index-3}{{5.4.3}{47}{Author element}{subsection.5.4.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}Description element}{47}{subsection.5.4.4}}
-\newlabel{reference_elements:index-4}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
-\newlabel{reference_elements:descriptionelement}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
-\newlabel{reference_elements:description-element}{{5.4.4}{47}{Description element\relax }{subsection.5.4.4}{}}
+\newlabel{reference_elements:index-4}{{5.4.4}{47}{Description element}{subsection.5.4.4}{}}
+\newlabel{reference_elements:descriptionelement}{{5.4.4}{47}{Description element}{subsection.5.4.4}{}}
+\newlabel{reference_elements:description-element}{{5.4.4}{47}{Description element}{subsection.5.4.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.5}Features Elements}{47}{subsection.5.4.5}}
-\newlabel{reference_elements:features-elements}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
-\newlabel{reference_elements:featureselement}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
-\newlabel{reference_elements:index-5}{{5.4.5}{47}{Features Elements\relax }{subsection.5.4.5}{}}
+\newlabel{reference_elements:features-elements}{{5.4.5}{47}{Features Elements}{subsection.5.4.5}{}}
+\newlabel{reference_elements:featureselement}{{5.4.5}{47}{Features Elements}{subsection.5.4.5}{}}
+\newlabel{reference_elements:index-5}{{5.4.5}{47}{Features Elements}{subsection.5.4.5}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Arguments Element}{48}{subsubsection*.5}}
-\newlabel{reference_elements:index-6}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
-\newlabel{reference_elements:argumentselement}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
-\newlabel{reference_elements:arguments-element}{{5.4.5}{48}{Arguments Element\relax }{subsubsection*.5}{}}
+\newlabel{reference_elements:index-6}{{5.4.5}{48}{Arguments Element}{subsubsection*.5}{}}
+\newlabel{reference_elements:argumentselement}{{5.4.5}{48}{Arguments Element}{subsubsection*.5}{}}
+\newlabel{reference_elements:arguments-element}{{5.4.5}{48}{Arguments Element}{subsubsection*.5}{}}
 \@writefile{toc}{\contentsline {paragraph}{Argument element}{49}{paragraph*.6}}
-\newlabel{reference_elements:argument-element}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
-\newlabel{reference_elements:index-7}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
-\newlabel{reference_elements:argumentelement}{{5.4.5}{49}{Argument element\relax }{paragraph*.6}{}}
+\newlabel{reference_elements:argument-element}{{5.4.5}{49}{Argument element}{paragraph*.6}{}}
+\newlabel{reference_elements:index-7}{{5.4.5}{49}{Argument element}{paragraph*.6}{}}
+\newlabel{reference_elements:argumentelement}{{5.4.5}{49}{Argument element}{paragraph*.6}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Auto\_vectorise element}{49}{subsubsection*.7}}
-\newlabel{reference_elements:autovectorise}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
-\newlabel{reference_elements:auto-vectorise-element}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
-\newlabel{reference_elements:index-9}{{5.4.5}{49}{Auto\_vectorise element\relax }{subsubsection*.7}{}}
+\newlabel{reference_elements:autovectorise}{{5.4.5}{49}{Auto\_vectorise element}{subsubsection*.7}{}}
+\newlabel{reference_elements:auto-vectorise-element}{{5.4.5}{49}{Auto\_vectorise element}{subsubsection*.7}{}}
+\newlabel{reference_elements:index-9}{{5.4.5}{49}{Auto\_vectorise element}{subsubsection*.7}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Benchmark}{49}{subsubsection*.8}}
-\newlabel{reference_elements:benchmark}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
-\newlabel{reference_elements:index-10}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
-\newlabel{reference_elements:id1}{{5.4.5}{49}{Benchmark\relax }{subsubsection*.8}{}}
+\newlabel{reference_elements:benchmark}{{5.4.5}{49}{Benchmark}{subsubsection*.8}{}}
+\newlabel{reference_elements:index-10}{{5.4.5}{49}{Benchmark}{subsubsection*.8}{}}
+\newlabel{reference_elements:id1}{{5.4.5}{49}{Benchmark}{subsubsection*.8}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Bing}{49}{subsubsection*.9}}
-\newlabel{reference_elements:bing}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
-\newlabel{reference_elements:id2}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
-\newlabel{reference_elements:index-11}{{5.4.5}{49}{Bing\relax }{subsubsection*.9}{}}
+\newlabel{reference_elements:bing}{{5.4.5}{49}{Bing}{subsubsection*.9}{}}
+\newlabel{reference_elements:id2}{{5.4.5}{49}{Bing}{subsubsection*.9}{}}
+\newlabel{reference_elements:index-11}{{5.4.5}{49}{Bing}{subsubsection*.9}{}}
 \@writefile{toc}{\contentsline {subsubsection}{C Flags}{49}{subsubsection*.10}}
-\newlabel{reference_elements:c-flags}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
-\newlabel{reference_elements:index-12}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
-\newlabel{reference_elements:cflags}{{5.4.5}{49}{C Flags\relax }{subsubsection*.10}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Chunked Output}{49}{subsubsection*.11}}
-\newlabel{reference_elements:chunked-output}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
-\newlabel{reference_elements:index-13}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
-\newlabel{reference_elements:chunkedoutput}{{5.4.5}{49}{Chunked Output\relax }{subsubsection*.11}{}}
+\newlabel{reference_elements:c-flags}{{5.4.5}{49}{C Flags}{subsubsection*.10}{}}
+\newlabel{reference_elements:index-12}{{5.4.5}{49}{C Flags}{subsubsection*.10}{}}
+\newlabel{reference_elements:cflags}{{5.4.5}{49}{C Flags}{subsubsection*.10}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Chunked Output}{50}{subsubsection*.11}}
+\newlabel{reference_elements:chunked-output}{{5.4.5}{50}{Chunked Output}{subsubsection*.11}{}}
+\newlabel{reference_elements:index-13}{{5.4.5}{50}{Chunked Output}{subsubsection*.11}{}}
+\newlabel{reference_elements:chunkedoutput}{{5.4.5}{50}{Chunked Output}{subsubsection*.11}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Diagnostics}{50}{subsubsection*.12}}
-\newlabel{reference_elements:index-14}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
-\newlabel{reference_elements:id3}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
-\newlabel{reference_elements:diagnostics}{{5.4.5}{50}{Diagnostics\relax }{subsubsection*.12}{}}
+\newlabel{reference_elements:index-14}{{5.4.5}{50}{Diagnostics}{subsubsection*.12}{}}
+\newlabel{reference_elements:id3}{{5.4.5}{50}{Diagnostics}{subsubsection*.12}{}}
+\newlabel{reference_elements:diagnostics}{{5.4.5}{50}{Diagnostics}{subsubsection*.12}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Error Check}{50}{subsubsection*.13}}
-\newlabel{reference_elements:errorcheck}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
-\newlabel{reference_elements:error-check}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
-\newlabel{reference_elements:index-15}{{5.4.5}{50}{Error Check\relax }{subsubsection*.13}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Halt\_Non\_Finite}{50}{subsubsection*.14}}
-\newlabel{reference_elements:index-16}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
-\newlabel{reference_elements:halt-non-finite}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
-\newlabel{reference_elements:haltnonfinite}{{5.4.5}{50}{Halt\_Non\_Finite\relax }{subsubsection*.14}{}}
-\@writefile{toc}{\contentsline {subsubsection}{fftw element}{50}{subsubsection*.15}}
-\newlabel{reference_elements:index-17}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
-\newlabel{reference_elements:fftw}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
-\newlabel{reference_elements:fftw-element}{{5.4.5}{50}{fftw element\relax }{subsubsection*.15}{}}
+\newlabel{reference_elements:errorcheck}{{5.4.5}{50}{Error Check}{subsubsection*.13}{}}
+\newlabel{reference_elements:error-check}{{5.4.5}{50}{Error Check}{subsubsection*.13}{}}
+\newlabel{reference_elements:index-15}{{5.4.5}{50}{Error Check}{subsubsection*.13}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Halt\_Non\_Finite}{51}{subsubsection*.14}}
+\newlabel{reference_elements:index-16}{{5.4.5}{51}{Halt\_Non\_Finite}{subsubsection*.14}{}}
+\newlabel{reference_elements:halt-non-finite}{{5.4.5}{51}{Halt\_Non\_Finite}{subsubsection*.14}{}}
+\newlabel{reference_elements:haltnonfinite}{{5.4.5}{51}{Halt\_Non\_Finite}{subsubsection*.14}{}}
+\@writefile{toc}{\contentsline {subsubsection}{fftw element}{51}{subsubsection*.15}}
+\newlabel{reference_elements:index-17}{{5.4.5}{51}{fftw element}{subsubsection*.15}{}}
+\newlabel{reference_elements:fftw}{{5.4.5}{51}{fftw element}{subsubsection*.15}{}}
+\newlabel{reference_elements:fftw-element}{{5.4.5}{51}{fftw element}{subsubsection*.15}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Globals}{51}{subsubsection*.16}}
-\newlabel{reference_elements:id4}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
-\newlabel{reference_elements:globals}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
-\newlabel{reference_elements:index-19}{{5.4.5}{51}{Globals\relax }{subsubsection*.16}{}}
+\newlabel{reference_elements:id4}{{5.4.5}{51}{Globals}{subsubsection*.16}{}}
+\newlabel{reference_elements:globals}{{5.4.5}{51}{Globals}{subsubsection*.16}{}}
+\newlabel{reference_elements:index-19}{{5.4.5}{51}{Globals}{subsubsection*.16}{}}
 \@writefile{toc}{\contentsline {subsubsection}{OpenMP}{51}{subsubsection*.17}}
-\newlabel{reference_elements:openmp}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
-\newlabel{reference_elements:index-20}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
-\newlabel{reference_elements:id5}{{5.4.5}{51}{OpenMP\relax }{subsubsection*.17}{}}
+\newlabel{reference_elements:openmp}{{5.4.5}{51}{OpenMP}{subsubsection*.17}{}}
+\newlabel{reference_elements:index-20}{{5.4.5}{51}{OpenMP}{subsubsection*.17}{}}
+\newlabel{reference_elements:id5}{{5.4.5}{51}{OpenMP}{subsubsection*.17}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Precision}{51}{subsubsection*.18}}
-\newlabel{reference_elements:id6}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
-\newlabel{reference_elements:index-21}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
-\newlabel{reference_elements:precision}{{5.4.5}{51}{Precision\relax }{subsubsection*.18}{}}
+\newlabel{reference_elements:id6}{{5.4.5}{51}{Precision}{subsubsection*.18}{}}
+\newlabel{reference_elements:index-21}{{5.4.5}{51}{Precision}{subsubsection*.18}{}}
+\newlabel{reference_elements:precision}{{5.4.5}{51}{Precision}{subsubsection*.18}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Validation}{52}{subsubsection*.19}}
-\newlabel{reference_elements:index-22}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
-\newlabel{reference_elements:validation}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
-\newlabel{reference_elements:id7}{{5.4.5}{52}{Validation\relax }{subsubsection*.19}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.6}Driver Element}{52}{subsection.5.4.6}}
-\newlabel{reference_elements:driver-element}{{5.4.6}{52}{Driver Element\relax }{subsection.5.4.6}{}}
-\newlabel{reference_elements:driverelement}{{5.4.6}{52}{Driver Element\relax }{subsection.5.4.6}{}}
+\newlabel{reference_elements:index-22}{{5.4.5}{52}{Validation}{subsubsection*.19}{}}
+\newlabel{reference_elements:validation}{{5.4.5}{52}{Validation}{subsubsection*.19}{}}
+\newlabel{reference_elements:id7}{{5.4.5}{52}{Validation}{subsubsection*.19}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.6}Driver Element}{53}{subsection.5.4.6}}
+\newlabel{reference_elements:driver-element}{{5.4.6}{53}{Driver Element}{subsection.5.4.6}{}}
+\newlabel{reference_elements:driverelement}{{5.4.6}{53}{Driver Element}{subsection.5.4.6}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.7}Geometry Element}{53}{subsection.5.4.7}}
-\newlabel{reference_elements:geometry-element}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
-\newlabel{reference_elements:index-24}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
-\newlabel{reference_elements:geometryelement}{{5.4.7}{53}{Geometry Element\relax }{subsection.5.4.7}{}}
-\newlabel{reference_elements:propagationdimensionelement}{{5.4.7}{53}{Geometry Element\relax }{section*.20}{}}
-\newlabel{reference_elements:transversedimensionselement}{{5.4.7}{53}{Geometry Element\relax }{section*.21}{}}
-\newlabel{reference_elements:dimensionelement}{{5.4.7}{53}{Geometry Element\relax }{section*.22}{}}
-\newlabel{reference_elements:transforms}{{5.4.7}{54}{Geometry Element\relax }{section*.23}{}}
+\newlabel{reference_elements:geometry-element}{{5.4.7}{53}{Geometry Element}{subsection.5.4.7}{}}
+\newlabel{reference_elements:index-24}{{5.4.7}{53}{Geometry Element}{subsection.5.4.7}{}}
+\newlabel{reference_elements:geometryelement}{{5.4.7}{53}{Geometry Element}{subsection.5.4.7}{}}
+\newlabel{reference_elements:propagationdimensionelement}{{5.4.7}{53}{Geometry Element}{section*.20}{}}
+\newlabel{reference_elements:transversedimensionselement}{{5.4.7}{53}{Geometry Element}{section*.21}{}}
+\newlabel{reference_elements:dimensionelement}{{5.4.7}{53}{Geometry Element}{section*.22}{}}
+\newlabel{reference_elements:transforms}{{5.4.7}{54}{Geometry Element}{section*.23}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``dft'' transform}{54}{subsubsection*.24}}
-\newlabel{reference_elements:dft-transform}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
-\newlabel{reference_elements:the-dft-transform}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
-\newlabel{reference_elements:index-33}{{5.4.7}{54}{The ``dft'' transform\relax }{subsubsection*.24}{}}
+\newlabel{reference_elements:dft-transform}{{5.4.7}{54}{The ``dft'' transform}{subsubsection*.24}{}}
+\newlabel{reference_elements:the-dft-transform}{{5.4.7}{54}{The ``dft'' transform}{subsubsection*.24}{}}
+\newlabel{reference_elements:index-33}{{5.4.7}{54}{The ``dft'' transform}{subsubsection*.24}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``dct'' transform}{55}{subsubsection*.25}}
-\newlabel{reference_elements:dct-transform}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
-\newlabel{reference_elements:the-dct-transform}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
-\newlabel{reference_elements:index-35}{{5.4.7}{55}{The ``dct'' transform\relax }{subsubsection*.25}{}}
+\newlabel{reference_elements:dct-transform}{{5.4.7}{55}{The ``dct'' transform}{subsubsection*.25}{}}
+\newlabel{reference_elements:the-dct-transform}{{5.4.7}{55}{The ``dct'' transform}{subsubsection*.25}{}}
+\newlabel{reference_elements:index-35}{{5.4.7}{55}{The ``dct'' transform}{subsubsection*.25}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``dst'' transform}{56}{subsubsection*.26}}
-\newlabel{reference_elements:dst-transform}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
-\newlabel{reference_elements:the-dst-transform}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
-\newlabel{reference_elements:index-37}{{5.4.7}{56}{The ``dst'' transform\relax }{subsubsection*.26}{}}
-\@writefile{toc}{\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{56}{subsubsection*.27}}
-\newlabel{reference_elements:the-bessel-and-bessel-neumann-transforms}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
-\newlabel{reference_elements:index-39}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
-\newlabel{reference_elements:besseltransform}{{5.4.7}{56}{The ``bessel'' and ``bessel-neumann'' transforms\relax }{subsubsection*.27}{}}
-\@writefile{toc}{\contentsline {subsubsection}{The ``spherical-bessel'' transform}{57}{subsubsection*.28}}
-\newlabel{reference_elements:the-spherical-bessel-transform}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
-\newlabel{reference_elements:index-41}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
-\newlabel{reference_elements:spherical-bessel-transform}{{5.4.7}{57}{The ``spherical-bessel'' transform\relax }{subsubsection*.28}{}}
+\newlabel{reference_elements:dst-transform}{{5.4.7}{56}{The ``dst'' transform}{subsubsection*.26}{}}
+\newlabel{reference_elements:the-dst-transform}{{5.4.7}{56}{The ``dst'' transform}{subsubsection*.26}{}}
+\newlabel{reference_elements:index-37}{{5.4.7}{56}{The ``dst'' transform}{subsubsection*.26}{}}
+\@writefile{toc}{\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{57}{subsubsection*.27}}
+\newlabel{reference_elements:the-bessel-and-bessel-neumann-transforms}{{5.4.7}{57}{The ``bessel'' and ``bessel-neumann'' transforms}{subsubsection*.27}{}}
+\newlabel{reference_elements:index-39}{{5.4.7}{57}{The ``bessel'' and ``bessel-neumann'' transforms}{subsubsection*.27}{}}
+\newlabel{reference_elements:besseltransform}{{5.4.7}{57}{The ``bessel'' and ``bessel-neumann'' transforms}{subsubsection*.27}{}}
+\@writefile{toc}{\contentsline {subsubsection}{The ``spherical-bessel'' transform}{58}{subsubsection*.28}}
+\newlabel{reference_elements:the-spherical-bessel-transform}{{5.4.7}{58}{The ``spherical-bessel'' transform}{subsubsection*.28}{}}
+\newlabel{reference_elements:index-41}{{5.4.7}{58}{The ``spherical-bessel'' transform}{subsubsection*.28}{}}
+\newlabel{reference_elements:spherical-bessel-transform}{{5.4.7}{58}{The ``spherical-bessel'' transform}{subsubsection*.28}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The ``hermite-gauss'' transform}{58}{subsubsection*.29}}
-\newlabel{reference_elements:hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
-\newlabel{reference_elements:the-hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
-\newlabel{reference_elements:index-42}{{5.4.7}{58}{The ``hermite-gauss'' transform\relax }{subsubsection*.29}{}}
+\newlabel{reference_elements:hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform}{subsubsection*.29}{}}
+\newlabel{reference_elements:the-hermite-gauss-transform}{{5.4.7}{58}{The ``hermite-gauss'' transform}{subsubsection*.29}{}}
+\newlabel{reference_elements:index-42}{{5.4.7}{58}{The ``hermite-gauss'' transform}{subsubsection*.29}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.8}Vector Element}{59}{subsection.5.4.8}}
-\newlabel{reference_elements:index-44}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
-\newlabel{reference_elements:vector-element}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
-\newlabel{reference_elements:vectorelement}{{5.4.8}{59}{Vector Element\relax }{subsection.5.4.8}{}}
-\newlabel{reference_elements:componentselement}{{5.4.8}{59}{Vector Element\relax }{section*.30}{}}
-\newlabel{reference_elements:initialisationelement}{{5.4.8}{59}{Vector Element\relax }{section*.31}{}}
-\newlabel{reference_elements:referencingnonlocal}{{5.4.8}{59}{Vector Element\relax }{section*.32}{}}
-\newlabel{reference_elements:filenameelement}{{5.4.8}{60}{Vector Element\relax }{section*.33}{}}
+\newlabel{reference_elements:index-44}{{5.4.8}{59}{Vector Element}{subsection.5.4.8}{}}
+\newlabel{reference_elements:vector-element}{{5.4.8}{59}{Vector Element}{subsection.5.4.8}{}}
+\newlabel{reference_elements:vectorelement}{{5.4.8}{59}{Vector Element}{subsection.5.4.8}{}}
+\newlabel{reference_elements:componentselement}{{5.4.8}{59}{Vector Element}{section*.30}{}}
+\newlabel{reference_elements:initialisationelement}{{5.4.8}{60}{Vector Element}{section*.31}{}}
+\newlabel{reference_elements:referencingnonlocal}{{5.4.8}{60}{Vector Element}{section*.32}{}}
+\newlabel{reference_elements:filenameelement}{{5.4.8}{60}{Vector Element}{section*.33}{}}
 \@writefile{toc}{\contentsline {subsubsection}{The dependencies element}{61}{subsubsection*.34}}
-\newlabel{reference_elements:the-dependencies-element}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
-\newlabel{reference_elements:dependencies}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
-\newlabel{reference_elements:index-54}{{5.4.8}{61}{The dependencies element\relax }{subsubsection*.34}{}}
+\newlabel{reference_elements:the-dependencies-element}{{5.4.8}{61}{The dependencies element}{subsubsection*.34}{}}
+\newlabel{reference_elements:dependencies}{{5.4.8}{61}{The dependencies element}{subsubsection*.34}{}}
+\newlabel{reference_elements:index-54}{{5.4.8}{61}{The dependencies element}{subsubsection*.34}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{62}{subsection.5.4.9}}
-\newlabel{reference_elements:computedvectorelement}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
-\newlabel{reference_elements:index-56}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
-\newlabel{reference_elements:computed-vector-element}{{5.4.9}{62}{Computed Vector Element\relax }{subsection.5.4.9}{}}
-\newlabel{reference_elements:evaluationelement}{{5.4.9}{62}{Computed Vector Element\relax }{section*.35}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{62}{subsection.5.4.10}}
-\newlabel{reference_elements:noise-vector-element}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
-\newlabel{reference_elements:index-58}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
-\newlabel{reference_elements:noisevectorelement}{{5.4.10}{62}{Noise Vector Element\relax }{subsection.5.4.10}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Uniform noise}{63}{subsubsection*.36}}
-\newlabel{reference_elements:uniformnoise}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
-\newlabel{reference_elements:index-59}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
-\newlabel{reference_elements:uniform-noise}{{5.4.10}{63}{Uniform noise\relax }{subsubsection*.36}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Gaussian noise}{63}{subsubsection*.37}}
-\newlabel{reference_elements:gaussiannoise}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
-\newlabel{reference_elements:gaussian-noise}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
-\newlabel{reference_elements:index-60}{{5.4.10}{63}{Gaussian noise\relax }{subsubsection*.37}{}}
+\newlabel{reference_elements:computedvectorelement}{{5.4.9}{62}{Computed Vector Element}{subsection.5.4.9}{}}
+\newlabel{reference_elements:index-56}{{5.4.9}{62}{Computed Vector Element}{subsection.5.4.9}{}}
+\newlabel{reference_elements:computed-vector-element}{{5.4.9}{62}{Computed Vector Element}{subsection.5.4.9}{}}
+\newlabel{reference_elements:evaluationelement}{{5.4.9}{62}{Computed Vector Element}{section*.35}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{63}{subsection.5.4.10}}
+\newlabel{reference_elements:noise-vector-element}{{5.4.10}{63}{Noise Vector Element}{subsection.5.4.10}{}}
+\newlabel{reference_elements:index-58}{{5.4.10}{63}{Noise Vector Element}{subsection.5.4.10}{}}
+\newlabel{reference_elements:noisevectorelement}{{5.4.10}{63}{Noise Vector Element}{subsection.5.4.10}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Uniform noise}{64}{subsubsection*.36}}
+\newlabel{reference_elements:uniformnoise}{{5.4.10}{64}{Uniform noise}{subsubsection*.36}{}}
+\newlabel{reference_elements:index-59}{{5.4.10}{64}{Uniform noise}{subsubsection*.36}{}}
+\newlabel{reference_elements:uniform-noise}{{5.4.10}{64}{Uniform noise}{subsubsection*.36}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Gaussian noise}{64}{subsubsection*.37}}
+\newlabel{reference_elements:gaussiannoise}{{5.4.10}{64}{Gaussian noise}{subsubsection*.37}{}}
+\newlabel{reference_elements:gaussian-noise}{{5.4.10}{64}{Gaussian noise}{subsubsection*.37}{}}
+\newlabel{reference_elements:index-60}{{5.4.10}{64}{Gaussian noise}{subsubsection*.37}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Wiener noise}{64}{subsubsection*.38}}
-\newlabel{reference_elements:wienernoise}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
-\newlabel{reference_elements:index-61}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
-\newlabel{reference_elements:wiener-noise}{{5.4.10}{64}{Wiener noise\relax }{subsubsection*.38}{}}
-\@writefile{toc}{\contentsline {subsubsection}{Poissonian noise}{64}{subsubsection*.39}}
-\newlabel{reference_elements:poissioniannoise}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
-\newlabel{reference_elements:poissonian-noise}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
-\newlabel{reference_elements:index-62}{{5.4.10}{64}{Poissonian noise\relax }{subsubsection*.39}{}}
+\newlabel{reference_elements:wienernoise}{{5.4.10}{64}{Wiener noise}{subsubsection*.38}{}}
+\newlabel{reference_elements:index-61}{{5.4.10}{64}{Wiener noise}{subsubsection*.38}{}}
+\newlabel{reference_elements:wiener-noise}{{5.4.10}{64}{Wiener noise}{subsubsection*.38}{}}
+\@writefile{toc}{\contentsline {subsubsection}{Poissonian noise}{65}{subsubsection*.39}}
+\newlabel{reference_elements:poissioniannoise}{{5.4.10}{65}{Poissonian noise}{subsubsection*.39}{}}
+\newlabel{reference_elements:poissonian-noise}{{5.4.10}{65}{Poissonian noise}{subsubsection*.39}{}}
+\newlabel{reference_elements:index-62}{{5.4.10}{65}{Poissonian noise}{subsubsection*.39}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Jump noise}{65}{subsubsection*.40}}
-\newlabel{reference_elements:jumpnoise}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
-\newlabel{reference_elements:index-63}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
-\newlabel{reference_elements:jump-noise}{{5.4.10}{65}{Jump noise\relax }{subsubsection*.40}{}}
+\newlabel{reference_elements:jumpnoise}{{5.4.10}{65}{Jump noise}{subsubsection*.40}{}}
+\newlabel{reference_elements:index-63}{{5.4.10}{65}{Jump noise}{subsubsection*.40}{}}
+\newlabel{reference_elements:jump-noise}{{5.4.10}{65}{Jump noise}{subsubsection*.40}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.11}Sequence Element}{65}{subsection.5.4.11}}
-\newlabel{reference_elements:sequence-element}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
-\newlabel{reference_elements:sequenceelement}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
-\newlabel{reference_elements:index-64}{{5.4.11}{65}{Sequence Element\relax }{subsection.5.4.11}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.12}Filter element}{65}{subsection.5.4.12}}
-\newlabel{reference_elements:index-65}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
-\newlabel{reference_elements:filterelement}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
-\newlabel{reference_elements:filter-element}{{5.4.12}{65}{Filter element\relax }{subsection.5.4.12}{}}
+\newlabel{reference_elements:sequence-element}{{5.4.11}{65}{Sequence Element}{subsection.5.4.11}{}}
+\newlabel{reference_elements:sequenceelement}{{5.4.11}{65}{Sequence Element}{subsection.5.4.11}{}}
+\newlabel{reference_elements:index-64}{{5.4.11}{65}{Sequence Element}{subsection.5.4.11}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.12}Filter element}{66}{subsection.5.4.12}}
+\newlabel{reference_elements:index-65}{{5.4.12}{66}{Filter element}{subsection.5.4.12}{}}
+\newlabel{reference_elements:filterelement}{{5.4.12}{66}{Filter element}{subsection.5.4.12}{}}
+\newlabel{reference_elements:filter-element}{{5.4.12}{66}{Filter element}{subsection.5.4.12}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.13}Integrate element}{66}{subsection.5.4.13}}
-\newlabel{reference_elements:index-67}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
-\newlabel{reference_elements:integrate-element}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
-\newlabel{reference_elements:integrateelement}{{5.4.13}{66}{Integrate element\relax }{subsection.5.4.13}{}}
-\newlabel{reference_elements:sampleselement}{{5.4.13}{66}{Integrate element\relax }{section*.41}{}}
+\newlabel{reference_elements:index-67}{{5.4.13}{66}{Integrate element}{subsection.5.4.13}{}}
+\newlabel{reference_elements:integrate-element}{{5.4.13}{66}{Integrate element}{subsection.5.4.13}{}}
+\newlabel{reference_elements:integrateelement}{{5.4.13}{66}{Integrate element}{subsection.5.4.13}{}}
+\newlabel{reference_elements:sampleselement}{{5.4.13}{66}{Integrate element}{section*.41}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Operators and operator elements}{67}{subsubsection*.42}}
-\newlabel{reference_elements:operatorselement}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
-\newlabel{reference_elements:index-70}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
-\newlabel{reference_elements:operators-and-operator-elements}{{5.4.13}{67}{Operators and operator elements\relax }{subsubsection*.42}{}}
-\newlabel{reference_elements:integrationvectorselement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.43}{}}
-\newlabel{reference_elements:operatorelement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.44}{}}
-\newlabel{reference_elements:operatornameselement}{{5.4.13}{67}{Operators and operator elements\relax }{section*.45}{}}
-\newlabel{reference_elements:boundaryconditionelement}{{5.4.13}{68}{Operators and operator elements\relax }{section*.46}{}}
+\newlabel{reference_elements:operatorselement}{{5.4.13}{67}{Operators and operator elements}{subsubsection*.42}{}}
+\newlabel{reference_elements:index-70}{{5.4.13}{67}{Operators and operator elements}{subsubsection*.42}{}}
+\newlabel{reference_elements:operators-and-operator-elements}{{5.4.13}{67}{Operators and operator elements}{subsubsection*.42}{}}
+\newlabel{reference_elements:integrationvectorselement}{{5.4.13}{67}{Operators and operator elements}{section*.43}{}}
+\newlabel{reference_elements:operatorelement}{{5.4.13}{68}{Operators and operator elements}{section*.44}{}}
+\newlabel{reference_elements:operatornameselement}{{5.4.13}{68}{Operators and operator elements}{section*.45}{}}
+\newlabel{reference_elements:boundaryconditionelement}{{5.4.13}{69}{Operators and operator elements}{section*.46}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Algorithms}{69}{subsubsection*.47}}
-\newlabel{reference_elements:algorithms}{{5.4.13}{69}{Algorithms\relax }{subsubsection*.47}{}}
-\newlabel{reference_elements:id8}{{5.4.13}{69}{Algorithms\relax }{subsubsection*.47}{}}
+\newlabel{reference_elements:algorithms}{{5.4.13}{69}{Algorithms}{subsubsection*.47}{}}
+\newlabel{reference_elements:id8}{{5.4.13}{69}{Algorithms}{subsubsection*.47}{}}
 \@writefile{toc}{\contentsline {paragraph}{SI and SIC algorithms}{69}{paragraph*.48}}
-\newlabel{reference_elements:si}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
-\newlabel{reference_elements:index-82}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
-\newlabel{reference_elements:si-and-sic-algorithms}{{5.4.13}{69}{SI and SIC algorithms\relax }{paragraph*.48}{}}
-\@writefile{toc}{\contentsline {paragraph}{Runge-Kutta algorithms}{69}{paragraph*.49}}
-\newlabel{reference_elements:rk4}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
-\newlabel{reference_elements:runge-kutta-algorithms}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
-\newlabel{reference_elements:index-83}{{5.4.13}{69}{Runge-Kutta algorithms\relax }{paragraph*.49}{}}
+\newlabel{reference_elements:si}{{5.4.13}{69}{SI and SIC algorithms}{paragraph*.48}{}}
+\newlabel{reference_elements:index-82}{{5.4.13}{69}{SI and SIC algorithms}{paragraph*.48}{}}
+\newlabel{reference_elements:si-and-sic-algorithms}{{5.4.13}{69}{SI and SIC algorithms}{paragraph*.48}{}}
+\@writefile{toc}{\contentsline {paragraph}{Runge-Kutta algorithms}{70}{paragraph*.49}}
+\newlabel{reference_elements:rk4}{{5.4.13}{70}{Runge-Kutta algorithms}{paragraph*.49}{}}
+\newlabel{reference_elements:runge-kutta-algorithms}{{5.4.13}{70}{Runge-Kutta algorithms}{paragraph*.49}{}}
+\newlabel{reference_elements:index-83}{{5.4.13}{70}{Runge-Kutta algorithms}{paragraph*.49}{}}
 \@writefile{toc}{\contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{70}{paragraph*.50}}
-\newlabel{reference_elements:adaptive-runge-kutta-algorithms}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
-\newlabel{reference_elements:ark45}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
-\newlabel{reference_elements:index-84}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms\relax }{paragraph*.50}{}}
-\@writefile{toc}{\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{70}{paragraph*.51}}
-\newlabel{reference_elements:realgorithm}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
-\newlabel{reference_elements:index-85}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
-\newlabel{reference_elements:richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method}{{5.4.13}{70}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method\relax }{paragraph*.51}{}}
+\newlabel{reference_elements:adaptive-runge-kutta-algorithms}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms}{paragraph*.50}{}}
+\newlabel{reference_elements:ark45}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms}{paragraph*.50}{}}
+\newlabel{reference_elements:index-84}{{5.4.13}{70}{Adaptive Runge-Kutta algorithms}{paragraph*.50}{}}
+\@writefile{toc}{\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{71}{paragraph*.51}}
+\newlabel{reference_elements:realgorithm}{{5.4.13}{71}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{paragraph*.51}{}}
+\newlabel{reference_elements:index-85}{{5.4.13}{71}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{paragraph*.51}{}}
+\newlabel{reference_elements:richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method}{{5.4.13}{71}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{paragraph*.51}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Filters element}{71}{subsubsection*.52}}
-\newlabel{reference_elements:filterselement}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
-\newlabel{reference_elements:index-86}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
-\newlabel{reference_elements:filters-element}{{5.4.13}{71}{Filters element\relax }{subsubsection*.52}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{71}{subsection.5.4.14}}
-\newlabel{reference_elements:breakpoint-element}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
-\newlabel{reference_elements:breakpointelement}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
-\newlabel{reference_elements:index-87}{{5.4.14}{71}{Breakpoint element\relax }{subsection.5.4.14}{}}
+\newlabel{reference_elements:filterselement}{{5.4.13}{71}{Filters element}{subsubsection*.52}{}}
+\newlabel{reference_elements:index-86}{{5.4.13}{71}{Filters element}{subsubsection*.52}{}}
+\newlabel{reference_elements:filters-element}{{5.4.13}{71}{Filters element}{subsubsection*.52}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{72}{subsection.5.4.14}}
+\newlabel{reference_elements:breakpoint-element}{{5.4.14}{72}{Breakpoint element}{subsection.5.4.14}{}}
+\newlabel{reference_elements:breakpointelement}{{5.4.14}{72}{Breakpoint element}{subsection.5.4.14}{}}
+\newlabel{reference_elements:index-87}{{5.4.14}{72}{Breakpoint element}{subsection.5.4.14}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.15}Output element}{72}{subsection.5.4.15}}
-\newlabel{reference_elements:outputelement}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
-\newlabel{reference_elements:index-88}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
-\newlabel{reference_elements:output-element}{{5.4.15}{72}{Output element\relax }{subsection.5.4.15}{}}
+\newlabel{reference_elements:outputelement}{{5.4.15}{72}{Output element}{subsection.5.4.15}{}}
+\newlabel{reference_elements:index-88}{{5.4.15}{72}{Output element}{subsection.5.4.15}{}}
+\newlabel{reference_elements:output-element}{{5.4.15}{72}{Output element}{subsection.5.4.15}{}}
 \@writefile{toc}{\contentsline {subsubsection}{Sampling Group Element}{72}{subsubsection*.53}}
-\newlabel{reference_elements:samplinggroupelement}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
-\newlabel{reference_elements:sampling-group-element}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
-\newlabel{reference_elements:index-91}{{5.4.15}{72}{Sampling Group Element\relax }{subsubsection*.53}{}}
+\newlabel{reference_elements:samplinggroupelement}{{5.4.15}{72}{Sampling Group Element}{subsubsection*.53}{}}
+\newlabel{reference_elements:sampling-group-element}{{5.4.15}{72}{Sampling Group Element}{subsubsection*.53}{}}
+\newlabel{reference_elements:index-91}{{5.4.15}{72}{Sampling Group Element}{subsubsection*.53}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{73}{subsection.5.4.16}}
-\newlabel{reference_elements:xmds-specific-c-syntax}{{5.4.16}{73}{XMDS-specific C syntax\relax }{subsection.5.4.16}{}}
-\newlabel{reference_elements:xmdscsyntax}{{5.4.16}{73}{XMDS-specific C syntax\relax }{subsection.5.4.16}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{73}{section.5.5}}
-\newlabel{bulirschStoer:modified-midpoint-method}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
-\newlabel{bulirschStoer:index-0}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
-\newlabel{bulirschStoer::doc}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
-\newlabel{bulirschStoer:mmdetail}{{5.5}{73}{Modified Midpoint Method\relax }{section.5.5}{}}
+\newlabel{reference_elements:xmds-specific-c-syntax}{{5.4.16}{73}{XMDS-specific C syntax}{subsection.5.4.16}{}}
+\newlabel{reference_elements:xmdscsyntax}{{5.4.16}{73}{XMDS-specific C syntax}{subsection.5.4.16}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{74}{section.5.5}}
+\newlabel{bulirschStoer:modified-midpoint-method}{{5.5}{74}{Modified Midpoint Method}{section.5.5}{}}
+\newlabel{bulirschStoer:index-0}{{5.5}{74}{Modified Midpoint Method}{section.5.5}{}}
+\newlabel{bulirschStoer::doc}{{5.5}{74}{Modified Midpoint Method}{section.5.5}{}}
+\newlabel{bulirschStoer:mmdetail}{{5.5}{74}{Modified Midpoint Method}{section.5.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {5.6}Bulirsch-Stoer Algorithm}{74}{section.5.6}}
-\newlabel{bulirschStoer:bulirsch-stoer-algorithm}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
-\newlabel{bulirschStoer:bsdetail}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
-\newlabel{bulirschStoer:index-1}{{5.6}{74}{Bulirsch-Stoer Algorithm\relax }{section.5.6}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{75}{section.5.7}}
-\newlabel{bulirschStoer:errorscaling}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
-\newlabel{bulirschStoer:index-2}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
-\newlabel{bulirschStoer:error-scaling-behaviour}{{5.7}{75}{Error Scaling Behaviour\relax }{section.5.7}{}}
+\newlabel{bulirschStoer:bulirsch-stoer-algorithm}{{5.6}{74}{Bulirsch-Stoer Algorithm}{section.5.6}{}}
+\newlabel{bulirschStoer:bsdetail}{{5.6}{74}{Bulirsch-Stoer Algorithm}{section.5.6}{}}
+\newlabel{bulirschStoer:index-1}{{5.6}{74}{Bulirsch-Stoer Algorithm}{section.5.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{76}{section.5.7}}
+\newlabel{bulirschStoer:errorscaling}{{5.7}{76}{Error Scaling Behaviour}{section.5.7}{}}
+\newlabel{bulirschStoer:index-2}{{5.7}{76}{Error Scaling Behaviour}{section.5.7}{}}
+\newlabel{bulirschStoer:error-scaling-behaviour}{{5.7}{76}{Error Scaling Behaviour}{section.5.7}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {6}Advanced Topics}{77}{chapter.6}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{advanced_topics:advancedtopics}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
-\newlabel{advanced_topics:advanced-topics}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
-\newlabel{advanced_topics:index-0}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
-\newlabel{advanced_topics::doc}{{6}{77}{Advanced Topics\relax }{chapter.6}{}}
+\newlabel{advanced_topics:advancedtopics}{{6}{77}{Advanced Topics}{chapter.6}{}}
+\newlabel{advanced_topics:advanced-topics}{{6}{77}{Advanced Topics}{chapter.6}{}}
+\newlabel{advanced_topics:index-0}{{6}{77}{Advanced Topics}{chapter.6}{}}
+\newlabel{advanced_topics::doc}{{6}{77}{Advanced Topics}{chapter.6}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {6.1}Importing data}{77}{section.6.1}}
-\newlabel{advanced_topics:importing}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
-\newlabel{advanced_topics:importing-data}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
-\newlabel{advanced_topics:index-1}{{6.1}{77}{Importing data\relax }{section.6.1}{}}
+\newlabel{advanced_topics:importing}{{6.1}{77}{Importing data}{section.6.1}{}}
+\newlabel{advanced_topics:importing-data}{{6.1}{77}{Importing data}{section.6.1}{}}
+\newlabel{advanced_topics:index-1}{{6.1}{77}{Importing data}{section.6.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{79}{section.6.2}}
-\newlabel{advanced_topics:convolutions-and-fourier-transforms}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
-\newlabel{advanced_topics:convolutions}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
-\newlabel{advanced_topics:index-2}{{6.2}{79}{Convolutions and Fourier transforms\relax }{section.6.2}{}}
+\newlabel{advanced_topics:convolutions-and-fourier-transforms}{{6.2}{79}{Convolutions and Fourier transforms}{section.6.2}{}}
+\newlabel{advanced_topics:convolutions}{{6.2}{79}{Convolutions and Fourier transforms}{section.6.2}{}}
+\newlabel{advanced_topics:index-2}{{6.2}{79}{Convolutions and Fourier transforms}{section.6.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}Example 1}{80}{subsection.6.2.1}}
-\newlabel{advanced_topics:example-1}{{6.2.1}{80}{Example 1\relax }{subsection.6.2.1}{}}
+\newlabel{advanced_topics:example-1}{{6.2.1}{80}{Example 1}{subsection.6.2.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}Example 2}{81}{subsection.6.2.2}}
-\newlabel{advanced_topics:example-2}{{6.2.2}{81}{Example 2\relax }{subsection.6.2.2}{}}
+\newlabel{advanced_topics:example-2}{{6.2.2}{81}{Example 2}{subsection.6.2.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}Example 3}{81}{subsection.6.2.3}}
-\newlabel{advanced_topics:example-3}{{6.2.3}{81}{Example 3\relax }{subsection.6.2.3}{}}
+\newlabel{advanced_topics:example-3}{{6.2.3}{81}{Example 3}{subsection.6.2.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {6.3}`Loose' \texttt  {geometry\_matching\_mode}}{82}{section.6.3}}
-\newlabel{advanced_topics:loosegeometrymatchingmode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
-\newlabel{advanced_topics:index-3}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
-\newlabel{advanced_topics:loose-geometry-matching-mode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}\relax }{section.6.3}{}}
+\newlabel{advanced_topics:loosegeometrymatchingmode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}}{section.6.3}{}}
+\newlabel{advanced_topics:index-3}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}}{section.6.3}{}}
+\newlabel{advanced_topics:loose-geometry-matching-mode}{{6.3}{82}{`Loose' \texttt {geometry\_matching\_mode}}{section.6.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {6.4}Dimension aliases}{82}{section.6.4}}
-\newlabel{advanced_topics:index-4}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
-\newlabel{advanced_topics:dimension-aliases}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
-\newlabel{advanced_topics:dimensionaliases}{{6.4}{82}{Dimension aliases\relax }{section.6.4}{}}
+\newlabel{advanced_topics:index-4}{{6.4}{82}{Dimension aliases}{section.6.4}{}}
+\newlabel{advanced_topics:dimension-aliases}{{6.4}{82}{Dimension aliases}{section.6.4}{}}
+\newlabel{advanced_topics:dimensionaliases}{{6.4}{82}{Dimension aliases}{section.6.4}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {7}Frequently Asked Questions}{83}{chapter.7}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{faq:index-0}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
-\newlabel{faq:faq}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
-\newlabel{faq::doc}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
-\newlabel{faq:frequently-asked-questions}{{7}{83}{Frequently Asked Questions\relax }{chapter.7}{}}
+\newlabel{faq:index-0}{{7}{83}{Frequently Asked Questions}{chapter.7}{}}
+\newlabel{faq:faq}{{7}{83}{Frequently Asked Questions}{chapter.7}{}}
+\newlabel{faq::doc}{{7}{83}{Frequently Asked Questions}{chapter.7}{}}
+\newlabel{faq:frequently-asked-questions}{{7}{83}{Frequently Asked Questions}{chapter.7}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.1}XMDS scripts look complicated! How do I start?}{83}{section.7.1}}
-\newlabel{faq:xmds-scripts-look-complicated-how-do-i-start}{{7.1}{83}{XMDS scripts look complicated! How do I start?\relax }{section.7.1}{}}
+\newlabel{faq:xmds-scripts-look-complicated-how-do-i-start}{{7.1}{83}{XMDS scripts look complicated! How do I start?}{section.7.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.2}Where can I get help?}{83}{section.7.2}}
-\newlabel{faq:where-can-i-get-help}{{7.2}{83}{Where can I get help?\relax }{section.7.2}{}}
+\newlabel{faq:where-can-i-get-help}{{7.2}{83}{Where can I get help?}{section.7.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.3}How should I cite XMDS2?}{83}{section.7.3}}
-\newlabel{faq:how-should-i-cite-xmds2}{{7.3}{83}{How should I cite XMDS2?\relax }{section.7.3}{}}
-\newlabel{faq:index-1}{{7.3}{83}{How should I cite XMDS2?\relax }{section.7.3}{}}
+\newlabel{faq:how-should-i-cite-xmds2}{{7.3}{83}{How should I cite XMDS2?}{section.7.3}{}}
+\newlabel{faq:index-1}{{7.3}{83}{How should I cite XMDS2?}{section.7.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.4}I think I found a bug! Where should I report it?}{83}{section.7.4}}
-\newlabel{faq:i-think-i-found-a-bug-where-should-i-report-it}{{7.4}{83}{I think I found a bug! Where should I report it?\relax }{section.7.4}{}}
-\newlabel{faq:index-2}{{7.4}{83}{I think I found a bug! Where should I report it?\relax }{section.7.4}{}}
+\newlabel{faq:i-think-i-found-a-bug-where-should-i-report-it}{{7.4}{83}{I think I found a bug! Where should I report it?}{section.7.4}{}}
+\newlabel{faq:index-2}{{7.4}{83}{I think I found a bug! Where should I report it?}{section.7.4}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.5}How do I put time dependence into my vectors?}{83}{section.7.5}}
-\newlabel{faq:how-do-i-put-time-dependence-into-my-vectors}{{7.5}{83}{How do I put time dependence into my vectors?\relax }{section.7.5}{}}
-\newlabel{faq:index-3}{{7.5}{83}{How do I put time dependence into my vectors?\relax }{section.7.5}{}}
+\newlabel{faq:how-do-i-put-time-dependence-into-my-vectors}{{7.5}{83}{How do I put time dependence into my vectors?}{section.7.5}{}}
+\newlabel{faq:index-3}{{7.5}{83}{How do I put time dependence into my vectors?}{section.7.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.6}Can I specify the range of my domain and number of grid points at run-time?}{84}{section.7.6}}
-\newlabel{faq:index-4}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?\relax }{section.7.6}{}}
-\newlabel{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?\relax }{section.7.6}{}}
+\newlabel{faq:index-4}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?}{section.7.6}{}}
+\newlabel{faq:can-i-specify-the-range-of-my-domain-and-number-of-grid-points-at-run-time}{{7.6}{84}{Can I specify the range of my domain and number of grid points at run-time?}{section.7.6}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.7}When can I use IP operators (and why should I) and when must I use EX operators?}{84}{section.7.7}}
-\newlabel{faq:index-5}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?\relax }{section.7.7}{}}
-\newlabel{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?\relax }{section.7.7}{}}
+\newlabel{faq:index-5}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?}{section.7.7}{}}
+\newlabel{faq:when-can-i-use-ip-operators-and-why-should-i-and-when-must-i-use-ex-operators}{{7.7}{84}{When can I use IP operators (and why should I) and when must I use EX operators?}{section.7.7}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {7.8}Visual Editors}{84}{section.7.8}}
-\newlabel{faq:visual-editors}{{7.8}{84}{Visual Editors\relax }{section.7.8}{}}
+\newlabel{faq:visual-editors}{{7.8}{84}{Visual Editors}{section.7.8}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {8}Upgrading From XMDS 1.X}{85}{chapter.8}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{upgrade:upgradefromxmds1}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
-\newlabel{upgrade::doc}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
-\newlabel{upgrade:upgrading-from-xmds-1-x}{{8}{85}{Upgrading From XMDS 1.X\relax }{chapter.8}{}}
+\newlabel{upgrade:upgradefromxmds1}{{8}{85}{Upgrading From XMDS 1.X}{chapter.8}{}}
+\newlabel{upgrade::doc}{{8}{85}{Upgrading From XMDS 1.X}{chapter.8}{}}
+\newlabel{upgrade:upgrading-from-xmds-1-x}{{8}{85}{Upgrading From XMDS 1.X}{chapter.8}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {9}Optimisation Hints}{87}{chapter.9}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{optimisation_hints:optimisationhints}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
-\newlabel{optimisation_hints::doc}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
-\newlabel{optimisation_hints:optimisation-hints}{{9}{87}{Optimisation Hints\relax }{chapter.9}{}}
+\newlabel{optimisation_hints:optimisationhints}{{9}{87}{Optimisation Hints}{chapter.9}{}}
+\newlabel{optimisation_hints::doc}{{9}{87}{Optimisation Hints}{chapter.9}{}}
+\newlabel{optimisation_hints:optimisation-hints}{{9}{87}{Optimisation Hints}{chapter.9}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {9.1}Geometry and transform-based tricks}{87}{section.9.1}}
-\newlabel{optimisation_hints:geometry-and-transform-based-tricks}{{9.1}{87}{Geometry and transform-based tricks\relax }{section.9.1}{}}
+\newlabel{optimisation_hints:geometry-and-transform-based-tricks}{{9.1}{87}{Geometry and transform-based tricks}{section.9.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.1.1}Simpler simulation geometries}{87}{subsection.9.1.1}}
-\newlabel{optimisation_hints:simpler-simulation-geometries}{{9.1.1}{87}{Simpler simulation geometries\relax }{subsection.9.1.1}{}}
+\newlabel{optimisation_hints:simpler-simulation-geometries}{{9.1.1}{87}{Simpler simulation geometries}{subsection.9.1.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.1.2}Tricks for Bessel and Hermite-Gauss transforms}{87}{subsection.9.1.2}}
-\newlabel{optimisation_hints:tricks-for-bessel-and-hermite-gauss-transforms}{{9.1.2}{87}{Tricks for Bessel and Hermite-Gauss transforms\relax }{subsection.9.1.2}{}}
+\newlabel{optimisation_hints:tricks-for-bessel-and-hermite-gauss-transforms}{{9.1.2}{87}{Tricks for Bessel and Hermite-Gauss transforms}{subsection.9.1.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {9.2}Reduce code complexity}{87}{section.9.2}}
-\newlabel{optimisation_hints:reduce-code-complexity}{{9.2}{87}{Reduce code complexity\relax }{section.9.2}{}}
+\newlabel{optimisation_hints:reduce-code-complexity}{{9.2}{87}{Reduce code complexity}{section.9.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.2.1}Optimising with the Interaction Picture (IP) operator}{87}{subsection.9.2.1}}
-\newlabel{optimisation_hints:optimising-with-the-interaction-picture-ip-operator}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator\relax }{subsection.9.2.1}{}}
-\newlabel{optimisation_hints:optimisingipoperators}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator\relax }{subsection.9.2.1}{}}
+\newlabel{optimisation_hints:optimising-with-the-interaction-picture-ip-operator}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator}{subsection.9.2.1}{}}
+\newlabel{optimisation_hints:optimisingipoperators}{{9.2.1}{87}{Optimising with the Interaction Picture (IP) operator}{subsection.9.2.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.2.2}Consider writing the evolution in spectral basis}{88}{subsection.9.2.2}}
-\newlabel{optimisation_hints:consider-writing-the-evolution-in-spectral-basis}{{9.2.2}{88}{Consider writing the evolution in spectral basis\relax }{subsection.9.2.2}{}}
+\newlabel{optimisation_hints:consider-writing-the-evolution-in-spectral-basis}{{9.2.2}{88}{Consider writing the evolution in spectral basis}{subsection.9.2.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.2.3}Don't recalculate things you don't have to}{89}{subsection.9.2.3}}
-\newlabel{optimisation_hints:don-t-recalculate-things-you-don-t-have-to}{{9.2.3}{89}{Don't recalculate things you don't have to\relax }{subsection.9.2.3}{}}
+\newlabel{optimisation_hints:don-t-recalculate-things-you-don-t-have-to}{{9.2.3}{89}{Don't recalculate things you don't have to}{subsection.9.2.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {9.3}Compiler and library tricks}{89}{section.9.3}}
-\newlabel{optimisation_hints:compiler-and-library-tricks}{{9.3}{89}{Compiler and library tricks\relax }{section.9.3}{}}
+\newlabel{optimisation_hints:compiler-and-library-tricks}{{9.3}{89}{Compiler and library tricks}{section.9.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.3.1}Faster compiler}{89}{subsection.9.3.1}}
-\newlabel{optimisation_hints:faster-compiler}{{9.3.1}{89}{Faster compiler\relax }{subsection.9.3.1}{}}
+\newlabel{optimisation_hints:faster-compiler}{{9.3.1}{89}{Faster compiler}{subsection.9.3.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.3.2}Faster libraries}{89}{subsection.9.3.2}}
-\newlabel{optimisation_hints:faster-libraries}{{9.3.2}{89}{Faster libraries\relax }{subsection.9.3.2}{}}
+\newlabel{optimisation_hints:faster-libraries}{{9.3.2}{89}{Faster libraries}{subsection.9.3.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{90}{subsection.9.3.3}}
-\newlabel{optimisation_hints:auto-vectorisation}{{9.3.3}{90}{Auto-vectorisation\relax }{subsection.9.3.3}{}}
+\newlabel{optimisation_hints:auto-vectorisation}{{9.3.3}{90}{Auto-vectorisation}{subsection.9.3.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.3.4}OpenMP}{90}{subsection.9.3.4}}
-\newlabel{optimisation_hints:openmp}{{9.3.4}{90}{OpenMP\relax }{subsection.9.3.4}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{90}{subsection.9.3.5}}
-\newlabel{optimisation_hints:parallelisation-with-mpi}{{9.3.5}{90}{Parallelisation with MPI\relax }{subsection.9.3.5}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{90}{section.9.4}}
-\newlabel{optimisation_hints:atom-optics-specific-hints}{{9.4}{90}{Atom-optics-specific hints\relax }{section.9.4}{}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{90}{subsection.9.4.1}}
-\newlabel{optimisation_hints:separate-out-imaginary-time-calculation-code}{{9.4.1}{90}{Separate out imaginary-time calculation code\relax }{subsection.9.4.1}{}}
+\newlabel{optimisation_hints:openmp}{{9.3.4}{90}{OpenMP}{subsection.9.3.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{91}{subsection.9.3.5}}
+\newlabel{optimisation_hints:parallelisation-with-mpi}{{9.3.5}{91}{Parallelisation with MPI}{subsection.9.3.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{91}{section.9.4}}
+\newlabel{optimisation_hints:atom-optics-specific-hints}{{9.4}{91}{Atom-optics-specific hints}{section.9.4}{}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{91}{subsection.9.4.1}}
+\newlabel{optimisation_hints:separate-out-imaginary-time-calculation-code}{{9.4.1}{91}{Separate out imaginary-time calculation code}{subsection.9.4.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{91}{subsection.9.4.2}}
-\newlabel{optimisation_hints:use-an-energy-or-momentum-offset}{{9.4.2}{91}{Use an energy or momentum offset\relax }{subsection.9.4.2}{}}
+\newlabel{optimisation_hints:use-an-energy-or-momentum-offset}{{9.4.2}{91}{Use an energy or momentum offset}{subsection.9.4.2}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {10}xsil2graphics2}{93}{chapter.10}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{xsil2graphics2:index-0}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
-\newlabel{xsil2graphics2:xsil2graphics2}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
-\newlabel{xsil2graphics2::doc}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
-\newlabel{xsil2graphics2:id1}{{10}{93}{xsil2graphics2\relax }{chapter.10}{}}
+\newlabel{xsil2graphics2:index-0}{{10}{93}{xsil2graphics2}{chapter.10}{}}
+\newlabel{xsil2graphics2:xsil2graphics2}{{10}{93}{xsil2graphics2}{chapter.10}{}}
+\newlabel{xsil2graphics2::doc}{{10}{93}{xsil2graphics2}{chapter.10}{}}
+\newlabel{xsil2graphics2:id1}{{10}{93}{xsil2graphics2}{chapter.10}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {11}Developer Documentation}{95}{chapter.11}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{developer:developer-documentation}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
-\newlabel{developer:developerdocumentation}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
-\newlabel{developer::doc}{{11}{95}{Developer Documentation\relax }{chapter.11}{}}
+\newlabel{developer:developer-documentation}{{11}{95}{Developer Documentation}{chapter.11}{}}
+\newlabel{developer:developerdocumentation}{{11}{95}{Developer Documentation}{chapter.11}{}}
+\newlabel{developer::doc}{{11}{95}{Developer Documentation}{chapter.11}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.1}Test scripts}{95}{section.11.1}}
-\newlabel{developer:test-scripts}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
-\newlabel{developer:index-0}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
-\newlabel{developer:testscripts}{{11.1}{95}{Test scripts\relax }{section.11.1}{}}
+\newlabel{developer:test-scripts}{{11.1}{95}{Test scripts}{section.11.1}{}}
+\newlabel{developer:index-0}{{11.1}{95}{Test scripts}{section.11.1}{}}
+\newlabel{developer:testscripts}{{11.1}{95}{Test scripts}{section.11.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.1.1}Testing element}{96}{subsection.11.1.1}}
-\newlabel{developer:testing-element}{{11.1.1}{96}{Testing element\relax }{subsection.11.1.1}{}}
-\newlabel{developer:testingelement}{{11.1.1}{96}{Testing element\relax }{subsection.11.1.1}{}}
+\newlabel{developer:testing-element}{{11.1.1}{96}{Testing element}{subsection.11.1.1}{}}
+\newlabel{developer:testingelement}{{11.1.1}{96}{Testing element}{subsection.11.1.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.1.2}command\_line element}{96}{subsection.11.1.2}}
-\newlabel{developer:commandlineelement}{{11.1.2}{96}{command\_line element\relax }{subsection.11.1.2}{}}
-\newlabel{developer:command-line-element}{{11.1.2}{96}{command\_line element\relax }{subsection.11.1.2}{}}
+\newlabel{developer:commandlineelement}{{11.1.2}{96}{command\_line element}{subsection.11.1.2}{}}
+\newlabel{developer:command-line-element}{{11.1.2}{96}{command\_line element}{subsection.11.1.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.1.3}input\_xsil\_file element}{96}{subsection.11.1.3}}
-\newlabel{developer:input-xsil-file-element}{{11.1.3}{96}{input\_xsil\_file element\relax }{subsection.11.1.3}{}}
-\newlabel{developer:inputxsilfileelement}{{11.1.3}{96}{input\_xsil\_file element\relax }{subsection.11.1.3}{}}
+\newlabel{developer:input-xsil-file-element}{{11.1.3}{96}{input\_xsil\_file element}{subsection.11.1.3}{}}
+\newlabel{developer:inputxsilfileelement}{{11.1.3}{96}{input\_xsil\_file element}{subsection.11.1.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.1.4}xsil\_file element}{96}{subsection.11.1.4}}
-\newlabel{developer:xsilfileelement}{{11.1.4}{96}{xsil\_file element\relax }{subsection.11.1.4}{}}
-\newlabel{developer:xsil-file-element}{{11.1.4}{96}{xsil\_file element\relax }{subsection.11.1.4}{}}
+\newlabel{developer:xsilfileelement}{{11.1.4}{96}{xsil\_file element}{subsection.11.1.4}{}}
+\newlabel{developer:xsil-file-element}{{11.1.4}{96}{xsil\_file element}{subsection.11.1.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.1.5}moment\_group element}{96}{subsection.11.1.5}}
-\newlabel{developer:momentgroupelement}{{11.1.5}{96}{moment\_group element\relax }{subsection.11.1.5}{}}
-\newlabel{developer:moment-group-element}{{11.1.5}{96}{moment\_group element\relax }{subsection.11.1.5}{}}
+\newlabel{developer:momentgroupelement}{{11.1.5}{96}{moment\_group element}{subsection.11.1.5}{}}
+\newlabel{developer:moment-group-element}{{11.1.5}{96}{moment\_group element}{subsection.11.1.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.2}XMDS Documentation}{96}{section.11.2}}
-\newlabel{developer:userdocumentation}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
-\newlabel{developer:xmds-documentation}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
-\newlabel{developer:index-1}{{11.2}{96}{XMDS Documentation\relax }{section.11.2}{}}
+\newlabel{developer:userdocumentation}{{11.2}{96}{XMDS Documentation}{section.11.2}{}}
+\newlabel{developer:xmds-documentation}{{11.2}{96}{XMDS Documentation}{section.11.2}{}}
+\newlabel{developer:index-1}{{11.2}{96}{XMDS Documentation}{section.11.2}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.3}How to update \texttt  {XMDS2} script validator (XML schema)}{98}{section.11.3}}
-\newlabel{developer:how-to-update-xmds2-script-validator-xml-schema}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
-\newlabel{developer:index-2}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
-\newlabel{developer:howtoaddelementtovalidator}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)\relax }{section.11.3}{}}
+\newlabel{developer:how-to-update-xmds2-script-validator-xml-schema}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)}{section.11.3}{}}
+\newlabel{developer:index-2}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)}{section.11.3}{}}
+\newlabel{developer:howtoaddelementtovalidator}{{11.3}{98}{How to update \texttt {XMDS2} script validator (XML schema)}{section.11.3}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.4}How to introduce a new integrator Stepper into the XMDS2 environment}{101}{section.11.4}}
-\newlabel{developer:how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
-\newlabel{developer:howtoaddintegrator}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
-\newlabel{developer:index-3}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section.11.4}{}}
-\newlabel{developer:logicalbreakdownparsingprocess}{{11.4}{102}{How to introduce a new integrator Stepper into the XMDS2 environment\relax }{section*.54}{}}
+\newlabel{developer:how-to-introduce-a-new-integrator-stepper-into-the-xmds2-environment}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment}{section.11.4}{}}
+\newlabel{developer:howtoaddintegrator}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment}{section.11.4}{}}
+\newlabel{developer:index-3}{{11.4}{101}{How to introduce a new integrator Stepper into the XMDS2 environment}{section.11.4}{}}
+\newlabel{developer:logicalbreakdownparsingprocess}{{11.4}{102}{How to introduce a new integrator Stepper into the XMDS2 environment}{section*.54}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.5}Logical breakdown of XMDS2 Parsing Process}{102}{section.11.5}}
-\newlabel{developer:index-4}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process\relax }{section.11.5}{}}
-\newlabel{developer:logical-breakdown-of-xmds2-parsing-process}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process\relax }{section.11.5}{}}
+\newlabel{developer:index-4}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process}{section.11.5}{}}
+\newlabel{developer:logical-breakdown-of-xmds2-parsing-process}{{11.5}{102}{Logical breakdown of XMDS2 Parsing Process}{section.11.5}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.5.1}Overall process for parsing XML file in XMDS2}{104}{subsection.11.5.1}}
-\newlabel{developer:overall-process-for-parsing-xml-file-in-xmds2}{{11.5.1}{104}{Overall process for parsing XML file in XMDS2\relax }{subsection.11.5.1}{}}
+\newlabel{developer:overall-process-for-parsing-xml-file-in-xmds2}{{11.5.1}{104}{Overall process for parsing XML file in XMDS2}{subsection.11.5.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.5.2}parser2.py parses XML file (Sub process 3)}{107}{subsection.11.5.2}}
-\newlabel{developer:parser2-py-parses-xml-file-sub-process-3}{{11.5.2}{107}{parser2.py parses XML file (Sub process 3)\relax }{subsection.11.5.2}{}}
+\newlabel{developer:parser2-py-parses-xml-file-sub-process-3}{{11.5.2}{107}{parser2.py parses XML file (Sub process 3)}{subsection.11.5.2}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.5.3}Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}{110}{subsection.11.5.3}}
-\newlabel{developer:pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4}{{11.5.3}{110}{Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)\relax }{subsection.11.5.3}{}}
+\newlabel{developer:pass-file-to-xmds2parser-to-parse-xmldocument-with-parsexmldocument-sub-process-3-4}{{11.5.3}{110}{Pass file to XMDS2Parser to parse xmlDocument with parseXMLDocument() (Sub process 3.4)}{subsection.11.5.3}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.5.4}Parse Top Level Sequence elements (Sub process 3.4.11)}{111}{subsection.11.5.4}}
-\newlabel{developer:parse-top-level-sequence-elements-sub-process-3-4-11}{{11.5.4}{111}{Parse Top Level Sequence elements (Sub process 3.4.11)\relax }{subsection.11.5.4}{}}
+\newlabel{developer:parse-top-level-sequence-elements-sub-process-3-4-11}{{11.5.4}{111}{Parse Top Level Sequence elements (Sub process 3.4.11)}{subsection.11.5.4}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.5.5}Parse Integrate Element (Sub process 3.4.11.2)}{112}{subsection.11.5.5}}
-\newlabel{developer:parse-integrate-element-sub-process-3-4-11-2}{{11.5.5}{112}{Parse Integrate Element (Sub process 3.4.11.2)\relax }{subsection.11.5.5}{}}
+\newlabel{developer:parse-integrate-element-sub-process-3-4-11-2}{{11.5.5}{112}{Parse Integrate Element (Sub process 3.4.11.2)}{subsection.11.5.5}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {11.6}Directory layout}{113}{section.11.6}}
-\newlabel{developer:index-5}{{11.6}{113}{Directory layout\relax }{section.11.6}{}}
-\newlabel{developer:directory-layout}{{11.6}{113}{Directory layout\relax }{section.11.6}{}}
+\newlabel{developer:index-5}{{11.6}{113}{Directory layout}{section.11.6}{}}
+\newlabel{developer:directory-layout}{{11.6}{113}{Directory layout}{section.11.6}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.6.1}XMDS2's code and templates}{113}{subsection.11.6.1}}
-\newlabel{developer:xmds2-s-code-and-templates}{{11.6.1}{113}{XMDS2's code and templates\relax }{subsection.11.6.1}{}}
+\newlabel{developer:xmds2-s-code-and-templates}{{11.6.1}{113}{XMDS2's code and templates}{subsection.11.6.1}{}}
 \@writefile{toc}{\contentsline {subsection}{\numberline {11.6.2}Support files}{114}{subsection.11.6.2}}
-\newlabel{developer:support-files}{{11.6.2}{114}{Support files\relax }{subsection.11.6.2}{}}
+\newlabel{developer:support-files}{{11.6.2}{114}{Support files}{subsection.11.6.2}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {12}Licensing}{115}{chapter.12}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{licensing:index-0}{{12}{115}{Licensing\relax }{chapter.12}{}}
-\newlabel{licensing::doc}{{12}{115}{Licensing\relax }{chapter.12}{}}
-\newlabel{licensing:licensing}{{12}{115}{Licensing\relax }{chapter.12}{}}
-\newlabel{licensing:id1}{{12}{115}{Licensing\relax }{chapter.12}{}}
+\newlabel{licensing:index-0}{{12}{115}{Licensing}{chapter.12}{}}
+\newlabel{licensing::doc}{{12}{115}{Licensing}{chapter.12}{}}
+\newlabel{licensing:licensing}{{12}{115}{Licensing}{chapter.12}{}}
+\newlabel{licensing:id1}{{12}{115}{Licensing}{chapter.12}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {12.1}GNU General Public License}{115}{section.12.1}}
-\newlabel{licensing:gnu-general-public-license}{{12.1}{115}{GNU General Public License\relax }{section.12.1}{}}
-\newlabel{licensing:index-1}{{12.1}{115}{GNU General Public License\relax }{section.12.1}{}}
+\newlabel{licensing:gnu-general-public-license}{{12.1}{115}{GNU General Public License}{section.12.1}{}}
+\newlabel{licensing:index-1}{{12.1}{115}{GNU General Public License}{section.12.1}{}}
 \@writefile{toc}{\contentsline {section}{\numberline {12.2}GNU Free Documentation License}{118}{section.12.2}}
-\newlabel{licensing:gnu-free-documentation-license}{{12.2}{118}{GNU Free Documentation License\relax }{section.12.2}{}}
-\newlabel{licensing:index-2}{{12.2}{118}{GNU Free Documentation License\relax }{section.12.2}{}}
+\newlabel{licensing:gnu-free-documentation-license}{{12.2}{118}{GNU Free Documentation License}{section.12.2}{}}
+\newlabel{licensing:index-2}{{12.2}{118}{GNU Free Documentation License}{section.12.2}{}}
 \@writefile{toc}{\contentsline {chapter}{\numberline {13}News}{125}{chapter.13}}
 \@writefile{lof}{\addvspace {10\p@ }}
 \@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{news:news}{{13}{125}{News\relax }{chapter.13}{}}
-\newlabel{news:index-0}{{13}{125}{News\relax }{chapter.13}{}}
-\newlabel{news::doc}{{13}{125}{News\relax }{chapter.13}{}}
-\newlabel{news:id1}{{13}{125}{News\relax }{chapter.13}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.1}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.1}}
-\newlabel{news:xmds-2-2-0-out-of-cheese-error-january-13-2014}{{13.1}{125}{XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)\relax }{section.13.1}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.2}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{125}{section.13.2}}
-\newlabel{news:xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013}{{13.2}{125}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)\relax }{section.13.2}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.3}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.3}}
-\newlabel{news:xmds-2-1-3-happy-mollusc-june-7-2013}{{13.3}{126}{XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)\relax }{section.13.3}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.4}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.4}}
-\newlabel{news:xmds-2-1-2-happy-mollusc-october-15-2012}{{13.4}{126}{XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)\relax }{section.13.4}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.5}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.5}}
-\newlabel{news:xmds-2-1-happy-mollusc-june-14-2012}{{13.5}{127}{XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)\relax }{section.13.5}{}}
-\@writefile{toc}{\contentsline {section}{\numberline {13.6}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.6}}
-\newlabel{news:xmds-2-0-shiny-september-13-2010}{{13.6}{127}{XMDS 2.0 ``Shiny!'' (September 13, 2010)\relax }{section.13.6}{}}
+\newlabel{news:news}{{13}{125}{News}{chapter.13}{}}
+\newlabel{news:index-0}{{13}{125}{News}{chapter.13}{}}
+\newlabel{news::doc}{{13}{125}{News}{chapter.13}{}}
+\newlabel{news:id1}{{13}{125}{News}{chapter.13}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.1}XMDS 2.2.1 ``XMDS2 is a game of two halves'' (September 30, 2014)}{125}{section.13.1}}
+\newlabel{news:xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014}{{13.1}{125}{XMDS 2.2.1 ``XMDS2 is a game of two halves'' (September 30, 2014)}{section.13.1}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.2}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.2}}
+\newlabel{news:xmds-2-2-0-out-of-cheese-error-january-13-2014}{{13.2}{125}{XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{section.13.2}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.3}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{126}{section.13.3}}
+\newlabel{news:xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013}{{13.3}{126}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{section.13.3}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.4}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.4}}
+\newlabel{news:xmds-2-1-3-happy-mollusc-june-7-2013}{{13.4}{126}{XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{section.13.4}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.5}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.5}}
+\newlabel{news:xmds-2-1-2-happy-mollusc-october-15-2012}{{13.5}{126}{XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{section.13.5}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.6}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.6}}
+\newlabel{news:xmds-2-1-happy-mollusc-june-14-2012}{{13.6}{127}{XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{section.13.6}{}}
+\@writefile{toc}{\contentsline {section}{\numberline {13.7}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.7}}
+\newlabel{news:xmds-2-0-shiny-september-13-2010}{{13.7}{127}{XMDS 2.0 ``Shiny!'' (September 13, 2010)}{section.13.7}{}}
 \@writefile{toc}{\contentsline {chapter}{Index}{129}{section*.55}}
diff --git a/documentation/latex/xmds2.idx b/documentation/latex/xmds2.idx
index 722bf89..30224f5 100644
--- a/documentation/latex/xmds2.idx
+++ b/documentation/latex/xmds2.idx
@@ -39,12 +39,12 @@
 \indexentry{XML elements!benchmark|hyperpage}{49}
 \indexentry{XML elements!bing|hyperpage}{49}
 \indexentry{XML elements!cflags|hyperpage}{49}
-\indexentry{XML elements!chunked\_output|hyperpage}{49}
+\indexentry{XML elements!chunked\_output|hyperpage}{50}
 \indexentry{XML elements!diagnostics|hyperpage}{50}
 \indexentry{XML elements!error\_check|hyperpage}{50}
 \indexentry{XML elements!halt\_non\_finite|hyperpage}{50}
-\indexentry{XML elements!fftw|hyperpage}{50}
-\indexentry{XML element attributes!plan|hyperpage}{50}
+\indexentry{XML elements!fftw|hyperpage}{51}
+\indexentry{XML element attributes!plan|hyperpage}{51}
 \indexentry{XML elements!globals|hyperpage}{51}
 \indexentry{XML elements!openmp|hyperpage}{51}
 \indexentry{Single precision|hyperpage}{51}
@@ -53,12 +53,12 @@
 \indexentry{XML elements!precision|hyperpage}{51}
 \indexentry{XML elements!validation|hyperpage}{52}
 \indexentry{XML element attributes!kind|hyperpage}{52}
-\indexentry{XML elements!driver|hyperpage}{52}
-\indexentry{XML element attributes!name (driver)|hyperpage}{52}
-\indexentry{Drivers!distributed-mpi"|hyperpage}{52}
-\indexentry{Drivers!multi-path"|hyperpage}{52}
-\indexentry{Drivers!mpi-multi-path"|hyperpage}{52}
-\indexentry{Drivers!adaptive-mpi-multi-path"|hyperpage}{52}
+\indexentry{XML elements!driver|hyperpage}{53}
+\indexentry{XML element attributes!name (driver)|hyperpage}{53}
+\indexentry{Drivers!distributed-mpi"|hyperpage}{53}
+\indexentry{Drivers!multi-path"|hyperpage}{53}
+\indexentry{Drivers!mpi-multi-path"|hyperpage}{53}
+\indexentry{Drivers!adaptive-mpi-multi-path"|hyperpage}{53}
 \indexentry{XML elements!geometry|hyperpage}{53}
 \indexentry{XML elements!propagation\_dimension|hyperpage}{53}
 \indexentry{XML elements!transverse\_dimensions|hyperpage}{53}
@@ -70,29 +70,29 @@
 \indexentry{Aliases|hyperpage}{53}
 \indexentry{XML element attributes!aliases|hyperpage}{53}
 \indexentry{Vectors!non-local access|hyperpage}{53}
-\indexentry{XML element attributes!volume\_prefactor|hyperpage}{53}
+\indexentry{XML element attributes!volume\_prefactor|hyperpage}{54}
 \indexentry{XML element attributes!transform|hyperpage}{54}
 \indexentry{Aliases|hyperpage}{54}
 \indexentry{Transforms!dft|hyperpage}{54}
 \indexentry{Boundary conditions (DFT)|hyperpage}{54}
 \indexentry{Transforms!dct|hyperpage}{55}
 \indexentry{Boundary conditions (DCT)|hyperpage}{55}
-\indexentry{Transforms!dst|hyperpage}{55}
+\indexentry{Transforms!dst|hyperpage}{56}
 \indexentry{Boundary conditions (DST)|hyperpage}{56}
 \indexentry{Transforms!bessel|hyperpage}{56}
 \indexentry{Boundary conditions (Bessel)|hyperpage}{57}
 \indexentry{Boundary conditions|hyperpage}{57}
-\indexentry{Transforms!spherical-bessel|hyperpage}{57}
+\indexentry{Transforms!spherical-bessel|hyperpage}{58}
 \indexentry{Transforms!hermite-gauss|hyperpage}{58}
-\indexentry{XML element attributes!length\_scale|hyperpage}{58}
+\indexentry{XML element attributes!length\_scale|hyperpage}{59}
 \indexentry{XML elements!vector|hyperpage}{59}
 \indexentry{XML element attributes!name (vector)|hyperpage}{59}
 \indexentry{XML element attributes!type (vector)|hyperpage}{59}
 \indexentry{XML elements!components|hyperpage}{59}
-\indexentry{XML element attributes!initial\_basis (vector)|hyperpage}{59}
-\indexentry{XML elements!initialisation|hyperpage}{59}
-\indexentry{XML element attributes!name (vector)|hyperpage}{59}
-\indexentry{Vectors!non-local access|hyperpage}{59}
+\indexentry{XML element attributes!initial\_basis (vector)|hyperpage}{60}
+\indexentry{XML elements!initialisation|hyperpage}{60}
+\indexentry{XML element attributes!name (vector)|hyperpage}{60}
+\indexentry{Vectors!non-local access|hyperpage}{60}
 \indexentry{Vectors!non-local access|hyperpage}{60}
 \indexentry{MPI!non-local vector access|hyperpage}{60}
 \indexentry{XML elements!filename|hyperpage}{60}
@@ -100,28 +100,28 @@
 \indexentry{XML element attributes!geometry\_matching\_mode|hyperpage}{60}
 \indexentry{XML elements!dependencies|hyperpage}{61}
 \indexentry{XML element attributes!basis (dependencies element)|hyperpage}{61}
-\indexentry{XML elements!computed\_vector|hyperpage}{61}
+\indexentry{XML elements!computed\_vector|hyperpage}{62}
 \indexentry{XML elements!evaluation|hyperpage}{62}
 \indexentry{XML element attributes!name (computed vector)|hyperpage}{62}
 \indexentry{XML element attributes!dimensions (computed vector)|hyperpage}{62}
 \indexentry{XML element attributes!type (computed vector)|hyperpage}{62}
-\indexentry{XML elements!noise\_vector|hyperpage}{62}
-\indexentry{XML element attributes!name (noise vector)|hyperpage}{62}
-\indexentry{XML element attributes!dimensions (noise vector)|hyperpage}{62}
-\indexentry{XML element attributes!type (noise vector)|hyperpage}{62}
-\indexentry{XML element attributes!initial\_basis (noise vector)|hyperpage}{62}
-\indexentry{XML element attributes!method|hyperpage}{62}
-\indexentry{XML element attributes!seed|hyperpage}{62}
-\indexentry{XML element attributes!kind (noise vector)|hyperpage}{62}
+\indexentry{XML elements!noise\_vector|hyperpage}{63}
+\indexentry{XML element attributes!name (noise vector)|hyperpage}{63}
+\indexentry{XML element attributes!dimensions (noise vector)|hyperpage}{63}
+\indexentry{XML element attributes!type (noise vector)|hyperpage}{63}
+\indexentry{XML element attributes!initial\_basis (noise vector)|hyperpage}{63}
+\indexentry{XML element attributes!method|hyperpage}{63}
+\indexentry{XML element attributes!seed|hyperpage}{63}
+\indexentry{XML element attributes!kind (noise vector)|hyperpage}{63}
 \indexentry{Noise!uniform|hyperpage}{63}
-\indexentry{Noise!gaussian|hyperpage}{63}
+\indexentry{Noise!gaussian|hyperpage}{64}
 \indexentry{Noise!wiener|hyperpage}{64}
-\indexentry{Noise!poissonian|hyperpage}{64}
-\indexentry{Noise!jump|hyperpage}{64}
+\indexentry{Noise!poissonian|hyperpage}{65}
+\indexentry{Noise!jump|hyperpage}{65}
 \indexentry{XML elements!sequence|hyperpage}{65}
 \indexentry{XML element attributes!cycles|hyperpage}{65}
-\indexentry{XML elements!filter|hyperpage}{65}
-\indexentry{XML element attributes!name (filter)|hyperpage}{65}
+\indexentry{XML elements!filter|hyperpage}{66}
+\indexentry{XML element attributes!name (filter)|hyperpage}{66}
 \indexentry{XML elements!integrate|hyperpage}{66}
 \indexentry{XML element attributes!interval|hyperpage}{66}
 \indexentry{XML element attributes!algorithm|hyperpage}{66}
@@ -133,28 +133,28 @@
 \indexentry{XML elements!operators|hyperpage}{67}
 \indexentry{XML elements!integration\_vectors|hyperpage}{67}
 \indexentry{Vectors!non-local access|hyperpage}{67}
-\indexentry{XML elements!operator|hyperpage}{67}
-\indexentry{XML element attributes!kind (operator)|hyperpage}{67}
-\indexentry{Operators!IP|hyperpage}{67}
-\indexentry{Operators!EX|hyperpage}{67}
-\indexentry{IP operators|hyperpage}{67}
-\indexentry{EX operators|hyperpage}{67}
+\indexentry{XML elements!operator|hyperpage}{68}
+\indexentry{XML element attributes!kind (operator)|hyperpage}{68}
+\indexentry{Operators!IP|hyperpage}{68}
+\indexentry{Operators!EX|hyperpage}{68}
+\indexentry{IP operators|hyperpage}{68}
+\indexentry{EX operators|hyperpage}{68}
 \indexentry{XML element attributes!constant|hyperpage}{68}
 \indexentry{Cross-propagation|hyperpage}{68}
 \indexentry{XML element attributes!cross-propagation|hyperpage}{68}
-\indexentry{XML elements!boundary\_conditions|hyperpage}{68}
-\indexentry{XML element attributes!kind (boundary\_condition element)|hyperpage}{68}
-\indexentry{Boundary conditions|hyperpage}{68}
+\indexentry{XML elements!boundary\_conditions|hyperpage}{69}
+\indexentry{XML element attributes!kind (boundary\_condition element)|hyperpage}{69}
+\indexentry{Boundary conditions|hyperpage}{69}
 \indexentry{Integration algorithms!semi-implicit (SI)|hyperpage}{69}
-\indexentry{Integration algorithms!Runge-Kutta (RK)|hyperpage}{69}
+\indexentry{Integration algorithms!Runge-Kutta (RK)|hyperpage}{70}
 \indexentry{Integration algorithms!adaptive Runge-Kutta (ARK)|hyperpage}{70}
-\indexentry{Integration algorithms!Richardson extrapolation|hyperpage}{70}
+\indexentry{Integration algorithms!Richardson extrapolation|hyperpage}{71}
 \indexentry{XML elements!filters|hyperpage}{71}
 \indexentry{XML element attributes!where|hyperpage}{71}
-\indexentry{XML elements!breakpoint|hyperpage}{71}
-\indexentry{XML element attributes!filename (breakpoint element)|hyperpage}{71}
-\indexentry{XML element attributes!format (breakpoint element)|hyperpage}{71}
-\indexentry{XML elements!output|hyperpage}{71}
+\indexentry{XML elements!breakpoint|hyperpage}{72}
+\indexentry{XML element attributes!filename (breakpoint element)|hyperpage}{72}
+\indexentry{XML element attributes!format (breakpoint element)|hyperpage}{72}
+\indexentry{XML elements!output|hyperpage}{72}
 \indexentry{XML element attributes!format (output element)|hyperpage}{72}
 \indexentry{XML element attributes!filename (output element)|hyperpage}{72}
 \indexentry{XML element attributes!format (output element)|hyperpage}{72}
@@ -169,8 +169,8 @@
 \indexentry{XML element attributes!basis (sampling\_group element)|hyperpage}{73}
 \indexentry{Modified midpoint method|hyperpage}{73}
 \indexentry{Bulirsch-Stoer algorithm|hyperpage}{74}
-\indexentry{Bulirsch-Stoer error scaling|hyperpage}{74}
-\indexentry{Advanced topics|hyperpage}{75}
+\indexentry{Bulirsch-Stoer error scaling|hyperpage}{75}
+\indexentry{Advanced topics|hyperpage}{76}
 \indexentry{Importing data|hyperpage}{77}
 \indexentry{Convolutions and Fourier transforms|hyperpage}{79}
 \indexentry{Geometry matching mode - loose|hyperpage}{81}
diff --git a/documentation/latex/xmds2.ilg b/documentation/latex/xmds2.ilg
index a90ee20..dc94b24 100644
--- a/documentation/latex/xmds2.ilg
+++ b/documentation/latex/xmds2.ilg
@@ -1,7 +1,7 @@
-This is makeindex, version 2.15 [TeX Live 2009] (kpathsea + Thai support).
+This is makeindex, version 2.15 [TeX Live 2013] (kpathsea + Thai support).
 Scanning style file ./python.ist......done (6 attributes redefined, 0 ignored).
 Scanning input file xmds2.idx....done (196 entries accepted, 0 rejected).
-Sorting entries.....done (1560 comparisons).
+Sorting entries.....done (1561 comparisons).
 Generating output file xmds2.ind....done (257 lines written, 0 warnings).
 Output written in xmds2.ind.
 Transcript written in xmds2.ilg.
diff --git a/documentation/latex/xmds2.ind b/documentation/latex/xmds2.ind
index cf60f0d..15e132d 100644
--- a/documentation/latex/xmds2.ind
+++ b/documentation/latex/xmds2.ind
@@ -11,19 +11,19 @@
   \indexspace
   \bigletter A
   \item Adding an integrator, \hyperpage{99}
-  \item Advanced topics, \hyperpage{75}
+  \item Advanced topics, \hyperpage{76}
   \item Aliases, \hyperpage{41}, \hyperpage{53, 54}
 
   \indexspace
   \bigletter B
-  \item Boundary conditions, \hyperpage{57}, \hyperpage{68}
+  \item Boundary conditions, \hyperpage{57}, \hyperpage{69}
   \item Boundary conditions (Bessel), \hyperpage{57}
   \item Boundary conditions (DCT), \hyperpage{55}
   \item Boundary conditions (DFT), \hyperpage{54}
   \item Boundary conditions (DST), \hyperpage{56}
   \item Bug reports, \hyperpage{83}
   \item Bulirsch-Stoer algorithm, \hyperpage{74}
-  \item Bulirsch-Stoer error scaling, \hyperpage{74}
+  \item Bulirsch-Stoer error scaling, \hyperpage{75}
 
   \indexspace
   \bigletter C
@@ -44,14 +44,14 @@
     \subitem mpi-multi-path, \hyperpage{24}
     \subitem multi-path, \hyperpage{20}
   \item Drivers
-    \subitem adaptive-mpi-multi-path|hyperpage, 52
-    \subitem distributed-mpi|hyperpage, 52
-    \subitem mpi-multi-path|hyperpage, 52
-    \subitem multi-path|hyperpage, 52
+    \subitem adaptive-mpi-multi-path|hyperpage, 53
+    \subitem distributed-mpi|hyperpage, 53
+    \subitem mpi-multi-path|hyperpage, 53
+    \subitem multi-path|hyperpage, 53
 
   \indexspace
   \bigletter E
-  \item EX operators, \hyperpage{67}
+  \item EX operators, \hyperpage{68}
   \item Examples, \hyperpage{14}
   \item Exporting data, \hyperpage{11}, \hyperpage{91}
 
@@ -79,10 +79,10 @@
   \item Integration algorithms
     \subitem adaptive Runge-Kutta (ARK), \hyperpage{70}
     \subitem all, \hyperpage{66}
-    \subitem Richardson extrapolation, \hyperpage{70}
-    \subitem Runge-Kutta (RK), \hyperpage{69}
+    \subitem Richardson extrapolation, \hyperpage{71}
+    \subitem Runge-Kutta (RK), \hyperpage{70}
     \subitem semi-implicit (SI), \hyperpage{69}
-  \item IP operators, \hyperpage{67}
+  \item IP operators, \hyperpage{68}
   \item IP versus EX operators, \hyperpage{84}
 
   \indexspace
@@ -104,9 +104,9 @@
   \bigletter N
   \item News, \hyperpage{123}
   \item Noise
-    \subitem gaussian, \hyperpage{63}
-    \subitem jump, \hyperpage{64}
-    \subitem poissonian, \hyperpage{64}
+    \subitem gaussian, \hyperpage{64}
+    \subitem jump, \hyperpage{65}
+    \subitem poissonian, \hyperpage{65}
     \subitem uniform, \hyperpage{63}
     \subitem wiener, \hyperpage{64}
   \item Noise vector example, \hyperpage{20}
@@ -115,8 +115,8 @@
   \indexspace
   \bigletter O
   \item Operators, \hyperpage{67}
-    \subitem EX, \hyperpage{67}
-    \subitem IP, \hyperpage{67}
+    \subitem EX, \hyperpage{68}
+    \subitem IP, \hyperpage{68}
 
   \indexspace
   \bigletter P
@@ -140,15 +140,15 @@
     \subitem bessel, \hyperpage{56}
     \subitem dct, \hyperpage{55}
     \subitem dft, \hyperpage{54}
-    \subitem dst, \hyperpage{55}
+    \subitem dst, \hyperpage{56}
     \subitem hermite-gauss, \hyperpage{58}
-    \subitem spherical-bessel, \hyperpage{57}
+    \subitem spherical-bessel, \hyperpage{58}
   \item Tutorial, \hyperpage{7}
 
   \indexspace
   \bigletter V
   \item Vectors
-    \subitem non-local access, \hyperpage{53}, \hyperpage{59, 60}, \hyperpage{67}
+    \subitem non-local access, \hyperpage{53}, \hyperpage{60}, \hyperpage{67}
 
   \indexspace
   \bigletter X
@@ -165,43 +165,43 @@
     \subitem cycles, \hyperpage{65}
     \subitem default\_value, \hyperpage{49}
     \subitem dimensions (computed vector), \hyperpage{62}
-    \subitem dimensions (noise vector), \hyperpage{62}
+    \subitem dimensions (noise vector), \hyperpage{63}
     \subitem domain, \hyperpage{53}
-    \subitem filename (breakpoint element), \hyperpage{71}
+    \subitem filename (breakpoint element), \hyperpage{72}
     \subitem filename (output element), \hyperpage{72}
-    \subitem format (breakpoint element), \hyperpage{71}
+    \subitem format (breakpoint element), \hyperpage{72}
     \subitem format (output element), \hyperpage{72}
     \subitem geometry\_matching\_mode, \hyperpage{60}
-    \subitem initial\_basis (noise vector), \hyperpage{62}
-    \subitem initial\_basis (vector), \hyperpage{59}
+    \subitem initial\_basis (noise vector), \hyperpage{63}
+    \subitem initial\_basis (vector), \hyperpage{60}
     \subitem initial\_sample, \hyperpage{72}
     \subitem interval, \hyperpage{66}
     \subitem kind, \hyperpage{52}
-    \subitem kind (boundary\_condition element), \hyperpage{68}
+    \subitem kind (boundary\_condition element), \hyperpage{69}
     \subitem kind (initialisation element), \hyperpage{60}
-    \subitem kind (noise vector), \hyperpage{62}
-    \subitem kind (operator), \hyperpage{67}
+    \subitem kind (noise vector), \hyperpage{63}
+    \subitem kind (operator), \hyperpage{68}
     \subitem lattice, \hyperpage{53}
-    \subitem length\_scale, \hyperpage{58}
-    \subitem method, \hyperpage{62}
+    \subitem length\_scale, \hyperpage{59}
+    \subitem method, \hyperpage{63}
     \subitem name, \hyperpage{49}
     \subitem name (computed vector), \hyperpage{62}
     \subitem name (dimension), \hyperpage{53}
-    \subitem name (driver), \hyperpage{52}
-    \subitem name (filter), \hyperpage{65}
-    \subitem name (noise vector), \hyperpage{62}
-    \subitem name (vector), \hyperpage{59}
-    \subitem plan, \hyperpage{50}
-    \subitem seed, \hyperpage{62}
+    \subitem name (driver), \hyperpage{53}
+    \subitem name (filter), \hyperpage{66}
+    \subitem name (noise vector), \hyperpage{63}
+    \subitem name (vector), \hyperpage{59, 60}
+    \subitem plan, \hyperpage{51}
+    \subitem seed, \hyperpage{63}
     \subitem steps, \hyperpage{66}
     \subitem tolerance, \hyperpage{66}
     \subitem transform, \hyperpage{54}
     \subitem type, \hyperpage{49}
     \subitem type (computed vector), \hyperpage{62}
     \subitem type (dimension), \hyperpage{53}
-    \subitem type (noise vector), \hyperpage{62}
+    \subitem type (noise vector), \hyperpage{63}
     \subitem type (vector), \hyperpage{59}
-    \subitem volume\_prefactor, \hyperpage{53}
+    \subitem volume\_prefactor, \hyperpage{54}
     \subitem where, \hyperpage{71}
   \item XML Elements, \hyperpage{46}
   \item XML elements
@@ -211,36 +211,36 @@
     \subitem autovectorise, \hyperpage{49}
     \subitem benchmark, \hyperpage{49}
     \subitem bing, \hyperpage{49}
-    \subitem boundary\_conditions, \hyperpage{68}
-    \subitem breakpoint, \hyperpage{71}
+    \subitem boundary\_conditions, \hyperpage{69}
+    \subitem breakpoint, \hyperpage{72}
     \subitem cflags, \hyperpage{49}
-    \subitem chunked\_output, \hyperpage{49}
+    \subitem chunked\_output, \hyperpage{50}
     \subitem components, \hyperpage{59}
-    \subitem computed\_vector, \hyperpage{61}
+    \subitem computed\_vector, \hyperpage{62}
     \subitem dependencies, \hyperpage{61}
     \subitem description, \hyperpage{47}
     \subitem diagnostics, \hyperpage{50}
     \subitem dimension, \hyperpage{53}
-    \subitem driver, \hyperpage{52}
+    \subitem driver, \hyperpage{53}
     \subitem error\_check, \hyperpage{50}
     \subitem evaluation, \hyperpage{62}
     \subitem features, \hyperpage{47}
-    \subitem fftw, \hyperpage{50}
+    \subitem fftw, \hyperpage{51}
     \subitem filename, \hyperpage{60}
-    \subitem filter, \hyperpage{65}
+    \subitem filter, \hyperpage{66}
     \subitem filters, \hyperpage{71}
     \subitem geometry, \hyperpage{53}
     \subitem globals, \hyperpage{51}
     \subitem halt\_non\_finite, \hyperpage{50}
-    \subitem initialisation, \hyperpage{59}
+    \subitem initialisation, \hyperpage{60}
     \subitem integrate, \hyperpage{66}
     \subitem integration\_vectors, \hyperpage{67}
     \subitem name (of simulation), \hyperpage{47}
-    \subitem noise\_vector, \hyperpage{62}
+    \subitem noise\_vector, \hyperpage{63}
     \subitem openmp, \hyperpage{51}
-    \subitem operator, \hyperpage{67}
+    \subitem operator, \hyperpage{68}
     \subitem operators, \hyperpage{67}
-    \subitem output, \hyperpage{71}
+    \subitem output, \hyperpage{72}
     \subitem precision, \hyperpage{51}
     \subitem propagation\_dimension, \hyperpage{53}
     \subitem samples, \hyperpage{66}
diff --git a/documentation/latex/xmds2.log b/documentation/latex/xmds2.log
index 08c027d..4045cd1 100644
--- a/documentation/latex/xmds2.log
+++ b/documentation/latex/xmds2.log
@@ -1,16 +1,16 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.5.1)  14 JAN 2014 09:33
+This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013) (format=pdflatex 2013.11.1)  30 SEP 2014 15:07
 entering extended mode
+ restricted \write18 enabled.
  %&-line parsing enabled.
 **xmds2.tex
 (./xmds2.tex
-LaTeX2e <2009/09/24>
-Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
-yphenation, loaded.
+LaTeX2e <2011/06/27>
+Babel <3.9f> and hyphenation patterns for 78 languages loaded.
 (./sphinxmanual.cls
 Document Class: sphinxmanual 2009/06/02 Document class (Sphinx manual)
-(/usr/share/texmf-texlive/tex/latex/base/report.cls
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/report.cls
 Document Class: report 2007/10/19 v1.4h Standard LaTeX document class
-(/usr/share/texmf-texlive/tex/latex/base/size10.clo
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/size10.clo
 File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 )
 \c at part=\count79
@@ -26,19 +26,19 @@ File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
 \belowcaptionskip=\skip42
 \bibindent=\dimen102
 ))
-(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/inputenc.sty
 Package: inputenc 2008/03/30 v1.1d Input encoding file
 \inpenc at prehook=\toks14
 \inpenc at posthook=\toks15
 
-(/usr/share/texmf-texlive/tex/latex/base/utf8.def
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/utf8.def
 File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OML ...
 ... no UTF-8 mapping file for font encoding OML
 Now handling font encoding T1 ...
 ... processing UTF-8 mapping file for font encoding T1
 
-(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/t1enc.dfu
 File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A1 (decimal 161)
    defining Unicode char U+00A3 (decimal 163)
@@ -188,7 +188,7 @@ File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OT1 ...
 ... processing UTF-8 mapping file for font encoding OT1
 
-(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/ot1enc.dfu
 File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A1 (decimal 161)
    defining Unicode char U+00A3 (decimal 163)
@@ -219,7 +219,7 @@ File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
 Now handling font encoding OMS ...
 ... processing UTF-8 mapping file for font encoding OMS
 
-(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/omsenc.dfu
 File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A7 (decimal 167)
    defining Unicode char U+00B6 (decimal 182)
@@ -245,31 +245,29 @@ Now handling font encoding U ...
 ))
    defining Unicode char U+00A0 (decimal 160)
 
-(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/fontenc.sty
 Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
 
-(/usr/share/texmf-texlive/tex/latex/base/t1enc.def
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/t1enc.def
 File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
 LaTeX Font Info:    Redeclaring font encoding T1 on input line 43.
 ))
-(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
-Package: babel 2008/07/06 v3.8l The Babel package
+(/usr/local/texlive/2013/texmf-dist/tex/generic/babel/babel.sty
+Package: babel 2013/05/16 v3.9f The Babel package
 
-(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
-Language: english 2005/03/30 v3.3o English support from the babel system
+(/usr/local/texlive/2013/texmf-dist/tex/generic/babel-english/english.ldf
+Language: english 2012/08/20 v3.3p English support from the babel system
 
-(/usr/share/texmf-texlive/tex/generic/babel/babel.def
-File: babel.def 2008/07/06 v3.8l Babel common definitions
+(/usr/local/texlive/2013/texmf-dist/tex/generic/babel/babel.def
+File: babel.def 2013/05/16 v3.9f Babel common definitions
 \babel at savecnt=\count88
 \U at D=\dimen103
 )
-\l at british = a dialect from \language\l at english 
-\l at UKenglish = a dialect from \language\l at english 
 \l at canadian = a dialect from \language\l at american 
 \l at australian = a dialect from \language\l at british 
 \l at newzealand = a dialect from \language\l at british 
 ))
-(/usr/share/texmf-texlive/tex/latex/psnfss/times.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/psnfss/times.sty
 Package: times 2005/04/12 PSNFSS-v9.2a (SPQR) 
 ) (./fncychap.sty
 Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters)
@@ -282,8 +280,7 @@ Package: fncychap 2007/07/30 v1.34 LaTeX package (Revised chapters)
 \pxx=\skip49
 \c at AlphaCnt=\count89
 \c at AlphaDecCnt=\count90
-)
-(/usr/share/texmf-texlive/tex/latex/tools/longtable.sty
+) (/usr/local/texlive/2013/texmf-dist/tex/latex/tools/longtable.sty
 Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
 \LTleft=\skip50
 \LTright=\skip51
@@ -300,10 +297,10 @@ Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
 \c at LT@tables=\count94
 \c at LT@chunks=\count95
 \LT at p@ftn=\toks16
-) (./sphinx.sty
+)
+(./sphinx.sty
 Package: sphinx 2010/01/15 LaTeX package (Sphinx markup)
-
-(/usr/share/texmf-texlive/tex/latex/base/textcomp.sty
+ (/usr/local/texlive/2013/texmf-dist/tex/latex/base/textcomp.sty
 Package: textcomp 2005/09/27 v1.99g Standard LaTeX package
 Package textcomp Info: Sub-encoding information:
 (textcomp)               5 = only ISO-Adobe without \textcurrency
@@ -318,12 +315,12 @@ Package textcomp Info: Sub-encoding information:
 (textcomp)             See the documentation for details.
 Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71.
 
-(/usr/share/texmf-texlive/tex/latex/base/ts1enc.def
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/ts1enc.def
 File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file
 Now handling font encoding TS1 ...
 ... processing UTF-8 mapping file for font encoding TS1
 
-(/usr/share/texmf-texlive/tex/latex/base/ts1enc.dfu
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/ts1enc.dfu
 File: ts1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
    defining Unicode char U+00A2 (decimal 162)
    defining Unicode char U+00A3 (decimal 163)
@@ -427,24 +424,38 @@ Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307.
 Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308.
 Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309.
 Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310.
-Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311.
-Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312.
-Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313.
-Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314.
-Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315.
-Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316.
-Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317.
-Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318.
-Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319.
-Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320.
-Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321.
-Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322.
-Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323.
-Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324.
-Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325.
-Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326.
+Package textcomp Info: Setting lmr sub-encoding to TS1/0 on input line 311.
+Package textcomp Info: Setting lmdh sub-encoding to TS1/0 on input line 312.
+Package textcomp Info: Setting lmss sub-encoding to TS1/0 on input line 313.
+Package textcomp Info: Setting lmssq sub-encoding to TS1/0 on input line 314.
+Package textcomp Info: Setting lmvtt sub-encoding to TS1/0 on input line 315.
+Package textcomp Info: Setting qhv sub-encoding to TS1/0 on input line 316.
+Package textcomp Info: Setting qag sub-encoding to TS1/0 on input line 317.
+Package textcomp Info: Setting qbk sub-encoding to TS1/0 on input line 318.
+Package textcomp Info: Setting qcr sub-encoding to TS1/0 on input line 319.
+Package textcomp Info: Setting qcs sub-encoding to TS1/0 on input line 320.
+Package textcomp Info: Setting qpl sub-encoding to TS1/0 on input line 321.
+Package textcomp Info: Setting qtm sub-encoding to TS1/0 on input line 322.
+Package textcomp Info: Setting qzc sub-encoding to TS1/0 on input line 323.
+Package textcomp Info: Setting qhvc sub-encoding to TS1/0 on input line 324.
+Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 325.
+Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 326.
+Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 327.
+Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 328.
+Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 329.
+Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 330.
+Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 331.
+Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 332.
+Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 333.
+Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 334.
+Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 335.
+Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 336.
+Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 337.
+Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 338.
+Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 339.
+Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 340.
 )
-(/usr/share/texmf-texlive/tex/latex/fancyhdr/fancyhdr.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
 \fancy at headwidth=\skip54
 \f at ncyO@elh=\skip55
 \f at ncyO@erh=\skip56
@@ -455,10 +466,10 @@ Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326.
 \f at ncyO@olf=\skip61
 \f at ncyO@orf=\skip62
 )
-(/usr/share/texmf-texlive/tex/latex/fancybox/fancybox.sty
-Package: fancybox 2000/09/19 1.3
+(/usr/local/texlive/2013/texmf-dist/tex/latex/fancybox/fancybox.sty
+Package: fancybox 2010/05/15 1.4
 
-Style option: `fancybox' v1.3 <2000/09/19> (tvz)
+Style option: `fancybox' v1.4 <2010/05/15> (tvz)
 \@fancybox=\box30
 \shadowsize=\dimen105
 \@Sbox=\box31
@@ -468,8 +479,8 @@ Style option: `fancybox' v1.3 <2000/09/19> (tvz)
 \EndVerbatimTokens=\toks20
 \Verbatim at Outfile=\write3
 \Verbatim at Infile=\read1
-) (/usr/share/texmf-texlive/tex/latex/titlesec/titlesec.sty
-Package: titlesec 2007/08/12 v2.8 Sectioning titles
+) (/usr/local/texlive/2013/texmf-dist/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2011/12/15 v2.10.0 Sectioning titles
 \ttl at box=\box32
 \beforetitleunit=\skip63
 \aftertitleunit=\skip64
@@ -479,10 +490,10 @@ Package: titlesec 2007/08/12 v2.8 Sectioning titles
 \titlewidth=\dimen108
 \titlewidthlast=\dimen109
 \titlewidthfirst=\dimen110
-) (./tabulary.sty
+)
+(./tabulary.sty
 Package: tabulary 2007/10/02 v0.9 tabulary package (DPC)
-
-(/usr/share/texmf-texlive/tex/latex/tools/array.sty
+ (/usr/local/texlive/2013/texmf-dist/tex/latex/tools/array.sty
 Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
 \col at sep=\dimen111
 \extrarowheight=\dimen112
@@ -495,42 +506,41 @@ Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
 \tymin=\dimen114
 \tymax=\dimen115
 \TY at tablewidth=\dimen116
-)
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
-Package: amsmath 2000/07/18 v2.13 AMS math features
+) (/usr/local/texlive/2013/texmf-dist/tex/latex/amsmath/amsmath.sty
+Package: amsmath 2013/01/14 v2.14 AMS math features
 \@mathmargin=\skip67
 
 For additional information on amsmath, use the `?' option.
-(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/amsmath/amstext.sty
 Package: amstext 2000/06/29 v2.01
 
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/amsmath/amsgen.sty
 File: amsgen.sty 1999/11/30 v2.0
 \@emptytoks=\toks23
 \ex@=\dimen117
 ))
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/amsmath/amsbsy.sty
 Package: amsbsy 1999/11/29 v1.2d
 \pmbraise@=\dimen118
 )
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/amsmath/amsopn.sty
 Package: amsopn 1999/12/14 v2.01 operator names
 )
 \inf at bad=\count97
-LaTeX Info: Redefining \frac on input line 211.
+LaTeX Info: Redefining \frac on input line 210.
 \uproot@=\count98
 \leftroot@=\count99
-LaTeX Info: Redefining \overline on input line 307.
+LaTeX Info: Redefining \overline on input line 306.
 \classnum@=\count100
 \DOTSCASE@=\count101
-LaTeX Info: Redefining \ldots on input line 379.
-LaTeX Info: Redefining \dots on input line 382.
-LaTeX Info: Redefining \cdots on input line 467.
+LaTeX Info: Redefining \ldots on input line 378.
+LaTeX Info: Redefining \dots on input line 381.
+LaTeX Info: Redefining \cdots on input line 466.
 \Mathstrutbox@=\box33
 \strutbox@=\box34
 \big at size=\dimen119
-LaTeX Font Info:    Redeclaring font encoding OML on input line 567.
-LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
+LaTeX Font Info:    Redeclaring font encoding OML on input line 566.
+LaTeX Font Info:    Redeclaring font encoding OMS on input line 567.
 \macc at depth=\count102
 \c at MaxMatrixCols=\count103
 \dotsspace@=\muskip10
@@ -551,39 +561,48 @@ LaTeX Font Info:    Redeclaring font encoding OMS on input line 568.
 \multlinegap=\skip68
 \multlinetaggap=\skip69
 \mathdisplay at stack=\toks27
-LaTeX Info: Redefining \[ on input line 2666.
-LaTeX Info: Redefining \] on input line 2667.
+LaTeX Info: Redefining \[ on input line 2665.
+LaTeX Info: Redefining \] on input line 2666.
 )
-(/usr/share/texmf-texlive/tex/latex/base/makeidx.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/makeidx.sty
 Package: makeidx 2000/03/29 v1.0m Standard LaTeX package
 )
-(/usr/share/texmf-texlive/tex/latex/ltxmisc/framed.sty
-Package: framed 2007/10/04 v 0.95: framed or shaded text with page breaks
+(/usr/local/texlive/2013/texmf-dist/tex/latex/framed/framed.sty
+Package: framed 2011/10/22 v 0.96: framed or shaded text with page breaks
+\OuterFrameSep=\skip70
 \fb at frw=\dimen126
 \fb at frh=\dimen127
 \FrameRule=\dimen128
 \FrameSep=\dimen129
 )
-(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/base/ifthen.sty
 Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
 )
-(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/color.sty
 Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
 
-(/etc/texmf/tex/latex/config/color.cfg
+(/usr/local/texlive/2013/texmf-dist/tex/latex/latexconfig/color.cfg
 File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
 )
 Package color Info: Driver file: pdftex.def on input line 130.
 
-(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def
-File: pdftex.def 2010/03/12 v0.04p Graphics/color for pdfTeX
+(/usr/local/texlive/2013/texmf-dist/tex/latex/pdftex-def/pdftex.def
+File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
+
+(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
+)
+(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
+)
 \Gread at gobject=\count109
 ))
-(/usr/share/texmf-texlive/tex/latex/fancyvrb/fancyvrb.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
 Package: fancyvrb 2008/02/07
 
 Style option: `fancyvrb' v2.7a, with DG/SPQR fixes, and firstline=lastline fix 
-<2008/02/07> (tvz) (/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty
+<2008/02/07> (tvz)
+(/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/keyval.sty
 Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \KV at toks@=\toks28
 )
@@ -594,16 +613,15 @@ Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
 \FV at StepNumber=\count112
 \FV at OutFile=\write4
 )
-(/usr/share/texmf-texlive/tex/latex/ltxmisc/threeparttable.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/threeparttable/threeparttable.sty
 Package: threeparttable 2003/06/13  v 3.0
 \@tempboxb=\box36
-)
-(/usr/share/texmf-texlive/tex/latex/mdwtools/footnote.sty
+) (/usr/local/texlive/2013/texmf-dist/tex/latex/mdwtools/footnote.sty
 Package: footnote 1997/01/28 1.13 Save footnotes around boxes
 \fn at notes=\box37
 \fn at width=\dimen130
 )
-(/usr/share/texmf-texlive/tex/latex/wrapfig/wrapfig.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/wrapfig/wrapfig.sty
 \wrapoverhang=\dimen131
 \WF at size=\dimen132
 \c at WF@wrappedlines=\count113
@@ -611,157 +629,160 @@ Package: footnote 1997/01/28 1.13 Save footnotes around boxes
 \WF at everypar=\toks29
 Package: wrapfig 2003/01/31  v 3.6
 )
-(/usr/share/texmf-texlive/tex/latex/ltxmisc/parskip.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/parskip/parskip.sty
 Package: parskip 2001/04/09 non-zero parskip adjustments
 )
-(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/graphicx.sty
 Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
 
-(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/graphics.sty
 Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
 
-(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty
+(/usr/local/texlive/2013/texmf-dist/tex/latex/graphics/trig.sty
 Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
 )
-(/etc/texmf/tex/latex/config/graphics.cfg
-File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live
+(/usr/local/texlive/2013/texmf-dist/tex/latex/latexconfig/graphics.cfg
+File: graphics.cfg 2010/04/23 v1.9 graphics configuration of TeX Live
 )
 Package graphics Info: Driver file: pdftex.def on input line 91.
 )
 \Gin at req@height=\dimen133
 \Gin at req@width=\dimen134
 )
-(/usr/share/texmf-texlive/tex/plain/misc/pdfcolor.tex)
-\distancetoright=\skip70
-\py at argswidth=\skip71
-\py at noticelength=\skip72
-\lineblockindentation=\skip73
+(/usr/local/texlive/2013/texmf-dist/tex/plain/misc/pdfcolor.tex)
+\distancetoright=\skip71
+\py at argswidth=\skip72
+\py at noticelength=\skip73
+\lineblockindentation=\skip74
 \image at box=\box39
 \image at width=\dimen135
 
-(/usr/share/texmf-texlive/tex/latex/hyperref/hyperref.sty
-Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX
+(/usr/local/texlive/2013/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2012/11/06 v6.83m Hypertext links for LaTeX
 
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty
-Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
-Package ifpdf Info: pdfTeX in pdf mode detected.
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty
-Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
+(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2012/05/28 v1.13 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2012/05/28 v1.13 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2012/05/28 v1.13 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO)
 Package ifvtex Info: VTeX not detected.
+Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO)
+Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
+Package ifpdf Info: pdfTeX in PDF mode is detected.
+Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
+(etexcmds)             that some package has redefined \expanded.
+(etexcmds)             In the latter case, load this package earlier.
+Package: kvsetkeys 2012/04/25 v1.16 Key value parser (HO)
+Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
+Package: pdftexcmds 2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf at primitive is available.
+Package pdftexcmds Info: \pdf at ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2011/11/25 v1.13 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2012/04/08 v1.3 Expandable calculations on big integers (HO
 )
-(/usr/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty
-Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
+Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO)
+Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
+Package: hopatch 2012/05/28 v1.2 Wrapper for package hooks (HO)
+Package: xcolor-patch 2011/01/30 xcolor patch
+Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2011/10/05 v1.16 At begin shipout hook (HO)
+Package: refcount 2011/10/16 v3.4 Data extraction from label references (HO)
+Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO)
+)
+(/usr/local/texlive/2013/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+(/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2011/03/04 v1.3 Hooks for auxiliary files (HO)
+)
+(/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2011/06/30 v3.11 Key value format for package options (HO)
 )
-(/usr/share/texmf-texlive/tex/latex/oberdiek/hycolor.sty
-Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H
-O)
-
-(/usr/share/texmf-texlive/tex/latex/oberdiek/xcolor-patch.sty
-Package: xcolor-patch 2009/10/02 xcolor patch
-))
 \@linkdim=\dimen136
 \Hy at linkcounter=\count114
 \Hy at pagecounter=\count115
 
-(/usr/share/texmf-texlive/tex/latex/hyperref/pd1enc.def
-File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO)
+(/usr/local/texlive/2013/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2012/11/06 v6.83m Hyperref: PDFDocEncoding definition (HO)
 Now handling font encoding PD1 ...
 ... no UTF-8 mapping file for font encoding PD1
 )
-(/usr/share/texmf-texlive/tex/generic/oberdiek/etexcmds.sty
-Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO)
+\Hy at SavedSpaceFactor=\count116
 
-(/usr/share/texmf-texlive/tex/generic/oberdiek/infwarerr.sty
-Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO)
-)
-Package etexcmds Info: Could not find \expanded.
-(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
-(etexcmds)             that some package has redefined \expanded.
-(etexcmds)             In the latter case, load this package earlier.
-)
-(/usr/share/texmf-texlive/tex/latex/latexconfig/hyperref.cfg
+(/usr/local/texlive/2013/texmf-dist/tex/latex/latexconfig/hyperref.cfg
 File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
 )
-(/usr/share/texmf-texlive/tex/latex/oberdiek/kvoptions.sty
-Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/kvsetkeys.sty
-Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor
-t (HO)
-))
-Package hyperref Info: Option `colorlinks' set `true' on input line 2864.
-Package hyperref Info: Option `breaklinks' set `true' on input line 2864.
-Package hyperref Info: Hyper figures OFF on input line 2975.
-Package hyperref Info: Link nesting OFF on input line 2980.
-Package hyperref Info: Hyper index ON on input line 2983.
-Package hyperref Info: Plain pages OFF on input line 2990.
-Package hyperref Info: Backreferencing OFF on input line 2995.
-
-Implicit mode ON; LaTeX internals redefined
-Package hyperref Info: Bookmarks ON on input line 3191.
-(/usr/share/texmf-texlive/tex/latex/ltxmisc/url.sty
+Package hyperref Info: Option `colorlinks' set `true' on input line 4319.
+Package hyperref Info: Option `breaklinks' set `true' on input line 4319.
+Package hyperref Info: Hyper figures OFF on input line 4443.
+Package hyperref Info: Link nesting OFF on input line 4448.
+Package hyperref Info: Hyper index ON on input line 4451.
+Package hyperref Info: Plain pages OFF on input line 4458.
+Package hyperref Info: Backreferencing OFF on input line 4463.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4688.
+\c at Hy@tempcnt=\count117
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/url/url.sty
 \Urlmuskip=\muskip11
 Package: url 2006/04/12  ver 3.3  Verb mode for urls, etc.
 )
-LaTeX Info: Redefining \url on input line 3428.
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/bitset.sty
-Package: bitset 2007/09/28 v1.0 Data type bit set (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/intcalc.sty
-Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO)
+LaTeX Info: Redefining \url on input line 5041.
+\XeTeXLinkMargin=\dimen137
+\Fld at menulength=\count118
+\Field at Width=\dimen138
+\Fld at charsize=\dimen139
+Package hyperref Info: Hyper figures OFF on input line 6295.
+Package hyperref Info: Link nesting OFF on input line 6300.
+Package hyperref Info: Hyper index ON on input line 6303.
+Package hyperref Info: backreferencing OFF on input line 6310.
+Package hyperref Info: Link coloring ON on input line 6313.
+Package hyperref Info: Link coloring with OCG OFF on input line 6320.
+Package hyperref Info: PDF/A mode OFF on input line 6325.
+LaTeX Info: Redefining \ref on input line 6365.
+LaTeX Info: Redefining \pageref on input line 6369.
+\Hy at abspage=\count119
+\c at Item=\count120
+\c at Hfootnote=\count121
 )
-(/usr/share/texmf-texlive/tex/generic/oberdiek/bigintcalc.sty
-Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO)
 
-(/usr/share/texmf-texlive/tex/generic/oberdiek/pdftexcmds.sty
-Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions
- (HO)
+Package hyperref Message: Driver (autodetected): hpdftex.
 
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifluatex.sty
-Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ltxcmds.sty
-Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO
-)
-)
-Package pdftexcmds Info: LuaTeX not detected.
-Package pdftexcmds Info: \pdf at primitive is available.
-Package pdftexcmds Info: \pdf at ifprimitive is available.
-)))
-\Fld at menulength=\count116
-\Field at Width=\dimen137
-\Fld at charsize=\dimen138
-\Field at toks=\toks30
-Package hyperref Info: Hyper figures OFF on input line 4377.
-Package hyperref Info: Link nesting OFF on input line 4382.
-Package hyperref Info: Hyper index ON on input line 4385.
-Package hyperref Info: backreferencing OFF on input line 4392.
-Package hyperref Info: Link coloring ON on input line 4395.
-Package hyperref Info: Link coloring with OCG OFF on input line 4402.
-Package hyperref Info: PDF/A mode OFF on input line 4407.
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/atbegshi.sty
-Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO)
-)
-\Hy at abspage=\count117
-\c at Item=\count118
-\c at Hfootnote=\count119
+(/usr/local/texlive/2013/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2012/11/06 v6.83m Hyperref driver for pdfTeX
+\Fld at listcount=\count122
+\c at bookmark@seq at number=\count123
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
 )
-*hyperref using default driver hpdftex*
-(/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
-File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX
-\Fld at listcount=\count120
+\Hy at SectionHShift=\skip75
 )
-(/usr/share/texmf-texlive/tex/latex/oberdiek/hypcap.sty
-Package: hypcap 2008/09/08 v1.10 Adjusting anchors of captions (HO)
+(/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/hypcap.sty
+Package: hypcap 2011/02/16 v1.11 Adjusting the anchors of captions (HO)
 )
-\DUlineblockindent=\skip74
+\DUlineblockindent=\skip76
 )
-(/usr/share/texmf-texlive/tex/latex/multirow/multirow.sty
-\bigstrutjot=\dimen139
+(/usr/local/texlive/2013/texmf-dist/tex/latex/multirow/multirow.sty
+\bigstrutjot=\dimen140
 )
 \@indexfile=\write5
 \openout5 = `xmds2.idx'.
@@ -771,98 +792,120 @@ Writing index file xmds2.idx
 (./xmds2.aux)
 \openout1 = `xmds2.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 113.
-LaTeX Font Info:    Try loading font information for TS1+cmr on input line 113.
-
- (/usr/share/texmf-texlive/tex/latex/base/ts1cmr.fd
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 116.
+LaTeX Font Info:    Try loading font information for TS1+cmr on input line 116.
+
+ (/usr/local/texlive/2013/texmf-dist/tex/latex/base/ts1cmr.fd
 File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
 )
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 113.
-LaTeX Font Info:    ... okay on input line 113.
-LaTeX Font Info:    Try loading font information for T1+ptm on input line 113.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 116.
+LaTeX Font Info:    ... okay on input line 116.
+LaTeX Font Info:    Try loading font information for T1+ptm on input line 116.
 
-(/usr/share/texmf-texlive/tex/latex/psnfss/t1ptm.fd
+(/usr/local/texlive/2013/texmf-dist/tex/latex/psnfss/t1ptm.fd
 File: t1ptm.fd 2001/06/04 font definitions for T1/ptm.
 )
-(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii
+(/usr/local/texlive/2013/texmf-dist/tex/context/base/supp-pdf.mkii
 [Loading MPS to PDF converter (version 2006.09.02).]
-\scratchcounter=\count121
-\scratchdimen=\dimen140
+\scratchcounter=\count124
+\scratchdimen=\dimen141
 \scratchbox=\box40
-\nofMPsegments=\count122
-\nofMParguments=\count123
-\everyMPshowfont=\toks31
-\MPscratchCnt=\count124
-\MPscratchDim=\dimen141
-\MPnumerator=\count125
-\everyMPtoPDFconversion=\toks32
+\nofMPsegments=\count125
+\nofMParguments=\count126
+\everyMPshowfont=\toks30
+\MPscratchCnt=\count127
+\MPscratchDim=\dimen142
+\MPnumerator=\count128
+\makeMPintoPDFobject=\count129
+\everyMPtoPDFconversion=\toks31
+) (/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
+Package: epstopdf-base 2010/02/09 v2.5 Base part for package epstopdf
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/oberdiek/grfext.sty
+Package: grfext 2010/08/19 v1.1 Manage graphics extensions (HO)
 )
-Package hyperref Info: Link coloring ON on input line 113.
- (/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
-Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section
+Package grfext Info: Graphics extension search list:
+(grfext)             [.png,.pdf,.jpg,.mps,.jpeg,.jbig2,.jb2,.PNG,.PDF,.JPG,.JPE
+G,.JBIG2,.JB2,.eps]
+(grfext)             \AppendGraphicsExtensions on input line 452.
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
+File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
+e
+))
+\AtBeginShipoutBox=\box41
+Package hyperref Info: Link coloring ON on input line 116.
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2012/10/27 v2.43 Cross-referencing by name of section
 
-(/usr/share/texmf-texlive/tex/latex/oberdiek/refcount.sty
-Package: refcount 2008/08/11 v3.1 Data extraction from references (HO)
+(/usr/local/texlive/2013/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
 )
-\c at section@level=\count126
+\c at section@level=\count130
 )
-LaTeX Info: Redefining \ref on input line 113.
-LaTeX Info: Redefining \pageref on input line 113.
- (./xmds2.out)
-(./xmds2.out)
+LaTeX Info: Redefining \ref on input line 116.
+LaTeX Info: Redefining \pageref on input line 116.
+LaTeX Info: Redefining \nameref on input line 116.
+
+(./xmds2.out) (./xmds2.out)
 \@outlinefile=\write6
 \openout6 = `xmds2.out'.
 
-\AtBeginShipoutBox=\box41
 
-Underfull \hbox (badness 10000) in paragraph at lines 116--116
+Underfull \hbox (badness 10000) in paragraph at lines 119--119
 
  []
 
-<xmds_logo.pdf, id=255, 183.084pt x 183.084pt>
+<xmds_logo.pdf, id=261, 183.084pt x 183.084pt>
 File: xmds_logo.pdf Graphic file (type pdf)
  <use xmds_logo.pdf>
+Package pdftex.def Info: xmds_logo.pdf used on input line 119.
+(pdftex.def)             Requested size: 183.08354pt x 183.08354pt.
 File: xmds_logo.pdf Graphic file (type pdf)
 
 <use xmds_logo.pdf>
-LaTeX Font Info:    Try loading font information for T1+phv on input line 116.
- (/usr/share/texmf-texlive/tex/latex/psnfss/t1phv.fd
+Package pdftex.def Info: xmds_logo.pdf used on input line 119.
+(pdftex.def)             Requested size: 183.08354pt x 183.08354pt.
+LaTeX Font Info:    Try loading font information for T1+phv on input line 119.
+
+(/usr/local/texlive/2013/texmf-dist/tex/latex/psnfss/t1phv.fd
 File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv.
 )
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <24.88> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 116.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 119.
 LaTeX Font Info:    Font shape `T1/phv/m/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/m/sl' tried instead on input line 116.
+(Font)              Font shape `T1/phv/m/sl' tried instead on input line 119.
 LaTeX Font Info:    Font shape `T1/phv/bx/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/it' tried instead on input line 116.
+(Font)              Font shape `T1/phv/b/it' tried instead on input line 119.
 LaTeX Font Info:    Font shape `T1/phv/b/it' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/sl' tried instead on input line 116.
+(Font)              Font shape `T1/phv/b/sl' tried instead on input line 119.
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <17.28> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 116.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 119.
+ [1
 
-[1
-
-{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map} <./xmds_logo.pdf>]
+{/usr/local/texlive/2013/texmf-var/fonts/map/pdftex/updmap/pdftex.map} <./xmds_
+logo.pdf>]
 [2
 
 ] (./xmds2.toc
 LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <10> not available
 (Font)              Font shape `T1/ptm/b/n' tried instead on input line 2.
 LaTeX Font Info:    Try loading font information for T1+pcr on input line 85.
- (/usr/share/texmf-texlive/tex/latex/psnfss/t1pcr.fd
+ (/usr/local/texlive/2013/texmf-dist/tex/latex/psnfss/t1pcr.fd
 File: t1pcr.fd 2001/06/04 font definitions for T1/pcr.
 )
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <10> not available
@@ -882,70 +925,70 @@ pdfTeX warning (ext4): destination with the same identifier (name{page.ii}) has
  been already used, duplicate ignored
 <to be read again> 
                    \relax 
-l.116 \tableofcontents
+l.119 \tableofcontents
                        [2]
 Chapter 1.
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <14.4> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 121.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 124.
 LaTeX Font Info:    Font shape `T1/ptm/bx/n' in size <8> not available
-(Font)              Font shape `T1/ptm/b/n' tried instead on input line 139.
+(Font)              Font shape `T1/ptm/b/n' tried instead on input line 142.
 [1
 
 
 ] [2]
 Chapter 2.
 
-Package tabulary Warning: No suitable columns! on input line 181.
+Package tabulary Warning: No suitable columns! on input line 188.
 
 [3
 
 ]
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <12> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 218.
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 227.
  [4]
-LaTeX Font Info:    Try loading font information for TS1+ptm on input line 265.
+LaTeX Font Info:    Try loading font information for TS1+ptm on input line 274.
 
- (/usr/share/texmf-texlive/tex/latex/psnfss/ts1ptm.fd
+ (/usr/local/texlive/2013/texmf-dist/tex/latex/psnfss/ts1ptm.fd
 File: ts1ptm.fd 2001/06/04 font definitions for TS1/ptm.
 )
-Underfull \hbox (badness 10000) in paragraph at lines 309--312
+Underfull \hbox (badness 10000) in paragraph at lines 318--321
 []\T1/ptm/m/n/10 First cre-ate the path ~/lib/python2.5/site-packages (as-sum-i
 ng you in-stalled
  []
 
 [5]
-Underfull \hbox (badness 10000) in paragraph at lines 390--392
+Underfull \hbox (badness 10000) in paragraph at lines 399--401
 []\T1/ptm/m/n/10 It can be in-stalled with \T1/pcr/m/n/10 sudo
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 404--406
+Underfull \hbox (badness 10000) in paragraph at lines 413--415
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 412--414
+Underfull \hbox (badness 10000) in paragraph at lines 421--423
 []\T1/ptm/m/n/10 h5py
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 424--426
+Underfull \hbox (badness 10000) in paragraph at lines 433--435
 []\T1/pcr/m/n/10 sudo
  []
 
 
-Underfull \hbox (badness 5563) in paragraph at lines 439--442
+Underfull \hbox (badness 5563) in paragraph at lines 448--451
 []\T1/ptm/m/n/10 If you have `numpy' in-stalled, test XMDS2 by typ-ing
  []
 
-
-Underfull \hbox (badness 10000) in paragraph at lines 454--455
+[6]
+Underfull \hbox (badness 10000) in paragraph at lines 463--464
 []\T1/ptm/m/n/10 The gen-er-ated html doc-u-men-ta-tion will then be found at x
 mds-
  []
 
-[6]
-Underfull \hbox (badness 10000) in paragraph at lines 467--468
+
+Underfull \hbox (badness 10000) in paragraph at lines 476--477
 []\T1/pcr/m/n/10 xmds2 --reconfigure --include-path /apps/fftw3/include
  []
 
@@ -954,154 +997,222 @@ Underfull \hbox (badness 10000) in paragraph at lines 467--468
 ]
 Chapter 3.
 LaTeX Font Info:    Font shape `T1/pcr/m/it' in size <9> not available
-(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 498.
+(Font)              Font shape `T1/pcr/m/sl' tried instead on input line 507.
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <9> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 499.
-[9] [10] <lorenz.pdf, id=497, 681.01025pt x 300.322pt>
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 508.
+[9] [10] <lorenz.pdf, id=505, 681.01025pt x 300.322pt>
 File: lorenz.pdf Graphic file (type pdf)
  <use lorenz.pdf>
+Package pdftex.def Info: lorenz.pdf used on input line 644.
+(pdftex.def)             Requested size: 681.00859pt x 300.32127pt.
 File: lorenz.pdf Graphic file (type pdf)
 
-<use lorenz.pdf> [11 <./lorenz.pdf>] [12] [13] [14]
+<use lorenz.pdf>
+Package pdftex.def Info: lorenz.pdf used on input line 644.
+(pdftex.def)             Requested size: 452.96788pt x 199.75745pt.
+ [11 <./lorenz.pdf>] [12] [13] [14]
 Chapter 4.
 [15
 
 ]
-Underfull \vbox (badness 10000) detected at line 883
+Underfull \vbox (badness 10000) detected at line 892
  []
 
 
-Underfull \vbox (badness 10000) detected at line 883
+Underfull \vbox (badness 10000) detected at line 892
  []
 
-[16] [17] [18] [19] [20] <kuboSingle.pdf, id=565, 569.32701pt x 349.00288pt>
+[16] [17] [18] [19] [20] <kuboSingle.pdf, id=573, 569.32701pt x 349.00288pt>
 File: kuboSingle.pdf Graphic file (type pdf)
 
 <use kuboSingle.pdf>
+Package pdftex.def Info: kuboSingle.pdf used on input line 1110.
+(pdftex.def)             Requested size: 569.3256pt x 349.00203pt.
 File: kuboSingle.pdf Graphic file (type pdf)
  <use kuboSingle.pdf>
-<kubo10000.pdf, id=566, 560.49402pt x 346.36702pt>
+Package pdftex.def Info: kuboSingle.pdf used on input line 1110.
+(pdftex.def)             Requested size: 452.96788pt x 277.67963pt.
+
+<kubo10000.pdf, id=574, 560.49402pt x 346.36702pt>
 File: kubo10000.pdf Graphic file (type pdf)
  <use kubo10000.pdf>
+Package pdftex.def Info: kubo10000.pdf used on input line 1118.
+(pdftex.def)             Requested size: 560.49265pt x 346.36617pt.
 File: kubo10000.pdf Graphic file (type pdf)
 
-<use kubo10000.pdf> [21] [22 <./kuboSingle.pdf> <./kubo10000.pdf>] [23]
-[24] <fibreSingle.pdf, id=600, 639.99098pt x 481.84819pt>
+<use kubo10000.pdf>
+Package pdftex.def Info: kubo10000.pdf used on input line 1118.
+(pdftex.def)             Requested size: 452.96788pt x 279.9268pt.
+ [21] [22 <./kuboSingle.pdf> <./kubo10000.pdf>] [23]
+[24] <fibreSingle.pdf, id=609, 639.99098pt x 481.84819pt>
 File: fibreSingle.pdf Graphic file (type pdf)
 
 <use fibreSingle.pdf>
+Package pdftex.def Info: fibreSingle.pdf used on input line 1263.
+(pdftex.def)             Requested size: 639.98943pt x 481.84702pt.
 File: fibreSingle.pdf Graphic file (type pdf)
  <use fibreSingle.pdf>
-<fibre1024.pdf, id=601, 639.99098pt x 482.46848pt>
+Package pdftex.def Info: fibreSingle.pdf used on input line 1263.
+(pdftex.def)             Requested size: 452.96788pt x 341.04851pt.
+
+<fibre1024.pdf, id=610, 639.99098pt x 482.46848pt>
 File: fibre1024.pdf Graphic file (type pdf)
  <use fibre1024.pdf>
+Package pdftex.def Info: fibre1024.pdf used on input line 1271.
+(pdftex.def)             Requested size: 639.98943pt x 482.4673pt.
 File: fibre1024.pdf Graphic file (type pdf)
 
-<use fibre1024.pdf> [25 <./fibreSingle.pdf>] [26 <./fibre1024.pdf>] [27]
+<use fibre1024.pdf>
+Package pdftex.def Info: fibre1024.pdf used on input line 1271.
+(pdftex.def)             Requested size: 452.96788pt x 341.48755pt.
+ [25 <./fibreSingle.pdf>] [26 <./fibre1024.pdf>] [27]
 [28]
-Underfull \vbox (badness 10000) detected at line 1468
+Underfull \vbox (badness 10000) detected at line 1477
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1468
+Underfull \vbox (badness 10000) detected at line 1477
  []
 
 [29] [30] [31]
 LaTeX Font Info:    Font shape `T1/pcr/bx/it' in size <9> not available
-(Font)              Font shape `T1/pcr/b/it' tried instead on input line 1655.
+(Font)              Font shape `T1/pcr/b/it' tried instead on input line 1664.
 LaTeX Font Info:    Font shape `T1/pcr/b/it' in size <9> not available
-(Font)              Font shape `T1/pcr/b/sl' tried instead on input line 1655.
+(Font)              Font shape `T1/pcr/b/sl' tried instead on input line 1664.
  [32]
-Underfull \vbox (badness 10000) detected at line 1716
+Underfull \vbox (badness 10000) detected at line 1725
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1716
+Underfull \vbox (badness 10000) detected at line 1725
  []
 
-[33] [34] <groundstateU2.pdf, id=669, 467.32591pt x 333.245pt>
+[33] [34] <groundstateU2.pdf, id=678, 467.32591pt x 333.245pt>
 File: groundstateU2.pdf Graphic file (type pdf)
 
 <use groundstateU2.pdf>
+Package pdftex.def Info: groundstateU2.pdf used on input line 1803.
+(pdftex.def)             Requested size: 467.32477pt x 333.24417pt.
 File: groundstateU2.pdf Graphic file (type pdf)
  <use groundstateU2.pdf>
-<groundstateU20.pdf, id=670, 467.32591pt x 333.245pt>
+Package pdftex.def Info: groundstateU2.pdf used on input line 1803.
+(pdftex.def)             Requested size: 452.96788pt x 323.01334pt.
+
+<groundstateU20.pdf, id=679, 467.32591pt x 333.245pt>
 File: groundstateU20.pdf Graphic file (type pdf)
  <use groundstateU20.pdf>
+Package pdftex.def Info: groundstateU20.pdf used on input line 1809.
+(pdftex.def)             Requested size: 467.32477pt x 333.24417pt.
 File: groundstateU20.pdf Graphic file (type pdf)
 
-<use groundstateU20.pdf> [35] [36 <./groundstateU2.pdf>] [37 <./groundstateU20.
-pdf>]
-Underfull \vbox (badness 10000) detected at line 1928
+<use groundstateU20.pdf>
+Package pdftex.def Info: groundstateU20.pdf used on input line 1809.
+(pdftex.def)             Requested size: 452.96788pt x 323.01334pt.
+ [35] [36 <./groundstateU2.pdf>] [37 <./groundstateU20.pdf>]
+Underfull \vbox (badness 10000) detected at line 1937
  []
 
 
-Underfull \vbox (badness 10000) detected at line 1928
+Underfull \vbox (badness 10000) detected at line 1937
  []
 
 [38] [39] [40] [41] [42]
 Chapter 5.
 
-Overfull \hbox (116.47647pt too wide) in paragraph at lines 2117--2117
+Overfull \hbox (116.47647pt too wide) in paragraph at lines 2126--2126
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 2117--2117
+Underfull \hbox (badness 10000) in paragraph at lines 2126--2126
 
  []
 
 [43
 
 ] [44]
-Underfull \vbox (badness 10000) detected at line 2336
+Underfull \vbox (badness 10000) detected at line 2345
  []
 
 
-Underfull \vbox (badness 10000) detected at line 2336
+Underfull \vbox (badness 10000) detected at line 2345
  []
 
 [45] [46] [47] [48]
+Underfull \hbox (badness 10000) in paragraph at lines 2524--2525
+[]\T1/ptm/m/n/10 When the \T1/pcr/m/n/10 arguments_test \T1/ptm/m/n/10 ex-e-cut
+able is run, it will cre-ate out-put files named
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 2524--2525
+\T1/pcr/m/n/10 arguments_test.number_7.pulse_shape_gaussian.size_20.0.xsil \T1/
+ptm/m/n/10 and
+ []
+
 LaTeX Font Info:    Font shape `T1/phv/bx/n' in size <9> not available
-(Font)              Font shape `T1/phv/b/n' tried instead on input line 2504.
- [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59]
-[60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73]
-<richardsonExtrapolation.png, id=1140, 523.9575pt x 338.26375pt>
+(Font)              Font shape `T1/phv/b/n' tried instead on input line 2528.
+[49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63]
+[64] [65] [66] [67] [68] [69] [70] [71] [72] [73]
+<richardsonExtrapolation.png, id=1153, 523.9575pt x 338.26375pt>
 File: richardsonExtrapolation.png Graphic file (type png)
 
 <use richardsonExtrapolation.png>
+Package pdftex.def Info: richardsonExtrapolation.png used on input line 3767.
+(pdftex.def)             Requested size: 523.95622pt x 338.26291pt.
 File: richardsonExtrapolation.png Graphic file (type png)
  <use richardsonExtrapolation.png>
-<error_scaling.png, id=1142, 1304.875pt x 978.65625pt>
+Package pdftex.def Info: richardsonExtrapolation.png used on input line 3767.
+(pdftex.def)             Requested size: 452.96788pt x 292.43925pt.
+ [74]
+<error_scaling.png, id=1159, 1304.875pt x 978.65625pt>
 File: error_scaling.png Graphic file (type png)
  <use error_scaling.png>
+Package pdftex.def Info: error_scaling.png used on input line 3783.
+(pdftex.def)             Requested size: 1304.87183pt x 978.65387pt.
 File: error_scaling.png Graphic file (type png)
 
-<use error_scaling.png> [74 <./richardsonExtrapolation.png (PNG copy)>]
-[75 <./error_scaling.png (PNG copy)>] [76
-
-]
+<use error_scaling.png>
+Package pdftex.def Info: error_scaling.png used on input line 3783.
+(pdftex.def)             Requested size: 452.96788pt x 339.7274pt.
+ [75 <./richardsonExtrapolation.png>] [76 <./error_scaling.png (PNG copy)>]
 Chapter 6.
-[77] [78] [79] <FourierTransformEx1.pdf, id=1172, 337.26pt x 261.97874pt>
+[77
+
+] [78] [79] <FourierTransformEx1.pdf, id=1186, 337.26pt x 261.97874pt>
 File: FourierTransformEx1.pdf Graphic file (type pdf)
 
 <use FourierTransformEx1.pdf>
+Package pdftex.def Info: FourierTransformEx1.pdf used on input line 3972.
+(pdftex.def)             Requested size: 337.25917pt x 261.9781pt.
 File: FourierTransformEx1.pdf Graphic file (type pdf)
  <use FourierTransformEx1.pdf>
-<FourierTransformEx2.pdf, id=1173, 515.9275pt x 224.84pt>
+Package pdftex.def Info: FourierTransformEx1.pdf used on input line 3972.
+(pdftex.def)             Requested size: 337.25917pt x 261.9781pt.
+
+<FourierTransformEx2.pdf, id=1187, 515.9275pt x 224.84pt>
 File: FourierTransformEx2.pdf Graphic file (type pdf)
 
 <use FourierTransformEx2.pdf>
+Package pdftex.def Info: FourierTransformEx2.pdf used on input line 3981.
+(pdftex.def)             Requested size: 515.92624pt x 224.83945pt.
 File: FourierTransformEx2.pdf Graphic file (type pdf)
- <use FourierTransformEx2.pdf> [80 <./FourierTransformEx1.pdf>] <FourierTransfo
-rmEx3.pdf, id=1241, 515.9275pt x 255.95625pt>
+ <use FourierTransformEx2.pdf>
+Package pdftex.def Info: FourierTransformEx2.pdf used on input line 3981.
+(pdftex.def)             Requested size: 452.96788pt x 197.40694pt.
+ [80 <./FourierTransformEx1.pdf>] <FourierTransformEx3.pdf, id=1255, 515.9275pt
+ x 255.95625pt>
 File: FourierTransformEx3.pdf Graphic file (type pdf)
 
 <use FourierTransformEx3.pdf>
+Package pdftex.def Info: FourierTransformEx3.pdf used on input line 3992.
+(pdftex.def)             Requested size: 515.92624pt x 255.95561pt.
 File: FourierTransformEx3.pdf Graphic file (type pdf)
  <use FourierTransformEx3.pdf>
+Package pdftex.def Info: FourierTransformEx3.pdf used on input line 3992.
+(pdftex.def)             Requested size: 452.96788pt x 224.72664pt.
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <14.4> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 3974.
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 3998.
  [81 <./FourierTransformEx2.pdf> <./FourierTransformEx3.pdf>] [82]
 Chapter 7.
 [83
@@ -1123,115 +1234,158 @@ Chapter 10.
 ]
 Chapter 11.
 [95]
-Overfull \hbox (32.81522pt too wide) in paragraph at lines 4389--4391
+Overfull \hbox (32.81522pt too wide) in paragraph at lines 4444--4446
 [][][]\T1/ptm/m/n/10 http://docutils.sourceforge.net/docs/user/rst/quickref.htm
 l[][] [][]http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html[][
 ] 
  []
 
-<IntroduceNewElement.png, id=1577, 364.18411pt x 712.7806pt>
+<IntroduceNewElement.png, id=1594, 364.18411pt x 712.7806pt>
 File: IntroduceNewElement.png Graphic file (type png)
 
 <use IntroduceNewElement.png>
+Package pdftex.def Info: IntroduceNewElement.png used on input line 4457.
+(pdftex.def)             Requested size: 364.18321pt x 712.77885pt.
 File: IntroduceNewElement.png Graphic file (type png)
- <use IntroduceNewElement.png> [96] [97]
+ <use IntroduceNewElement.png>
+Package pdftex.def Info: IntroduceNewElement.png used on input line 4457.
+(pdftex.def)             Requested size: 364.18321pt x 712.77885pt.
+ [96] [97]
 Overfull \vbox (47.17236pt too high) has occurred while \output is active []
 
 
-[98 <./IntroduceNewElement.png (PNG copy)>]
-<IntroduceNewIntegrationTechnique.png, id=1590, 243.73412pt x 772.29706pt>
+[98 <./IntroduceNewElement.png>]
+<IntroduceNewIntegrationTechnique.png, id=1607, 243.73412pt x 772.29706pt>
 File: IntroduceNewIntegrationTechnique.png Graphic file (type png)
 
 <use IntroduceNewIntegrationTechnique.png>
+Package pdftex.def Info: IntroduceNewIntegrationTechnique.png used on input lin
+e 4482.
+(pdftex.def)             Requested size: 243.73352pt x 772.29518pt.
 File: IntroduceNewIntegrationTechnique.png Graphic file (type png)
 
 <use IntroduceNewIntegrationTechnique.png>
+Package pdftex.def Info: IntroduceNewIntegrationTechnique.png used on input lin
+e 4482.
+(pdftex.def)             Requested size: 243.73352pt x 772.29518pt.
 LaTeX Font Info:    Font shape `T1/pcr/bx/n' in size <10> not available
-(Font)              Font shape `T1/pcr/b/n' tried instead on input line 4429.
+(Font)              Font shape `T1/pcr/b/n' tried instead on input line 4484.
  [99] [100]
 Overfull \vbox (124.68869pt too high) has occurred while \output is active []
 
 
-[101 <./IntroduceNewIntegrationTechnique.png (PNG copy)>]
-Underfull \hbox (badness 10000) in paragraph at lines 4431--4432
+[101 <./IntroduceNewIntegrationTechnique.png>]
+Underfull \hbox (badness 10000) in paragraph at lines 4486--4487
 []\T1/ptm/m/n/10 Navigate to the \T1/pcr/m/n/10 xpdeint/Segments/Integrators \T
 1/ptm/m/n/10 di-rec-tory. Cre-ate a file called
  []
 
-<Overall_Flowchart.png, id=1604, 323.08942pt x 753.87529pt>
+<Overall_Flowchart.png, id=1621, 323.08942pt x 753.87529pt>
 File: Overall_Flowchart.png Graphic file (type png)
 
 <use Overall_Flowchart.png>
+Package pdftex.def Info: Overall_Flowchart.png used on input line 4523.
+(pdftex.def)             Requested size: 323.08862pt x 753.87344pt.
 File: Overall_Flowchart.png Graphic file (type png)
- <use Overall_Flowchart.png> [102] [103]
+ <use Overall_Flowchart.png>
+Package pdftex.def Info: Overall_Flowchart.png used on input line 4523.
+(pdftex.def)             Requested size: 323.08862pt x 753.87344pt.
+ [102] [103]
 Overfull \vbox (81.02339pt too high) has occurred while \output is active []
 
 
-[104 <./Overall_Flowchart.png (PNG copy)>]
-<Subprocess3_ParsingXMLFile.png, id=1619, 717.03177pt x 1296.60883pt>
+[104 <./Overall_Flowchart.png>]
+<Subprocess3_ParsingXMLFile.png, id=1636, 717.03177pt x 1296.60883pt>
 File: Subprocess3_ParsingXMLFile.png Graphic file (type png)
 
 <use Subprocess3_ParsingXMLFile.png>
+Package pdftex.def Info: Subprocess3_ParsingXMLFile.png used on input line 4530
+.
+(pdftex.def)             Requested size: 717.03001pt x 1296.60567pt.
 File: Subprocess3_ParsingXMLFile.png Graphic file (type png)
  <use Subprocess3_ParsingXMLFile.png>
+Package pdftex.def Info: Subprocess3_ParsingXMLFile.png used on input line 4530
+.
+(pdftex.def)             Requested size: 452.96788pt x 819.12334pt.
+
 [105] [106]
 Overfull \vbox (146.27328pt too high) has occurred while \output is active []
 
 
-[107 <./Subprocess3_ParsingXMLFile.png (PNG copy)>]
-<Subprocess3_4_parseXMLDocument.png, id=1634, 443.53941pt x 1091.1353pt>
+[107 <./Subprocess3_ParsingXMLFile.png>]
+<Subprocess3_4_parseXMLDocument.png, id=1652, 443.53941pt x 1091.1353pt>
 File: Subprocess3_4_parseXMLDocument.png Graphic file (type png)
 
 <use Subprocess3_4_parseXMLDocument.png>
+Package pdftex.def Info: Subprocess3_4_parseXMLDocument.png used on input line 
+4537.
+(pdftex.def)             Requested size: 443.53831pt x 1091.13263pt.
 File: Subprocess3_4_parseXMLDocument.png Graphic file (type png)
 
-<use Subprocess3_4_parseXMLDocument.png> [108] [109]
+<use Subprocess3_4_parseXMLDocument.png>
+Package pdftex.def Info: Subprocess3_4_parseXMLDocument.png used on input line 
+4537.
+(pdftex.def)             Requested size: 443.53831pt x 1091.13263pt.
+ [108] [109]
 Overfull \vbox (432.28258pt too high) has occurred while \output is active []
 
 
-[110 <./Subprocess3_4_parseXMLDocument.png (PNG copy)>]
-<Subprocess3_4_11_ParseTopLvlSeqElements.png, id=1648, 1071.29646pt x 919.67117
+[110 <./Subprocess3_4_parseXMLDocument.png>]
+<Subprocess3_4_11_ParseTopLvlSeqElements.png, id=1666, 1071.29646pt x 919.67117
 pt>
 File: Subprocess3_4_11_ParseTopLvlSeqElements.png Graphic file (type png)
  <use Subprocess3_4_11_ParseTopLvlSeqElements.png>
+Package pdftex.def Info: Subprocess3_4_11_ParseTopLvlSeqElements.png used on in
+put line 4544.
+(pdftex.def)             Requested size: 1071.29385pt x 919.66893pt.
 File: Subprocess3_4_11_ParseTopLvlSeqElements.png Graphic file (type png)
 
 <use Subprocess3_4_11_ParseTopLvlSeqElements.png>
-<Subprocess3_4_11_2_ParseIntegrateElement.png, id=1649, 1016.03117pt x 1358.959
+Package pdftex.def Info: Subprocess3_4_11_ParseTopLvlSeqElements.png used on in
+put line 4544.
+(pdftex.def)             Requested size: 452.96788pt x 388.85538pt.
+
+<Subprocess3_4_11_2_ParseIntegrateElement.png, id=1667, 1016.03117pt x 1358.959
 41pt>
 File: Subprocess3_4_11_2_ParseIntegrateElement.png Graphic file (type png)
  <use Subprocess3_4_11_2_ParseIntegrateElement.png>
+Package pdftex.def Info: Subprocess3_4_11_2_ParseIntegrateElement.png used on i
+nput line 4551.
+(pdftex.def)             Requested size: 1016.0287pt x 1358.9561pt.
 File: Subprocess3_4_11_2_ParseIntegrateElement.png Graphic file (type png)
 
-<use Subprocess3_4_11_2_ParseIntegrateElement.png> [111 <./Subprocess3_4_11_Par
-seTopLvlSeqElements.png (PNG copy)>] [112 <./Subprocess3_4_11_2_ParseIntegrateE
-lement.png (PNG copy)>]
-Overfull \hbox (34.13051pt too wide) in paragraph at lines 4512--4512
+<use Subprocess3_4_11_2_ParseIntegrateElement.png>
+Package pdftex.def Info: Subprocess3_4_11_2_ParseIntegrateElement.png used on i
+nput line 4551.
+(pdftex.def)             Requested size: 452.96788pt x 605.86516pt.
+ [111 <./Subprocess3_4_11_ParseTopLvlSeqElements.png>] [112 <./Subprocess3_4_11
+_2_ParseIntegrateElement.png>]
+Overfull \hbox (34.13051pt too wide) in paragraph at lines 4567--4567
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4512--4512
+Underfull \hbox (badness 10000) in paragraph at lines 4567--4567
 
  []
 
 
-Overfull \hbox (216.03926pt too wide) in paragraph at lines 4527--4527
+Overfull \hbox (216.03926pt too wide) in paragraph at lines 4582--4582
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4527--4527
+Underfull \hbox (badness 10000) in paragraph at lines 4582--4582
 
  []
 
 
-Overfull \hbox (58.00885pt too wide) in paragraph at lines 4536--4536
+Overfull \hbox (58.00885pt too wide) in paragraph at lines 4591--4591
 []
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 4536--4536
+Underfull \hbox (badness 10000) in paragraph at lines 4591--4591
 
  []
 
@@ -1248,36 +1402,49 @@ Chapter 13.
 
 ] [130] [131
 
-]) (./xmds2.aux) ) 
+])
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 5278.
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 5278.
+ (./xmds2.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 5278.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 5278.
+
+Package rerunfilecheck Info: File `xmds2.out' has not changed.
+(rerunfilecheck)             Checksum: 1B84A7C91A90F86D42D95E438D3F05AC;4808.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 5278.
+ ) 
 Here is how much of TeX's memory you used:
- 8857 strings out of 495061
- 126633 string characters out of 1182622
- 233706 words of memory out of 3000000
- 11431 multiletter control sequences out of 15000+50000
- 83761 words of font info for 98 fonts, out of 3000000 for 9000
- 29 hyphenation exceptions out of 8191
- 45i,28n,48p,7668b,552s stack positions out of 5000i,500n,10000p,200000b,50000s
-{/usr/share/texmf-texlive/fonts/enc/dvips/base/8r.enc}</usr/s
-hare/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/share/texmf-
-texlive/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/share/texmf-texlive/fon
-ts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texmf-texlive/fonts/type1/pu
-blic/amsfonts/cm/cmmi5.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfont
-s/cm/cmmi7.pfb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.p
-fb></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/shar
-e/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texmf-texli
-ve/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive/fonts/ty
-pe1/public/amsfonts/cm/cmsy7.pfb></usr/share/texmf-texlive/fonts/type1/urw/cour
-ier/ucrb8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/courier/ucrbo8a.pfb></
-usr/share/texmf-texlive/fonts/type1/urw/courier/ucrr8a.pfb></usr/share/texmf-te
-xlive/fonts/type1/urw/courier/ucrro8a.pfb></usr/share/texmf-texlive/fonts/type1
-/urw/helvetic/uhvb8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhv
-bo8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/helvetic/uhvr8a.pfb></usr/sh
-are/texmf-texlive/fonts/type1/urw/times/utmb8a.pfb></usr/share/texmf-texlive/fo
-nts/type1/urw/times/utmr8a.pfb></usr/share/texmf-texlive/fonts/type1/urw/times/
-utmri8a.pfb>
-Output written on xmds2.pdf (135 pages, 7331787 bytes).
+ 9908 strings out of 493315
+ 144850 string characters out of 6137904
+ 266146 words of memory out of 5000000
+ 12764 multiletter control sequences out of 15000+600000
+ 83761 words of font info for 98 fonts, out of 8000000 for 9000
+ 958 hyphenation exceptions out of 8191
+ 36i,28n,48p,7668b,660s stack positions out of 5000i,500n,10000p,200000b,80000s
+{/usr/local/texlive/2013/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/local/t
+exlive/2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx10.pfb></usr/local/te
+xlive/2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/local/tex
+live/2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texl
+ive/2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi5.pfb></usr/local/texliv
+e/2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/
+2013/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/20
+13/texmf-dist/fonts/type1/public/amsfonts/cm/cmr5.pfb></usr/local/texlive/2013/
+texmf-dist/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/local/texlive/2013/tex
+mf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2013/texm
+f-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/local/texlive/2013/texmf-
+dist/fonts/type1/urw/courier/ucrb8a.pfb></usr/local/texlive/2013/texmf-dist/fon
+ts/type1/urw/courier/ucrbo8a.pfb></usr/local/texlive/2013/texmf-dist/fonts/type
+1/urw/courier/ucrr8a.pfb></usr/local/texlive/2013/texmf-dist/fonts/type1/urw/co
+urier/ucrro8a.pfb></usr/local/texlive/2013/texmf-dist/fonts/type1/urw/helvetic/
+uhvb8a.pfb></usr/local/texlive/2013/texmf-dist/fonts/type1/urw/helvetic/uhvbo8a
+.pfb></usr/local/texlive/2013/texmf-dist/fonts/type1/urw/helvetic/uhvr8a.pfb></
+usr/local/texlive/2013/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/local/
+texlive/2013/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/local/texlive/20
+13/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
+Output written on xmds2.pdf (135 pages, 7004746 bytes).
 PDF statistics:
- 2116 PDF objects out of 2487 (max. 8388607)
- 364 named destinations out of 1000 (max. 500000)
- 605 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 2140 PDF objects out of 2487 (max. 8388607)
+ 1867 compressed objects within 19 object streams
+ 365 named destinations out of 1000 (max. 500000)
+ 613 words of extra memory for PDF output out of 10000 (max. 10000000)
 
diff --git a/documentation/latex/xmds2.out b/documentation/latex/xmds2.out
index 9d69e3c..65d3f69 100644
--- a/documentation/latex/xmds2.out
+++ b/documentation/latex/xmds2.out
@@ -1,63 +1,64 @@
-\BOOKMARK [0][-]{chapter.1}{Introduction}{}
-\BOOKMARK [0][-]{chapter.2}{Installation}{}
-\BOOKMARK [1][-]{section.2.1}{Installers}{chapter.2}
-\BOOKMARK [1][-]{section.2.2}{Linux installer instructions}{chapter.2}
-\BOOKMARK [1][-]{section.2.3}{Mac OS X Installation}{chapter.2}
-\BOOKMARK [1][-]{section.2.4}{Manual installation from source}{chapter.2}
-\BOOKMARK [0][-]{chapter.3}{Quickstart Tutorial}{}
-\BOOKMARK [0][-]{chapter.4}{Worked Examples}{}
-\BOOKMARK [1][-]{section.4.1}{The nonlinear Schr\366dinger equation}{chapter.4}
-\BOOKMARK [1][-]{section.4.2}{Kubo Oscillator}{chapter.4}
-\BOOKMARK [1][-]{section.4.3}{Fibre Noise}{chapter.4}
-\BOOKMARK [1][-]{section.4.4}{Integer Dimensions}{chapter.4}
-\BOOKMARK [1][-]{section.4.5}{Wigner Function}{chapter.4}
-\BOOKMARK [1][-]{section.4.6}{Finding the Ground State of a BEC \(continuous renormalisation\)}{chapter.4}
-\BOOKMARK [1][-]{section.4.7}{Finding the Ground State of a BEC again}{chapter.4}
-\BOOKMARK [1][-]{section.4.8}{Multi-component Schr\366dinger equation}{chapter.4}
-\BOOKMARK [0][-]{chapter.5}{Reference section}{}
-\BOOKMARK [1][-]{section.5.1}{Configuration, installation and runtime options}{chapter.5}
-\BOOKMARK [1][-]{section.5.2}{Useful XML Syntax}{chapter.5}
-\BOOKMARK [1][-]{section.5.3}{XMDS2 XML Schema}{chapter.5}
-\BOOKMARK [1][-]{section.5.4}{XMDS2 script elements}{chapter.5}
-\BOOKMARK [1][-]{section.5.5}{Modified Midpoint Method}{chapter.5}
-\BOOKMARK [1][-]{section.5.6}{Bulirsch-Stoer Algorithm}{chapter.5}
-\BOOKMARK [1][-]{section.5.7}{Error Scaling Behaviour}{chapter.5}
-\BOOKMARK [0][-]{chapter.6}{Advanced Topics}{}
-\BOOKMARK [1][-]{section.6.1}{Importing data}{chapter.6}
-\BOOKMARK [1][-]{section.6.2}{Convolutions and Fourier transforms}{chapter.6}
-\BOOKMARK [1][-]{section.6.3}{`Loose' geometry\137matching\137mode}{chapter.6}
-\BOOKMARK [1][-]{section.6.4}{Dimension aliases}{chapter.6}
-\BOOKMARK [0][-]{chapter.7}{Frequently Asked Questions}{}
-\BOOKMARK [1][-]{section.7.1}{XMDS scripts look complicated! How do I start?}{chapter.7}
-\BOOKMARK [1][-]{section.7.2}{Where can I get help?}{chapter.7}
-\BOOKMARK [1][-]{section.7.3}{How should I cite XMDS2?}{chapter.7}
-\BOOKMARK [1][-]{section.7.4}{I think I found a bug! Where should I report it?}{chapter.7}
-\BOOKMARK [1][-]{section.7.5}{How do I put time dependence into my vectors?}{chapter.7}
-\BOOKMARK [1][-]{section.7.6}{Can I specify the range of my domain and number of grid points at run-time?}{chapter.7}
-\BOOKMARK [1][-]{section.7.7}{When can I use IP operators \(and why should I\) and when must I use EX operators?}{chapter.7}
-\BOOKMARK [1][-]{section.7.8}{Visual Editors}{chapter.7}
-\BOOKMARK [0][-]{chapter.8}{Upgrading From XMDS 1.X}{}
-\BOOKMARK [0][-]{chapter.9}{Optimisation Hints}{}
-\BOOKMARK [1][-]{section.9.1}{Geometry and transform-based tricks}{chapter.9}
-\BOOKMARK [1][-]{section.9.2}{Reduce code complexity}{chapter.9}
-\BOOKMARK [1][-]{section.9.3}{Compiler and library tricks}{chapter.9}
-\BOOKMARK [1][-]{section.9.4}{Atom-optics-specific hints}{chapter.9}
-\BOOKMARK [0][-]{chapter.10}{xsil2graphics2}{}
-\BOOKMARK [0][-]{chapter.11}{Developer Documentation}{}
-\BOOKMARK [1][-]{section.11.1}{Test scripts}{chapter.11}
-\BOOKMARK [1][-]{section.11.2}{XMDS Documentation}{chapter.11}
-\BOOKMARK [1][-]{section.11.3}{How to update XMDS2 script validator \(XML schema\)}{chapter.11}
-\BOOKMARK [1][-]{section.11.4}{How to introduce a new integrator Stepper into the XMDS2 environment}{chapter.11}
-\BOOKMARK [1][-]{section.11.5}{Logical breakdown of XMDS2 Parsing Process}{chapter.11}
-\BOOKMARK [1][-]{section.11.6}{Directory layout}{chapter.11}
-\BOOKMARK [0][-]{chapter.12}{Licensing}{}
-\BOOKMARK [1][-]{section.12.1}{GNU General Public License}{chapter.12}
-\BOOKMARK [1][-]{section.12.2}{GNU Free Documentation License}{chapter.12}
-\BOOKMARK [0][-]{chapter.13}{News}{}
-\BOOKMARK [1][-]{section.13.1}{XMDS 2.2.0 ``Out of cheese error'' \(January 13, 2014\)}{chapter.13}
-\BOOKMARK [1][-]{section.13.2}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' \(September 27, 2013\)}{chapter.13}
-\BOOKMARK [1][-]{section.13.3}{XMDS 2.1.3 ``Happy Mollusc'' \(June 7, 2013\)}{chapter.13}
-\BOOKMARK [1][-]{section.13.4}{XMDS 2.1.2 ``Happy Mollusc'' \(October 15, 2012\)}{chapter.13}
-\BOOKMARK [1][-]{section.13.5}{XMDS 2.1 ``Happy Mollusc'' \(June 14, 2012\)}{chapter.13}
-\BOOKMARK [1][-]{section.13.6}{XMDS 2.0 ``Shiny!'' \(September 13, 2010\)}{chapter.13}
-\BOOKMARK [0][-]{section*.55}{Index}{}
+\BOOKMARK [0][-]{chapter.1}{Introduction}{}% 1
+\BOOKMARK [0][-]{chapter.2}{Installation}{}% 2
+\BOOKMARK [1][-]{section.2.1}{Installers}{chapter.2}% 3
+\BOOKMARK [1][-]{section.2.2}{Linux installer instructions}{chapter.2}% 4
+\BOOKMARK [1][-]{section.2.3}{Mac OS X Installation}{chapter.2}% 5
+\BOOKMARK [1][-]{section.2.4}{Manual installation from source}{chapter.2}% 6
+\BOOKMARK [0][-]{chapter.3}{Quickstart Tutorial}{}% 7
+\BOOKMARK [0][-]{chapter.4}{Worked Examples}{}% 8
+\BOOKMARK [1][-]{section.4.1}{The nonlinear Schr\366dinger equation}{chapter.4}% 9
+\BOOKMARK [1][-]{section.4.2}{Kubo Oscillator}{chapter.4}% 10
+\BOOKMARK [1][-]{section.4.3}{Fibre Noise}{chapter.4}% 11
+\BOOKMARK [1][-]{section.4.4}{Integer Dimensions}{chapter.4}% 12
+\BOOKMARK [1][-]{section.4.5}{Wigner Function}{chapter.4}% 13
+\BOOKMARK [1][-]{section.4.6}{Finding the Ground State of a BEC \(continuous renormalisation\)}{chapter.4}% 14
+\BOOKMARK [1][-]{section.4.7}{Finding the Ground State of a BEC again}{chapter.4}% 15
+\BOOKMARK [1][-]{section.4.8}{Multi-component Schr\366dinger equation}{chapter.4}% 16
+\BOOKMARK [0][-]{chapter.5}{Reference section}{}% 17
+\BOOKMARK [1][-]{section.5.1}{Configuration, installation and runtime options}{chapter.5}% 18
+\BOOKMARK [1][-]{section.5.2}{Useful XML Syntax}{chapter.5}% 19
+\BOOKMARK [1][-]{section.5.3}{XMDS2 XML Schema}{chapter.5}% 20
+\BOOKMARK [1][-]{section.5.4}{XMDS2 script elements}{chapter.5}% 21
+\BOOKMARK [1][-]{section.5.5}{Modified Midpoint Method}{chapter.5}% 22
+\BOOKMARK [1][-]{section.5.6}{Bulirsch-Stoer Algorithm}{chapter.5}% 23
+\BOOKMARK [1][-]{section.5.7}{Error Scaling Behaviour}{chapter.5}% 24
+\BOOKMARK [0][-]{chapter.6}{Advanced Topics}{}% 25
+\BOOKMARK [1][-]{section.6.1}{Importing data}{chapter.6}% 26
+\BOOKMARK [1][-]{section.6.2}{Convolutions and Fourier transforms}{chapter.6}% 27
+\BOOKMARK [1][-]{section.6.3}{`Loose' geometry\137matching\137mode}{chapter.6}% 28
+\BOOKMARK [1][-]{section.6.4}{Dimension aliases}{chapter.6}% 29
+\BOOKMARK [0][-]{chapter.7}{Frequently Asked Questions}{}% 30
+\BOOKMARK [1][-]{section.7.1}{XMDS scripts look complicated! How do I start?}{chapter.7}% 31
+\BOOKMARK [1][-]{section.7.2}{Where can I get help?}{chapter.7}% 32
+\BOOKMARK [1][-]{section.7.3}{How should I cite XMDS2?}{chapter.7}% 33
+\BOOKMARK [1][-]{section.7.4}{I think I found a bug! Where should I report it?}{chapter.7}% 34
+\BOOKMARK [1][-]{section.7.5}{How do I put time dependence into my vectors?}{chapter.7}% 35
+\BOOKMARK [1][-]{section.7.6}{Can I specify the range of my domain and number of grid points at run-time?}{chapter.7}% 36
+\BOOKMARK [1][-]{section.7.7}{When can I use IP operators \(and why should I\) and when must I use EX operators?}{chapter.7}% 37
+\BOOKMARK [1][-]{section.7.8}{Visual Editors}{chapter.7}% 38
+\BOOKMARK [0][-]{chapter.8}{Upgrading From XMDS 1.X}{}% 39
+\BOOKMARK [0][-]{chapter.9}{Optimisation Hints}{}% 40
+\BOOKMARK [1][-]{section.9.1}{Geometry and transform-based tricks}{chapter.9}% 41
+\BOOKMARK [1][-]{section.9.2}{Reduce code complexity}{chapter.9}% 42
+\BOOKMARK [1][-]{section.9.3}{Compiler and library tricks}{chapter.9}% 43
+\BOOKMARK [1][-]{section.9.4}{Atom-optics-specific hints}{chapter.9}% 44
+\BOOKMARK [0][-]{chapter.10}{xsil2graphics2}{}% 45
+\BOOKMARK [0][-]{chapter.11}{Developer Documentation}{}% 46
+\BOOKMARK [1][-]{section.11.1}{Test scripts}{chapter.11}% 47
+\BOOKMARK [1][-]{section.11.2}{XMDS Documentation}{chapter.11}% 48
+\BOOKMARK [1][-]{section.11.3}{How to update XMDS2 script validator \(XML schema\)}{chapter.11}% 49
+\BOOKMARK [1][-]{section.11.4}{How to introduce a new integrator Stepper into the XMDS2 environment}{chapter.11}% 50
+\BOOKMARK [1][-]{section.11.5}{Logical breakdown of XMDS2 Parsing Process}{chapter.11}% 51
+\BOOKMARK [1][-]{section.11.6}{Directory layout}{chapter.11}% 52
+\BOOKMARK [0][-]{chapter.12}{Licensing}{}% 53
+\BOOKMARK [1][-]{section.12.1}{GNU General Public License}{chapter.12}% 54
+\BOOKMARK [1][-]{section.12.2}{GNU Free Documentation License}{chapter.12}% 55
+\BOOKMARK [0][-]{chapter.13}{News}{}% 56
+\BOOKMARK [1][-]{section.13.1}{XMDS 2.2.1 ``XMDS2 is a game of two halves'' \(September 30, 2014\)}{chapter.13}% 57
+\BOOKMARK [1][-]{section.13.2}{XMDS 2.2.0 ``Out of cheese error'' \(January 13, 2014\)}{chapter.13}% 58
+\BOOKMARK [1][-]{section.13.3}{XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' \(September 27, 2013\)}{chapter.13}% 59
+\BOOKMARK [1][-]{section.13.4}{XMDS 2.1.3 ``Happy Mollusc'' \(June 7, 2013\)}{chapter.13}% 60
+\BOOKMARK [1][-]{section.13.5}{XMDS 2.1.2 ``Happy Mollusc'' \(October 15, 2012\)}{chapter.13}% 61
+\BOOKMARK [1][-]{section.13.6}{XMDS 2.1 ``Happy Mollusc'' \(June 14, 2012\)}{chapter.13}% 62
+\BOOKMARK [1][-]{section.13.7}{XMDS 2.0 ``Shiny!'' \(September 13, 2010\)}{chapter.13}% 63
+\BOOKMARK [0][-]{section*.55}{Index}{}% 64
diff --git a/documentation/latex/xmds2.pdf b/documentation/latex/xmds2.pdf
index 9492986..803be01 100644
Binary files a/documentation/latex/xmds2.pdf and b/documentation/latex/xmds2.pdf differ
diff --git a/documentation/latex/xmds2.tex b/documentation/latex/xmds2.tex
index 6db0df8..e8d0321 100644
--- a/documentation/latex/xmds2.tex
+++ b/documentation/latex/xmds2.tex
@@ -13,8 +13,8 @@
 
 
 \title{XMDS2 Documentation}
-\date{January 14, 2014}
-\release{2.2.0}
+\date{September 30, 2014}
+\release{2.2.1}
 \author{Graham Dennis, Joe Hope and Mattias Johnsson}
 \newcommand{\sphinxlogo}{\includegraphics{xmds_logo.pdf}\par}
 \renewcommand{\releasename}{Release}
@@ -32,7 +32,7 @@
 \def\PYG#1#2{\PYG at reset\PYG at toks#1+\relax+\PYG at do{#2}}
 
 \expandafter\def\csname PYG at tok@gu\endcsname{\let\PYG at bf=\textbf\def\PYG at tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}}
-\expandafter\def\csname PYG at tok@gt\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.25,0.82}{##1}}}
+\expandafter\def\csname PYG at tok@gt\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}}
 \expandafter\def\csname PYG at tok@gs\endcsname{\let\PYG at bf=\textbf}
 \expandafter\def\csname PYG at tok@gr\endcsname{\def\PYG at tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@cm\endcsname{\let\PYG at it=\textit\def\PYG at tc##1{\textcolor[rgb]{0.25,0.50,0.56}{##1}}}
@@ -43,7 +43,7 @@
 \expandafter\def\csname PYG at tok@ge\endcsname{\let\PYG at it=\textit}
 \expandafter\def\csname PYG at tok@gd\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@il\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.13,0.50,0.31}{##1}}}
-\expandafter\def\csname PYG at tok@go\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.19,0.19,0.19}{##1}}}
+\expandafter\def\csname PYG at tok@go\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.20,0.20,0.20}{##1}}}
 \expandafter\def\csname PYG at tok@cp\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.44,0.13}{##1}}}
 \expandafter\def\csname PYG at tok@gi\endcsname{\def\PYG at tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}}
 \expandafter\def\csname PYG at tok@gh\endcsname{\let\PYG at bf=\textbf\def\PYG at tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}}
@@ -103,6 +103,9 @@
 \def\PYGZsh{\char`\#}
 \def\PYGZpc{\char`\%}
 \def\PYGZdl{\char`\$}
+\def\PYGZhy{\char`\-}
+\def\PYGZsq{\char`\'}
+\def\PYGZdq{\char`\"}
 \def\PYGZti{\char`\~}
 % for compatibility with earlier versions
 \def\PYGZat{@}
@@ -153,21 +156,25 @@ In 2008 a second complete rewrite was undertaken, largely by Graham Dennis (usin
 
 \section{Installers}
 \label{installation:installers}
-If you are using Debian GNU/Linux, XMDS2 will eventually be available in the Debian ``jessie'' distribution.  In the meanwhile, a temporary APT repository has been set up, which works for both the current stable (a.k.a ``wheezy'') and testing (a.k.a. ``jessie'') distributions.  For using this repository, follow the instructions at \href{http://xmds.laboissiere.net}{http://xmds.laboissiere.net}.
+If you're using a Mac with OSX \textgreater{}= 10.6, there is a simple drag-and-drop installer available.
 
-If you're not using Debian, the easiest way to get started is with an installer.  If we don't have an installer for your system, follow the {\hyperref[installation:manualinstallation]{\emph{manual installation}}} instructions.
+If you are using a recent version of Ubuntu or Debian, XMDS2 is available as a package in your package / software manager. Note that if using the Ubuntu Software Centre rather than Synaptic, you must explicitly search for ``xmds2'' rather than ``xmds'', or you will only get XMDS1 as a result.
+
+If you're using a version of Linux that's not Ubuntu / Debian, the easiest way to get started is to use the install shell script linked to below.
+
+If we don't have an installer for your system, follow the {\hyperref[installation:manualinstallation]{\emph{manual installation}}} instructions.
 
 \begin{tabulary}{\linewidth}{|c|c|c|}
 \hline
 
 Linux (Ubuntu/Debian/Fedora/RedHat)
  & 
-\href{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}{Download Linux Installer}
+\href{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}{Download Linux shell script installer}
  & 
 {\hyperref[installation:linux-installation]{\emph{Learn more}}}
 \\\hline
 
-OS X 10.6/10.7
+OS X 10.6 / 10.7 / 10.8 / 10.9
  & 
 \href{http://sourceforge.net/projects/xmds/files}{Download OS X Installer}
  & 
@@ -187,6 +194,8 @@ If you have one of the supported operating systems listed above, but you find th
 
 \section{Linux installer instructions}
 \label{installation:linux-installation}\label{installation:index-1}\label{installation:linux-installer-instructions}
+Note: If you're using Debian / Ubuntu, unless you want a developer install, you're probably better off installing XMDS2 via your package manager rather than this install script.
+
 The linux installer has currently only been tested with Ubuntu, Debian, Fedora, and Red Hat. Download the installer here: \href{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}{http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\_installer.sh}
 
 Once you have downloaded it, make the installer executable and run it by typing the following into a terminal:
@@ -199,7 +208,7 @@ chmod u+x linux\PYGZus{}installer.sh
 Alternatively, if you wish to download and run the installer in a single step, you can use the following command:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-/bin/bash -c "\PYGZdl{}(wget -qO - http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\PYGZus{}installer.sh)"
+/bin/bash \PYGZhy{}c \PYGZdq{}\PYGZdl{}(wget \PYGZhy{}qO \PYGZhy{} http://svn.code.sf.net/p/xmds/code/trunk/xpdeint/admin/linux\PYGZus{}installer.sh)\PYGZdq{}
 \end{Verbatim}
 
 The linux installer installs all XMDS2 dependencies from your native package manager where possible (\code{apt-get} for Ubuntu/Debian, \code{yum} for Fedora/Red Hat) but will download and compile the source code for libraries not available through the package manager. This means you'll need to be connected to the internet when running the installer. The installer should not be run with administrative privileges; it will ask you to enter your admin password at the appropriate point.
@@ -243,13 +252,13 @@ While the instructions below detail these packages individually, if you have adm
 Ubuntu / Debian:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-sudo apt-get install build-essential subversion libopenmpi-dev openmpi-bin python-dev python-setuptools python-cheetah python-numpy python-pyparsing python-lxml python-mpmath libhdf5-serial-dev libgsl0-dev python-sphinx python-h5py libatlas-base-dev
+sudo apt\PYGZhy{}get install build\PYGZhy{}essential subversion libopenmpi\PYGZhy{}dev openmpi\PYGZhy{}bin python\PYGZhy{}dev python\PYGZhy{}setuptools python\PYGZhy{}cheetah python\PYGZhy{}numpy python\PYGZhy{}pyparsing python\PYGZhy{}lxml python\PYGZhy{}mpmath libhdf5\PYGZhy{}serial\PYGZhy{}dev libgsl0\PYGZhy{}dev python\PYGZhy{}sphinx python\PYGZhy{}h5py libatlas\PYGZhy{}base\PYGZhy{}dev
 \end{Verbatim}
 
 Fedora / Red Hat:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-sudo yum install gcc gcc-c++ make automake subversion openmpi-devel python-devel python-setuptools python-cheetah numpy gsl-devel python-sphinx libxml2-devel libxslt-devel atlas-devel hdf5-devel pyparsing pyparsing python-lxml python-mpmath h5py
+sudo yum install gcc gcc\PYGZhy{}c++ make automake subversion openmpi\PYGZhy{}devel python\PYGZhy{}devel python\PYGZhy{}setuptools python\PYGZhy{}cheetah numpy gsl\PYGZhy{}devel python\PYGZhy{}sphinx libxml2\PYGZhy{}devel libxslt\PYGZhy{}devel atlas\PYGZhy{}devel hdf5\PYGZhy{}devel pyparsing pyparsing python\PYGZhy{}lxml python\PYGZhy{}mpmath h5py
 \end{Verbatim}
 
 You will still have to download and build FFTW 3.3 from source (see below) since prebuilt packages with MPI and AVX support are not currently available in the repositories.
@@ -421,7 +430,7 @@ After downloading the source, execute \code{python ./setup.py build} in the sour
 \end{enumerate}
 
 \item {} \begin{description}
-\item[{Install XMDS2 into your python path by running (in the xmds-2.2.0/ directory):}] \leavevmode
+\item[{Install XMDS2 into your python path by running (in the xmds-2.2.1/ directory):}] \leavevmode
 \code{sudo ./setup.py develop}
 
 If you want to install it into your home directory, type \code{./setup.py develop -{-}prefix=\textasciitilde{}}
@@ -431,13 +440,13 @@ This step requires access to the net, as it downloads any dependent packages.  I
 \item {} \begin{description}
 \item[{Developer only instructions:}] \leavevmode
 The Cheetah templates (*.tmpl) must be compiled into python.
-To do this, run \code{make} in the xmds-2.2.0/ directory.
+To do this, run \code{make} in the xmds-2.2.1/ directory.
 
 \end{description}
 
 \item {} \begin{description}
 \item[{Developer-only instructions:}] \leavevmode
-If you have `numpy' installed, test XMDS2 by typing \code{./run\_tests.py} in the xmds-2.2.0/ directory.
+If you have `numpy' installed, test XMDS2 by typing \code{./run\_tests.py} in the xmds-2.2.1/ directory.
 The package `numpy' is one of the optional packages, with installation instructions below.
 
 \end{description}
@@ -447,11 +456,11 @@ The package `numpy' is one of the optional packages, with installation instructi
 To build the user documentation, you first need to install sphinx, either via your package manager or:
 \code{sudo easy\_install Sphinx}
 
-Then, to build the documentation, in the xmds-2.2.0/admin/userdoc-source/ directory run: \code{make html}
+Then, to build the documentation, in the xmds-2.2.1/admin/userdoc-source/ directory run: \code{make html}
 
 If this results in an error, you may need to run \code{sudo ./setup.py develop}
 
-The generated html documentation will then be found at xmds-2.2.0/documentation/index.html
+The generated html documentation will then be found at xmds-2.2.1/documentation/index.html
 
 \end{description}
 
@@ -478,7 +487,7 @@ If you need to use additional compiler or link flags for XMDS2 to use certain li
 
 \end{enumerate}
 
-\textbf{Congratulations!} You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the ``xmds-2.2.0/examples'' directory, and follow the worked examples in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}} and {\hyperref[worked_examples:workedexamples]{\emph{Worked Examples}}}.
+\textbf{Congratulations!} You should now have a fully operational copy of xmds2 and xsil2graphics2.  You can test your copy using examples from the ``xmds-2.2.1/examples'' directory, and follow the worked examples in the {\hyperref[tutorial:quickstarttutorial]{\emph{Quickstart Tutorial}}} and {\hyperref[worked_examples:workedexamples]{\emph{Worked Examples}}}.
 
 \index{Tutorial}
 
@@ -495,20 +504,20 @@ where we will solve with the parameters $\sigma=10$, $\rho=28$, $\beta = \frac{8
 Below is a script that solves this problem (it's also saved as examples/lorenz.xmds in your XMDS2 directory). Don't worry if it doesn't make sense yet, soon we'll break it down into easily digestible parts.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}lorenz\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{--\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
     The Lorenz Attractor, an example of chaos.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
 \PYG{c}{  This element defines some constants.  It can be used for other}
 \PYG{c}{  features as well, but we will go into that in more detail later.}
-\PYG{c}{  }\PYG{c}{--\PYGZgt{}}
+\PYG{c}{  }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -519,16 +528,16 @@ Below is a script that solves this problem (it's also saved as examples/lorenz.x
      \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
 \PYG{c}{  This part defines all of the dimensions used in the problem,}
-\PYG{c}{  in this case, only the dimension of 'time' is needed.}
-\PYG{c}{  }\PYG{c}{--\PYGZgt{}}
+\PYG{c}{  in this case, only the dimension of \PYGZsq{}time\PYGZsq{} is needed.}
+\PYG{c}{  }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A 'vector' describes the variables that we will be evolving. }\PYG{c}{--\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"position"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A \PYGZsq{}vector\PYGZsq{} describes the variables that we will be evolving. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}position\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
       x y z
     \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -540,26 +549,26 @@ Below is a script that solves this problem (it's also saved as examples/lorenz.x
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{c}{\PYGZlt{}!--}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
 \PYG{c}{    Here we define what differential equations need to be solved}
 \PYG{c}{    and what algorithm we want to use.}
-\PYG{c}{    }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c}{    }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{-}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
-        \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{-} \PYG{n}{y} \PYG{o}{-} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
-        \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{-} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+        \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{\PYGZhy{}}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{\PYGZhy{}} \PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+        \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ This part defines what data will be saved in the output file }\PYG{c}{--\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"lorenz.xsil"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ This part defines what data will be saved in the output file }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}lorenz.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR yR zR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -577,13 +586,13 @@ You can compile and run this script with \textbf{XMDS2}. To compile the script,
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} xmds2 lorenz.xmds
-xmds2 version 2.1 "Happy Mollusc" (r2680)
-Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
+Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type './lorenz' to run.
+... done. Type \PYGZsq{}./lorenz\PYGZsq{} to run.
 \end{Verbatim}
 \end{quote}
 
@@ -593,19 +602,19 @@ Now we can execute the generated program `lorenz'.
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} ./lorenz
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Sampled field (for moment group \PYGZsh{}1) at t = 4.000000e-03
-Current timestep: 4.000000e-03
-Sampled field (for moment group \PYGZsh{}1) at t = 8.000000e-03
-Current timestep: 4.000000e-03
+Sampled field (for moment group \PYGZsh{}1) at t = 4.000000e\PYGZhy{}03
+Current timestep: 4.000000e\PYGZhy{}03
+Sampled field (for moment group \PYGZsh{}1) at t = 8.000000e\PYGZhy{}03
+Current timestep: 4.000000e\PYGZhy{}03
 
 ... many lines omitted ...
 
-Current timestep: 4.000000e-03
+Current timestep: 4.000000e\PYGZhy{}03
 Sampled field (for moment group \PYGZsh{}1) at t = 1.999600e+01
-Current timestep: 4.000000e-03
+Current timestep: 4.000000e\PYGZhy{}03
 Sampled field (for moment group \PYGZsh{}1) at t = 2.000000e+01
-Current timestep: 4.000000e-03
-Segment 1: minimum timestep: 9.997900e-06 maximum timestep: 4.000000e-03
+Current timestep: 4.000000e\PYGZhy{}03
+Segment 1: minimum timestep: 9.997900e\PYGZhy{}06 maximum timestep: 4.000000e\PYGZhy{}03
   Attempted 7386 steps, 0.00\PYGZpc{} steps failed.
 Generating output for lorenz
 \end{Verbatim}
@@ -616,10 +625,10 @@ The program generated by \textbf{XMDS2} has now integrated your equations and pr
 \begin{quote}
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} xsil2graphics2 -e lorenz.xsil
-xsil2graphics2 from xmds2 version 2.1 "Happy Mollusc" (r2680)
+\PYGZdl{} xsil2graphics2 \PYGZhy{}e lorenz.xsil
+xsil2graphics2 from xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
 Generating output for Mathematica 6+.
-Writing import script for 'lorenz.xsil' to 'lorenz.nb'.
+Writing import script for \PYGZsq{}lorenz.xsil\PYGZsq{} to \PYGZsq{}lorenz.nb\PYGZsq{}.
 \end{Verbatim}
 \end{quote}
 
@@ -639,11 +648,11 @@ ListPointPlot3D[ll]
 First, we have the top level description of the code.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}lorenz\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{--\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ While not strictly necessary, the following two tags are handy. }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
     The Lorenz Attractor, an example of chaos.
@@ -687,7 +696,7 @@ This element is used to define all the dimensions in the problem.  We only requi
 Next, we have the \code{\textless{}vector\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"position"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}position\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
     x y z
   \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -705,14 +714,14 @@ Now we come to the heart of the simulation, where we define the evolution of our
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{-}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
-      \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{-} \PYG{n}{y} \PYG{o}{-} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
-      \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{-} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+      \PYG{n}{dx\PYGZus{}dt} \PYG{o}{=} \PYG{n}{sigma}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{\PYGZhy{}}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{dy\PYGZus{}dt} \PYG{o}{=} \PYG{n}{r}\PYG{o}{*}\PYG{n}{x} \PYG{o}{\PYGZhy{}} \PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
+      \PYG{n}{dz\PYGZus{}dt} \PYG{o}{=} \PYG{n}{x}\PYG{o}{*}\PYG{n}{y} \PYG{o}{\PYGZhy{}} \PYG{n}{b}\PYG{o}{*}\PYG{n}{z}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -726,8 +735,8 @@ All integrate blocks must define which algorithm is to be used - in this case th
 The \code{\textless{}samples\textgreater{}} element says that the values of the output groups will be sampled 5000 times during this interval.  The nature of the output is defined in the last element in the simulation: the \code{\textless{}output\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"lorenz.xsil"}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}lorenz.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR yR zR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}position\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -782,7 +791,7 @@ This worked example will show a range of new features that can be used in an \te
 where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent damping term.  Let us look at an XMDS2 script that integrates this equation, and then examine it in detail.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}nlse\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
@@ -795,7 +804,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
@@ -810,43 +819,43 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} xi \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"tau"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{dimensions=}\PYG{l+s}{"tau"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{k}{const} \PYG{k+kt}{double} \PYG{n}{w0} \PYG{o}{=} \PYG{n}{hwhm}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{log}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{k}{const} \PYG{k+kt}{double} \PYG{n}{amp} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{energy}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{amp}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{w0}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{vel}\PYG{o}{*}\PYG{n}{tau}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{amp}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{n}{w0}\PYG{o}{/}\PYG{n}{w0}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{vel}\PYG{o}{*}\PYG{n}{tau}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"dampingVector"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}dampingVector\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Gamma \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{Gamma}\PYG{o}{=}\PYG{l+m+mf}{1.0}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{n}{pow}\PYG{p}{(}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{p}{,}\PYG{l+m+mi}{10}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{Gamma}\PYG{o}{=}\PYG{l+m+mf}{1.0}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{n}{pow}\PYG{p}{(}\PYG{n}{tau}\PYG{o}{*}\PYG{n}{tau}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{o}{/}\PYG{l+m+mf}{4.0}\PYG{p}{,}\PYG{l+m+mi}{10}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}10 100 10\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ltt\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+            \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+        \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampingVector\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -854,7 +863,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -862,7 +871,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau(0)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau(0)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -870,7 +879,7 @@ where $\phi$ is a complex-valued field, and $\Gamma(\tau)$ is a $\tau$-dependent
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"ktau(32)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ktau(32)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}densityK\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -892,7 +901,7 @@ Let us examine the \code{\textless{}geometry\textgreater{}} element.
 \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} xi \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"tau"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
@@ -906,18 +915,18 @@ The second vector element contains the component ``Gamma'' which is a function o
 The \code{\textless{}integrate\textgreater{}} element for a partial differential equation has some new features:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"20.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}10 100 10\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ltt\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+        \PYG{n}{Ltt} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{n}{ktau}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+    \PYG{n}{dphi\PYGZus{}dxi} \PYG{o}{=} \PYG{n}{Ltt}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{phi}\PYG{o}{*}\PYG{n}{Gamma} \PYG{o}{+} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampingVector\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -935,7 +944,7 @@ The output of a partial differential equation offers more possibilities than an
 For vectors with transverse dimensions, we can sample functions of the vectors on the full lattice or a subset of the points.  In the \code{\textless{}sampling\_group\textgreater{}} element, we must add a string called ``basis'' that determines the space in which each transverse dimension is to be sampled, optionally followed by the number of points to be sampled in parentheses.  If the number of points is not specified, it will default to a complete sampling of all points in that dimens [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -949,7 +958,7 @@ The first output group samples the mod square of the vector ``phi'' over the ful
 If the lattice parameter is set to zero points, then the corresponding dimension is integrated.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"tau(0)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}tau(0)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -963,7 +972,7 @@ This second output group samples the normalisation of the wavefunction $\int d\t
 Finally, functions of the vectors can be sampled with their dimensions in Fourier space.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"ktau(32)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ktau(32)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}densityK\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -986,10 +995,10 @@ where $\eta(t)$ is the Wiener differential, and we interpret this as a Stratonov
 \begin{gather}
 \begin{split}dz = i z \;\circ dW\end{split}\notag\\\begin{split}\end{split}\notag
 \end{gather}
-Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich euqations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:
+Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich equations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}kubo\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis and Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1000,18 +1009,18 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"10000"} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}10000\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} z \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1021,7 +1030,7 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"SI"} \PYG{n+na}{interval=}\PYG{l+s}{"10"} \PYG{n+na}{steps=}\PYG{l+s}{"1000"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}SI\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}1000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
@@ -1034,7 +1043,7 @@ Most algorithms employed by XMDS require the equations to be input in the Strato
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}zR zI\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1055,7 +1064,7 @@ In the \code{\textless{}features\textgreater{}} element we have included the \co
 We define the stochastic elements in a simulation with the \code{\textless{}noise\_vector\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \end{Verbatim}
@@ -1089,7 +1098,7 @@ Starting path 2
 Starting path 9999
 Starting path 10000
 Generating output for kubo
-Maximum step error in moment group 1 was 4.942549e-04
+Maximum step error in moment group 1 was 4.942549e\PYGZhy{}04
 Time elapsed for simulation is: 2.71 seconds
 \end{Verbatim}
 
@@ -1120,7 +1129,7 @@ This simulation is a stochastic partial differential equation, in which a one-di
 where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is interpreted as a Stratonovich differential equation.  On a finite grid, these increments have variance $\frac{1}{\Delta x \Delta t}$.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}fibre\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope and Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1130,11 +1139,11 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"64"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-5, 5)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}64\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}5, 5)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"8"} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}mpi\PYGZhy{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}8\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
@@ -1148,11 +1157,11 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
     \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}phi\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1162,26 +1171,26 @@ where the noise terms $\eta_j(x,t)$ are Wiener differentials and the equation is
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"SI"} \PYG{n+na}{iterations=}\PYG{l+s}{"3"} \PYG{n+na}{interval=}\PYG{l+s}{"2.5"} \PYG{n+na}{steps=}\PYG{l+s}{"200000"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}SI\PYGZdq{}} \PYG{n+na}{iterations=}\PYG{l+s}{\PYGZdq{}3\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}2.5\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}200000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}50\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+            \PYG{n}{L} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}drivingNoise\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{ggamma}\PYG{o}{*}\PYG{n}{phi} \PYG{o}{+} \PYG{n}{beta}\PYG{o}{*}\PYG{n}{Eta}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{ggamma}\PYG{o}{*}\PYG{n}{phi} \PYG{o}{+} \PYG{n}{beta}\PYG{o}{*}\PYG{n}{Eta}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}pow\PYGZus{}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1202,21 +1211,21 @@ Executing this program is slightly different with the MPI option.  The details c
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{}xmds2 fibre.xmds
-xmds2 version 2.1 "Happy Mollusc" (r2543)
-Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2543)
+Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type './fibre' to run.
+... done. Type \PYGZsq{}./fibre\PYGZsq{} to run.
 \end{Verbatim}
 
 Note that different compile options (and potentially a different compiler) are used by XMDS2, but this is transparent to the user.  MPI simulations will have to be run using syntax that will depend on the MPI implementation.  Here we show the version based on the popular open source \href{http://www.open-mpi.org/}{Open-MPI} implementation.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun -np 4 ./fibre
+\PYGZdl{} mpirun \PYGZhy{}np 4 ./fibre
 Found enlightenment... (Importing wisdom)
-Planning for x \PYGZlt{}---\PYGZgt{} kx transform... done.
+Planning for x \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} kx transform... done.
 Beginning full step integration ...
 Rank[0]: Starting path 1
 Rank[1]: Starting path 2
@@ -1236,7 +1245,7 @@ Rank[0]: Starting path 5
 Rank[2]: Starting path 7
 Rank[1]: Starting path 6
 Generating output for fibre
-Maximum step error in moment group 1 was 4.893437e-04
+Maximum step error in moment group 1 was 4.893437e\PYGZhy{}04
 Time elapsed for simulation is: 20.99 seconds
 \end{Verbatim}
 
@@ -1273,7 +1282,7 @@ This example shows how to handle systems with integer-valued transverse dimensio
 where $x_j$ are complex-valued variables defined on a ring, such that $j\in \{0,j_{max}\}$ and the $x_{j_{max}+1}$ variable is identified with the variable $x_{0}$, and the variable $x_{-1}$ is identified with the variable $x_{j_{max}}$.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}integer\PYGZus{}dimensions\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1284,44 +1293,44 @@ where $x_j$ are complex-valued variables defined on a ring, such that $j\in \{0,
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}diagnostics} \PYG{n+nt}{/\PYGZgt{}} \PYG{c}{\PYGZlt{}!--}\PYG{c}{ This will make sure that all nonlocal accesses of dimensions are safe }\PYG{c}{--\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}diagnostics} \PYG{n+nt}{/\PYGZgt{}} \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ This will make sure that all nonlocal accesses of dimensions are safe }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"5"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,4)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}5\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,4)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} x \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{x} \PYG{o}{=} \PYG{l+m+mf}{1.0e-3}\PYG{p}{;}
+      \PYG{n}{x} \PYG{o}{=} \PYG{l+m+mf}{1.0e\PYGZhy{}3}\PYG{p}{;}
       \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{l+m+mi}{0}\PYG{p}{)} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"60"} \PYG{n+na}{steps=}\PYG{l+s}{"25000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1.0e-9"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}60\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}25000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1.0e\PYGZhy{}9\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}1000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{-}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
+        \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{\PYGZhy{}}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
         \PYG{k}{if} \PYG{p}{(}\PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{\PYGZlt{}} \PYG{l+m+mi}{0}\PYG{p}{)}
           \PYG{n}{j\PYGZus{}minus\PYGZus{}one} \PYG{o}{+}\PYG{o}{=} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
         \PYG{k+kt}{long} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}  \PYG{o}{=} \PYG{p}{(}\PYG{n}{j}\PYG{o}{+}\PYG{l+m+mi}{1}\PYG{p}{)} \PYG{o}{\PYGZpc{}} \PYG{n}{\PYGZus{}lattice\PYGZus{}j}\PYG{p}{;}
-        \PYG{n}{dx\PYGZus{}dt}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)} \PYG{o}{=} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}minus\PYGZus{}one}\PYG{p}{)} \PYG{o}{-} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{dx\PYGZus{}dt}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)} \PYG{o}{=} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}minus\PYGZus{}one}\PYG{p}{)} \PYG{o}{\PYGZhy{}} \PYG{n}{x}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{j\PYGZus{}plus\PYGZus{}one}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}xR\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1339,14 +1348,14 @@ The simulation defines a vector with a single transverse dimension labelled ``j'
 Integer-valued dimensions can be called non-locally.  Real-valued dimensions are typically coupled non-locally only through local operations in the transformed space of the dimension, but can be called non-locally in certain other situations as described in {\hyperref[reference_elements:referencingnonlocal]{\emph{the reference}}}.  The syntax for calling integer dimensions non-locally can be seen in the initialisation CDATA block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-x = 1.0e-3;
+x = 1.0e\PYGZhy{}3;
 x(j =\PYGZgt{} 0) = 1.0;
 \end{Verbatim}
 
 where the syntax \code{x(j =\textgreater{} 0)} is used to reference the variable $x_0$ directly.  We see a more elaborate example in the integrate CDATA block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-dx\PYGZus{}dt(j =\PYGZgt{} j) = x(j =\PYGZgt{} j)*(x(j =\PYGZgt{} j\PYGZus{}minus\PYGZus{}one) - x(j =\PYGZgt{} j\PYGZus{}plus\PYGZus{}one));
+dx\PYGZus{}dt(j =\PYGZgt{} j) = x(j =\PYGZgt{} j)*(x(j =\PYGZgt{} j\PYGZus{}minus\PYGZus{}one) \PYGZhy{} x(j =\PYGZgt{} j\PYGZus{}plus\PYGZus{}one));
 \end{Verbatim}
 
 where the vector ``x'' is called using locally defined variables.  This syntax is chosen so that multiple dimensions can be addressed non-locally with minimal possibility for confusion.
@@ -1366,7 +1375,7 @@ This example integrates the two-dimensional partial differential equation
 with the added restriction that the derivative is forced to zero outside a certain radius.  This extra condition helps maintain the long-term stability of the integration. The script can be found in \code{examples/wigner\_arguments\_mpi.xmds} under your XMDS2 installation directory.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}wigner\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis and Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
@@ -1381,45 +1390,45 @@ with the added restriction that the derivative is forced to zero outside a certa
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/globals\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"omega"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.0"} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"alpha\PYGZus{}0"}     \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"3.0"} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"absorb"}     \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"8.0"} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"width"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.3"} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"Uint\PYGZus{}hbar"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}omega\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}alpha\PYGZus{}0\PYGZdq{}}     \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}3.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}absorb\PYGZdq{}}     \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}8.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}width\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.3\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}Uint\PYGZus{}hbar\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+cm}{/* derived constants */}
         \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16} \PYG{o}{=} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{/}\PYG{l+m+mf}{16.0}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"distributed-mpi"} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}distributed\PYGZhy{}mpi\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"main"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x y"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}main\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} W \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{W} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{o}{/}\PYG{n}{M\PYGZus{}PI} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{2.0}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y} \PYG{o}{+} \PYG{p}{(}\PYG{n}{x}\PYG{o}{-}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{o}{-}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{W} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{o}{/}\PYG{n}{M\PYGZus{}PI} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{2.0}\PYG{o}{*}\PYG{p}{(}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y} \PYG{o}{+} \PYG{p}{(}\PYG{n}{x}\PYG{o}{\PYGZhy{}}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{o}{*}\PYG{p}{(}\PYG{n}{x}\PYG{o}{\PYGZhy{}}\PYG{n}{alpha\PYGZus{}0}\PYG{p}{)}\PYG{p}{)}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"dampConstants"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x y"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}dampConstants\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}damping\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{k}{if} \PYG{p}{(}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)} \PYG{o}{\PYGZgt{}} \PYG{n}{\PYGZus{}max\PYGZus{}x}\PYG{o}{-}\PYG{n}{width}\PYG{p}{)}
+      \PYG{k}{if} \PYG{p}{(}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)} \PYG{o}{\PYGZgt{}} \PYG{n}{\PYGZus{}max\PYGZus{}x}\PYG{o}{\PYGZhy{}}\PYG{n}{width}\PYG{p}{)}
         \PYG{n}{damping} \PYG{o}{=} \PYG{l+m+mf}{0.0}\PYG{p}{;}
       \PYG{k}{else}
         \PYG{n}{damping} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
@@ -1428,27 +1437,27 @@ with the added restriction that the derivative is forced to zero outside a certa
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"} \PYG{n+na}{interval=}\PYG{l+s}{"7.0e-4"} \PYG{n+na}{steps=}\PYG{l+s}{"100000"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}7.0e\PYGZhy{}4\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}100000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}50\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lx Ly Lxxx Lxxy Lxyy Lyyy\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
             \PYG{n}{Lx} \PYG{o}{=} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
             \PYG{n}{Ly} \PYG{o}{=} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lxxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
-            \PYG{n}{Lxxy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lxyy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
-            \PYG{n}{Lyyy} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lxxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+            \PYG{n}{Lxxy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lxyy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{Lyyy} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}dampConstants\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n+nf}{real} \PYG{n}{rotation} \PYG{o}{=} \PYG{n}{omega} \PYG{o}{+} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{*}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{1.0} \PYG{o}{+} \PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n+nf}{real} \PYG{n}{rotation} \PYG{o}{=} \PYG{n}{omega} \PYG{o}{+} \PYG{n}{Uint\PYGZus{}hbar}\PYG{o}{*}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{1.0} \PYG{o}{+} \PYG{n}{x}\PYG{o}{*}\PYG{n}{x} \PYG{o}{+} \PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{p}{;}
 
-        \PYG{n}{dW\PYGZus{}dt} \PYG{o}{=} \PYG{n}{damping} \PYG{o}{*} \PYG{p}{(} \PYG{n}{rotation} \PYG{o}{*} \PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{Ly}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{-} \PYG{n}{y}\PYG{o}{*}\PYG{n}{Lx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)}
-                    \PYG{o}{-} \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16}\PYG{o}{*}\PYG{p}{(} \PYG{n}{x}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxxy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lyyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{o}{-} \PYG{n}{y}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lxxx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{p}{)}
+        \PYG{n}{dW\PYGZus{}dt} \PYG{o}{=} \PYG{n}{damping} \PYG{o}{*} \PYG{p}{(} \PYG{n}{rotation} \PYG{o}{*} \PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{Ly}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{y}\PYG{o}{*}\PYG{n}{Lx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)}
+                    \PYG{o}{\PYGZhy{}} \PYG{n}{Uint\PYGZus{}hbar\PYGZus{}on16}\PYG{o}{*}\PYG{p}{(} \PYG{n}{x}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxxy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lyyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{o}{\PYGZhy{}} \PYG{n}{y}\PYG{o}{*}\PYG{p}{(}\PYG{n}{Lxyy}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Lxxx}\PYG{p}{[}\PYG{n}{W}\PYG{p}{]}\PYG{p}{)} \PYG{p}{)}
                 \PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -1456,7 +1465,7 @@ with the added restriction that the derivative is forced to zero outside a certa
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}WR WI\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1473,25 +1482,25 @@ This example demonstrates two new features of XMDS2.  The first is the use of pa
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYGZdl{} xmds2 wigner\PYGZus{}argument\PYGZus{}mpi.xmds
-xmds2 version 2.1 "Happy Mollusc" (r2680)
-Copyright 2000-2012 Graham Dennis, Joseph Hope, Mattias Johnsson
+xmds2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
+Copyright 2000\PYGZhy{}2012 Graham Dennis, Joseph Hope, Mattias Johnsson
                     and the xmds team
 Generating source code...
 ... done
 Compiling simulation...
-... done. Type './wigner' to run.
+... done. Type \PYGZsq{}./wigner\PYGZsq{} to run.
 \end{Verbatim}
 
 To use multiple processors, the final program is then called using the (implementation specific) MPI wrapper:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun -np 2 ./wigner
-Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}---}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
-Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}---}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
+\PYGZdl{} mpirun \PYGZhy{}np 2 ./wigner
+Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYG{n+nt}{\PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}}\PYG{n+nt}{\PYGZgt{}} (distributed ky, kx) transform... done.
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Current timestep: 5.908361e-06
-Sampled field (for moment group \PYGZsh{}1) at t = 1.400000e-05
-Current timestep: 4.543131e-06
+Current timestep: 5.908361e\PYGZhy{}06
+Sampled field (for moment group \PYGZsh{}1) at t = 1.400000e\PYGZhy{}05
+Current timestep: 4.543131e\PYGZhy{}06
 
 ...
 \end{Verbatim}
@@ -1503,36 +1512,36 @@ The second new feature in this simulation is the \code{\textless{}arguments\text
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"omega"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"0.0"} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}omega\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}0.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     ...
-  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"Uint\PYGZus{}hbar"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"} \PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}Uint\PYGZus{}hbar\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \end{Verbatim}
 
 where the ``default\_value'' is used as the valuable of the variable if no arguments are given.  In the absence of the generating script, the program can document its options with the \code{-{-}help} argument:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} ./wigner --help
-Usage: wigner --omega \PYGZlt{}real\PYGZgt{} --alpha\PYGZus{}0 \PYGZlt{}real\PYGZgt{} --absorb \PYGZlt{}real\PYGZgt{} --width \PYGZlt{}real\PYGZgt{} --Uint\PYGZus{}hbar \PYGZlt{}real\PYGZgt{}
+\PYGZdl{} ./wigner \PYGZhy{}\PYGZhy{}help
+Usage: wigner \PYGZhy{}\PYGZhy{}omega \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0 \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}absorb \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}width \PYGZlt{}real\PYGZgt{} \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar \PYGZlt{}real\PYGZgt{}
 
 Details:
 Option              Type            Default value
--o,  --omega        real            0.0
--a,  --alpha\PYGZus{}0      real            3.0
--b,  --absorb       real            8.0
--w,  --width        real            0.3
--U,  --Uint\PYGZus{}hbar    real            1.0
+\PYGZhy{}o,  \PYGZhy{}\PYGZhy{}omega        real            0.0
+\PYGZhy{}a,  \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0      real            3.0
+\PYGZhy{}b,  \PYGZhy{}\PYGZhy{}absorb       real            8.0
+\PYGZhy{}w,  \PYGZhy{}\PYGZhy{}width        real            0.3
+\PYGZhy{}U,  \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar    real            1.0
 \end{Verbatim}
 
 We can change one or more of these variables' values in the simulation by passing it at run time.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZdl{} mpirun -np 2 ./wigner --omega 0.1 --alpha\PYGZus{}0 2.5 --Uint\PYGZus{}hbar 0
+\PYGZdl{} mpirun \PYGZhy{}np 2 ./wigner \PYGZhy{}\PYGZhy{}omega 0.1 \PYGZhy{}\PYGZhy{}alpha\PYGZus{}0 2.5 \PYGZhy{}\PYGZhy{}Uint\PYGZus{}hbar 0
 Found enlightenment... (Importing wisdom)
-Planning for (distributed x, y) \PYGZlt{}---\PYGZgt{} (distributed ky, kx) transform... done.
-Planning for (distributed x, y) \PYGZlt{}---\PYGZgt{} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} (distributed ky, kx) transform... done.
+Planning for (distributed x, y) \PYGZlt{}\PYGZhy{}\PYGZhy{}\PYGZhy{}\PYGZgt{} (distributed ky, kx) transform... done.
 Sampled field (for moment group \PYGZsh{}1) at t = 0.000000e+00
-Current timestep: 1.916945e-04
+Current timestep: 1.916945e\PYGZhy{}04
 
 ...
 \end{Verbatim}
@@ -1541,14 +1550,14 @@ The values that were used for the variables, whether default or passed in, are s
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}info}\PYG{n+nt}{\PYGZgt{}}
-Script compiled with XMDS2 version 2.1 "Happy Mollusc" (r2680)
+Script compiled with XMDS2 version 2.1 \PYGZdq{}Happy Mollusc\PYGZdq{} (r2680)
 See http://www.xmds.org for more information.
 
 Variables that can be specified on the command line:
-  Command line argument omega = 1.000000e-01
+  Command line argument omega = 1.000000e\PYGZhy{}01
   Command line argument alpha\PYGZus{}0 = 2.500000e+00
   Command line argument absorb = 8.000000e+00
-  Command line argument width = 3.000000e-01
+  Command line argument width = 3.000000e\PYGZhy{}01
   Command line argument Uint\PYGZus{}hbar = 0.000000e+00
 \PYG{n+nt}{\PYGZlt{}/info\PYGZgt{}}
 \end{Verbatim}
@@ -1587,19 +1596,19 @@ but we will need to use new XMDS2 features to manage the normalisation of the fu
 The code for this simulation can be found in \code{examples/groundstate\_workedexamples.xmds}:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}groundstate\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
-    Calculate the ground state of the non-linear Schrodinger equation in a harmonic magnetic trap.
-    This is done by evolving it in imaginary time while re-normalising each timestep.
+    Calculate the ground state of the non\PYGZhy{}linear Schrodinger equation in a harmonic magnetic trap.
+    This is done by evolving it in imaginary time while re\PYGZhy{}normalising each timestep.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"exhaustive"} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}exhaustive\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Uint} \PYG{o}{=} \PYG{l+m+mf}{2.0}\PYG{p}{;}
@@ -1611,11 +1620,11 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"256"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-15.0, 15.0)"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}256\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}15.0, 15.0)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"potential"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"y"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}potential\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} V1 \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1624,7 +1633,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"y"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1638,10 +1647,10 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1652,7 +1661,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
+          \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
@@ -1663,9 +1672,9 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1.0"} \PYG{n+na}{steps=}\PYG{l+s}{"4000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-10"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}4000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}10\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}25 4000\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1675,28 +1684,28 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
         \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+            \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}potential\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}norm\PYGZus{}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1704,7 +1713,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}norm\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1715,7 +1724,7 @@ The code for this simulation can be found in \code{examples/groundstate\_workede
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
-We have used the \code{plan="exhasutive"} option in the \code{\textless{}fftw\textgreater{}} element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the \textasciitilde{}/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.
+We have used the \code{plan="exhaustive"} option in the \code{\textless{}fftw\textgreater{}} element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the \textasciitilde{}/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.
 
 \index{Computed vectors}
 This simulation introduces the first example of a very powerful feature in XMDS2: the \code{\textless{}computed\_vector\textgreater{}} element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vector can never be used as an integration vector, as  [...]
@@ -1723,10 +1732,10 @@ This simulation introduces the first example of a very powerful feature in XMDS2
 The difference between a computed vector and a stored vector is emphasised by the replacement of the \code{\textless{}initialisation\textgreater{}} element with an \code{\textless{}evaluation\textgreater{}} element.  Apart from the name, they have virtually identical purpose and syntax.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
       \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1742,7 +1751,7 @@ The \code{\textless{}filter\textgreater{}} element can be placed in the \code{\t
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
+    \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from a filter segment!}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 \end{Verbatim}
@@ -1763,7 +1772,7 @@ Since this filter depends on a vector with the transverse dimension ``y'', this
 The next usage of a \code{\textless{}filter\textgreater{}} element in this program is inside the \code{\textless{}integrate\textgreater{}} element, where all filters are placed inside a \code{\textless{}filters\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction normalisation\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1779,8 +1788,8 @@ Filters placed in an integration block are applied each integration step.  The `
 At the end of the sequence element we introduce the \code{\textless{}breakpoint\textgreater{}} element.  This serves two purposes.  The first is a simple matter of convenience.  Often when we manage our input and output from a simulation, we are interested solely in storing the exact state of our integration vectors.  A breakpoint element does exactly that, storing the components of any vectors contained within, taking all the normal options of the \code{\textless{}output\textgreater{}}  [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
 
@@ -1811,29 +1820,29 @@ where
 \begin{gather}
 \begin{split}\phi_n(x,t) = \sqrt{\frac{1}{2^n n!}} \left(\frac{m \omega}{\hbar \pi}\right)^\frac{1}{4} e^{-\frac{m \omega x^2}{2\hbar}} H_n\left(\sqrt{\frac{m \omega}{\hbar}x}\right),\;\;\;\;\;\;E_n = \left(n+\frac{1}{2}\right) \omega\end{split}\notag\\\begin{split}\end{split}\notag
 \end{gather}
-where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire $-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2$ term as a diagonal term in the hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a simplified version of the \code{examples/hermitegauss\_groundstat [...]
+where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire $-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2$ term as a diagonal term in the Hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a simplified version of the \code{examples/hermitegauss\_groundstat [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}hermitegauss\PYGZus{}groundstate\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Graham Dennis\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}}
-    Solve for the groundstate of the Gross-Pitaevskii equation using the hermite-Gauss basis.
+    Solve for the groundstate of the Gross\PYGZhy{}Pitaevskii equation using the Hermite\PYGZhy{}Gauss basis.
   \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{omegaz} \PYG{o}{=} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{l+m+mi}{20}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{omegarho} \PYG{o}{=} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{l+m+mi}{200}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{hbar} \PYG{o}{=} \PYG{l+m+mf}{1.05457148e-34}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{M} \PYG{o}{=} \PYG{l+m+mf}{1.409539200000000e-25}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{hbar} \PYG{o}{=} \PYG{l+m+mf}{1.05457148e\PYGZhy{}34}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{M} \PYG{o}{=} \PYG{l+m+mf}{1.409539200000000e\PYGZhy{}25}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{g} \PYG{o}{=} \PYG{l+m+mf}{9.8}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{scatteringLength} \PYG{o}{=} \PYG{l+m+mf}{5.57e-9}\PYG{p}{;}
-        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{transverseLength} \PYG{o}{=} \PYG{l+m+mf}{1e-5}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{scatteringLength} \PYG{o}{=} \PYG{l+m+mf}{5.57e\PYGZhy{}9}\PYG{p}{;}
+        \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{transverseLength} \PYG{o}{=} \PYG{l+m+mf}{1e\PYGZhy{}5}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Uint} \PYG{o}{=} \PYG{l+m+mf}{4.0}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{scatteringLength}\PYG{o}{/}\PYG{n}{M}\PYG{o}{/}\PYG{n}{transverseLength}\PYG{o}{/}\PYG{n}{transverseLength}\PYG{p}{;}
         \PYG{k}{const} \PYG{n+nf}{real} \PYG{n}{Nparticles} \PYG{o}{=} \PYG{l+m+mf}{5.0e5}\PYG{p}{;}
 
@@ -1846,23 +1855,23 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"100"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"sqrt(hbar/(M*omegarho))"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}100\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}sqrt(hbar/(M*omegarho))\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{p}{)} \PYG{o}{*} \PYG{n}{pow}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{p}{(}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{p}{)}\PYG{p}{,} \PYG{l+m+mf}{0.25}\PYG{p}{)} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{n}{hbar}\PYG{p}{)}\PYG{o}{*}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{p}{)} \PYG{o}{*} \PYG{n}{pow}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{p}{(}\PYG{n}{hbar}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI}\PYG{p}{)}\PYG{p}{,} \PYG{l+m+mf}{0.25}\PYG{p}{)} \PYG{o}{*} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{p}{(}\PYG{n}{M}\PYG{o}{*}\PYG{n}{omegarho}\PYG{o}{/}\PYG{n}{hbar}\PYG{p}{)}\PYG{o}{*}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"normalisation"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}normalisation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} Ncalc \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
@@ -1871,7 +1880,7 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1.0e-2"} \PYG{n+na}{steps=}\PYG{l+s}{"4000"}  \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-10"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1.0e\PYGZhy{}2\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}4000\PYGZdq{}}  \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}10\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}100 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}filters}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
@@ -1883,15 +1892,15 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
         \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{L} \PYG{o}{=} \PYG{n}{EnergyOffset}\PYG{o}{/}\PYG{n}{hbar} \PYG{o}{-} \PYG{p}{(}\PYG{n}{nx} \PYG{o}{+} \PYG{l+m+mf}{0.5}\PYG{p}{)}\PYG{o}{*}\PYG{n}{omegarho}\PYG{p}{;}
+            \PYG{n}{L} \PYG{o}{=} \PYG{n}{EnergyOffset}\PYG{o}{/}\PYG{n}{hbar} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{nx} \PYG{o}{+} \PYG{l+m+mf}{0.5}\PYG{p}{)}\PYG{o}{*}\PYG{n}{omegarho}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+          \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -1903,20 +1912,20 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"hermitegauss\PYGZus{}groundstate\PYGZus{}break.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"ascii"}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"nx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}hermitegauss\PYGZus{}groundstate\PYGZus{}break.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}ascii\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}nx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{n}{dens} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}dens\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -1930,15 +1939,15 @@ where $H_n(u)$ are the physicist's version of the Hermite polynomials.  Rather t
 The major difference in this simulation code, aside from the switch back from dimensionless units, is the new transverse dimension type in the \code{\textless{}geometry\textgreater{}} element.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"100"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"sqrt(hbar/(M*omegarho))"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}100\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}sqrt(hbar/(M*omegarho))\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
-We have explicitly defined the ``transform'' option, which by defaults expects the Fourier transform.  The \code{transform="hermite-gauss"} option requires the `mpmath' package installed, just as Fourier transforms require the FFTW package to be installed.  The ``lattice'' option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polynomial and increases.  The number of hermite-Gaussian modes fully determines the irregular spatia [...]
+We have explicitly defined the ``transform'' option, which by default expects the Fourier transform.  The \code{transform="hermite-gauss"} option requires the `mpmath' package installed, just as Fourier transforms require the FFTW package to be installed.  The ``lattice'' option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polynomial and increases.  The number of hermite-Gaussian modes fully determines the irregular spatial [...]
 
 The \code{length\_scale="sqrt(hbar/(M*omegarho))"} option requires a real number, but since this script defines it in terms of variables, XMDS2 is unable to verify that the resulting function is real-valued at the time of generating the code.  XMDS2 will therefore fail to compile this program without the feature:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 which disables many of these checks at the time of writing the C-code.
@@ -1953,7 +1962,7 @@ This example demonstrates a simple method for doing matrix calculations in XMDS2
 where the last term is more commonly written as a matrix multiplication.  Writing this term out explicitly is feasible for a small number of components, but when the number of components becomes large, or perhaps $V_{j k}$ should be precomputed for efficiency reasons, it is useful to be able to perform this sum over the integer dimensions automatically.  This example show how this can be done naturally using a computed vector.  The XMDS2 script is as follows:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}}2DMSse\PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}Joe Hope\PYG{n+nt}{\PYGZlt{}/author\PYGZgt{}}
@@ -1964,7 +1973,7 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}benchmark} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}openmp} \PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}auto\PYGZus{}vectorise} \PYG{n+nt}{/\PYGZgt{}}
      \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
@@ -1972,45 +1981,45 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"32"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"32"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-6, 6)"} \PYG{n+nt}{/\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"2"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,1)"} \PYG{n+na}{aliases=}\PYG{l+s}{"k"}\PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}32\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}32\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}6, 6)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,1)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{j}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.1}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{phi} \PYG{o}{=} \PYG{n}{j}\PYG{o}{*}\PYG{n}{sqrt}\PYG{p}{(}\PYG{l+m+mi}{2}\PYG{o}{/}\PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{M\PYGZus{}PI}\PYG{o}{/}\PYG{l+m+mi}{2}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{o}{*}\PYG{n}{exp}\PYG{p}{(}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.1}\PYG{o}{*}\PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"spatialInteraction"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}spatialInteraction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} U \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{U}\PYG{o}{=}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{U}\PYG{o}{=}\PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{p}{(}\PYG{n}{x}\PYG{o}{*}\PYG{n}{x}\PYG{o}{+}\PYG{n}{y}\PYG{o}{*}\PYG{n}{y}\PYG{p}{)}\PYG{o}{/}\PYG{l+m+mi}{4}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"internalInteraction"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{dimensions=}\PYG{l+s}{"j k"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}internalInteraction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} V \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{V}\PYG{o}{=}\PYG{l+m+mi}{3}\PYG{o}{*}\PYG{p}{(}\PYG{n}{j}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{k}\PYG{p}{)}\PYG{o}{+}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{-}\PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{V}\PYG{o}{=}\PYG{l+m+mi}{3}\PYG{o}{*}\PYG{p}{(}\PYG{n}{j}\PYG{o}{*}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{k}\PYG{p}{)}\PYG{o}{+}\PYG{p}{(}\PYG{l+m+mi}{1}\PYG{o}{\PYGZhy{}}\PYG{n}{j}\PYG{p}{)}\PYG{o}{*}\PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"coupling"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}coupling\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
       VPhi
     \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x y j k"}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
         \PYG{n}{VPhi} \PYG{o}{=} \PYG{n}{V}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
@@ -2019,24 +2028,24 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"2.0"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-7"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}2.0\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}7\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}20 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{Lx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+            \PYG{n}{Lx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
           \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ly\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
           \PYG{c+cp}{\PYGZlt{}![CDATA[}
-            \PYG{n}{Ly} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+            \PYG{n}{Ly} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
           \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lx}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Ly}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
+        \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lx}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{+} \PYG{n}{Ly}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}spatialInteraction coupling\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -2044,14 +2053,14 @@ where the last term is more commonly written as a matrix multiplication.  Writin
   \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}output}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}density\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
         \PYG{n}{density} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x(0) y(0) j"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x(0) y(0) j\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}normalisation\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -2066,18 +2075,18 @@ where the last term is more commonly written as a matrix multiplication.  Writin
 The only truly new feature in this script is the ``aliases'' option on a dimension.  The integer-valued dimension in this script indexes the components of the PDE (in this case only two).  The  $V_{j k}$ term is required to be a square array of dimension of this number of components.  If we wrote the k-index of $V_{j k}$ using a separate \code{\textless{}dimension\textgreater{}} element, then we would not be enforcing the requirement that the matrix be square.  Instead, we note that we w [...]
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{lattice=}\PYG{l+s}{"2"} \PYG{n+na}{domain=}\PYG{l+s}{"(0,1)"} \PYG{n+na}{aliases=}\PYG{l+s}{"k"}\PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0,1)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 This means that we can use the index ``k'', which will have exactly the same properties as the ``j'' index.  This is used to define the ``V'' function in the ``internalInteraction'' vector.  Now, just as we use a computed vector to perform an integration over our fields, we use a computed vector to calculate the sum.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"coupling"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y j"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}coupling\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y j\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
     VPhi
   \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x y j k"}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y j k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}internalInteraction wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{c+c1}{// Calculate the current normalisation of the wave function.}
       \PYG{n}{VPhi} \PYG{o}{=} \PYG{n}{V}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{(}\PYG{n}{j} \PYG{o}{=}\PYG{o}{\PYGZgt{}} \PYG{n}{k}\PYG{p}{)}\PYG{p}{;}
@@ -2091,14 +2100,14 @@ Since the output dimensions of the computed vector do not include a ``k'' index,
 This example also demonstrates an optimisation for the IP operators by separating the $x$ and $y$ parts of the operator (see {\hyperref[optimisation_hints:optimisingipoperators]{\emph{Optimising with the Interaction Picture (IP) operator}}}).  This gives an approximately 30\% speed improvement over the more straightforward implementation:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
+    \PYG{n}{L} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \PYG{c+cp}{\PYGZlt{}![CDATA[}
-  \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
+  \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{L}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{U}\PYG{o}{*}\PYG{n}{VPhi}\PYG{p}{;}
 \PYG{c+cp}{]]\PYGZgt{}}
 \end{Verbatim}
 
@@ -2137,15 +2146,15 @@ Contents:
 It also has commands to configure XMDS2 and recheck the installation.  If your program requires extra paths to compile, you can configure XMDS2 to include those paths by default.  Simply use the command
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }xmds2 --configure --include-path /path/to/include --lib-path /path/to/lib
+\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}configure \PYGZhy{}\PYGZhy{}include\PYGZhy{}path /path/to/include \PYGZhy{}\PYGZhy{}lib\PYGZhy{}path /path/to/lib
 \end{Verbatim}
 
 Alternatively, you can set the \code{CXXFLAGS} or \code{LINKFLAGS} environment variables before calling \code{xmds2 -{-}reconfigure}.  For example, to pass the compiler flag \code{-pedantic} and the link flag \code{-lm} using the bash shell, use:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{CXXFLAGS}\PYG{o}{=}\PYG{l+s+s2}{"-pedantic"}
-\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{LINKFLAGS}\PYG{o}{=}\PYG{l+s+s2}{"-lm"}
-\PYG{n+nv}{\PYGZdl{} }xmds2 --reconfigure\PYG{l+s+sb}{{}`}\PYG{l+s+sb}{{}`}
+\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{CXXFLAGS}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}\PYGZhy{}pedantic\PYGZdq{}}
+\PYG{n+nv}{\PYGZdl{} }\PYG{n+nb}{export }\PYG{n+nv}{LINKFLAGS}\PYG{o}{=}\PYG{l+s+s2}{\PYGZdq{}\PYGZhy{}lm\PYGZdq{}}
+\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}reconfigure\PYG{l+s+sb}{{}`}\PYG{l+s+sb}{{}`}
 \end{Verbatim}
 
 This method can also be used to change the default compilers for standard and parallel processing, using the CXX and MPICXX flags respectively.
@@ -2153,7 +2162,7 @@ This method can also be used to change the default compilers for standard and pa
 Running XMDS2 with the `--configure' option also searches for packages that have been installed since you last installed or configured XMDS2.  If you wish to run `xmds2 --configure' with the same extra options as last time, simply use the command:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nv}{\PYGZdl{} }xmds2 --reconfigure
+\PYG{n+nv}{\PYGZdl{} }xmds2 \PYGZhy{}\PYGZhy{}reconfigure
 \end{Verbatim}
 
 A detailed log of the checks is saved in the file `\textasciitilde{}/.xmds/waf\_configure/config.log'.  This can be used to identify issues with packages that XMDS2 is not recognised, but you think that you have successfully installed on your system.
@@ -2164,19 +2173,19 @@ A detailed log of the checks is saved in the file `\textasciitilde{}/.xmds/waf\_
 Standard XML placeholders can be used to simplify some scripts.  For example, the following (abbreviated) code ensures that the limits of a domain are symmetric.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
 \PYG{c+cp}{\PYGZlt{}!DOCTYPE simulation [}
-\PYG{c+cp}{\PYGZlt{}!ENTITY Npts    "64"\PYGZgt{}}
-\PYG{c+cp}{\PYGZlt{}!ENTITY L      "3.0e-5"\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}!ENTITY Npts    \PYGZdq{}64\PYGZdq{}\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}!ENTITY L      \PYGZdq{}3.0e\PYGZhy{}5\PYGZdq{}\PYGZgt{}}
 ]\PYGZgt{}
-  \PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
 
     . . .
 
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"\PYGZam{}Npts;"}  \PYG{n+na}{domain=}\PYG{l+s}{"(-\PYGZam{}L;, \PYGZam{}L;)"} \PYG{n+nt}{/\PYGZgt{}}
+          \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}\PYGZam{}Npts;\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}\PYGZam{}L;, \PYGZam{}L;)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
      \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
@@ -2192,8 +2201,8 @@ The syntax \textless{}element /\textgreater{} can be used for lowest-level eleme
 The possible attributes and attribute values for each element are not shown; see the individual entries in the Reference section for details.
 {\hyperref[reference_elements:simulationelement]{\emph{}}}{\hyperref[reference_elements:nameelement]{\emph{}}}{\hyperref[reference_elements:nameelement]{\emph{}}}{\hyperref[reference_elements:authorelement]{\emph{}}}{\hyperref[reference_elements:authorelement]{\emph{}}}{\hyperref[reference_elements:descriptionelement]{\emph{}}}{\hyperref[reference_elements:descriptionelement]{\emph{}}}{\hyperref[reference_elements:featureselement]{\emph{}}}{\hyperref[reference_elements:argumentselement]{ [...]
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{c+cp}{\PYGZlt{}?xml version="1.0" encoding="UTF-8"?\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c+cp}{\PYGZlt{}?xml version=\PYGZdq{}1.0\PYGZdq{} encoding=\PYGZdq{}UTF\PYGZhy{}8\PYGZdq{}?\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}author}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}description}\PYG{n+nt}{\PYGZgt{}} \PYG{n+nt}{\PYGZlt{}/description\PYGZgt{}}
@@ -2350,8 +2359,8 @@ The \code{\textless{}simulation\textgreater{}} element is the single top level e
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ Rest of simulation goes here }\PYG{c}{--\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ Rest of simulation goes here }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
@@ -2449,7 +2458,7 @@ Features elements are where simulation-wide options are specified. The \code{\te
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}bing} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}precision}\PYG{n+nt}{\PYGZgt{}} double \PYG{n+nt}{\PYGZlt{}/precision\PYGZgt{}}
@@ -2468,9 +2477,9 @@ The \code{\textless{}arguments\textgreater{}} element is optional, and allows de
 \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} arguments\PYGZus{}test \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"size"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"20.0"}\PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"number"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"7"}\PYG{n+nt}{/\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"pulse\PYGZus{}shape"} \PYG{n+na}{type=}\PYG{l+s}{"string"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"gaussian"}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}size\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}number\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}7\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}pulse\PYGZus{}shape\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}string\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}gaussian\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \end{Verbatim}
@@ -2478,7 +2487,7 @@ The \code{\textless{}arguments\textgreater{}} element is optional, and allows de
 When \code{XMDS2} is run on this script the executable \code{arguments\_test} is created. The values of \code{size}, \code{number}, and \code{pulse\_shape} can then be set to whatever is desired at runtime via
 
 \begin{Verbatim}[commandchars=\\\{\}]
-./arguments\PYGZus{}test --size=1.3 --number=2 --pulse\PYGZus{}shape=lorentzian
+./arguments\PYGZus{}test \PYGZhy{}\PYGZhy{}size=1.3 \PYGZhy{}\PYGZhy{}number=2 \PYGZhy{}\PYGZhy{}pulse\PYGZus{}shape=lorentzian
 \end{Verbatim}
 
 It is also possible to include an optional \code{CDATA} block inside the \code{\textless{}arguments\textgreater{}} block. This code will run after the arguments have been initialised with the values passed from the command line. This code block could be used, for example, to sanity check the parameters passed in, or for assigning values to global variables based on those parameters.  Any references to variables defined in an \code{\textless{}argument\textgreater{}} element should be made [...]
@@ -2491,14 +2500,29 @@ It is also possible to include an optional \code{CDATA} block inside the \code{\
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}globals}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"bragg\PYGZus{}order"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"2"}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}bragg\PYGZus{}order\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{atom\PYGZus{}kick} \PYG{o}{=} \PYG{n}{bragg\PYGZus{}order} \PYG{o}{*} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI} \PYG{o}{/} \PYG{l+m+mf}{780e-9}\PYG{p}{;}
+      \PYG{n}{atom\PYGZus{}kick} \PYG{o}{=} \PYG{n}{bragg\PYGZus{}order} \PYG{o}{*} \PYG{l+m+mi}{2}\PYG{o}{*}\PYG{n}{M\PYGZus{}PI} \PYG{o}{/} \PYG{l+m+mf}{780e\PYGZhy{}9}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \end{Verbatim}
 
+The arguments and their values can be added to the filename of the output files by using the \code{append\_args\_to\_output\_filename} attribute.  For example:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+\PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} arguments\PYGZus{}test \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}arguments} \PYG{n+na}{append\PYGZus{}args\PYGZus{}to\PYGZus{}output\PYGZus{}filename=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}size\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}20.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}number\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}7\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}pulse\PYGZus{}shape\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}string\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}gaussian\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
+\end{Verbatim}
+
+When the \code{arguments\_test} executable is run, it will create output files named \code{arguments\_test.number\_7.pulse\_shape\_gaussian.size\_20.0.xsil} and \code{arguments\_test.number\_7.pulse\_shape\_gaussian.size\_20.0.h5}.
+
 \index{XML elements!argument}
 
 \paragraph{Argument element}
@@ -2535,7 +2559,7 @@ Example syntax:
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}cflags}\PYG{n+nt}{\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{o}{-}\PYG{n}{O4}
+        \PYG{o}{\PYGZhy{}}\PYG{n}{O4}
     \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/cflags\PYGZgt{}}
 \end{Verbatim}
@@ -2562,9 +2586,9 @@ Neither is this feature compatible with the \code{error\_check} feature as that
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}chunked\PYGZus{}output} \PYG{n+na}{size=}\PYG{l+s}{"5MB"} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}chunked\PYGZus{}output} \PYG{n+na}{size=}\PYG{l+s}{\PYGZdq{}5MB\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
@@ -2584,7 +2608,7 @@ It's often important to know whether you've got errors.  This feature runs each
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}error\PYGZus{}check} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
@@ -2607,7 +2631,7 @@ The \code{\textless{}fftw \textbackslash{}\textgreater{}} feature can be used to
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{"patient"} \PYG{n+na}{threads=}\PYG{l+s}{"3"} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{plan=}\PYG{l+s}{\PYGZdq{}patient\PYGZdq{}} \PYG{n+na}{threads=}\PYG{l+s}{\PYGZdq{}3\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 \index{XML elements!globals}
@@ -2659,7 +2683,7 @@ WARNING: Single precision mode has not been tested anywhere near as thoroughly a
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}precision}\PYG{n+nt}{\PYGZgt{}} single \PYG{n+nt}{\PYGZlt{}/precision\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
@@ -2677,18 +2701,18 @@ As an example, one may wish to define the number of grid points and the range of
 \begin{Verbatim}[commandchars=\\\{\}]
  \PYG{n+nt}{\PYGZlt{}name}\PYG{n+nt}{\PYGZgt{}} validation\PYGZus{}test \PYG{n+nt}{\PYGZlt{}/name\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}features}\PYG{n+nt}{\PYGZgt{}}
-   \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{"run-time"} \PYG{n+nt}{/\PYGZgt{}}
+   \PYG{n+nt}{\PYGZlt{}validation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}run\PYGZhy{}time\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}arguments}\PYG{n+nt}{\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"xmin"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"-1.0"}\PYG{n+nt}{/\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"xmax"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"1.0"}\PYG{n+nt}{/\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{"numGridPoints"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{"128"}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}xmin\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}\PYGZhy{}1.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}xmax\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}argument} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}numGridPoints\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+na}{default\PYGZus{}value=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}}\PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/arguments\PYGZgt{}}
  \PYG{n+nt}{\PYGZlt{}/features\PYGZgt{}}
 
  \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-     \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"numGridPoints"}  \PYG{n+na}{domain=}\PYG{l+s}{"(xmin, xmax)"} \PYG{n+nt}{/\PYGZgt{}}
+     \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}numGridPoints\PYGZdq{}}  \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(xmin, xmax)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
    \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \end{Verbatim}
@@ -2696,7 +2720,7 @@ As an example, one may wish to define the number of grid points and the range of
 and then run the resulting executable with:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-./validation\PYGZus{}test --xmin=-2.0 --xmax=2.0 --numGridPoints=64
+./validation\PYGZus{}test \PYGZhy{}\PYGZhy{}xmin=\PYGZhy{}2.0 \PYGZhy{}\PYGZhy{}xmax=2.0 \PYGZhy{}\PYGZhy{}numGridPoints=64
 \end{Verbatim}
 
 This approach means that when XMDS2 is parsing the script it is unable to tell, for example, if the number of sampling points requested is less than or equal to the lattice size. Consequently it will create an executable with ``numGridPoints'' as an internal variable, and make the check at run-time, when it knows the value of ``numGridPoints'' rather than at compile time, when it doesn't.
@@ -2720,14 +2744,14 @@ The \code{name="adaptive-mpi-multi-path"} option integrates separate paths on di
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"distributed-mpi"} \PYG{n+nt}{/\PYGZgt{}}
-        \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"10"} \PYG{n+nt}{/\PYGZgt{}}
-        \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"1000"} \PYG{n+nt}{/\PYGZgt{}}
-                \PYG{c}{\PYGZlt{}!--}\PYG{c}{ or }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{"adaptive-mpi-multi-path"} \PYG{n+na}{paths=}\PYG{l+s}{"1000"} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}distributed\PYGZhy{}mpi\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ or }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+        \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ or }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}mpi\PYGZhy{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}1000\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+                \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ or }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}driver} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}adaptive\PYGZhy{}mpi\PYGZhy{}multi\PYGZhy{}path\PYGZdq{}} \PYG{n+na}{paths=}\PYG{l+s}{\PYGZdq{}1000\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
 
@@ -2762,18 +2786,18 @@ An advanced feature discussed further in {\hyperref[advanced_topics:dimensionali
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A real}\PYG{c}{-}\PYG{c}{valued dimension from }\PYG{c}{-}\PYG{c}{1.5 to 1.5 }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A real}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension from }\PYG{c}{\PYGZhy{}}\PYG{c}{1.5 to 1.5 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 
-            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ An integer}\PYG{c}{-}\PYG{c}{valued dimension with the 6 values }\PYG{c}{-}\PYG{c}{2, }\PYG{c}{-}\PYG{c}{1, 0, 1, 2, 3 }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"j"}               \PYG{n+na}{domain=}\PYG{l+s}{"(-2,3)"} \PYG{n+na}{type=}\PYG{l+s}{"integer"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ An integer}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension with the 6 values }\PYG{c}{\PYGZhy{}}\PYG{c}{2, }\PYG{c}{\PYGZhy{}}\PYG{c}{1, 0, 1, 2, 3 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}j\PYGZdq{}}               \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}2,3)\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}integer\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 
-            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A real}\PYG{c}{-}\PYG{c}{valued dimension using the bessel transform for a radial coordinate }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"64"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 5)"}  \PYG{n+na}{transform=}\PYG{l+s}{"bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2.0*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A real}\PYG{c}{\PYGZhy{}}\PYG{c}{valued dimension using the bessel transform for a radial coordinate }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}64\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 5)\PYGZdq{}}  \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2.0*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2806,12 +2830,12 @@ This identity can be used to write the differential operator $\mathcal{L} = \fra
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!--}\PYG{c}{ transform="dft" is the default, omitting it wouldn't change anything }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dft"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ transform=\PYGZdq{}dft\PYGZdq{} is the default, omitting it wouldn\PYGZsq{}t change anything }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dft\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2839,13 +2863,13 @@ For problems where you are defining the simulation domain over only half of the
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.5, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+nt}{/\PYGZgt{}}
-                \PYG{c}{\PYGZlt{}!--}\PYG{c}{ Or to cause volume integrals to be multiplied by 2 }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 1)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2.0"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.5, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+                \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ Or to cause volume integrals to be multiplied by 2 }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 1)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2.0\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2871,11 +2895,11 @@ This identity can be used to write the differential operator $\mathcal{L} = \fra
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 1.5)"} \PYG{n+na}{transform=}\PYG{l+s}{"dst"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 1.5)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dst\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2915,11 +2939,11 @@ In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For exa
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 3)"} \PYG{n+na}{transform=}\PYG{l+s}{"bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"2*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 3)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}2*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2950,11 +2974,11 @@ In non-Euclidean co-ordinates, integrals have non-unit volume elements.  For exa
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(0, 3)"} \PYG{n+na}{transform=}\PYG{l+s}{"spherical-bessel"} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{"4*M\PYGZus{}PI"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(0, 3)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}spherical\PYGZhy{}bessel\PYGZdq{}} \PYG{n+na}{volume\PYGZus{}prefactor=}\PYG{l+s}{\PYGZdq{}4*M\PYGZus{}PI\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -2996,11 +3020,11 @@ The Hermite-Gauss transform permits one to work in energy-space for the harmonic
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"r"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{"1.0"} \PYG{n+na}{transform=}\PYG{l+s}{"hermite-gauss"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}r\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{length\PYGZus{}scale=}\PYG{l+s}{\PYGZdq{}1.0\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}hermite\PYGZhy{}gauss\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3062,31 +3086,31 @@ When initialising from a file, the default is to require the lattice of the tran
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A zero}\PYG{c}{-}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"zero\PYGZus{}dim"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A zero}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}zero\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             u v
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}data.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -3107,39 +3131,39 @@ Any transverse dimensions that appear in the \code{\textless{}dependencies\textg
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"y"} \PYG{n+na}{lattice=}\PYG{l+s}{"10"} \PYG{n+na}{domain=}\PYG{l+s}{"(-3, 2)"} \PYG{n+na}{transform=}\PYG{l+s}{"dct"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}10\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}3, 2)\PYGZdq{}} \PYG{n+na}{transform=}\PYG{l+s}{\PYGZdq{}dct\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{"x"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}basis=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{c}{\PYGZlt{}!--}
-\PYG{c}{                The initialisation of the vector 'wavefunction' depends on information}
-\PYG{c}{                in the 'two\PYGZus{}dim' vector.  The vector two\PYGZus{}dim is DCT}\PYG{c}{-}\PYG{c}{transformed into the}
+            \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
+\PYG{c}{                The initialisation of the vector \PYGZsq{}wavefunction\PYGZsq{} depends on information}
+\PYG{c}{                in the \PYGZsq{}two\PYGZus{}dim\PYGZsq{} vector.  The vector two\PYGZus{}dim is DCT}\PYG{c}{\PYGZhy{}}\PYG{c}{transformed into the}
 \PYG{c}{                (x, ky) basis, and the ky dimension is implicitly integrated over in the}
 \PYG{c}{                following initialisation code}
-\PYG{c}{              }\PYG{c}{--\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"x ky"}\PYG{n+nt}{\PYGZgt{}}two\PYGZus{}dim\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{c}{              }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}two\PYGZus{}dim\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x} \PYG{o}{+} \PYG{n}{v}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{n}{u} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x} \PYG{o}{+} \PYG{n}{v}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{n}{u} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A two}\PYG{c}{-}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"two\PYGZus{}dim"} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A two}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real vector with components u and v }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}two\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             u v
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}data.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -3158,34 +3182,34 @@ As it is not being stored, a \code{\textless{}computed\_vector\textgreater{}} do
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A one}\PYG{c}{-}\PYG{c}{dimensional vector with dimension 'x' }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional vector with dimension \PYGZsq{}x\PYGZsq{} }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} phi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// 'cis(x)' is cos(x) + i * sin(x)}
-                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{-}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
+                \PYG{c+c1}{// \PYGZsq{}cis(x)\PYGZsq{} is cos(x) + i * sin(x)}
+                \PYG{n}{phi} \PYG{o}{=} \PYG{n}{exp}\PYG{p}{(}\PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5} \PYG{o}{*} \PYG{n}{x} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)} \PYG{o}{*} \PYG{n}{cis}\PYG{p}{(}\PYG{l+m+mi}{40} \PYG{o}{*} \PYG{n}{x}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}\PYG{c}{ A zero}\PYG{c}{-}\PYG{c}{dimensional real computed vector with components Ncalc }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"zero\PYGZus{}dim"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"real"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ A zero}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional real computed vector with components Ncalc }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}zero\PYGZus{}dim\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             Ncalc
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
             \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
             \PYG{c+cp}{\PYGZlt{}![CDATA[}
-                \PYG{c+c1}{// Implicitly integrating over the dimension 'x'}
+                \PYG{c+c1}{// Implicitly integrating over the dimension \PYGZsq{}x\PYGZsq{}}
                 \PYG{n}{Ncalc} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{;}
             \PYG{c+cp}{]]\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
@@ -3208,21 +3232,21 @@ The different types of noise vectors are defined by a mandatory \code{kind} attr
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"128"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1, 1)"} \PYG{n+nt}{/\PYGZgt{}}
+            \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}128\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1, 1)\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-    \PYG{c}{\PYGZlt{}!--}
-\PYG{c}{        A one}\PYG{c}{-}\PYG{c}{dimensional complex wiener noise vector.}
+    \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}
+\PYG{c}{        A one}\PYG{c}{\PYGZhy{}}\PYG{c}{dimensional complex wiener noise vector.}
 \PYG{c}{        This noise is appropriate for using in the complex}
-\PYG{c}{        random}\PYG{c}{-}\PYG{c}{walk equation of motion:}
+\PYG{c}{        random}\PYG{c}{\PYGZhy{}}\PYG{c}{walk equation of motion:}
 \PYG{c}{            dz\PYGZus{}dt = eta;}
-\PYG{c}{    }\PYG{c}{--\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"noise"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{c}{    }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}noise\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}
             eta
         \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
@@ -3239,8 +3263,8 @@ Uniform noises defined over any transverse dimensions are simply uniformly distr
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"drivingNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"uniform"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+na}{method=}\PYG{l+s}{"dsfmt"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}drivingNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}uniform\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}dsfmt\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Eta\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3261,8 +3285,8 @@ Gaussian noise vectors are an example of a ``static'' noise, i.e. one suitable f
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialNoise"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"gauss"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"posix"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialNoise\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}gauss\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}posix\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}fuzz\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3279,8 +3303,8 @@ As a dynamic noise, a Wiener process is not well-defined except in an \code{inte
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"diffusion"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"wiener"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}diffusion\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}wiener\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dW\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3297,8 +3321,8 @@ Poissonian noise vectors are an example of a ``static'' noise, i.e. one suitable
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialDistribution"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"} \PYG{n+na}{kind=}\PYG{l+s}{"poissonian"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{mean-density=}\PYG{l+s}{"2.7"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialDistribution\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}poissonian\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{mean\PYGZhy{}density=}\PYG{l+s}{\PYGZdq{}2.7\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}Pdist\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3312,13 +3336,13 @@ A noise vector using the ``jump'' method is the dynamic version of the poissonia
 
 It is common to wish to vary the mean rate of a jump process, which means that the \code{mean-rate} attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the {\hyperref[reference_elements:validation]{\emph{\textless{}validation\textgreater{}}}} feature with either the \code{kind="none"} or \code{kind="run-time"} attributes.
 
-As a dynamic noise, a jump process is not well-defined except in an \code{integrate} element.
+As a dynamic noise, a jump process is not well-defined except in an \code{integrate} element.  The only algorithm that currently integrates jump noises correctly is the Euler algorithm.  This can be implemented by the ``SI'' method with the option \code{iterations="1"}.
 
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"initialDistribution"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{kind=}\PYG{l+s}{"jump"} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{mean-rate=}\PYG{l+s}{"2.7"} \PYG{n+na}{method=}\PYG{l+s}{"solirte"} \PYG{n+na}{seed=}\PYG{l+s}{"314 159 276"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}noise\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}initialDistribution\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}jump\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{mean\PYGZhy{}rate=}\PYG{l+s}{\PYGZdq{}2.7\PYGZdq{}} \PYG{n+na}{method=}\PYG{l+s}{\PYGZdq{}solirte\PYGZdq{}} \PYG{n+na}{seed=}\PYG{l+s}{\PYGZdq{}314 159 276\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dN\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/noise\PYGZus{}vector\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
@@ -3333,8 +3357,8 @@ All processing of vectors happens in sequence elements.  Each simulation must ha
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sequence} \PYG{n+na}{cycles=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sequence} \PYG{n+na}{cycles=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}  ... \PYG{n+nt}{\PYGZlt{}/sequence\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}} ... \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}integrate}\PYG{n+nt}{\PYGZgt{}} ...\PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
@@ -3359,12 +3383,12 @@ Example syntax:
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{"}\PYG{l+s}{Hello world from the first filter segment!  This filter rather wastefully calls the second one.}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{"}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{printf}\PYG{p}{(}\PYG{l+s}{\PYGZdq{}}\PYG{l+s}{Hello world from the first filter segment!  This filter rather wastefully calls the second one.}\PYG{l+s+se}{\PYGZbs{}n}\PYG{l+s}{\PYGZdq{}}\PYG{p}{)}\PYG{p}{;}
         \PYG{n}{fname}\PYG{p}{(}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
 
-    \PYG{n+nt}{\PYGZlt{}filter} \PYG{n+na}{name=}\PYG{l+s}{"fname"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}filter} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}fname\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
        \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}normalisation wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
        \PYG{c+cp}{\PYGZlt{}![CDATA[}
          \PYG{n}{phi} \PYG{o}{*}\PYG{o}{=} \PYG{n}{sqrt}\PYG{p}{(}\PYG{n}{Nparticles}\PYG{o}{/}\PYG{n}{Ncalc}\PYG{p}{)}\PYG{p}{;}
@@ -3392,7 +3416,7 @@ Computed vectors can be defined with the \code{\textless{}computed\_vector\textg
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK89"} \PYG{n+na}{interval=}\PYG{l+s}{"1e-4"} \PYG{n+na}{steps=}\PYG{l+s}{"10000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-8"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK89\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}4\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}10000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}8\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}20\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}filters}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
@@ -3403,15 +3427,15 @@ Example syntax:
     \PYG{n+nt}{\PYGZlt{}/filter\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/filters\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+        \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}potential\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{-} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
+      \PYG{n}{dphi\PYGZus{}dt} \PYG{o}{=} \PYG{n}{T}\PYG{p}{[}\PYG{n}{phi}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{p}{(}\PYG{n}{V1} \PYG{o}{+} \PYG{n}{Uint}\PYG{o}{/}\PYG{n}{hbar}\PYG{o}{*}\PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{phi}\PYG{p}{)}\PYG{p}{)}\PYG{o}{*}\PYG{n}{phi}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -3439,7 +3463,7 @@ There are three kinds of \code{\textless{}operator\textgreater{}} elements.  The
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"functions"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}functions\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
   \PYG{n}{f} \PYG{o}{=} \PYG{n}{cos}\PYG{p}{(}\PYG{n}{t}\PYG{p}{)}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
@@ -3458,10 +3482,10 @@ If the IP or EX operator is constant across the integration, then the attribute
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"} \PYG{n+na}{constant=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+    \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \end{Verbatim}
@@ -3479,17 +3503,17 @@ The boundary conditions are specified by a \code{\textless{}boundary\_conditions
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"cross\PYGZus{}propagation"} \PYG{n+na}{algorithm=}\PYG{l+s}{"RK4"} \PYG{n+na}{propagation\PYGZus{}dimension=}\PYG{l+s}{"t"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}cross\PYGZus{}propagation\PYGZdq{}} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}RK4\PYGZdq{}} \PYG{n+na}{propagation\PYGZus{}dimension=}\PYG{l+s}{\PYGZdq{}t\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors}\PYG{n+nt}{\PYGZgt{}}cross\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}constants\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}boundary\PYGZus{}condition} \PYG{n+na}{kind=}\PYG{l+s}{"left"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}boundary\PYGZus{}condition} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}left\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{n}{v} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
       \PYG{n}{w} \PYG{o}{=} \PYG{l+m+mf}{1.0}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/boundary\PYGZus{}condition\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{constant=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{constant=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
       \PYG{n}{L} \PYG{o}{=} \PYG{k+kc}{i}\PYG{p}{;}
@@ -3557,7 +3581,7 @@ As all Runge-Kutta solutions have equal order of convergence for stochastic equa
 \label{reference_elements:realgorithm}\label{reference_elements:index-85}\label{reference_elements:richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method}
 The Richardson Extrapolation technique begins with a large initial interval and uses another stepper algorithm to compute the solution for this interval. It does this by subdividing the interval into increasing subintervals (i.e. with smaller and smaller stepsizes) and uses rational extrapolation to produce a higher order result than would be obtained using the other stepper on its own. The number of extrapolations performed is controllable via the \code{extrapolations} attribute which i [...]
 
-Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as it's error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool. The com [...]
+Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as its error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool. The comb [...]
 
 A number of combinations of fixed-step, fixed-order Richardson Extrapolation are available in XMDS2. The most notable is the Bulirsch-Stoer method which can be selected using \code{algorithm="BS"} or alternatively \code{algorithm="REMM"}. Other combinations include `RERK4', `RERK9' and `RESI' (for stochastic equations). Please note that these additional combinations have not been tested as strictly as the the `REMM' combination and so care should be taken to ensure the results are sane.  [...]
 
@@ -3575,9 +3599,9 @@ is then executed in the order found in the \code{\textless{}filters\textgreater{
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"100000.0"} \PYG{n+na}{steps=}\PYG{l+s}{"10000000"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-8"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}100000.0\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}10000000\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}8\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}}5000 100\PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{"step end"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}filters} \PYG{n+na}{where=}\PYG{l+s}{\PYGZdq{}step end\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filter}\PYG{n+nt}{\PYGZgt{}}
         \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}vector1 vector2\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3606,8 +3630,8 @@ The \code{\textless{}breakpoint\textgreater{}} element is used to output the ful
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"ky"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
 
@@ -3625,7 +3649,7 @@ The \code{\textless{}samples\textgreater{}} inside \code{\textless{}integrate\te
 
 \subsubsection{Sampling Group Element}
 \label{reference_elements:samplinggroupelement}\label{reference_elements:sampling-group-element}\label{reference_elements:index-91}
-A \code{\textless{}sampling\_group\textgreater{}} element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a \code{\textless{}moments\textgreater{}} element, just like the \code{\textless{}components\textgreater{}} element of a vector.  They are defined with a `{\hyperref[reference_elements:xmdscsyntax]{\emph{CDATA}}}` block, accessing any components of vectors and computed vectors [...]
+A \code{\textless{}sampling\_group\textgreater{}} element defines a set of variables that we wish to output, and typically they are functions of some subset of vectors.  The names of the desired variables are listed in a \code{\textless{}moments\textgreater{}} element, just like the \code{\textless{}components\textgreater{}} element of a vector.  They are defined with a `{\hyperref[reference_elements:xmdscsyntax]{\emph{CDATA}}}` block, accessing any components of vectors and computed vec [...]
 
 \index{XML element attributes!basis (sampling\_group element)}\index{XML element attributes!initial\_sample}
 The basis of the output is specified by the \code{basis} attribute.  This overrides any basis specification in the \code{\textless{}dependencies\textgreater{}} element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding a number in parentheses after that dimension in the basis string, e.g. \code{basis="x y(32) kz(64)"}.   [...]
@@ -3635,21 +3659,21 @@ The \code{initial\_sample} attribute, which must be ``yes'' or ``no'', determine
 Example syntax:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"} \PYG{n+na}{filename=}\PYG{l+s}{"SimOutput.xsil"}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"x y"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"filter3"} \PYG{n+na}{dimensions=}\PYG{l+s}{""} \PYG{n+na}{type=}\PYG{l+s}{"complex"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}output} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}SimOutput.xsil\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}filter3\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}sparemomentagain\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
-        \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{"kx ky"}\PYG{n+nt}{\PYGZgt{}}integrated\PYGZus{}u main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
+        \PYG{n+nt}{\PYGZlt{}dependencies} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx ky\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}integrated\PYGZus{}u main\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
         \PYG{c+cp}{\PYGZlt{}![CDATA[}
           \PYG{n}{sparemomentagain} \PYG{o}{=} \PYG{n+nf}{mod2}\PYG{p}{(}\PYG{n}{u}\PYG{p}{)}\PYG{p}{;}
         \PYG{c+cp}{]]\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ex"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ex\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}L\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{L} \PYG{o}{=} \PYG{o}{-}\PYG{n}{T}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{/}\PYG{n}{mu}\PYG{p}{;}
+        \PYG{n}{L} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{n}{T}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{/}\PYG{n}{mu}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}amp ke\PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
@@ -3660,7 +3684,7 @@ Example syntax:
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{"kx(0) ky(64)"} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx(0) ky(64)\PYGZdq{}} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}moments}\PYG{n+nt}{\PYGZgt{}}Dens\PYGZus{}P \PYG{n+nt}{\PYGZlt{}/moments\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}fields \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3711,7 +3735,7 @@ The step size of a dimension is \code{dx}, and if it is constant, also available
 
 \section{Modified Midpoint Method}
 \label{bulirschStoer:modified-midpoint-method}\label{bulirschStoer:index-0}\label{bulirschStoer::doc}\label{bulirschStoer:mmdetail}
-The modified midpoint can be used standalone as an ordinary differential equation integrator, however it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.
+Although the modified midpoint can be used standalone as an ordinary differential equation integrator, it is regarded as much more powerful when used as a stepper to complement the Bulirsch-Stoer technique.
 
 The modified midpoint method advances a vector of dependent variables $y(x)$ from a point $x$, to a point $x + H$ by a sequence of $n$ substeps, each of size $h=H/n$.
 
@@ -3722,27 +3746,27 @@ z_1 &= z_0 + h f(x, z_0) \\
 z_{m+1} &= z_{m-1} + 2 h f(x + m h, z_m)\; \text{ for } m = 1, 2, \dots, n-1 \\
 y(x+H) \approx y_n &= \frac{1}{2} \left[ z_n + z_{n-1} + h f(x + H, z_n) \right]\end{split}\notag\\\begin{split}\end{split}\notag
 \end{gather}
-The error of this, expressed as a power series in $h$, the stepsize, contains only even powers of $h$.
+The error of this, expressed as a power series in $h$, the stepsize, contains only even powers of $h$:
 \begin{gather}
 \begin{split}y_n - y(x + H) &= \sum_{i=1}^{\infty} \alpha_i h^{2i}\end{split}\notag\\\begin{split}\end{split}\notag
 \end{gather}
-Where $H$ is held constant, but $h$ changes $y$ by varing the $n$ in $h = H/n$.
+where $H$ is held constant, but $h$ changes $y$ by varing the $n$ in $h = H/n$.
 
 The importance of this even power series is that using Richardson Extrapolation to combine steps and knock out higher-order error terms gains us two orders at a time.
 
-The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires 1 derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.
+The modified midpoint method is a second-order method, but holds an advantage over second order Runge-Kutta, as it only requires one derivative evaluation per step, instead of the two evaluations that Runge-Kutta necessitates.
 
 \index{Bulirsch-Stoer algorithm}
 
 \section{Bulirsch-Stoer Algorithm}
 \label{bulirschStoer:bulirsch-stoer-algorithm}\label{bulirschStoer:bsdetail}\label{bulirschStoer:index-1}
-The Bulirsch-Stoer algorithm utilizes three core concepts in its design. These are;
+The Bulirsch-Stoer algorithm utilizes three core concepts in its design.
 
-Firstly, the usage of Richardson Extrapolation
+First, the usage of Richardson Extrapolation.
 
 {\hfill\includegraphics{richardsonExtrapolation.png}\hfill}
 
-Richardson Extrapolation considers the final answer of a numerical calculation, as being an analytic function of an adjustable parameter such as the stepsize $h$. That analytic function can be probed by performing the calculation with various values of $h$, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it, at the point where $h = 0$.
+Richardson Extrapolation considers the final answer of a numerical calculation as being an analytic function of an adjustable parameter such as the stepsize $h$. That analytic function can be probed by performing the calculation with various values of $h$, none of them being necessarily small enough to yield the accuracy that we desire. When we know enough about the function, we fit it to some analytic form and then evaluate it at the point where $h = 0$.
 
 Secondly, the usage of rational function extrapolation in Richardson-type applications. Rational function fits can remain good approximations to analytic functions even after the various terms in powers of $h$, all have comparable magnitudes. In other words, $h$ can be so large as to make the whole notion of the “order” of the method meaningless — and the method can still work superbly.
 
@@ -3768,7 +3792,7 @@ This section has further details on some important topics.
 
 {\hyperref[advanced_topics:importing]{\emph{Importing data}}} (importing data into XMDS2, and data formats used in the export)
 
-{\hyperref[advanced_topics:convolutions]{\emph{Convolutions and Fourier transforms}}} (extra information on the Fourier transforms used in XMDS2, and applications to defining convolutions)
+{\hyperref[advanced_topics:convolutions]{\emph{Convolutions and Fourier transforms}}} (extra information on the Fourier transforms used in XMDS2, how this applies to convolutions)
 
 {\hyperref[advanced_topics:dimensionaliases]{\emph{Dimension aliases}}} (dimensions which are declared to be identical, useful for correlation functions)
 
@@ -3780,12 +3804,12 @@ There are many cases where it is advantageous to import previously acquired data
 
 Suppose we want to import the following function into XMDS2:
 \begin{gather}
-\begin{split}f(x) = x^2\end{split}\notag\\\begin{split}\end{split}\notag
+\begin{split}f(x) = x^2.\end{split}\notag\\\begin{split}\end{split}\notag
 \end{gather}
 The first step is to create an hdf5 file, from XMDS2, which specifies the dimensions of the grid for the x dimension. Create and save a new XMDS2 file. For the purposes of this tutorial we shall call it ``grid\_specifier.xmds'' with name ``grid\_specifier''. Within this file, enter the following ``dummy'' vector - which we shall call ``gen\_dummy'' - which depends on the x dimension:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}dummy"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}dummy\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dummy\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3799,31 +3823,31 @@ What ``dummy'' is is not actually important. It is only necessary that it is a f
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}sequence}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"grid.xsil"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}grid.xsil\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}
         gen\PYGZus{}dummy
       \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
 
-In terminal, compile the file ``grid\_specifier.xmds'' in XMDS2 and run the c code as usual. This creates two files - ``grid.xsil'' and ``grid.h5''. The file ``grid.h5'' contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function $f(x)$ which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.
+In terminal, compile the file ``grid\_specifier.xmds'' in XMDS2 and run the C code as usual. This creates two files - ``grid.xsil'' and ``grid.h5''. The file ``grid.h5'' contains the list of points which make up the grids for the x dimensions. This data can now be used to ensure that the function $f(x)$ which we will import into XMDS2 is compatible with the the specified grid in your primary XMDS2 file.
 
 In order to read the ``grid.h5'' data into Mathematica version 6.0, type the following command into terminal:.. code-block:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-xsil2graphics2 -e grid.xsil
+xsil2graphics2 \PYGZhy{}e grid.xsil
 \end{Verbatim}
 
 This creates the Mathematica notebook ``grid.nb''. Open this notebook in Mathematica and evaluate the first set of cells. This has loaded the grid information into Mathematica. For example, suppose you have specified that the $x$ dimension has a lattice of 128 points and a domain of (-32, 32). Then calling ``x1'' in Mathematica should return the following list:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYGZob{}-32., -31.5, -31., -30.5, -30., -29.5, -29., -28.5, -28., -27.5,
--27., -26.5, -26., -25.5, -25., -24.5, -24., -23.5, -23., -22.5,
--22., -21.5, -21., -20.5, -20., -19.5, -19., -18.5, -18., -17.5,
--17., -16.5, -16., -15.5, -15., -14.5, -14., -13.5, -13., -12.5,
--12., -11.5, -11., -10.5, -10., -9.5, -9., -8.5, -8., -7.5, -7.,
--6.5, -6., -5.5, -5., -4.5, -4., -3.5, -3., -2.5, -2., -1.5, -1.,
--0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5,
+\PYGZob{}\PYGZhy{}32., \PYGZhy{}31.5, \PYGZhy{}31., \PYGZhy{}30.5, \PYGZhy{}30., \PYGZhy{}29.5, \PYGZhy{}29., \PYGZhy{}28.5, \PYGZhy{}28., \PYGZhy{}27.5,
+\PYGZhy{}27., \PYGZhy{}26.5, \PYGZhy{}26., \PYGZhy{}25.5, \PYGZhy{}25., \PYGZhy{}24.5, \PYGZhy{}24., \PYGZhy{}23.5, \PYGZhy{}23., \PYGZhy{}22.5,
+\PYGZhy{}22., \PYGZhy{}21.5, \PYGZhy{}21., \PYGZhy{}20.5, \PYGZhy{}20., \PYGZhy{}19.5, \PYGZhy{}19., \PYGZhy{}18.5, \PYGZhy{}18., \PYGZhy{}17.5,
+\PYGZhy{}17., \PYGZhy{}16.5, \PYGZhy{}16., \PYGZhy{}15.5, \PYGZhy{}15., \PYGZhy{}14.5, \PYGZhy{}14., \PYGZhy{}13.5, \PYGZhy{}13., \PYGZhy{}12.5,
+\PYGZhy{}12., \PYGZhy{}11.5, \PYGZhy{}11., \PYGZhy{}10.5, \PYGZhy{}10., \PYGZhy{}9.5, \PYGZhy{}9., \PYGZhy{}8.5, \PYGZhy{}8., \PYGZhy{}7.5, \PYGZhy{}7.,
+\PYGZhy{}6.5, \PYGZhy{}6., \PYGZhy{}5.5, \PYGZhy{}5., \PYGZhy{}4.5, \PYGZhy{}4., \PYGZhy{}3.5, \PYGZhy{}3., \PYGZhy{}2.5, \PYGZhy{}2., \PYGZhy{}1.5, \PYGZhy{}1.,
+\PYGZhy{}0.5, 0., 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 5.5, 6., 6.5,
 7., 7.5, 8., 8.5, 9., 9.5, 10., 10.5, 11., 11.5, 12., 12.5, 13.,
 13.5, 14., 14.5, 15., 15.5, 16., 16.5, 17., 17.5, 18., 18.5, 19.,
 19.5, 20., 20.5, 21., 21.5, 22., 22.5, 23., 23.5, 24., 24.5, 25.,
@@ -3867,7 +3891,7 @@ The next step is to export the list ``func'' as an h5 file that XMDS2 can read.
 
 \begin{Verbatim}[commandchars=\\\{\}]
 SetDirectory[NotebookDirectory[]];
-Export["func.h5", \PYGZob{}func, x1\PYGZcb{}, \PYGZob{}"Datasets", \PYGZob{} "function\PYGZus{}x", "x"\PYGZcb{}\PYGZcb{}]
+Export[\PYGZdq{}func.h5\PYGZdq{}, \PYGZob{}func, x1\PYGZcb{}, \PYGZob{}\PYGZdq{}Datasets\PYGZdq{}, \PYGZob{} \PYGZdq{}function\PYGZus{}x\PYGZdq{}, \PYGZdq{}x\PYGZdq{}\PYGZcb{}\PYGZcb{}]
 \end{Verbatim}
 
 In the directory containing the notebook ``grid.nb'' you should now see the file ``func.h5''. This file essentially contains the list \code{\{func, x1\}}. However, the hdf5 format stores func and x1 as separate entities called ``Datasets''. For importation into XMDS2 it is necessary that these datasets are named. This is precisely what the segment \code{\{"Datasets", \{ "function\_x", "x"\}\}} in the above Mathematica command does. The dataset corresponding to the grid x1 needs to be giv [...]
@@ -3875,9 +3899,9 @@ In the directory containing the notebook ``grid.nb'' you should now see the file
 The final step is to import the file ``func.h5'' into your primary XMDS2 file. This data will be stored as a vector called ``gen\_function\_x'', in component ``function\_x''.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}function\PYGZus{}x"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}function\PYGZus{}x\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}function\PYGZus{}x\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}} function\PYGZus{}x.h5 \PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -3892,7 +3916,7 @@ The situation is slightly more complicated if the function you wish to import de
 As for the single dimensional case, we need to export an hdf5 file from XMDS2 which specifies the dimensions of the grid. As in the one dimensional case, this is done by creating a dummy vector which depends on all the relevant dimensions:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{"real"} \PYG{n+na}{name=}\PYG{l+s}{"gen\PYGZus{}dummy"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x y"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}real\PYGZdq{}} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}gen\PYGZus{}dummy\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}dummy\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -3920,7 +3944,7 @@ This function can be exported as an h5 file,
 
 \begin{Verbatim}[commandchars=\\\{\}]
 SetDirectory[NotebookDirectory[]];
-Export["func.h5", \PYGZob{}func, x1, y1\PYGZcb{}, \PYGZob{}"Datasets", \PYGZob{} "function\PYGZus{}x", "x", "y"\PYGZcb{}\PYGZcb{}]
+Export[\PYGZdq{}func.h5\PYGZdq{}, \PYGZob{}func, x1, y1\PYGZcb{}, \PYGZob{}\PYGZdq{}Datasets\PYGZdq{}, \PYGZob{} \PYGZdq{}function\PYGZus{}x\PYGZdq{}, \PYGZdq{}x\PYGZdq{}, \PYGZdq{}y\PYGZdq{}\PYGZcb{}\PYGZcb{}]
 \end{Verbatim}
 
 and imported into XMDS2 as outlined above.
@@ -3984,25 +4008,25 @@ Dimension aliases are not just a short-hand for defining an additional dimension
 Here is how to compute a spatial correlation function $g^{(1)}(x, x') = \psi^*(x) \psi(x')$ of the quantity \code{psi}:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds-version=}\PYG{l+s}{"2"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}simulation} \PYG{n+na}{xmds\PYGZhy{}version=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ name, features block }\PYG{c}{--\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ name, features block }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
 
   \PYG{n+nt}{\PYGZlt{}geometry}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}propagation\PYGZus{}dimension}\PYG{n+nt}{\PYGZgt{}} t \PYG{n+nt}{\PYGZlt{}/propagation\PYGZus{}dimension\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}transverse\PYGZus{}dimensions}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{"x"} \PYG{n+na}{lattice=}\PYG{l+s}{"1024"} \PYG{n+na}{domain=}\PYG{l+s}{"(-1.0, 1.0)"} \PYG{n+na}{aliases=}\PYG{l+s}{"xp"} \PYG{n+nt}{/\PYGZgt{}}
+      \PYG{n+nt}{\PYGZlt{}dimension} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}} \PYG{n+na}{lattice=}\PYG{l+s}{\PYGZdq{}1024\PYGZdq{}} \PYG{n+na}{domain=}\PYG{l+s}{\PYGZdq{}(\PYGZhy{}1.0, 1.0)\PYGZdq{}} \PYG{n+na}{aliases=}\PYG{l+s}{\PYGZdq{}xp\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/transverse\PYGZus{}dimensions\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/geometry\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} psi \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}initialisation}\PYG{n+nt}{\PYGZgt{}}
-      \PYG{c}{\PYGZlt{}!--}\PYG{c}{ initialisation code }\PYG{c}{--\PYGZgt{}}
+      \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ initialisation code }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
 
-  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{"correlation"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x xp"} \PYG{n+na}{type=}\PYG{l+s}{"complex"} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}computed\PYGZus{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}correlation\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x xp\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}complex\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}} g1 \PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}evaluation}\PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}} wavefunction \PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
@@ -4012,7 +4036,7 @@ Here is how to compute a spatial correlation function $g^{(1)}(x, x') = \psi^*(x
     \PYG{n+nt}{\PYGZlt{}/evaluation\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/computed\PYGZus{}vector\PYGZgt{}}
 
-  \PYG{c}{\PYGZlt{}!--}\PYG{c}{ integration and sampling code }\PYG{c}{--\PYGZgt{}}
+  \PYG{c}{\PYGZlt{}!\PYGZhy{}\PYGZhy{}}\PYG{c}{ integration and sampling code }\PYG{c}{\PYGZhy{}\PYGZhy{}\PYGZgt{}}
 
 \PYG{n+nt}{\PYGZlt{}/simulation\PYGZgt{}}
 \end{Verbatim}
@@ -4125,10 +4149,10 @@ When you use the IP operator, make sure you know what it's doing.  Do not pre- o
 If your simulation uses two or more dimensions, check to see if your IP operator is separable, i.e. can be written in the form $f(kx) + g(ky)$ (this is frequently possible in atom-optics simulations). If your IP operator is separable, create separate IP operators for each dimension.  This provides a significant speedup (\textasciitilde{}30\%) for simulations using an adaptive integrator.  For example, instead of using the IP operator:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}T\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{T} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{p}{;}
+    \PYG{n}{T} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx} \PYG{o}{+} \PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{)}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -4139,16 +4163,16 @@ If your simulation uses two or more dimensions, check to see if your IP operator
 replace it with the pair of IP operators:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"x"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}x\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Tx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{Tx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
+    \PYG{n}{Tx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
-\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{dimensions=}\PYG{l+s}{"y"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{dimensions=}\PYG{l+s}{\PYGZdq{}y\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Ty\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
-    \PYG{n}{Ty} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
+    \PYG{n}{Ty} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar}\PYG{o}{/}\PYG{n}{M}\PYG{o}{*}\PYG{n}{ky}\PYG{o}{*}\PYG{n}{ky}\PYG{p}{;}
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
 \PYG{c+cp}{\PYGZlt{}![CDATA[}
@@ -4175,17 +4199,17 @@ The first term in each evolution equation can be solved exactly with an IP opera
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{"kx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"imaginary"} \PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}imaginary\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lxx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
-      \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
+      \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
   \PYG{c+cp}{\PYGZlt{}![CDATA[}
 
-    \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
-    \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
+    \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
+    \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
 
   \PYG{c+cp}{]]\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -4198,20 +4222,20 @@ A final optimisation is to cause the integration code itself to operate in Fouri
 The fully optimised code then reads:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"ARK45"} \PYG{n+na}{interval=}\PYG{l+s}{"1"} \PYG{n+na}{tolerance=}\PYG{l+s}{"1e-6"} \PYG{n+na}{home\PYGZus{}space=}\PYG{l+s}{"k"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}ARK45\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}1\PYGZdq{}} \PYG{n+na}{tolerance=}\PYG{l+s}{\PYGZdq{}1e\PYGZhy{}6\PYGZdq{}} \PYG{n+na}{home\PYGZus{}space=}\PYG{l+s}{\PYGZdq{}k\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}samples}\PYG{n+nt}{\PYGZgt{}} 10 \PYG{n+nt}{\PYGZlt{}/samples\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}operators}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{"kx"}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{"ip"} \PYG{n+na}{type=}\PYG{l+s}{"imaginary"} \PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}integration\PYGZus{}vectors} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}kx\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/integration\PYGZus{}vectors\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}operator} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}ip\PYGZdq{}} \PYG{n+na}{type=}\PYG{l+s}{\PYGZdq{}imaginary\PYGZdq{}} \PYG{n+nt}{\PYGZgt{}}
       \PYG{n+nt}{\PYGZlt{}operator\PYGZus{}names}\PYG{n+nt}{\PYGZgt{}}Lxx\PYG{n+nt}{\PYGZlt{}/operator\PYGZus{}names\PYGZgt{}}
       \PYG{c+cp}{\PYGZlt{}![CDATA[}
-        \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{-}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
+        \PYG{n}{Lxx} \PYG{o}{=} \PYG{o}{\PYGZhy{}}\PYG{k+kc}{i}\PYG{o}{*}\PYG{l+m+mf}{0.5}\PYG{o}{*}\PYG{n}{hbar\PYGZus{}M}\PYG{o}{*}\PYG{p}{(}\PYG{n}{kx}\PYG{o}{*}\PYG{n}{kx}\PYG{p}{)}\PYG{p}{;}
       \PYG{c+cp}{]]\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}/operator\PYGZgt{}}
     \PYG{c+cp}{\PYGZlt{}![CDATA[}
 
-      \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
-      \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{-} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
+      \PYG{n}{dpsi0\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi0}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi1}\PYG{p}{;}
+      \PYG{n}{dpsi1\PYGZus{}dt} \PYG{o}{=} \PYG{n}{Lxx}\PYG{p}{[}\PYG{n}{psi1}\PYG{p}{]} \PYG{o}{\PYGZhy{}} \PYG{k+kc}{i}\PYG{o}{*}\PYG{n}{Omega}\PYG{o}{*}\PYG{n}{psi0}\PYG{p}{;}
 
     \PYG{c+cp}{]]\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/operators\PYGZgt{}}
@@ -4238,6 +4262,37 @@ If you're using an Intel CPU, then you should consider using their compiler, icc
 \label{optimisation_hints:faster-libraries}
 Intel MKL is faster than ATLAS, which is faster than GSL CBLAS. If you have a Mac, then Apple's vecLib is plenty fast.
 
+\textbf{Note for Linux users}
+
+If you used the linux installer, and are using Ubuntu or Debian, the version of the ATLAS package that gets installed is the generic version in the repositories. This version lacks architecture and CPU-specific optimizations.
+
+Creating an ATLAS package locally tuned for your specific machine will result in a faster linear algebra implementation, which can significantly speed up problems utilizing matrix based transforms (bessel, hermite-gauss etc). Some simple tests using a cylindrically symmetric problem with one bessel transform dimension and one FFT transform dimension showed speed increases from 5\% - 100\% over the default ATLAS package, depending on the number of grid points.
+
+To create and install an ATLAS package optimized for your machine, carry out the following procedure:
+
+Using your favourite package manager (e.g. Synaptic) to remove any current ATLAS libraries (probably libatlas3gf-base, libatlas-dev, libatlas-base-dev). Then create an empty directory whose path doesn't include any spaces. In this directory, do
+
+\begin{Verbatim}[commandchars=\\\{\}]
+apt\PYGZhy{}get source atlas
+apt\PYGZhy{}get build\PYGZhy{}dep atlas
+apt\PYGZhy{}get install devscripts dpkg\PYGZhy{}dev
+
+cd atlas\PYGZhy{}*
+sudo fakeroot debian/rules custom
+cd ..
+ls libatlas*.deb
+\end{Verbatim}
+
+Then, for each of the .deb packages listed by the ls command, install via:
+
+\begin{Verbatim}[commandchars=\\\{\}]
+sudo dpkg -i \textless{}filename here\textgreater{}.deb
+\end{Verbatim}
+
+This procedure was tested on Ubuntu 12.04 LTS, but an identical or very similar procedure should work for other Ubuntu/Debian versions.
+
+Finally, note that the ``sudo fakeroot debian/rules custom'' package creation step carries out an exhaustive series of tests to optimize for your architecture, SSE support, cache hierarchy and so on, and can take a long time. Be patient.
+
 
 \subsection{Auto-vectorisation}
 \label{optimisation_hints:auto-vectorisation}
@@ -4257,7 +4312,7 @@ This will make xpdeint generate code that is more friendly to compiler's auto-ve
 If you are using the OpenMP feature and are using \href{http://www.fftw.org}{FFTW}-based transforms (Discrete Fourier/Cosine/Sine Transforms), you should consider using threads with your FFT's by adding the following to the \code{\textless{}features\textgreater{}} block at the start of your simulation:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{threads=}\PYG{l+s}{"2"} \PYG{n+nt}{/\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}fftw} \PYG{n+na}{threads=}\PYG{l+s}{\PYGZdq{}2\PYGZdq{}} \PYG{n+nt}{/\PYGZgt{}}
 \end{Verbatim}
 
 Replace the number of threads in the above code by the number of threads that you want to use.
@@ -4280,7 +4335,7 @@ The file format used in this example is \href{http://www.hdfgroup.org/HDF5/}{HDF
 If your wavefunction vector is called \code{'wavefunction'}, then to save the groundstate to the file \code{groundstate\_break.h5} in the HDF5 format, put the following code immediately after the integrate block that calculates your groundstate:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{"groundstate\PYGZus{}break"} \PYG{n+na}{format=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}breakpoint} \PYG{n+na}{filename=}\PYG{l+s}{\PYGZdq{}groundstate\PYGZus{}break\PYGZdq{}} \PYG{n+na}{format=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}dependencies}\PYG{n+nt}{\PYGZgt{}}wavefunction\PYG{n+nt}{\PYGZlt{}/dependencies\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/breakpoint\PYGZgt{}}
 \end{Verbatim}
@@ -4290,9 +4345,9 @@ In addition to the \code{groundstate\_break.h5} file, an XSIL wrapper \code{grou
 To load this groundstate into your evolution script, the declaration of your \code{'wavefunction'} vector in your evolution script should look something like
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{"wavefunction"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}vector} \PYG{n+na}{name=}\PYG{l+s}{\PYGZdq{}wavefunction\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}components}\PYG{n+nt}{\PYGZgt{}}phi1 phi2\PYG{n+nt}{\PYGZlt{}/components\PYGZgt{}}
-  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{"hdf5"}\PYG{n+nt}{\PYGZgt{}}
+  \PYG{n+nt}{\PYGZlt{}initialisation} \PYG{n+na}{kind=}\PYG{l+s}{\PYGZdq{}hdf5\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     \PYG{n+nt}{\PYGZlt{}filename}\PYG{n+nt}{\PYGZgt{}}groundstate\PYGZus{}break.h5\PYG{n+nt}{\PYGZlt{}/filename\PYGZgt{}}
   \PYG{n+nt}{\PYGZlt{}/initialisation\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/vector\PYGZgt{}}
@@ -4437,19 +4492,19 @@ import IntegrateMethodStepper
 Navigate up until you are in the \code{xpdeint} directory. Open the file \code{XMDS2Parser.py}, and `find' the algorithm map (Ctrl+F \textgreater{} algorithmMap works for most text editors). The mnemonic ‘IM’ will be used for our Stepper. If the stepper uses fixed step sizes, then add the following line to the algorithm map:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-'IM':   (Integrators.FixedStep.FixedStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+\PYGZsq{}IM\PYGZsq{}:   (Integrators.FixedStep.FixedStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
 \end{Verbatim}
 
 Otherwise, if your stepper is an adaptive Stepper, add the following line:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-'IM':   (Integrators.AdaptiveStep.AdaptiveStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
+\PYGZsq{}IM\PYGZsq{}:   (Integrators.AdaptiveStep.AdaptiveStep, Integrators.IntegrateMethodStepper.IntegrateMethodStepper),
 \end{Verbatim}
 
 In the terminal, navigate to the \code{xpdeint} directory, and run make over the entire directory. `IM' can now be used to specify the new Stepper as your integration algorithm inside your .xmds files, e.g.
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{"IM"} \PYG{n+na}{interval=}\PYG{l+s}{"5.0"} \PYG{n+na}{steps=}\PYG{l+s}{"2000"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}integrate} \PYG{n+na}{algorithm=}\PYG{l+s}{\PYGZdq{}IM\PYGZdq{}} \PYG{n+na}{interval=}\PYG{l+s}{\PYGZdq{}5.0\PYGZdq{}} \PYG{n+na}{steps=}\PYG{l+s}{\PYGZdq{}2000\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     ...
 \PYG{n+nt}{\PYGZlt{}/integrate\PYGZgt{}}
 \end{Verbatim}
@@ -4986,6 +5041,11 @@ If your document contains nontrivial examples of program code, we recommend rele
 \chapter{News}
 \label{news:news}\label{news:index-0}\label{news::doc}\label{news:id1}
 
+\section{XMDS 2.2.1 ``XMDS2 is a game of two halves'' (September 30, 2014)}
+\label{news:xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014}
+XMDS 2.2.1 contains minor bugfixes and updates. This includes documentation improvements, superior handling of external packages and more informative errors.
+
+
 \section{XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}
 \label{news:xmds-2-2-0-out-of-cheese-error-january-13-2014}
 XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically
@@ -5110,7 +5170,7 @@ XMDS 2.1 is a significant upgrade with many improvements and bug fixes since 2.0
 Existing users should note that this release introduces a more concise syntax for moment groups.  You can now use:
 
 \begin{Verbatim}[commandchars=\\\{\}]
-\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"} \PYG{n+na}{basis=}\PYG{l+s}{"x y z"}\PYG{n+nt}{\PYGZgt{}}
+\PYG{n+nt}{\PYGZlt{}sampling\PYGZus{}group} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y z\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
     ...
 \PYG{n+nt}{\PYGZlt{}/sampling\PYGZus{}group\PYGZgt{}}
 \end{Verbatim}
@@ -5119,7 +5179,7 @@ Instead of:
 
 \begin{Verbatim}[commandchars=\\\{\}]
 \PYG{n+nt}{\PYGZlt{}group}\PYG{n+nt}{\PYGZgt{}}
-    \PYG{n+nt}{\PYGZlt{}sampling} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{"yes"} \PYG{n+na}{basis=}\PYG{l+s}{"x y z"}\PYG{n+nt}{\PYGZgt{}}
+    \PYG{n+nt}{\PYGZlt{}sampling} \PYG{n+na}{initial\PYGZus{}sample=}\PYG{l+s}{\PYGZdq{}yes\PYGZdq{}} \PYG{n+na}{basis=}\PYG{l+s}{\PYGZdq{}x y z\PYGZdq{}}\PYG{n+nt}{\PYGZgt{}}
         ...
     \PYG{n+nt}{\PYGZlt{}/sampling\PYGZgt{}}
 \PYG{n+nt}{\PYGZlt{}/group\PYGZgt{}}
diff --git a/documentation/latex/xmds2.toc b/documentation/latex/xmds2.toc
index 0c7777c..65c2853 100644
--- a/documentation/latex/xmds2.toc
+++ b/documentation/latex/xmds2.toc
@@ -33,49 +33,49 @@
 \contentsline {subsubsection}{Benchmark}{49}{subsubsection*.8}
 \contentsline {subsubsection}{Bing}{49}{subsubsection*.9}
 \contentsline {subsubsection}{C Flags}{49}{subsubsection*.10}
-\contentsline {subsubsection}{Chunked Output}{49}{subsubsection*.11}
+\contentsline {subsubsection}{Chunked Output}{50}{subsubsection*.11}
 \contentsline {subsubsection}{Diagnostics}{50}{subsubsection*.12}
 \contentsline {subsubsection}{Error Check}{50}{subsubsection*.13}
-\contentsline {subsubsection}{Halt\_Non\_Finite}{50}{subsubsection*.14}
-\contentsline {subsubsection}{fftw element}{50}{subsubsection*.15}
+\contentsline {subsubsection}{Halt\_Non\_Finite}{51}{subsubsection*.14}
+\contentsline {subsubsection}{fftw element}{51}{subsubsection*.15}
 \contentsline {subsubsection}{Globals}{51}{subsubsection*.16}
 \contentsline {subsubsection}{OpenMP}{51}{subsubsection*.17}
 \contentsline {subsubsection}{Precision}{51}{subsubsection*.18}
 \contentsline {subsubsection}{Validation}{52}{subsubsection*.19}
-\contentsline {subsection}{\numberline {5.4.6}Driver Element}{52}{subsection.5.4.6}
+\contentsline {subsection}{\numberline {5.4.6}Driver Element}{53}{subsection.5.4.6}
 \contentsline {subsection}{\numberline {5.4.7}Geometry Element}{53}{subsection.5.4.7}
 \contentsline {subsubsection}{The ``dft'' transform}{54}{subsubsection*.24}
 \contentsline {subsubsection}{The ``dct'' transform}{55}{subsubsection*.25}
 \contentsline {subsubsection}{The ``dst'' transform}{56}{subsubsection*.26}
-\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{56}{subsubsection*.27}
-\contentsline {subsubsection}{The ``spherical-bessel'' transform}{57}{subsubsection*.28}
+\contentsline {subsubsection}{The ``bessel'' and ``bessel-neumann'' transforms}{57}{subsubsection*.27}
+\contentsline {subsubsection}{The ``spherical-bessel'' transform}{58}{subsubsection*.28}
 \contentsline {subsubsection}{The ``hermite-gauss'' transform}{58}{subsubsection*.29}
 \contentsline {subsection}{\numberline {5.4.8}Vector Element}{59}{subsection.5.4.8}
 \contentsline {subsubsection}{The dependencies element}{61}{subsubsection*.34}
 \contentsline {subsection}{\numberline {5.4.9}Computed Vector Element}{62}{subsection.5.4.9}
-\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{62}{subsection.5.4.10}
-\contentsline {subsubsection}{Uniform noise}{63}{subsubsection*.36}
-\contentsline {subsubsection}{Gaussian noise}{63}{subsubsection*.37}
+\contentsline {subsection}{\numberline {5.4.10}Noise Vector Element}{63}{subsection.5.4.10}
+\contentsline {subsubsection}{Uniform noise}{64}{subsubsection*.36}
+\contentsline {subsubsection}{Gaussian noise}{64}{subsubsection*.37}
 \contentsline {subsubsection}{Wiener noise}{64}{subsubsection*.38}
-\contentsline {subsubsection}{Poissonian noise}{64}{subsubsection*.39}
+\contentsline {subsubsection}{Poissonian noise}{65}{subsubsection*.39}
 \contentsline {subsubsection}{Jump noise}{65}{subsubsection*.40}
 \contentsline {subsection}{\numberline {5.4.11}Sequence Element}{65}{subsection.5.4.11}
-\contentsline {subsection}{\numberline {5.4.12}Filter element}{65}{subsection.5.4.12}
+\contentsline {subsection}{\numberline {5.4.12}Filter element}{66}{subsection.5.4.12}
 \contentsline {subsection}{\numberline {5.4.13}Integrate element}{66}{subsection.5.4.13}
 \contentsline {subsubsection}{Operators and operator elements}{67}{subsubsection*.42}
 \contentsline {subsubsection}{Algorithms}{69}{subsubsection*.47}
 \contentsline {paragraph}{SI and SIC algorithms}{69}{paragraph*.48}
-\contentsline {paragraph}{Runge-Kutta algorithms}{69}{paragraph*.49}
+\contentsline {paragraph}{Runge-Kutta algorithms}{70}{paragraph*.49}
 \contentsline {paragraph}{Adaptive Runge-Kutta algorithms}{70}{paragraph*.50}
-\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{70}{paragraph*.51}
+\contentsline {paragraph}{Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method}{71}{paragraph*.51}
 \contentsline {subsubsection}{Filters element}{71}{subsubsection*.52}
-\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{71}{subsection.5.4.14}
+\contentsline {subsection}{\numberline {5.4.14}Breakpoint element}{72}{subsection.5.4.14}
 \contentsline {subsection}{\numberline {5.4.15}Output element}{72}{subsection.5.4.15}
 \contentsline {subsubsection}{Sampling Group Element}{72}{subsubsection*.53}
 \contentsline {subsection}{\numberline {5.4.16}XMDS-specific C syntax}{73}{subsection.5.4.16}
-\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{73}{section.5.5}
+\contentsline {section}{\numberline {5.5}Modified Midpoint Method}{74}{section.5.5}
 \contentsline {section}{\numberline {5.6}Bulirsch-Stoer Algorithm}{74}{section.5.6}
-\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{75}{section.5.7}
+\contentsline {section}{\numberline {5.7}Error Scaling Behaviour}{76}{section.5.7}
 \contentsline {chapter}{\numberline {6}Advanced Topics}{77}{chapter.6}
 \contentsline {section}{\numberline {6.1}Importing data}{77}{section.6.1}
 \contentsline {section}{\numberline {6.2}Convolutions and Fourier transforms}{79}{section.6.2}
@@ -107,9 +107,9 @@
 \contentsline {subsection}{\numberline {9.3.2}Faster libraries}{89}{subsection.9.3.2}
 \contentsline {subsection}{\numberline {9.3.3}Auto-vectorisation}{90}{subsection.9.3.3}
 \contentsline {subsection}{\numberline {9.3.4}OpenMP}{90}{subsection.9.3.4}
-\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{90}{subsection.9.3.5}
-\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{90}{section.9.4}
-\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{90}{subsection.9.4.1}
+\contentsline {subsection}{\numberline {9.3.5}Parallelisation with MPI}{91}{subsection.9.3.5}
+\contentsline {section}{\numberline {9.4}Atom-optics-specific hints}{91}{section.9.4}
+\contentsline {subsection}{\numberline {9.4.1}Separate out imaginary-time calculation code}{91}{subsection.9.4.1}
 \contentsline {subsection}{\numberline {9.4.2}Use an energy or momentum offset}{91}{subsection.9.4.2}
 \contentsline {chapter}{\numberline {10}xsil2graphics2}{93}{chapter.10}
 \contentsline {chapter}{\numberline {11}Developer Documentation}{95}{chapter.11}
@@ -135,10 +135,11 @@
 \contentsline {section}{\numberline {12.1}GNU General Public License}{115}{section.12.1}
 \contentsline {section}{\numberline {12.2}GNU Free Documentation License}{118}{section.12.2}
 \contentsline {chapter}{\numberline {13}News}{125}{chapter.13}
-\contentsline {section}{\numberline {13.1}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.1}
-\contentsline {section}{\numberline {13.2}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{125}{section.13.2}
-\contentsline {section}{\numberline {13.3}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.3}
-\contentsline {section}{\numberline {13.4}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.4}
-\contentsline {section}{\numberline {13.5}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.5}
-\contentsline {section}{\numberline {13.6}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.6}
+\contentsline {section}{\numberline {13.1}XMDS 2.2.1 ``XMDS2 is a game of two halves'' (September 30, 2014)}{125}{section.13.1}
+\contentsline {section}{\numberline {13.2}XMDS 2.2.0 ``Out of cheese error'' (January 13, 2014)}{125}{section.13.2}
+\contentsline {section}{\numberline {13.3}XMDS 2.1.4 ``Well if this isn't nice, I don't know what is'' (September 27, 2013)}{126}{section.13.3}
+\contentsline {section}{\numberline {13.4}XMDS 2.1.3 ``Happy Mollusc'' (June 7, 2013)}{126}{section.13.4}
+\contentsline {section}{\numberline {13.5}XMDS 2.1.2 ``Happy Mollusc'' (October 15, 2012)}{126}{section.13.5}
+\contentsline {section}{\numberline {13.6}XMDS 2.1 ``Happy Mollusc'' (June 14, 2012)}{127}{section.13.6}
+\contentsline {section}{\numberline {13.7}XMDS 2.0 ``Shiny!'' (September 13, 2010)}{127}{section.13.7}
 \contentsline {chapter}{Index}{129}{section*.55}
diff --git a/documentation/licensing.html b/documentation/licensing.html
index f143c68..8855822 100644
--- a/documentation/licensing.html
+++ b/documentation/licensing.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Licensing — XMDS2 2.2.0 documentation</title>
+    <title>Licensing — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="News" href="news.html" />
+    <link rel="prev" title="Developer Documentation" href="developer.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="news.html" title="News"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="developer.html" title="Developer Documentation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -279,12 +287,18 @@ Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.</div></b
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="news.html" title="News"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="developer.html" title="Developer Documentation"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/news.html b/documentation/news.html
index 0a90c9e..a151765 100644
--- a/documentation/news.html
+++ b/documentation/news.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>News — XMDS2 2.2.0 documentation</title>
+    <title>News — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,8 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="prev" title="Licensing" href="licensing.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +37,10 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="licensing.html" title="Licensing"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -47,6 +51,10 @@
             
   <div class="section" id="news">
 <span id="index-0"></span><span id="id1"></span><h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">
+<h2>XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)<a class="headerlink" href="#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014" title="Permalink to this headline">¶</a></h2>
+<p>XMDS 2.2.1 contains minor bugfixes and updates. This includes documentation improvements, superior handling of external packages and more informative errors.</p>
+</div>
 <div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
 <h2>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h2>
 <p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
@@ -168,6 +176,7 @@
   <h3><a href="index.html">Table Of Contents</a></h3>
   <ul>
 <li><a class="reference internal" href="#">News</a><ul>
+<li><a class="reference internal" href="#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
@@ -201,12 +210,15 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="licensing.html" title="Licensing"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/news_content.html b/documentation/news_content.html
index 96ad578..2b140e4 100644
--- a/documentation/news_content.html
+++ b/documentation/news_content.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>News — XMDS2 2.2.0 documentation</title>
+    <title>News — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,7 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +36,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -47,6 +47,10 @@
             
   <div class="section" id="news">
 <h1>News<a class="headerlink" href="#news" title="Permalink to this headline">¶</a></h1>
+<div class="section" id="xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">
+<h2>XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)<a class="headerlink" href="#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014" title="Permalink to this headline">¶</a></h2>
+<p>XMDS 2.2.1 contains minor bugfixes and updates. This includes documentation improvements, superior handling of external packages and more informative errors.</p>
+</div>
 <div class="section" id="xmds-2-2-0-out-of-cheese-error-january-13-2014">
 <h2>XMDS 2.2.0 “Out of cheese error” (January 13, 2014)<a class="headerlink" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014" title="Permalink to this headline">¶</a></h2>
 <p>XMDS 2.2.0 contains a number of new features, as well as bugfixes and updates. Specifically</p>
@@ -168,6 +172,7 @@
   <h3><a href="index.html">Table Of Contents</a></h3>
   <ul>
 <li><a class="reference internal" href="#">News</a><ul>
+<li><a class="reference internal" href="#xmds-2-2-1-xmds2-is-a-game-of-two-halves-september-30-2014">XMDS 2.2.1 “XMDS2 is a game of two halves” (September 30, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-2-0-out-of-cheese-error-january-13-2014">XMDS 2.2.0 “Out of cheese error” (January 13, 2014)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-4-well-if-this-isn-t-nice-i-don-t-know-what-is-september-27-2013">XMDS 2.1.4 “Well if this isn’t nice, I don’t know what is” (September 27, 2013)</a></li>
 <li><a class="reference internal" href="#xmds-2-1-3-happy-mollusc-june-7-2013">XMDS 2.1.3 “Happy Mollusc” (June 7, 2013)</a></li>
@@ -201,12 +206,12 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/optimisation_hints.html b/documentation/optimisation_hints.html
index a4c254d..2ae4d07 100644
--- a/documentation/optimisation_hints.html
+++ b/documentation/optimisation_hints.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Optimisation Hints — XMDS2 2.2.0 documentation</title>
+    <title>Optimisation Hints — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="xsil2graphics2" href="xsil2graphics2.html" />
+    <link rel="prev" title="Upgrading From XMDS 1.X" href="upgrade.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="xsil2graphics2.html" title="xsil2graphics2"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="upgrade.html" title="Upgrading From XMDS 1.X"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -165,6 +173,26 @@ When you use the IP operator, make sure you know what it’s doing.  Do not
 <div class="section" id="faster-libraries">
 <h3>Faster libraries<a class="headerlink" href="#faster-libraries" title="Permalink to this headline">¶</a></h3>
 <p>Intel MKL is faster than ATLAS, which is faster than GSL CBLAS. If you have a Mac, then Apple’s vecLib is plenty fast.</p>
+<p><strong>Note for Linux users</strong></p>
+<p>If you used the linux installer, and are using Ubuntu or Debian, the version of the ATLAS package that gets installed is the generic version in the repositories. This version lacks architecture and CPU-specific optimizations.</p>
+<p>Creating an ATLAS package locally tuned for your specific machine will result in a faster linear algebra implementation, which can significantly speed up problems utilizing matrix based transforms (bessel, hermite-gauss etc). Some simple tests using a cylindrically symmetric problem with one bessel transform dimension and one FFT transform dimension showed speed increases from 5% - 100% over the default ATLAS package, depending on the number of grid points.</p>
+<p>To create and install an ATLAS package optimized for your machine, carry out the following procedure:</p>
+<p>Using your favourite package manager (e.g. Synaptic) to remove any current ATLAS libraries (probably libatlas3gf-base, libatlas-dev, libatlas-base-dev). Then create an empty directory whose path doesn’t include any spaces. In this directory, do</p>
+<div class="highlight-xpdeint"><div class="highlight"><pre>apt-get source atlas
+apt-get build-dep atlas
+apt-get install devscripts dpkg-dev
+
+cd atlas-*
+sudo fakeroot debian/rules custom
+cd ..
+ls libatlas*.deb
+</pre></div>
+</div>
+<p>Then, for each of the .deb packages listed by the ls command, install via:</p>
+<div class="highlight-xpdeint"><pre>sudo dpkg -i <filename here>.deb</pre>
+</div>
+<p>This procedure was tested on Ubuntu 12.04 LTS, but an identical or very similar procedure should work for other Ubuntu/Debian versions.</p>
+<p>Finally, note that the “sudo fakeroot debian/rules custom” package creation step carries out an exhaustive series of tests to optimize for your architecture, SSE support, cache hierarchy and so on, and can take a long time. Be patient.</p>
 </div>
 <div class="section" id="auto-vectorisation">
 <h3>Auto-vectorisation<a class="headerlink" href="#auto-vectorisation" title="Permalink to this headline">¶</a></h3>
@@ -282,12 +310,18 @@ When you use the IP operator, make sure you know what it’s doing.  Do not
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="xsil2graphics2.html" title="xsil2graphics2"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="upgrade.html" title="Upgrading From XMDS 1.X"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/reference_elements.html b/documentation/reference_elements.html
index 4cdb194..f61dae1 100644
--- a/documentation/reference_elements.html
+++ b/documentation/reference_elements.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>XMDS2 script elements — XMDS2 2.2.0 documentation</title>
+    <title>XMDS2 script elements — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,10 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="up" title="Reference section" href="reference_index.html" />
+    <link rel="next" title="Modified Midpoint Method" href="bulirschStoer.html" />
+    <link rel="prev" title="XMDS2 XML Schema" href="reference_schema.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +39,14 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="bulirschStoer.html" title="Modified Midpoint Method"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="reference_schema.html" title="XMDS2 XML Schema"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" accesskey="U">Reference section</a> »</li> 
       </ul>
     </div>  
 
@@ -151,6 +161,18 @@
 <span class="nt"></features></span>
 </pre></div>
 </div>
+<p>The arguments and their values can be added to the filename of the output files by using the <tt class="docutils literal"><span class="pre">append_args_to_output_filename</span></tt> attribute.  For example:</p>
+<div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><name></span> arguments_test <span class="nt"></name></span>
+<span class="nt"><features></span>
+  <span class="nt"><arguments</span> <span class="na">append_args_to_output_filename=</span><span class="s">"yes"</span><span class="nt">></span>
+    <span class="nt"><argument</span> <span class="na">name=</span><span class="s">"size"</span> <span class="na">type=</span><span class="s">"real"</span> <span class="na">default_value=</span><span class="s">"20.0"</span><span class="nt">/></span>
+    <span class="nt"><argument</span> <span class="na">name=</span><span class="s">"number"</span> <span class="na">type=</span><span class="s">"integer"</span> <span class="na">default_value=</span><span class="s">"7"</span><span class="nt">/></span>
+    <span class="nt"><argument</span> <span class="na">name=</span><span class="s">"pulse_shape"</span> <span class="na">type=</span><span class="s">"string"</span> <span class="na">default_value=</span><span class="s">"gaussian"</span><span class="nt">/></span>
+  <span class="nt"></arguments></span>
+<span class="nt"></features></span>
+</pre></div>
+</div>
+<p>When the <tt class="docutils literal"><span class="pre">arguments_test</span></tt> executable is run, it will create output files named <tt class="docutils literal"><span class="pre">arguments_test.number_7.pulse_shape_gaussian.size_20.0.xsil</span></tt> and <tt class="docutils literal"><span class="pre">arguments_test.number_7.pulse_shape_gaussian.size_20.0.h5</span></tt>.</p>
 <div class="section" id="argument-element">
 <span id="argumentelement"></span><span id="index-7"></span><h4>Argument element<a class="headerlink" href="#argument-element" title="Permalink to this headline">¶</a></h4>
 <p id="index-8">Each <tt class="docutils literal"><span class="pre"><argument></span></tt> element describes one variable that can be passed to the simulation at runtime via the command line. There are three mandatory attributes: <tt class="docutils literal"><span class="pre">name</span></tt>, <tt class="docutils literal"><span class="pre">type</span></tt>, and <tt class="docutils literal"><span class="pre">default_value</span></tt>. <tt class="docutils literal"><span class="pre">n [...]
@@ -735,7 +757,7 @@ The <tt class="docutils literal"><span class="pre">name="adaptive-mpi-multi
 <span id="jumpnoise"></span><span id="index-63"></span><h3>Jump noise<a class="headerlink" href="#jump-noise" title="Permalink to this headline">¶</a></h3>
 <p>A noise vector using the “jump” method is the dynamic version of the poissonian noise method, and must have the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute specified as a positive real number.  The variable at each point is chosen from a Poissonian distribution with a mean equal to the product of three variables: the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute; the volume of the element as defined by its [...]
 <p>It is common to wish to vary the mean rate of a jump process, which means that the <tt class="docutils literal"><span class="pre">mean-rate</span></tt> attribute must be a variable or a piece of code.  These cannot be verified to be a positive real number at compile time, so they must be used with the <a class="reference internal" href="#validation"><em><validation></em></a> feature with either the <tt class="docutils literal"><span class="pre">kind="none"</span></tt>  [...]
-<p>As a dynamic noise, a jump process is not well-defined except in an <tt class="docutils literal"><span class="pre">integrate</span></tt> element.</p>
+<p>As a dynamic noise, a jump process is not well-defined except in an <tt class="docutils literal"><span class="pre">integrate</span></tt> element.  The only algorithm that currently integrates jump noises correctly is the Euler algorithm.  This can be implemented by the “SI” method with the option <tt class="docutils literal"><span class="pre">iterations="1"</span></tt>.</p>
 <p>Example syntax:</p>
 <div class="highlight-xmds2"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
     <span class="nt"><noise_vector</span> <span class="na">name=</span><span class="s">"initialDistribution"</span> <span class="na">dimensions=</span><span class="s">""</span> <span class="na">kind=</span><span class="s">"jump"</span> <span class="na">type=</span><span class="s">"real"</span> <span class="na">mean-rate=</span><span class="s">"2.7"</span> <span class="na">method=</span><span class="s">"solirte"</span> <span c [...]
@@ -908,7 +930,7 @@ algorithms get around this problem by testing the convergence during the integra
 <div class="section" id="richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method">
 <span id="realgorithm"></span><span id="index-85"></span><h4>Richardson Extrapolation Algorithms and the Bulirsch-Stoer Method<a class="headerlink" href="#richardson-extrapolation-algorithms-and-the-bulirsch-stoer-method" title="Permalink to this headline">¶</a></h4>
 <p>The Richardson Extrapolation technique begins with a large initial interval and uses another stepper algorithm to compute the solution for this interval. It does this by subdividing the interval into increasing subintervals (i.e. with smaller and smaller stepsizes) and uses rational extrapolation to produce a higher order result than would be obtained using the other stepper on its own. The number of extrapolations performed is controllable via the <tt class="docutils literal"><span c [...]
-<p>Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as it’s error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool [...]
+<p>Richardson Extrapolation provides the best trade off between computational effort and accuracy when paired with the Modified Midpoint stepper. This stepper is notable as its error scaling function contains only even powers of two. This means that each extrapolation performed in the Richardson technique gains two orders rather than one order as is expected for most other steppers. This combined with the low computational overhead of the Modified Midpoint makes it a powerful tool. The c [...]
 <p>A number of combinations of fixed-step, fixed-order Richardson Extrapolation are available in XMDS2. The most notable is the Bulirsch-Stoer method which can be selected using <tt class="docutils literal"><span class="pre">algorithm="BS"</span></tt> or alternatively <tt class="docutils literal"><span class="pre">algorithm="REMM"</span></tt>. Other combinations include ‘RERK4’, ‘RERK9’ and ‘RESI’ (for stochastic equations). Please  [...]
 <p>Richardson Extrapolation in general uses more memory than other integrators as multiple result vectors must be stored at the same time, which is something users should be aware of if the <tt class="docutils literal"><span class="pre">extrapolations</span></tt> attribute is set too high (generally < 10 should be sufficient).</p>
 <p>See the section on the <a class="reference internal" href="bulirschStoer.html#mmdetail"><em>Bulirsch-Stoer Algorithm</em></a> for more details.</p>
@@ -959,7 +981,7 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
 <p>The <tt class="docutils literal"><span class="pre"><samples></span></tt> inside <tt class="docutils literal"><span class="pre"><integrate></span></tt> elements defines a string of integers, with exactly one for each <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element.  During that integration, the variables described in each <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element will be sampled and st [...]
 <span class="target" id="index-90"></span><div class="section" id="sampling-group-element">
 <span id="samplinggroupelement"></span><span id="index-91"></span><h3>Sampling Group Element<a class="headerlink" href="#sampling-group-element" title="Permalink to this headline">¶</a></h3>
-<p>A <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element defines a set of variables that we wish to output, typically they are functions of some subset of vectors.  The names of the desired variables are listed in a <tt class="docutils literal"><span class="pre"><moments></span></tt> element, just like the <tt class="docutils literal"><span class="pre"><components></span></tt> element of a vector.  They are defined with a ‘<a class= [...]
+<p>A <tt class="docutils literal"><span class="pre"><sampling_group></span></tt> element defines a set of variables that we wish to output, and typically they are functions of some subset of vectors.  The names of the desired variables are listed in a <tt class="docutils literal"><span class="pre"><moments></span></tt> element, just like the <tt class="docutils literal"><span class="pre"><components></span></tt> element of a vector.  They are defined with a ‘<a cl [...]
 <p id="index-92">The basis of the output is specified by the <tt class="docutils literal"><span class="pre">basis</span></tt> attribute.  This overrides any basis specification in the <tt class="docutils literal"><span class="pre"><dependencies></span></tt> element.  Because we often wish to calculate these vectors on a finer grid than we wish to output, it is possible to specify that the output on a subset of the points defined for any transverse dimension.  This is done by adding [...]
 <p>The <tt class="docutils literal"><span class="pre">initial_sample</span></tt> attribute, which must be “yes” or “no”, determines whether the moment group will be sampled before any integration occurs.</p>
 <p>Example syntax:</p>
@@ -1131,12 +1153,19 @@ is then executed in the order found in the <tt class="docutils literal"><span cl
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="bulirschStoer.html" title="Modified Midpoint Method"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="reference_schema.html" title="XMDS2 XML Schema"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" >Reference section</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/reference_index.html b/documentation/reference_index.html
index 8a3b08c..636fd9e 100644
--- a/documentation/reference_index.html
+++ b/documentation/reference_index.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Reference section — XMDS2 2.2.0 documentation</title>
+    <title>Reference section — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Configuration, installation and runtime options" href="reference_installation_and_configuration.html" />
+    <link rel="prev" title="Worked Examples" href="worked_examples.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_installation_and_configuration.html" title="Configuration, installation and runtime options"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="worked_examples.html" title="Worked Examples"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -111,12 +119,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_installation_and_configuration.html" title="Configuration, installation and runtime options"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="worked_examples.html" title="Worked Examples"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/reference_installation_and_configuration.html b/documentation/reference_installation_and_configuration.html
index 2c3430b..bc47d32 100644
--- a/documentation/reference_installation_and_configuration.html
+++ b/documentation/reference_installation_and_configuration.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Configuration, installation and runtime options — XMDS2 2.2.0 documentation</title>
+    <title>Configuration, installation and runtime options — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,10 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="up" title="Reference section" href="reference_index.html" />
+    <link rel="next" title="Useful XML Syntax" href="reference_usefulXMLSyntax.html" />
+    <link rel="prev" title="Reference section" href="reference_index.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +39,14 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_usefulXMLSyntax.html" title="Useful XML Syntax"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="reference_index.html" title="Reference section"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" accesskey="U">Reference section</a> »</li> 
       </ul>
     </div>  
 
@@ -109,12 +119,19 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_usefulXMLSyntax.html" title="Useful XML Syntax"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="reference_index.html" title="Reference section"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" >Reference section</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/reference_schema.html b/documentation/reference_schema.html
index 2686f9d..7bebdfb 100644
--- a/documentation/reference_schema.html
+++ b/documentation/reference_schema.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>XMDS2 XML Schema — XMDS2 2.2.0 documentation</title>
+    <title>XMDS2 XML Schema — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,10 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="up" title="Reference section" href="reference_index.html" />
+    <link rel="next" title="XMDS2 script elements" href="reference_elements.html" />
+    <link rel="prev" title="Useful XML Syntax" href="reference_usefulXMLSyntax.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +39,14 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_elements.html" title="XMDS2 script elements"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="reference_usefulXMLSyntax.html" title="Useful XML Syntax"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" accesskey="U">Reference section</a> »</li> 
       </ul>
     </div>  
 
@@ -227,12 +237,19 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_elements.html" title="XMDS2 script elements"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="reference_usefulXMLSyntax.html" title="Useful XML Syntax"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" >Reference section</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/reference_usefulXMLSyntax.html b/documentation/reference_usefulXMLSyntax.html
index 3873ed5..8fdb8bc 100644
--- a/documentation/reference_usefulXMLSyntax.html
+++ b/documentation/reference_usefulXMLSyntax.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Useful XML Syntax — XMDS2 2.2.0 documentation</title>
+    <title>Useful XML Syntax — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,10 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="up" title="Reference section" href="reference_index.html" />
+    <link rel="next" title="XMDS2 XML Schema" href="reference_schema.html" />
+    <link rel="prev" title="Configuration, installation and runtime options" href="reference_installation_and_configuration.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +39,14 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_schema.html" title="XMDS2 XML Schema"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="reference_installation_and_configuration.html" title="Configuration, installation and runtime options"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" accesskey="U">Reference section</a> »</li> 
       </ul>
     </div>  
 
@@ -99,12 +109,19 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_schema.html" title="XMDS2 XML Schema"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="reference_installation_and_configuration.html" title="Configuration, installation and runtime options"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li>
+          <li><a href="reference_index.html" >Reference section</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/search.html b/documentation/search.html
index 983b7df..24adaca 100644
--- a/documentation/search.html
+++ b/documentation/search.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Search — XMDS2 2.2.0 documentation</title>
+    <title>Search — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -28,7 +28,7 @@
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <script type="text/javascript" src="_static/searchtools.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" />
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
   <script type="text/javascript">
     jQuery(function() { Search.loadIndex("searchindex.js"); });
   </script>
@@ -42,7 +42,7 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -93,12 +93,12 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/searchindex.js b/documentation/searchindex.js
index 2f5d80a..6c90e6e 100644
--- a/documentation/searchindex.js
+++ b/documentation/searchindex.js
@@ -1 +1 @@
-Search.setIndex({objects:{},terms:{orthogon:3,ridden:19,interchang:13,four:[15,13],secondli:[8,9],prefix:[2,3],forget:4,xmds2:[0,1,2,3,6,5,15,9,8,10,7,13,14,16,17,18,19,11],xmds1:[6,7,17],accur:[8,19,3],"const":[15,3],wigner_arguments_mpi:15,openmpi:[4,2],matlab:[6,7,12,2,17],under:[5,15,13,3],slowest:3,worth:8,merchant:13,digit:3,everi:[4,13,16],risk:13,vastli:19,"void":13,vector:[0,4,15,8,10,7,6,9,14,16,17,18,19,3],terabyt:3,matric:14,readthedoc:16,initialis:[6,4,15,7,14,16,17,18,19,3] [...]
\ No newline at end of file
+Search.setIndex({objects:{},terms:{orthogon:3,ridden:19,interchang:13,four:[15,13],secondli:[8,9],prefix:[2,3],forget:4,xmds2:[0,1,2,3,6,5,15,9,8,10,7,13,14,16,17,18,19,11],xmds1:[6,7,2,17],accur:[8,19,3],"const":[15,3],wigner_arguments_mpi:15,openmpi:[4,2],matlab:[6,7,12,2,17],under:[5,15,13,3],slowest:3,worth:8,merchant:13,digit:3,everi:[4,13,16],risk:13,vastli:19,"void":13,vector:[0,4,15,8,10,7,6,9,14,16,17,18,19,3],terabyt:3,matric:14,readthedoc:16,initialis:[6,4,15,7,14,16,17,18,19, [...]
\ No newline at end of file
diff --git a/documentation/tutorial.html b/documentation/tutorial.html
index 9292a0e..ce1264e 100644
--- a/documentation/tutorial.html
+++ b/documentation/tutorial.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Quickstart Tutorial — XMDS2 2.2.0 documentation</title>
+    <title>Quickstart Tutorial — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Worked Examples" href="worked_examples.html" />
+    <link rel="prev" title="Installation" href="installation.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="worked_examples.html" title="Worked Examples"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="installation.html" title="Installation"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -303,12 +311,18 @@ ListPointPlot3D[ll]
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="worked_examples.html" title="Worked Examples"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="installation.html" title="Installation"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/upgrade.html b/documentation/upgrade.html
index 1786fca..c3fe95d 100644
--- a/documentation/upgrade.html
+++ b/documentation/upgrade.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Upgrading From XMDS 1.X — XMDS2 2.2.0 documentation</title>
+    <title>Upgrading From XMDS 1.X — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Optimisation Hints" href="optimisation_hints.html" />
+    <link rel="prev" title="Frequently Asked Questions" href="faq.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="optimisation_hints.html" title="Optimisation Hints"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="faq.html" title="Frequently Asked Questions"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -84,12 +92,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="optimisation_hints.html" title="Optimisation Hints"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="faq.html" title="Frequently Asked Questions"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/worked_examples.html b/documentation/worked_examples.html
index 1626293..6f6b6e6 100644
--- a/documentation/worked_examples.html
+++ b/documentation/worked_examples.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>Worked Examples — XMDS2 2.2.0 documentation</title>
+    <title>Worked Examples — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Reference section" href="reference_index.html" />
+    <link rel="prev" title="Quickstart Tutorial" href="tutorial.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_index.html" title="Reference section"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="tutorial.html" title="Quickstart Tutorial"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -244,7 +252,7 @@
 <p>where <span class="math">\(\eta(t)\)</span> is the Wiener differential, and we interpret this as a Stratonovich equation.  In other common notation, this is sometimes written:</p>
 <div class="math">
 \[dz = i z \;\circ dW\]</div>
-<p>Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich euqations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:</p>
+<p>Most algorithms employed by XMDS require the equations to be input in the Stratonovich form.  Ito differential equations can always be transformed into Stratonovich equations, and in this case the difference is equivalent to the choice of rotating frame.  This equation is solved by the following XMDS2 script:</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
   <span class="nt"><name></span>kubo<span class="nt"></name></span>
   <span class="nt"><author></span>Graham Dennis and Joe Hope<span class="nt"></author></span>
@@ -893,7 +901,7 @@ Variables that can be specified on the command line:
 <span class="nt"></simulation></span>
 </pre></div>
 </div>
-<p>We have used the <tt class="docutils literal"><span class="pre">plan="exhasutive"</span></tt> option in the <tt class="docutils literal"><span class="pre"><fftw></span></tt> element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the ~/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.</p>
+<p>We have used the <tt class="docutils literal"><span class="pre">plan="exhaustive"</span></tt> option in the <tt class="docutils literal"><span class="pre"><fftw></span></tt> element to ensure that the absolute fastest transform method is found.  Because the FFTW package stores the results of its tests (by default in the ~/.xmds/wisdom directory), this option does not cause significant computational overhead, except perhaps on the very first run of a new program.</p>
 <p id="index-13">This simulation introduces the first example of a very powerful feature in XMDS2: the <tt class="docutils literal"><span class="pre"><computed_vector></span></tt> element.  This has syntax like any other vector, including possible dependencies on other vectors, and an ability to be used in any element that can use vectors.  The difference is that, much like noise vectors, computed vectors are recalculated each time they are required.  This means that a computed vec [...]
 <p>The difference between a computed vector and a stored vector is emphasised by the replacement of the <tt class="docutils literal"><span class="pre"><initialisation></span></tt> element with an <tt class="docutils literal"><span class="pre"><evaluation></span></tt> element.  Apart from the name, they have virtually identical purpose and syntax.</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><computed_vector</span> <span class="na">name=</span><span class="s">"normalisation"</span> <span class="na">dimensions=</span><span class="s">""</span> <span class="na">type=</span><span class="s">"real"</span><span class="nt">></span>
@@ -965,12 +973,12 @@ Variables that can be specified on the command line:
 <p>where</p>
 <div class="math">
 \[\phi_n(x,t) = \sqrt{\frac{1}{2^n n!}} \left(\frac{m \omega}{\hbar \pi}\right)^\frac{1}{4} e^{-\frac{m \omega x^2}{2\hbar}} H_n\left(\sqrt{\frac{m \omega}{\hbar}x}\right),\;\;\;\;\;\;E_n = \left(n+\frac{1}{2}\right) \omega\]</div>
-<p>where <span class="math">\(H_n(u)\)</span> are the physicist’s version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire <span class="math">\(-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2\)</span> term as a diagonal term in the hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a  [...]
+<p>where <span class="math">\(H_n(u)\)</span> are the physicist’s version of the Hermite polynomials.  Rather than describing the derivatives as diagonal terms in Fourier space, we therefore have the option of describing the entire <span class="math">\(-\frac{\hbar}{2 m}\frac{\partial^2}{\partial x^2} + \frac{1}{2}\omega^2 x^2\)</span> term as a diagonal term in the Hermite-Gaussian basis.  Here is an XMDS2 simulation that performs the integration in this basis. The following is a  [...]
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><simulation</span> <span class="na">xmds-version=</span><span class="s">"2"</span><span class="nt">></span>
   <span class="nt"><name></span>hermitegauss_groundstate<span class="nt"></name></span>
   <span class="nt"><author></span>Graham Dennis<span class="nt"></author></span>
   <span class="nt"><description></span>
-    Solve for the groundstate of the Gross-Pitaevskii equation using the hermite-Gauss basis.
+    Solve for the groundstate of the Gross-Pitaevskii equation using the Hermite-Gauss basis.
   <span class="nt"></description></span>
 
   <span class="nt"><features></span>
@@ -1083,7 +1091,7 @@ Variables that can be specified on the command line:
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><dimension</span> <span class="na">name=</span><span class="s">"x"</span> <span class="na">lattice=</span><span class="s">"100"</span> <span class="na">length_scale=</span><span class="s">"sqrt(hbar/(M*omegarho))"</span> <span class="na">transform=</span><span class="s">"hermite-gauss"</span> <span class="nt">/></span>
 </pre></div>
 </div>
-<p>We have explicitly defined the “transform” option, which by defaults expects the Fourier transform.  The <tt class="docutils literal"><span class="pre">transform="hermite-gauss"</span></tt> option requires the ‘mpmath’ package installed, just as Fourier transforms require the FFTW package to be installed.  The “lattice” option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order poly [...]
+<p>We have explicitly defined the “transform” option, which by default expects the Fourier transform.  The <tt class="docutils literal"><span class="pre">transform="hermite-gauss"</span></tt> option requires the ‘mpmath’ package installed, just as Fourier transforms require the FFTW package to be installed.  The “lattice” option details the number of hermite-Gaussian eigenstates to include, and automatically starts from the zeroth order polyn [...]
 <p>The <tt class="docutils literal"><span class="pre">length_scale="sqrt(hbar/(M*omegarho))"</span></tt> option requires a real number, but since this script defines it in terms of variables, XMDS2 is unable to verify that the resulting function is real-valued at the time of generating the code.  XMDS2 will therefore fail to compile this program without the feature:</p>
 <div class="highlight-xpdeint"><div class="highlight"><pre><span class="nt"><validation</span> <span class="na">kind=</span><span class="s">"run-time"</span> <span class="nt">/></span>
 </pre></div>
@@ -1288,12 +1296,18 @@ Variables that can be specified on the command line:
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="reference_index.html" title="Reference section"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="tutorial.html" title="Quickstart Tutorial"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/documentation/xsil2graphics2.html b/documentation/xsil2graphics2.html
index a7728d8..23e17f6 100644
--- a/documentation/xsil2graphics2.html
+++ b/documentation/xsil2graphics2.html
@@ -8,7 +8,7 @@
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
-    <title>xsil2graphics2 — XMDS2 2.2.0 documentation</title>
+    <title>xsil2graphics2 — XMDS2 2.2.1 documentation</title>
     
     <link rel="stylesheet" href="_static/default.css" type="text/css" />
     <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
@@ -16,7 +16,7 @@
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
         URL_ROOT:    '',
-        VERSION:     '2.2.0',
+        VERSION:     '2.2.1',
         COLLAPSE_INDEX: false,
         FILE_SUFFIX: '.html',
         HAS_SOURCE:  true
@@ -27,7 +27,9 @@
     <script type="text/javascript" src="_static/doctools.js"></script>
     <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML,http://www.xmds.org/_static/mathjax-use-tex-fonts.js"></script>
     <link rel="shortcut icon" href="_static/xmds_favicon.ico"/>
-    <link rel="top" title="XMDS2 2.2.0 documentation" href="index.html" /> 
+    <link rel="top" title="XMDS2 2.2.1 documentation" href="index.html" />
+    <link rel="next" title="Developer Documentation" href="developer.html" />
+    <link rel="prev" title="Optimisation Hints" href="optimisation_hints.html" /> 
   </head>
   <body>
     <div class="related">
@@ -36,7 +38,13 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              accesskey="I">index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="developer.html" title="Developer Documentation"
+             accesskey="N">next</a> |</li>
+        <li class="right" >
+          <a href="optimisation_hints.html" title="Optimisation Hints"
+             accesskey="P">previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>  
 
@@ -83,12 +91,18 @@
         <li class="right" style="margin-right: 10px">
           <a href="genindex.html" title="General Index"
              >index</a></li>
-        <li><a href="index.html">XMDS2 2.2.0 documentation</a> »</li> 
+        <li class="right" >
+          <a href="developer.html" title="Developer Documentation"
+             >next</a> |</li>
+        <li class="right" >
+          <a href="optimisation_hints.html" title="Optimisation Hints"
+             >previous</a> |</li>
+        <li><a href="index.html">XMDS2 2.2.1 documentation</a> »</li> 
       </ul>
     </div>
     <div class="footer">
         © Copyright 2008-2014, Graham Dennis, Joe Hope and Mattias Johnsson. Licensed under the GNU FDL.
-      Last updated on Jan 14, 2014.
+      Last updated on Sep 30, 2014.
       Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
     </div>
   </body>
diff --git a/examples/cpc_example5.xmds b/examples/cpc_example5.xmds
index d98bee4..b66b537 100644
--- a/examples/cpc_example5.xmds
+++ b/examples/cpc_example5.xmds
@@ -57,12 +57,16 @@
 		<dependencies basis="kx">density</dependencies>
 		<![CDATA[
 				  // The analytic term is (1/(kx*kx) * (1 - cos(kx * R))) where R is the upper limit on the
-				  // Fourier transform.  This has zero limit near kx = 0 analytically, but the computer
+				  // Fourier transform.  This has finite limit near kx = 0 analytically, but the computer
 				  // won't know that when it tries to divide by zero.
-				  V_E = +1e-1 * dens * 2 / (kx * kx) * (1.0 - cos(kx * 0.5* (_max_x - _min_x)));
-		if (kx == 0.0)
-			V_E = 0.0;
-		]]>
+    real factor = 0.0;
+    if (kx == 0.0)
+      factor = 0.125 * (_max_x - _min_x) * (_max_x - _min_x);
+    else
+      factor = (1.0 - cos(kx * 0.5 * (_max_x - _min_x))) / (kx * kx);
+
+    V_E = +1e-1 * dens * factor;
+    ]]>
 	</evaluation>
   </computed_vector>
   
diff --git a/setup.py b/setup.py
index 0267c8f..2f62cb6 100755
--- a/setup.py
+++ b/setup.py
@@ -17,7 +17,7 @@ for root, dirs, files in os.walk('xpdeint'):
         packages.append(root.replace(os.sep, '.'))
 
 setup(name="xmds2",
-      version="2.2.0",
+      version="2.2.1",
       description="Stochastic ODE/PDE integrator",
       url="http://xmds.sourceforge.net",
       license="GPLv2",
diff --git a/xpdeint/Features/Arguments.py b/xpdeint/Features/Arguments.py
index 34de3b6..911b791 100644
--- a/xpdeint/Features/Arguments.py
+++ b/xpdeint/Features/Arguments.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.597173
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Arguments.tmpl'
+__CHEETAH_genTime__ = 1412053665.394788
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Arguments.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/AsciiFormat.py b/xpdeint/Features/AsciiFormat.py
index 4a6012c..01d6bfb 100644
--- a/xpdeint/Features/AsciiFormat.py
+++ b/xpdeint/Features/AsciiFormat.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.578176
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/AsciiFormat.tmpl'
+__CHEETAH_genTime__ = 1412053665.509494
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/AsciiFormat.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/AutoVectorise.py b/xpdeint/Features/AutoVectorise.py
index 9ecd42f..990b9b3 100644
--- a/xpdeint/Features/AutoVectorise.py
+++ b/xpdeint/Features/AutoVectorise.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.821844
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/AutoVectorise.tmpl'
+__CHEETAH_genTime__ = 1412053665.380339
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/AutoVectorise.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Benchmark.py b/xpdeint/Features/Benchmark.py
index ae7dd75..7a2e16c 100644
--- a/xpdeint/Features/Benchmark.py
+++ b/xpdeint/Features/Benchmark.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.224025
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Benchmark.tmpl'
+__CHEETAH_genTime__ = 1412053665.468417
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Benchmark.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/BinaryFormat.py b/xpdeint/Features/BinaryFormat.py
index 700fec8..2b8fb7f 100644
--- a/xpdeint/Features/BinaryFormat.py
+++ b/xpdeint/Features/BinaryFormat.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.817779
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/BinaryFormat.tmpl'
+__CHEETAH_genTime__ = 1412053665.573264
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/BinaryFormat.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:18 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Bing.py b/xpdeint/Features/Bing.py
index f2ba0d1..6ab042f 100644
--- a/xpdeint/Features/Bing.py
+++ b/xpdeint/Features/Bing.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.294047
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Bing.tmpl'
+__CHEETAH_genTime__ = 1412053665.434886
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Bing.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/CFlags.py b/xpdeint/Features/CFlags.py
index db081fb..8964412 100644
--- a/xpdeint/Features/CFlags.py
+++ b/xpdeint/Features/CFlags.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.14769
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/CFlags.tmpl'
+__CHEETAH_genTime__ = 1412053665.455666
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/CFlags.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/ChunkedOutput.py b/xpdeint/Features/ChunkedOutput.py
index 267cd1e..1795c47 100644
--- a/xpdeint/Features/ChunkedOutput.py
+++ b/xpdeint/Features/ChunkedOutput.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.101867
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/ChunkedOutput.tmpl'
+__CHEETAH_genTime__ = 1412053665.404103
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/ChunkedOutput.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Diagnostics.py b/xpdeint/Features/Diagnostics.py
index 1aaa25d..3c7163d 100644
--- a/xpdeint/Features/Diagnostics.py
+++ b/xpdeint/Features/Diagnostics.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.742647
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Diagnostics.tmpl'
+__CHEETAH_genTime__ = 1412053665.46357
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Diagnostics.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/ErrorCheck.py b/xpdeint/Features/ErrorCheck.py
index dde25aa..a8ce1f7 100644
--- a/xpdeint/Features/ErrorCheck.py
+++ b/xpdeint/Features/ErrorCheck.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.486569
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/ErrorCheck.tmpl'
+__CHEETAH_genTime__ = 1412053665.549703
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/ErrorCheck.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Globals.py b/xpdeint/Features/Globals.py
index baf483c..aa47785 100644
--- a/xpdeint/Features/Globals.py
+++ b/xpdeint/Features/Globals.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.764421
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Globals.tmpl'
+__CHEETAH_genTime__ = 1412053665.51797
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Globals.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Feb 22 16:33:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/HDF5Format.py b/xpdeint/Features/HDF5Format.py
index 2bba532..1fcc8d4 100644
--- a/xpdeint/Features/HDF5Format.py
+++ b/xpdeint/Features/HDF5Format.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.071779
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/HDF5Format.tmpl'
+__CHEETAH_genTime__ = 1412053665.62847
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/HDF5Format.tmpl'
 __CHEETAH_srcLastModified__ = 'Sun Nov 24 20:15:20 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/HaltNonFinite.py b/xpdeint/Features/HaltNonFinite.py
index 0ac938d..b2485ad 100644
--- a/xpdeint/Features/HaltNonFinite.py
+++ b/xpdeint/Features/HaltNonFinite.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.848037
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/HaltNonFinite.tmpl'
+__CHEETAH_genTime__ = 1412053665.634389
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/HaltNonFinite.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/MaxIterations.py b/xpdeint/Features/MaxIterations.py
index 6ef6a6d..a51cab5 100644
--- a/xpdeint/Features/MaxIterations.py
+++ b/xpdeint/Features/MaxIterations.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.170423
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/MaxIterations.tmpl'
+__CHEETAH_genTime__ = 1412053665.671388
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/MaxIterations.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/OpenMP.py b/xpdeint/Features/OpenMP.py
index e0b504a..203ecf8 100644
--- a/xpdeint/Features/OpenMP.py
+++ b/xpdeint/Features/OpenMP.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.598129
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/OpenMP.tmpl'
+__CHEETAH_genTime__ = 1412053665.70686
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/OpenMP.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Oct 18 19:50:44 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Output.py b/xpdeint/Features/Output.py
index 8651873..0c05d7e 100644
--- a/xpdeint/Features/Output.py
+++ b/xpdeint/Features/Output.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.829152
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Output.tmpl'
+__CHEETAH_genTime__ = 1412053665.666169
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Output.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Sep  3 14:15:51 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/OutputFormat.py b/xpdeint/Features/OutputFormat.py
index 9acc971..b855083 100644
--- a/xpdeint/Features/OutputFormat.py
+++ b/xpdeint/Features/OutputFormat.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.430215
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/OutputFormat.tmpl'
+__CHEETAH_genTime__ = 1412053665.703541
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/OutputFormat.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 29 13:43:25 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -230,7 +230,7 @@ void _close_xsil_file(FILE*& fp)
         #  Find the end tag in a case-insensitive way
         indexForEndTag = VFN(VFN(VFFSL(SL,"expandedInputScript",True),"lower",False)(),"rfind",False)('</simulation>')
         xsilOutputHeader = VFFSL(SL,"expandedInputScript",True)[0:VFFSL(SL,"indexForEndTag",True)]
-        _orig_filter_54581106 = _filter
+        _orig_filter_79874812 = _filter
         _filter = self._CHEETAH__currentFilter = VFFSL(SL,"PrintfSafeFilter",True)(self).filter
         for line in VFN(VFFSL(SL,"xsilOutputHeader",True),"splitlines",False)(): # generated from line 92, col 5
             write(u'''  fprintf(fp, "''')
@@ -249,7 +249,7 @@ void _close_xsil_file(FILE*& fp)
         write(u''')\\n");
   fprintf(fp, "See http://www.xmds.org for more information.\\n");
 ''')
-        _filter = self._CHEETAH__currentFilter = _orig_filter_54581106
+        _filter = self._CHEETAH__currentFilter = _orig_filter_79874812
         # 
         featureOrderingXSILInfo = ['Arguments', 'Stochastic']
         write(u'''  ''')
diff --git a/xpdeint/Features/Stochastic.py b/xpdeint/Features/Stochastic.py
index 2d083a4..12cfe24 100644
--- a/xpdeint/Features/Stochastic.py
+++ b/xpdeint/Features/Stochastic.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.100429
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Stochastic.tmpl'
+__CHEETAH_genTime__ = 1412053665.787969
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Stochastic.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/Basis.py b/xpdeint/Features/Transforms/Basis.py
index 906e577..2bafff8 100644
--- a/xpdeint/Features/Transforms/Basis.py
+++ b/xpdeint/Features/Transforms/Basis.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.85928
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/Basis.tmpl'
+__CHEETAH_genTime__ = 1412053665.773202
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/Basis.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/BesselBasis.py b/xpdeint/Features/Transforms/BesselBasis.py
index 4545773..afaaf78 100644
--- a/xpdeint/Features/Transforms/BesselBasis.py
+++ b/xpdeint/Features/Transforms/BesselBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.851409
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselBasis.tmpl'
+__CHEETAH_genTime__ = 1412053665.797038
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/BesselBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/BesselNeumannTransform.py b/xpdeint/Features/Transforms/BesselNeumannTransform.py
index 2442001..c5b4427 100644
--- a/xpdeint/Features/Transforms/BesselNeumannTransform.py
+++ b/xpdeint/Features/Transforms/BesselNeumannTransform.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.124987
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl'
+__CHEETAH_genTime__ = 1412053665.784493
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/BesselNeumannTransform.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 28 08:44:05 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/BesselTransform.py b/xpdeint/Features/Transforms/BesselTransform.py
index 241c21d..3c34257 100644
--- a/xpdeint/Features/Transforms/BesselTransform.py
+++ b/xpdeint/Features/Transforms/BesselTransform.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.060889
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/BesselTransform.tmpl'
+__CHEETAH_genTime__ = 1412053665.779386
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/BesselTransform.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/EPBasis.py b/xpdeint/Features/Transforms/EPBasis.py
index 1bb0efc..752b54e 100644
--- a/xpdeint/Features/Transforms/EPBasis.py
+++ b/xpdeint/Features/Transforms/EPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.922267
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/EPBasis.tmpl'
+__CHEETAH_genTime__ = 1412053665.967481
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/EPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3.py b/xpdeint/Features/Transforms/FourierTransformFFTW3.py
index 3a18c93..89749b1 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.286109
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3.tmpl'
+__CHEETAH_genTime__ = 1412053665.893226
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/FourierTransformFFTW3.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py b/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
index d600c5e..72c06c6 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.py
@@ -37,9 +37,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.358905
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.tmpl'
+__CHEETAH_genTime__ = 1412053666.044773
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/FourierTransformFFTW3MPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py b/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
index 95075c1..f5f6e02 100644
--- a/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
+++ b/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.271709
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.tmpl'
+__CHEETAH_genTime__ = 1412053665.914166
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/FourierTransformFFTW3Threads.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussEPBasis.py b/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
index c54055f..4a20834 100644
--- a/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussEPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.22311
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussEPBasis.tmpl'
+__CHEETAH_genTime__ = 1412053665.991
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/HermiteGaussEPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py b/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
index a8490a8..e468a34 100644
--- a/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.642986
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.tmpl'
+__CHEETAH_genTime__ = 1412053665.963521
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/HermiteGaussFourierEPBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jul  3 14:24:15 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussTransform.py b/xpdeint/Features/Transforms/HermiteGaussTransform.py
index 7beee0a..9b3ce5b 100644
--- a/xpdeint/Features/Transforms/HermiteGaussTransform.py
+++ b/xpdeint/Features/Transforms/HermiteGaussTransform.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652441.952265
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:01 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl'
+__CHEETAH_genTime__ = 1412053665.972972
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:45 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/HermiteGaussTransform.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:49:57 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py b/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
index 0085e58..68434d2 100644
--- a/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
+++ b/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.176968
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.tmpl'
+__CHEETAH_genTime__ = 1412053666.068473
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/HermiteGaussTwiddleBasis.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul  5 16:29:35 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/MMT.py b/xpdeint/Features/Transforms/MMT.py
index 5bc4bc9..bb75229 100644
--- a/xpdeint/Features/Transforms/MMT.py
+++ b/xpdeint/Features/Transforms/MMT.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.061539
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/MMT.tmpl'
+__CHEETAH_genTime__ = 1412053666.079428
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/MMT.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:49:57 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/NoTransformMPI.py b/xpdeint/Features/Transforms/NoTransformMPI.py
index be38fc1..77f6dbc 100644
--- a/xpdeint/Features/Transforms/NoTransformMPI.py
+++ b/xpdeint/Features/Transforms/NoTransformMPI.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.157351
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/NoTransformMPI.tmpl'
+__CHEETAH_genTime__ = 1412053666.047729
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/NoTransformMPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Feb 23 00:45:53 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Transforms/TransformMultiplexer.py b/xpdeint/Features/Transforms/TransformMultiplexer.py
index 7cdcaab..3ad7339 100644
--- a/xpdeint/Features/Transforms/TransformMultiplexer.py
+++ b/xpdeint/Features/Transforms/TransformMultiplexer.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.353614
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Transforms/TransformMultiplexer.tmpl'
+__CHEETAH_genTime__ = 1412053666.167891
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Transforms/TransformMultiplexer.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Features/Validation.py b/xpdeint/Features/Validation.py
index 703bc6b..a9b96ab 100644
--- a/xpdeint/Features/Validation.py
+++ b/xpdeint/Features/Validation.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.109893
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Features/Validation.tmpl'
+__CHEETAH_genTime__ = 1412053666.068705
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Features/Validation.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Aug 22 16:32:53 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/BesselDimensionRepresentation.py b/xpdeint/Geometry/BesselDimensionRepresentation.py
index a4dff9b..73fca12 100644
--- a/xpdeint/Geometry/BesselDimensionRepresentation.py
+++ b/xpdeint/Geometry/BesselDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.523392
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/BesselDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.117023
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/BesselDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
index 28af646..55db042 100644
--- a/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
+++ b/xpdeint/Geometry/BesselNeumannDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.007338
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.141026
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/BesselNeumannDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 28 08:44:05 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/DimensionRepresentation.py b/xpdeint/Geometry/DimensionRepresentation.py
index ac92936..691616c 100644
--- a/xpdeint/Geometry/DimensionRepresentation.py
+++ b/xpdeint/Geometry/DimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.962443
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/DimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.156895
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/DimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/FieldElement.py b/xpdeint/Geometry/FieldElement.py
index 5afb53c..c2a39e1 100644
--- a/xpdeint/Geometry/FieldElement.py
+++ b/xpdeint/Geometry/FieldElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.376462
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/FieldElement.tmpl'
+__CHEETAH_genTime__ = 1412053666.154769
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/FieldElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/GeometryElement.py b/xpdeint/Geometry/GeometryElement.py
index cf4b0d6..7880444 100644
--- a/xpdeint/Geometry/GeometryElement.py
+++ b/xpdeint/Geometry/GeometryElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.401039
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/GeometryElement.tmpl'
+__CHEETAH_genTime__ = 1412053666.174072
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/GeometryElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py b/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
index 564f85b..7b9ea43 100644
--- a/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
+++ b/xpdeint/Geometry/HermiteGaussDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.107029
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/HermiteGaussDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.21711
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/HermiteGaussDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jul 11 19:41:11 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/NonUniformDimensionRepresentation.py b/xpdeint/Geometry/NonUniformDimensionRepresentation.py
index 5ffaef5..4c52ed8 100644
--- a/xpdeint/Geometry/NonUniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/NonUniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.002856
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/NonUniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.19814
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/NonUniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue May 22 16:27:12 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
index 424b326..8e63081 100644
--- a/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
+++ b/xpdeint/Geometry/SphericalBesselDimensionRepresentation.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.026056
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.207926
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/SphericalBesselDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 26 20:52:00 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/SplitUniformDimensionRepresentation.py b/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
index be839bd..3b0abfd 100644
--- a/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/SplitUniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.160835
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/SplitUniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.241604
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/SplitUniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul 13 16:21:46 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Geometry/UniformDimensionRepresentation.py b/xpdeint/Geometry/UniformDimensionRepresentation.py
index bb09899..5f654ba 100644
--- a/xpdeint/Geometry/UniformDimensionRepresentation.py
+++ b/xpdeint/Geometry/UniformDimensionRepresentation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.220874
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Geometry/UniformDimensionRepresentation.tmpl'
+__CHEETAH_genTime__ = 1412053666.278035
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Geometry/UniformDimensionRepresentation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Jul 13 16:21:46 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/HDF5.py b/xpdeint/HDF5.py
index 4d48892..4c3ebb6 100644
--- a/xpdeint/HDF5.py
+++ b/xpdeint/HDF5.py
@@ -36,9 +36,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.828728
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/HDF5.tmpl'
+__CHEETAH_genTime__ = 1412053666.319803
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/HDF5.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Apr 23 13:26:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -308,12 +308,12 @@ mem_stride[''')
             write(u''';
 
 ''')
-            ## START CAPTURE REGION: _82724993 writeLoopContents at line 122, col 5 in the source.
-            _orig_trans_82724993 = trans
-            _wasBuffering_82724993 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _56396276 writeLoopContents at line 122, col 5 in the source.
+            _orig_trans_56396276 = trans
+            _wasBuffering_56396276 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_82724993 = DummyTransaction()
-            write = _captureCollector_82724993.response().write
+            trans = _captureCollector_56396276 = DummyTransaction()
+            write = _captureCollector_56396276.response().write
             for offset, componentName in components: # generated from line 123, col 7
                 write(u'''mem_start[''')
                 _v = VFFSL(SL,"dimensionCount",True) # u'${dimensionCount}' on line 124, col 11
@@ -350,13 +350,13 @@ if (dataset_''')
                 if _v is not None: write(_filter(_v, rawExpr=u'${variable.arrayName}')) # from line 138, col 106.
                 write(u''');
 ''')
-            trans = _orig_trans_82724993
+            trans = _orig_trans_56396276
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_82724993 
-            writeLoopContents = _captureCollector_82724993.response().getvalue()
-            del _orig_trans_82724993
-            del _captureCollector_82724993
-            del _wasBuffering_82724993
+            self._CHEETAH__isBuffering = _wasBuffering_56396276 
+            writeLoopContents = _captureCollector_56396276.response().getvalue()
+            del _orig_trans_56396276
+            del _captureCollector_56396276
+            del _wasBuffering_56396276
             # 
             #  Permit the driver to modify the writeLoopContents
             featureOrdering = ['Driver']
diff --git a/xpdeint/MomentGroupElement.py b/xpdeint/MomentGroupElement.py
index 50a1b2d..ab51b60 100644
--- a/xpdeint/MomentGroupElement.py
+++ b/xpdeint/MomentGroupElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.952719
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/MomentGroupElement.tmpl'
+__CHEETAH_genTime__ = 1412053666.376112
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/MomentGroupElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 13:11:27 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/ConstantEXOperator.py b/xpdeint/Operators/ConstantEXOperator.py
index 762d750..280b405 100644
--- a/xpdeint/Operators/ConstantEXOperator.py
+++ b/xpdeint/Operators/ConstantEXOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.100913
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/ConstantEXOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.369167
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/ConstantEXOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:43:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/ConstantIPOperator.py b/xpdeint/Operators/ConstantIPOperator.py
index 47df24a..a4e3aa3 100644
--- a/xpdeint/Operators/ConstantIPOperator.py
+++ b/xpdeint/Operators/ConstantIPOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.549691
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/ConstantIPOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.358225
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/ConstantIPOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:15 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/CrossPropagationOperator.py b/xpdeint/Operators/CrossPropagationOperator.py
index 663ef94..e6f3e79 100644
--- a/xpdeint/Operators/CrossPropagationOperator.py
+++ b/xpdeint/Operators/CrossPropagationOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.803121
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/CrossPropagationOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.37421
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/CrossPropagationOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/DeltaAOperator.py b/xpdeint/Operators/DeltaAOperator.py
index 3a484f6..155960c 100644
--- a/xpdeint/Operators/DeltaAOperator.py
+++ b/xpdeint/Operators/DeltaAOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.23985
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/DeltaAOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.400097
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/DeltaAOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/FilterOperator.py b/xpdeint/Operators/FilterOperator.py
index 98d6ae5..3a90d11 100644
--- a/xpdeint/Operators/FilterOperator.py
+++ b/xpdeint/Operators/FilterOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.087688
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/FilterOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.387163
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/FilterOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/FunctionsOperator.py b/xpdeint/Operators/FunctionsOperator.py
index b038811..1c767c6 100644
--- a/xpdeint/Operators/FunctionsOperator.py
+++ b/xpdeint/Operators/FunctionsOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652442.850171
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:02 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/FunctionsOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.406654
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/FunctionsOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/NonConstantEXOperator.py b/xpdeint/Operators/NonConstantEXOperator.py
index 7d397e2..cb4f95d 100644
--- a/xpdeint/Operators/NonConstantEXOperator.py
+++ b/xpdeint/Operators/NonConstantEXOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.426644
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/NonConstantEXOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.420949
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/NonConstantEXOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:43:31 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/NonConstantIPOperator.py b/xpdeint/Operators/NonConstantIPOperator.py
index 64818f9..1bc1d77 100644
--- a/xpdeint/Operators/NonConstantIPOperator.py
+++ b/xpdeint/Operators/NonConstantIPOperator.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.660293
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/NonConstantIPOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.439601
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/NonConstantIPOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/Operator.py b/xpdeint/Operators/Operator.py
index d302641..50a98a3 100644
--- a/xpdeint/Operators/Operator.py
+++ b/xpdeint/Operators/Operator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.448576
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/Operator.tmpl'
+__CHEETAH_genTime__ = 1412053666.572786
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/Operator.tmpl'
 __CHEETAH_srcLastModified__ = 'Tue Nov 20 11:51:47 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Operators/OperatorContainer.py b/xpdeint/Operators/OperatorContainer.py
index 0798934..fe4d762 100644
--- a/xpdeint/Operators/OperatorContainer.py
+++ b/xpdeint/Operators/OperatorContainer.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.526775
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/OperatorContainer.tmpl'
+__CHEETAH_genTime__ = 1412053666.493272
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/OperatorContainer.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Oct  3 21:15:17 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -226,12 +226,12 @@ class OperatorContainer(_OperatorContainer):
             for operatorComponentNumber, (operatorComponentName, operatorComponentVectors) in enumerate(VFN(VFFSL(SL,"ipOperator.operatorComponents",True),"iteritems",False)()): # generated from line 83, col 5
                 for targetVectorComponents in operatorComponentVectors.itervalues(): # generated from line 84, col 7
                     for targetVectorComponent in targetVectorComponents: # generated from line 85, col 9
-                        ## START CAPTURE REGION: _52167270 operation at line 86, col 11 in the source.
-                        _orig_trans_52167270 = trans
-                        _wasBuffering_52167270 = self._CHEETAH__isBuffering
+                        ## START CAPTURE REGION: _98330222 operation at line 86, col 11 in the source.
+                        _orig_trans_98330222 = trans
+                        _wasBuffering_98330222 = self._CHEETAH__isBuffering
                         self._CHEETAH__isBuffering = True
-                        trans = _captureCollector_52167270 = DummyTransaction()
-                        write = _captureCollector_52167270.response().write
+                        trans = _captureCollector_98330222 = DummyTransaction()
+                        write = _captureCollector_98330222.response().write
                         write(u'''/* ''')
                         _v = VFFSL(SL,"operatorComponentName",True) # u'${operatorComponentName}' on line 87, col 4
                         if _v is not None: write(_filter(_v, rawExpr=u'${operatorComponentName}')) # from line 87, col 4.
@@ -253,13 +253,13 @@ class OperatorContainer(_OperatorContainer):
                             if _v is not None: write(_filter(_v, rawExpr=u'${ipOperator.id}')) # from line 89, col 5.
                             write(u'''_exponentIndex''')
                         write(u''']''')
-                        trans = _orig_trans_52167270
+                        trans = _orig_trans_98330222
                         write = trans.response().write
-                        self._CHEETAH__isBuffering = _wasBuffering_52167270 
-                        operation = _captureCollector_52167270.response().getvalue()
-                        del _orig_trans_52167270
-                        del _captureCollector_52167270
-                        del _wasBuffering_52167270
+                        self._CHEETAH__isBuffering = _wasBuffering_98330222 
+                        operation = _captureCollector_98330222.response().getvalue()
+                        del _orig_trans_98330222
+                        del _captureCollector_98330222
+                        del _wasBuffering_98330222
                         # 
                         operationsDict.setdefault(targetVectorComponent, [])
                         operationsDict[targetVectorComponent].append(operation)
diff --git a/xpdeint/Operators/SICDeltaAOperator.py b/xpdeint/Operators/SICDeltaAOperator.py
index 4fa63d0..5371f32 100644
--- a/xpdeint/Operators/SICDeltaAOperator.py
+++ b/xpdeint/Operators/SICDeltaAOperator.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.642441
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Operators/SICDeltaAOperator.tmpl'
+__CHEETAH_genTime__ = 1412053666.516034
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Operators/SICDeltaAOperator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Jul 23 09:42:26 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/ParserException.py b/xpdeint/ParserException.py
index 90bcff8..b1f5ba8 100644
--- a/xpdeint/ParserException.py
+++ b/xpdeint/ParserException.py
@@ -34,7 +34,7 @@ def indentMessageWithPrefix(prefix, msg):
     return '\n'.join(result)
 
 def error_missing_python_library(library_name, xmlElement = None):
-  raise ParserException(xmlElement, "This script requires the python package '%s' which is not installed.  Please install it to run this script.")
+  raise ParserException(xmlElement, "This script requires the python package '%s' which is not installed.  Please install it to run this script." % library_name)
 
 class ParserException(Exception):
     def __init__(self, element, msg):
diff --git a/xpdeint/Preferences.py b/xpdeint/Preferences.py
index f98e128..a4a5d4b 100755
--- a/xpdeint/Preferences.py
+++ b/xpdeint/Preferences.py
@@ -2,7 +2,7 @@
 # encoding: utf-8
 import os
 
-versionString = '2.2.0 "Out of cheese error"'
+versionString = '2.2.1 "XMDS2 is a game of two halves"'
 
 if 'XMDS_USER_DATA' in os.environ:
     xpdeintUserDataPath = os.environ['XMDS_USER_DATA']
diff --git a/xpdeint/ScriptElement.py b/xpdeint/ScriptElement.py
index 0cab112..aa7430b 100644
--- a/xpdeint/ScriptElement.py
+++ b/xpdeint/ScriptElement.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.728853
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/ScriptElement.tmpl'
+__CHEETAH_genTime__ = 1412053667.368723
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/ScriptElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -209,12 +209,12 @@ class ScriptElement(_ScriptElement):
             VFFSL(SL,"templateVariables",True)['vector'] = VFFSL(SL,"vector",True)
             _v = VFFSL(SL,"insertCodeForFeatures",False)('loopOverVectorsWithInnerContentTemplateBegin', VFFSL(SL,"loopFeatureOrdering",True), VFFSL(SL,"dict",True)) # u"${insertCodeForFeatures('loopOverVectorsWithInnerContentTemplateBegin', $loopFeatureOrdering, $dict)}" on line 155, col 1
             if _v is not None: write(_filter(_v, rawExpr=u"${insertCodeForFeatures('loopOverVectorsWithInnerContentTemplateBegin', $loopFeatureOrdering, $dict)}")) # from line 155, col 1.
-            ## START CAPTURE REGION: _24352535 loopString at line 156, col 5 in the source.
-            _orig_trans_24352535 = trans
-            _wasBuffering_24352535 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _87910873 loopString at line 156, col 5 in the source.
+            _orig_trans_87910873 = trans
+            _wasBuffering_87910873 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_24352535 = DummyTransaction()
-            write = _captureCollector_24352535.response().write
+            trans = _captureCollector_87910873 = DummyTransaction()
+            write = _captureCollector_87910873.response().write
             if basis is None: # generated from line 157, col 7
                 vectorSize = vector.allocSize
             else: # generated from line 159, col 7
@@ -230,13 +230,13 @@ class ScriptElement(_ScriptElement):
             if _v is not None: write(_filter(_v, autoIndent=True, rawExpr=u'${innerLoopTemplate, autoIndent=True}')) # from line 163, col 3.
             write(u'''}
 ''')
-            trans = _orig_trans_24352535
+            trans = _orig_trans_87910873
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_24352535 
-            loopString = _captureCollector_24352535.response().getvalue()
-            del _orig_trans_24352535
-            del _captureCollector_24352535
-            del _wasBuffering_24352535
+            self._CHEETAH__isBuffering = _wasBuffering_87910873 
+            loopString = _captureCollector_87910873.response().getvalue()
+            del _orig_trans_87910873
+            del _captureCollector_87910873
+            del _wasBuffering_87910873
             _v = VFFSL(SL,"loopString",True) # u"${loopString, extraIndent=dict['extraIndent']}" on line 166, col 1
             if _v is not None: write(_filter(_v, extraIndent=dict['extraIndent'], rawExpr=u"${loopString, extraIndent=dict['extraIndent']}")) # from line 166, col 1.
             write(u'''
diff --git a/xpdeint/Segments/BreakpointSegment.py b/xpdeint/Segments/BreakpointSegment.py
index b5de32e..826d527 100644
--- a/xpdeint/Segments/BreakpointSegment.py
+++ b/xpdeint/Segments/BreakpointSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.376311
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/BreakpointSegment.tmpl'
+__CHEETAH_genTime__ = 1412053666.558031
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/BreakpointSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug  1 11:52:34 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/FilterSegment.py b/xpdeint/Segments/FilterSegment.py
index c44e19f..8f8c090 100644
--- a/xpdeint/Segments/FilterSegment.py
+++ b/xpdeint/Segments/FilterSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652443.816153
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:03 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/FilterSegment.tmpl'
+__CHEETAH_genTime__ = 1412053666.586145
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/FilterSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/AdaptiveStep.py b/xpdeint/Segments/Integrators/AdaptiveStep.py
index 88c5ce9..8320f7c 100644
--- a/xpdeint/Segments/Integrators/AdaptiveStep.py
+++ b/xpdeint/Segments/Integrators/AdaptiveStep.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.303739
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/AdaptiveStep.tmpl'
+__CHEETAH_genTime__ = 1412053667.366693
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/AdaptiveStep.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/FixedStep.py b/xpdeint/Segments/Integrators/FixedStep.py
index 6efa582..8bfeb17 100644
--- a/xpdeint/Segments/Integrators/FixedStep.py
+++ b/xpdeint/Segments/Integrators/FixedStep.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.170843
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/FixedStep.tmpl'
+__CHEETAH_genTime__ = 1412053666.707166
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/FixedStep.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -409,12 +409,12 @@ for (long _istep = 0; _istep < ''')
         # 
         innerLoopTemplate = VFFSL(SL,"templateObjectFromStringWithTemplateVariables",False)(VFFSL(SL,"templateString",True), {'componentIndex': '_icomp'})
         # 
-        ## START CAPTURE REGION: _99437940 loopContents at line 157, col 3 in the source.
-        _orig_trans_99437940 = trans
-        _wasBuffering_99437940 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _49998742 loopContents at line 157, col 3 in the source.
+        _orig_trans_49998742 = trans
+        _wasBuffering_49998742 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_99437940 = DummyTransaction()
-        write = _captureCollector_99437940.response().write
+        trans = _captureCollector_49998742 = DummyTransaction()
+        write = _captureCollector_49998742.response().write
         for reducedVector, vector in VFN(VFFSL(SL,"vectorMap",True),"iteritems",False)(): # generated from line 158, col 5
             if vector.field.hasDimensionName(VFFSL(SL,"propagationDimension",True)): # generated from line 159, col 7
                 propagationDimensionObject = vector.field.dimensionWithName(VFFSL(SL,"propagationDimension",True))
@@ -431,13 +431,13 @@ for (long _istep = 0; _istep < ''')
             write(u'''}
 ''')
             del innerLoopTemplate.skipSize
-        trans = _orig_trans_99437940
+        trans = _orig_trans_49998742
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_99437940 
-        loopContents = _captureCollector_99437940.response().getvalue()
-        del _orig_trans_99437940
-        del _captureCollector_99437940
-        del _wasBuffering_99437940
+        self._CHEETAH__isBuffering = _wasBuffering_49998742 
+        loopContents = _captureCollector_49998742.response().getvalue()
+        del _orig_trans_49998742
+        del _captureCollector_49998742
+        del _wasBuffering_49998742
         # 
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(VFFSL(SL,"parent.reducedField",True), VFFSL(SL,"homeBasis",True), VFFSL(SL,"setOfVectorsToLoopOver",True),
                                                  VFFSL(SL,"loopContents",True), indexOverrides = VFFSL(SL,"indexOverrides",True),
diff --git a/xpdeint/Segments/Integrators/FixedStepWithCross.py b/xpdeint/Segments/Integrators/FixedStepWithCross.py
index e5500e6..18156f7 100644
--- a/xpdeint/Segments/Integrators/FixedStepWithCross.py
+++ b/xpdeint/Segments/Integrators/FixedStepWithCross.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.337731
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/FixedStepWithCross.tmpl'
+__CHEETAH_genTime__ = 1412053666.66303
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/FixedStepWithCross.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/Integrator.py b/xpdeint/Segments/Integrators/Integrator.py
index 8f890ff..c3f4ce0 100644
--- a/xpdeint/Segments/Integrators/Integrator.py
+++ b/xpdeint/Segments/Integrators/Integrator.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.29389
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/Integrator.tmpl'
+__CHEETAH_genTime__ = 1412053666.787339
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/Integrator.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/MMStepper.py b/xpdeint/Segments/Integrators/MMStepper.py
index f00410e..e5c01ff 100644
--- a/xpdeint/Segments/Integrators/MMStepper.py
+++ b/xpdeint/Segments/Integrators/MMStepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.272211
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/MMStepper.tmpl'
+__CHEETAH_genTime__ = 1412053666.696011
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/MMStepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/RK45Stepper.py b/xpdeint/Segments/Integrators/RK45Stepper.py
index 7ae0de5..f9d1eeb 100644
--- a/xpdeint/Segments/Integrators/RK45Stepper.py
+++ b/xpdeint/Segments/Integrators/RK45Stepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.542684
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK45Stepper.tmpl'
+__CHEETAH_genTime__ = 1412053666.99226
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/RK45Stepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Oct 21 12:39:43 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/RK4Stepper.py b/xpdeint/Segments/Integrators/RK4Stepper.py
index 7c9308a..855fbac 100644
--- a/xpdeint/Segments/Integrators/RK4Stepper.py
+++ b/xpdeint/Segments/Integrators/RK4Stepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.742042
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK4Stepper.tmpl'
+__CHEETAH_genTime__ = 1412053666.743802
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:46 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/RK4Stepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/RK89Stepper.py b/xpdeint/Segments/Integrators/RK89Stepper.py
index 6320e4f..3f42d03 100644
--- a/xpdeint/Segments/Integrators/RK89Stepper.py
+++ b/xpdeint/Segments/Integrators/RK89Stepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.73471
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK89Stepper.tmpl'
+__CHEETAH_genTime__ = 1412053667.512826
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/RK89Stepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/RK9Stepper.py b/xpdeint/Segments/Integrators/RK9Stepper.py
index 6bb5731..24da2d4 100644
--- a/xpdeint/Segments/Integrators/RK9Stepper.py
+++ b/xpdeint/Segments/Integrators/RK9Stepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.486205
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RK9Stepper.tmpl'
+__CHEETAH_genTime__ = 1412053667.192062
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/RK9Stepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/RichardsonFixedStep.py b/xpdeint/Segments/Integrators/RichardsonFixedStep.py
index 387b1d2..2383300 100644
--- a/xpdeint/Segments/Integrators/RichardsonFixedStep.py
+++ b/xpdeint/Segments/Integrators/RichardsonFixedStep.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.154266
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl'
+__CHEETAH_genTime__ = 1412053667.054259
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/RichardsonFixedStep.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:19 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/SICStepper.py b/xpdeint/Segments/Integrators/SICStepper.py
index 6242114..21c1a2b 100644
--- a/xpdeint/Segments/Integrators/SICStepper.py
+++ b/xpdeint/Segments/Integrators/SICStepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.442779
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/SICStepper.tmpl'
+__CHEETAH_genTime__ = 1412053667.047574
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/SICStepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/Integrators/SIStepper.py b/xpdeint/Segments/Integrators/SIStepper.py
index 4ba694d..bf1f2a1 100644
--- a/xpdeint/Segments/Integrators/SIStepper.py
+++ b/xpdeint/Segments/Integrators/SIStepper.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.387261
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/Integrators/SIStepper.tmpl'
+__CHEETAH_genTime__ = 1412053667.003581
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/Integrators/SIStepper.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Oct 11 15:53:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/SequenceSegment.py b/xpdeint/Segments/SequenceSegment.py
index ca18809..8c46fff 100644
--- a/xpdeint/Segments/SequenceSegment.py
+++ b/xpdeint/Segments/SequenceSegment.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.325117
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/SequenceSegment.tmpl'
+__CHEETAH_genTime__ = 1412053667.214535
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/SequenceSegment.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Segments/TopLevelSequenceElement.py b/xpdeint/Segments/TopLevelSequenceElement.py
index 34fa7f0..b23a57b 100644
--- a/xpdeint/Segments/TopLevelSequenceElement.py
+++ b/xpdeint/Segments/TopLevelSequenceElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.887542
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Segments/TopLevelSequenceElement.tmpl'
+__CHEETAH_genTime__ = 1412053667.284923
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Segments/TopLevelSequenceElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Simulation.py b/xpdeint/Simulation.py
index 5a28e01..d348ba3 100644
--- a/xpdeint/Simulation.py
+++ b/xpdeint/Simulation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.689452
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Simulation.tmpl'
+__CHEETAH_genTime__ = 1412053667.229763
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Simulation.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:18 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py
index 055d6d4..0978454 100644
--- a/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py
+++ b/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.980388
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl'
+__CHEETAH_genTime__ = 1412053667.533185
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/AdaptiveMPIMultiPathDriver.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Nov 18 20:57:44 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationDrivers/DistributedMPIDriver.py b/xpdeint/SimulationDrivers/DistributedMPIDriver.py
index 269f38f..1a6e93b 100644
--- a/xpdeint/SimulationDrivers/DistributedMPIDriver.py
+++ b/xpdeint/SimulationDrivers/DistributedMPIDriver.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.404937
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl'
+__CHEETAH_genTime__ = 1412053667.519404
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/DistributedMPIDriver.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 14 17:42:09 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -630,12 +630,12 @@ for (long _dataForRank = 0; _dataForRank < _size; _dataForRank++) {
             return
         # 
         writeLoopContents = dict['writeLoopContents']
-        ## START CAPTURE REGION: _34044003 newWriteLoopContents at line 242, col 3 in the source.
-        _orig_trans_34044003 = trans
-        _wasBuffering_34044003 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _28871193 newWriteLoopContents at line 242, col 3 in the source.
+        _orig_trans_28871193 = trans
+        _wasBuffering_28871193 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_34044003 = DummyTransaction()
-        write = _captureCollector_34044003.response().write
+        trans = _captureCollector_28871193 = DummyTransaction()
+        write = _captureCollector_28871193.response().write
         for fileDimIndex, memDimIndex, dimRep in dimRepOrdering: # generated from line 243, col 5
             write(u'''hsize_t file_start_''')
             _v = VFFSL(SL,"dimRep.name",True) # u'${dimRep.name}' on line 244, col 20
@@ -691,13 +691,13 @@ mem_count[''')
             if _v is not None: write(_filter(_v, rawExpr=u'${dimRep.name}')) # from line 256, col 33.
             write(u''';
 ''')
-        trans = _orig_trans_34044003
+        trans = _orig_trans_28871193
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_34044003 
-        newWriteLoopContents = _captureCollector_34044003.response().getvalue()
-        del _orig_trans_34044003
-        del _captureCollector_34044003
-        del _wasBuffering_34044003
+        self._CHEETAH__isBuffering = _wasBuffering_28871193 
+        newWriteLoopContents = _captureCollector_28871193.response().getvalue()
+        del _orig_trans_28871193
+        del _captureCollector_28871193
+        del _wasBuffering_28871193
         # 
         dict['writeLoopContents'] = newWriteLoopContents
         # 
diff --git a/xpdeint/SimulationDrivers/MPI.py b/xpdeint/SimulationDrivers/MPI.py
index e79ae1f..5933737 100644
--- a/xpdeint/SimulationDrivers/MPI.py
+++ b/xpdeint/SimulationDrivers/MPI.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.776772
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MPI.tmpl'
+__CHEETAH_genTime__ = 1412053667.481472
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/MPI.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Mar 29 16:44:30 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationDrivers/MPIMultiPathDriver.py b/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
index 0d1d227..4f64606 100644
--- a/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
+++ b/xpdeint/SimulationDrivers/MPIMultiPathDriver.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652444.98107
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:04 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl'
+__CHEETAH_genTime__ = 1412053667.38866
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/MPIMultiPathDriver.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationDrivers/MultiPathDriver.py b/xpdeint/SimulationDrivers/MultiPathDriver.py
index 59210ff..cd0d049 100644
--- a/xpdeint/SimulationDrivers/MultiPathDriver.py
+++ b/xpdeint/SimulationDrivers/MultiPathDriver.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.35523
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/MultiPathDriver.tmpl'
+__CHEETAH_genTime__ = 1412053667.473623
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/MultiPathDriver.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -256,12 +256,12 @@ class MultiPathDriver(_MultiPathDriver):
         #  to make sure they don't get finalised early. As that could lead to
         #  NULL pointer dereferences, and that is bad.
         # 
-        ## START CAPTURE REGION: _24375999 finalisationCode at line 82, col 3 in the source.
-        _orig_trans_24375999 = trans
-        _wasBuffering_24375999 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _26623289 finalisationCode at line 82, col 3 in the source.
+        _orig_trans_26623289 = trans
+        _wasBuffering_26623289 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_24375999 = DummyTransaction()
-        write = _captureCollector_24375999.response().write
+        trans = _captureCollector_26623289 = DummyTransaction()
+        write = _captureCollector_26623289.response().write
         for o in VFFSL(SL,"objectsNeedingInitialisation",True): # generated from line 83, col 5
             _v = VFFSL(SL,"o.finalise",True) # u'${o.finalise}' on line 84, col 1
             if _v is not None: write(_filter(_v, rawExpr=u'${o.finalise}')) # from line 84, col 1.
@@ -269,13 +269,13 @@ class MultiPathDriver(_MultiPathDriver):
 ''')
         _v = VFFSL(SL,"topLevelSequence.free",True) # u'${topLevelSequence.free}' on line 87, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${topLevelSequence.free}')) # from line 87, col 1.
-        trans = _orig_trans_24375999
+        trans = _orig_trans_26623289
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_24375999 
-        finalisationCode = _captureCollector_24375999.response().getvalue()
-        del _orig_trans_24375999
-        del _captureCollector_24375999
-        del _wasBuffering_24375999
+        self._CHEETAH__isBuffering = _wasBuffering_26623289 
+        finalisationCode = _captureCollector_26623289.response().getvalue()
+        del _orig_trans_26623289
+        del _captureCollector_26623289
+        del _wasBuffering_26623289
         write(u'''
 ''')
         _v = VFFSL(SL,"segment0_loop",True) # u'${segment0_loop}' on line 90, col 1
diff --git a/xpdeint/SimulationDrivers/SimulationDriver.py b/xpdeint/SimulationDrivers/SimulationDriver.py
index 1ba4d7e..d9a134a 100644
--- a/xpdeint/SimulationDrivers/SimulationDriver.py
+++ b/xpdeint/SimulationDrivers/SimulationDriver.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.065407
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationDrivers/SimulationDriver.tmpl'
+__CHEETAH_genTime__ = 1412053667.551773
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationDrivers/SimulationDriver.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Nov 18 19:21:08 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/SimulationElement.py b/xpdeint/SimulationElement.py
index 1528543..11ad049 100644
--- a/xpdeint/SimulationElement.py
+++ b/xpdeint/SimulationElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.171348
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/SimulationElement.tmpl'
+__CHEETAH_genTime__ = 1412053667.59242
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/SimulationElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri Feb 24 16:41:39 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/DSFMTGenerator.py b/xpdeint/Stochastic/Generators/DSFMTGenerator.py
index cde4293..6d353fd 100644
--- a/xpdeint/Stochastic/Generators/DSFMTGenerator.py
+++ b/xpdeint/Stochastic/Generators/DSFMTGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.791002
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/DSFMTGenerator.tmpl'
+__CHEETAH_genTime__ = 1412053667.652885
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/Generators/DSFMTGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/Generator.py b/xpdeint/Stochastic/Generators/Generator.py
index 5b99919..80c84ef 100644
--- a/xpdeint/Stochastic/Generators/Generator.py
+++ b/xpdeint/Stochastic/Generators/Generator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.624598
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/Generator.tmpl'
+__CHEETAH_genTime__ = 1412053667.66503
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/Generators/Generator.tmpl'
 __CHEETAH_srcLastModified__ = 'Mon Oct 14 10:16:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/MKLGenerator.py b/xpdeint/Stochastic/Generators/MKLGenerator.py
index f98cdf7..2adb52f 100644
--- a/xpdeint/Stochastic/Generators/MKLGenerator.py
+++ b/xpdeint/Stochastic/Generators/MKLGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.431739
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/MKLGenerator.tmpl'
+__CHEETAH_genTime__ = 1412053667.623202
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/Generators/MKLGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/POSIXGenerator.py b/xpdeint/Stochastic/Generators/POSIXGenerator.py
index 291a22a..0c71bfd 100644
--- a/xpdeint/Stochastic/Generators/POSIXGenerator.py
+++ b/xpdeint/Stochastic/Generators/POSIXGenerator.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.501446
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/POSIXGenerator.tmpl'
+__CHEETAH_genTime__ = 1412053667.639514
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/Generators/POSIXGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Aug 29 13:13:17 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/Generators/SolirteGenerator.py b/xpdeint/Stochastic/Generators/SolirteGenerator.py
index c4cce7e..0806c11 100644
--- a/xpdeint/Stochastic/Generators/SolirteGenerator.py
+++ b/xpdeint/Stochastic/Generators/SolirteGenerator.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.5027
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/Generators/SolirteGenerator.tmpl'
+__CHEETAH_genTime__ = 1412053667.622068
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/Generators/SolirteGenerator.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Aug 28 15:52:21 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
index 7fab9cf..ae14ae8 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.647655
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.649966
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/GaussianBoxMuellerRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
index 39301cf..727dd2e 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.565054
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.628583
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/GaussianMKLRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
index a4554ca..bb36560 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.749136
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.667655
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/GaussianRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -162,12 +162,12 @@ class GaussianRandomVariable(ScriptElement):
         # 
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 67, col 3
-            ## START CAPTURE REGION: _73475261 loopString at line 68, col 5 in the source.
-            _orig_trans_73475261 = trans
-            _wasBuffering_73475261 = self._CHEETAH__isBuffering
+            ## START CAPTURE REGION: _76581432 loopString at line 68, col 5 in the source.
+            _orig_trans_76581432 = trans
+            _wasBuffering_76581432 = self._CHEETAH__isBuffering
             self._CHEETAH__isBuffering = True
-            trans = _captureCollector_73475261 = DummyTransaction()
-            write = _captureCollector_73475261.response().write
+            trans = _captureCollector_76581432 = DummyTransaction()
+            write = _captureCollector_76581432.response().write
             fixupString = ' * '.join(''.join([str(VFFSL(SL,"dimRep.stepSizeArrayName",True)),u'_invsqrt[',str(VFFSL(SL,"dimRep.index",True)),u' + ',str(VFFSL(SL,"dimRep.localOffset",True)),u']']) for dimRep in nonUniformDimReps)
             for component in noiseVector.components: # generated from line 70, col 7
                 _v = VFFSL(SL,"component",True) # u'${component}' on line 71, col 1
@@ -177,13 +177,13 @@ class GaussianRandomVariable(ScriptElement):
                 if _v is not None: write(_filter(_v, rawExpr=u'${fixupString}')) # from line 71, col 17.
                 write(u''';
 ''')
-            trans = _orig_trans_73475261
+            trans = _orig_trans_76581432
             write = trans.response().write
-            self._CHEETAH__isBuffering = _wasBuffering_73475261 
-            loopString = _captureCollector_73475261.response().getvalue()
-            del _orig_trans_73475261
-            del _captureCollector_73475261
-            del _wasBuffering_73475261
+            self._CHEETAH__isBuffering = _wasBuffering_76581432 
+            loopString = _captureCollector_76581432.response().getvalue()
+            del _orig_trans_76581432
+            del _captureCollector_76581432
+            del _wasBuffering_76581432
             _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 74, col 1
             if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 74, col 1.
         # 
diff --git a/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py b/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
index 921f720..2c5cf5a 100644
--- a/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.646922
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.674705
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/GaussianSolirteRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py b/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
index 43c654f..4576ddd 100644
--- a/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.py
@@ -34,9 +34,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.228393
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.716011
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/PoissonianRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sun Feb 12 20:15:16 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -104,12 +104,12 @@ const real _old_volume = (''')
         write(u''' * _old_step);
 
 ''')
-        ## START CAPTURE REGION: _85991179 loopString at line 39, col 3 in the source.
-        _orig_trans_85991179 = trans
-        _wasBuffering_85991179 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _61651395 loopString at line 39, col 3 in the source.
+        _orig_trans_61651395 = trans
+        _wasBuffering_61651395 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_85991179 = DummyTransaction()
-        write = _captureCollector_85991179.response().write
+        trans = _captureCollector_61651395 = DummyTransaction()
+        write = _captureCollector_61651395.response().write
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 41, col 5
             volumeFixup = ' * '.join('%s * (%s)' % (dimRep.stepSize, dimRep.volumePrefactor) for dimRep in nonUniformDimReps)
@@ -138,13 +138,13 @@ const real _old_volume = (''')
             if _v is not None: write(_filter(_v, rawExpr=u'${volumeFixup}')) # from line 50, col 172.
             write(u'''));
 ''')
-        trans = _orig_trans_85991179
+        trans = _orig_trans_61651395
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_85991179 
-        loopString = _captureCollector_85991179.response().getvalue()
-        del _orig_trans_85991179
-        del _captureCollector_85991179
-        del _wasBuffering_85991179
+        self._CHEETAH__isBuffering = _wasBuffering_61651395 
+        loopString = _captureCollector_61651395.response().getvalue()
+        del _orig_trans_61651395
+        del _captureCollector_61651395
+        del _wasBuffering_61651395
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 53, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 53, col 1.
         write(u'''
@@ -193,12 +193,12 @@ const real _old_volume = (''')
         write(u''';
 const real _var = 1.0 / _dVdt;
 ''')
-        ## START CAPTURE REGION: _80253774 loopString at line 74, col 3 in the source.
-        _orig_trans_80253774 = trans
-        _wasBuffering_80253774 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _94572973 loopString at line 74, col 3 in the source.
+        _orig_trans_94572973 = trans
+        _wasBuffering_94572973 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_80253774 = DummyTransaction()
-        write = _captureCollector_80253774.response().write
+        trans = _captureCollector_94572973 = DummyTransaction()
+        write = _captureCollector_94572973.response().write
         nonUniformDimReps = noiseVector.nonUniformDimReps
         if nonUniformDimReps: # generated from line 76, col 5
             volumeFixup = ' * '.join('%s * (%s)' % (dimRep.stepSize, dimRep.volumePrefactor) for dimRep in nonUniformDimReps)
@@ -224,13 +224,13 @@ const real _var = 1.0 / _dVdt;
             if _v is not None: write(_filter(_v, rawExpr=u'${volumeFixup}')) # from line 85, col 84.
             write(u''');
 ''')
-        trans = _orig_trans_80253774
+        trans = _orig_trans_94572973
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_80253774 
-        loopString = _captureCollector_80253774.response().getvalue()
-        del _orig_trans_80253774
-        del _captureCollector_80253774
-        del _wasBuffering_80253774
+        self._CHEETAH__isBuffering = _wasBuffering_94572973 
+        loopString = _captureCollector_94572973.response().getvalue()
+        del _orig_trans_94572973
+        del _captureCollector_94572973
+        del _wasBuffering_94572973
         _v = VFFSL(SL,"loopOverFieldInBasisWithVectorsAndInnerContent",False)(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString) # u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}' on line 88, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverFieldInBasisWithVectorsAndInnerContent(noiseVector.field, noiseVector.initialBasis, [noiseVector], loopString)}')) # from line 88, col 1.
         # 
diff --git a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py b/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
index f32f6ec..f3ca08a 100644
--- a/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
+++ b/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.834884
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.tmpl'
+__CHEETAH_genTime__ = 1412053667.680749
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Stochastic/RandomVariables/UniformRandomVariable.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/ComputedVector.py b/xpdeint/Vectors/ComputedVector.py
index b7f6baf..496f309 100644
--- a/xpdeint/Vectors/ComputedVector.py
+++ b/xpdeint/Vectors/ComputedVector.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.950886
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/ComputedVector.tmpl'
+__CHEETAH_genTime__ = 1412053667.738457
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/ComputedVector.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/NoiseVector.py b/xpdeint/Vectors/NoiseVector.py
index 3252752..d390312 100644
--- a/xpdeint/Vectors/NoiseVector.py
+++ b/xpdeint/Vectors/NoiseVector.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.007444
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/NoiseVector.tmpl'
+__CHEETAH_genTime__ = 1412053667.752721
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/NoiseVector.tmpl'
 __CHEETAH_srcLastModified__ = 'Sat Feb  4 18:39:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorElement.py b/xpdeint/Vectors/VectorElement.py
index ab99e75..eacee52 100644
--- a/xpdeint/Vectors/VectorElement.py
+++ b/xpdeint/Vectors/VectorElement.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.482126
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorElement.tmpl'
+__CHEETAH_genTime__ = 1412053667.772626
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/VectorElement.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:30:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
@@ -495,12 +495,12 @@ _active_''')
             modFunction = 'abs'
         else: # generated from line 134, col 3
             modFunction = 'mod2'
-        ## START CAPTURE REGION: _48891470 loopContents at line 137, col 3 in the source.
-        _orig_trans_48891470 = trans
-        _wasBuffering_48891470 = self._CHEETAH__isBuffering
+        ## START CAPTURE REGION: _63484580 loopContents at line 137, col 3 in the source.
+        _orig_trans_63484580 = trans
+        _wasBuffering_63484580 = self._CHEETAH__isBuffering
         self._CHEETAH__isBuffering = True
-        trans = _captureCollector_48891470 = DummyTransaction()
-        write = _captureCollector_48891470.response().write
+        trans = _captureCollector_63484580 = DummyTransaction()
+        write = _captureCollector_63484580.response().write
         write(u'''real _current_size = ''')
         _v = VFFSL(SL,"modFunction",True) # u'${modFunction}' on line 138, col 22
         if _v is not None: write(_filter(_v, rawExpr=u'${modFunction}')) # from line 138, col 22.
@@ -514,13 +514,13 @@ if (_current_size > ''')
         if _v is not None: write(_filter(_v, rawExpr=u'${variableName}')) # from line 140, col 3.
         write(u''' = _current_size;
 ''')
-        trans = _orig_trans_48891470
+        trans = _orig_trans_63484580
         write = trans.response().write
-        self._CHEETAH__isBuffering = _wasBuffering_48891470 
-        loopContents = _captureCollector_48891470.response().getvalue()
-        del _orig_trans_48891470
-        del _captureCollector_48891470
-        del _wasBuffering_48891470
+        self._CHEETAH__isBuffering = _wasBuffering_63484580 
+        loopContents = _captureCollector_63484580.response().getvalue()
+        del _orig_trans_63484580
+        del _captureCollector_63484580
+        del _wasBuffering_63484580
         _v = VFFSL(SL,"loopOverVectorsWithInnerContentTemplate",False)([self], loopContents, basis = basis) # u'${loopOverVectorsWithInnerContentTemplate([self], loopContents, basis = basis)}' on line 142, col 1
         if _v is not None: write(_filter(_v, rawExpr=u'${loopOverVectorsWithInnerContentTemplate([self], loopContents, basis = basis)}')) # from line 142, col 1.
         if VFFSL(SL,"type",True) == 'complex': # generated from line 143, col 3
diff --git a/xpdeint/Vectors/VectorInitialisation.py b/xpdeint/Vectors/VectorInitialisation.py
index a5cd40f..71352b2 100644
--- a/xpdeint/Vectors/VectorInitialisation.py
+++ b/xpdeint/Vectors/VectorInitialisation.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652445.967572
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:05 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisation.tmpl'
+__CHEETAH_genTime__ = 1412053667.793108
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/VectorInitialisation.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:30:07 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromCDATA.py b/xpdeint/Vectors/VectorInitialisationFromCDATA.py
index 0737e1d..23472b3 100644
--- a/xpdeint/Vectors/VectorInitialisationFromCDATA.py
+++ b/xpdeint/Vectors/VectorInitialisationFromCDATA.py
@@ -33,9 +33,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.209509
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisationFromCDATA.tmpl'
+__CHEETAH_genTime__ = 1412053667.782253
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/VectorInitialisationFromCDATA.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:17:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromHDF5.py b/xpdeint/Vectors/VectorInitialisationFromHDF5.py
index ebedf4b..4ac0f3a 100644
--- a/xpdeint/Vectors/VectorInitialisationFromHDF5.py
+++ b/xpdeint/Vectors/VectorInitialisationFromHDF5.py
@@ -35,9 +35,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.615517
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/Vectors/VectorInitialisationFromHDF5.tmpl'
+__CHEETAH_genTime__ = 1412053667.893348
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/Vectors/VectorInitialisationFromHDF5.tmpl'
 __CHEETAH_srcLastModified__ = 'Fri May 25 16:17:13 2012'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl b/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
index 2253d90..49790b6 100644
--- a/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
+++ b/xpdeint/Vectors/VectorInitialisationFromXSIL.tmpl
@@ -34,10 +34,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
   @#
   @super
   @#
-inline uint32_t XMDSSwapInt32(uint32_t __arg);
-inline uint64_t XMDSSwapInt64(uint64_t __arg);
-inline float XMDSSwapFloat(float __in);
-inline double XMDSSwapDouble(double __in);
+static inline uint32_t XMDSSwapInt32(uint32_t __arg);
+static inline uint64_t XMDSSwapInt64(uint64_t __arg);
+static inline float XMDSSwapFloat(float __in);
+static inline double XMDSSwapDouble(double __in);
   @#
 @end def
 
@@ -58,62 +58,53 @@ bool xmlDebugFlag =  false;
   @#
   @super
   @#
-// The following code is imported from CFByteOrder.h, and is used subject to the APSL v2
-// The license is at: http://www.opensource.apple.com/apsl
 
-// These functions have been renamed to avoid conflicts with the actual functions if an XMDS simulation
-// is ever linked against the CoreFoundation framework
-
-// 32-bit byte swapper
-inline uint32_t XMDSSwapInt32(uint32_t __arg)
+static inline uint32_t XMDSSwapInt32(uint32_t __arg)
 {
-#if defined(__i386__) && defined(__GNUC__)
-  __asm__("bswap %0" : "+r" (__arg));
-  return __arg;
-#elif defined(__ppc__) && defined(__GNUC__)
-  uint32_t __result;
-  __asm__("lwbrx %0, 0, %1" : "=r" (__result) : "r" (&__arg), "m" (__arg));
-  return __result;
-#else
-  uint32_t __result;
-  __result = ((__arg & 0xFF) << 24) | ((__arg & 0xFF00) << 8) | ((__arg >> 8) & 0xFF00) | ((__arg >> 24) & 0xFF);
-  return __result;
-#endif
+  union {
+    uint8_t ui8[4];
+    uint32_t ui32;
+  } a, b;
+  a.ui32 = __arg;
+  b.ui8[0] = a.ui8[3];
+  b.ui8[1] = a.ui8[2];
+  b.ui8[2] = a.ui8[1];
+  b.ui8[3] = a.ui8[0];
+  return b.ui32;
 }
 
-// 64-bit byte-swapper
-inline uint64_t XMDSSwapInt64(uint64_t __arg)
+static inline uint64_t XMDSSwapInt64(uint64_t __arg)
 {
-  union XMDSSwap {
-    uint64_t __sv;
-    uint32_t __ul[2];
-    } __tmp, __result;
-  __tmp.__sv = __arg;
-  __result.__ul[0] = XMDSSwapInt32(__tmp.__ul[1]);
-  __result.__ul[1] = XMDSSwapInt32(__tmp.__ul[0]);
-  return __result.__sv;
+  union {
+    uint32_t ui32[2];
+    uint64_t ui64;
+  } a, b;
+  a.ui64 = __arg;
+  b.ui32[0] = XMDSSwapInt32(a.ui32[1]);
+  b.ui32[1] = XMDSSwapInt32(a.ui32[0]);
+  return b.ui64;
 }
 
-inline float XMDSSwapFloat(float __in)
+static inline float XMDSSwapFloat(float __arg)
 {
-  union XMDSSwap {
-    float __f;
-    uint32_t __ul;
-  } __tmp;
-  __tmp.__f = __in;
-  __tmp.__ul = XMDSSwapInt32(__tmp.__ul);
-  return __tmp.__f;
+  union {
+    uint32_t ui32;
+    float f;
+  } a;
+  a.f = __arg;
+  a.ui32 = XMDSSwapInt32(a.ui32);
+  return a.f;
 }
 
-inline double XMDSSwapDouble(double __in)
+static inline double XMDSSwapDouble(double __arg)
 {
-  union XMDSSwap {
-    double __d;
-    uint64_t __ull;
-  } __tmp;
-  __tmp.__d = __in;
-  __tmp.__ull = XMDSSwapInt64(__tmp.__ull);
-  return __tmp.__d;
+  union {
+    uint64_t ui64;
+    double d;
+  } a;
+  a.d = __arg;
+  a.ui64 = XMDSSwapInt64(a.ui64);
+  return a.d;
 }
   @#
 @end def
diff --git a/xpdeint/Version.py b/xpdeint/Version.py
index ed35e29..97c66c6 100644
--- a/xpdeint/Version.py
+++ b/xpdeint/Version.py
@@ -1,4 +1,4 @@
 #!/usr/bin/env python
 # encoding: utf-8
 """This is generated by the makefile via the shell program \'version.sh\'"""
-subversionRevisionString ="r2941"
+subversionRevisionString ="r2961"
diff --git a/xpdeint/XMDS2Parser.py b/xpdeint/XMDS2Parser.py
index 9b1e489..93b0fb3 100755
--- a/xpdeint/XMDS2Parser.py
+++ b/xpdeint/XMDS2Parser.py
@@ -5,7 +5,7 @@ XMDS2Parser.py
 
 Created by Graham Dennis on 2007-12-29.
 
-Copyright (c) 2007-2012, Graham Dennis and Joe Hope
+Copyright (c) 2007-2014, Graham Dennis, Joe Hope and Mattias Johnsson
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -744,9 +744,50 @@ Use feature <validation kind="run-time"/> to allow for arbitrary code.""" % loca
             geometryTemplate.dimensions.append(dim)
           else:
             aliasDimensions.append(dim)
-      
+      ## End of "for dimensionElement in dimensionElements" block      
+
+
       # Alias dimensions come after normal dimensions so that we don't end up with a distributed-mpi set up over the first dimension and its alias
       geometryTemplate.dimensions.extend(aliasDimensions)
+
+      ## If there is more than one transverse dimension, and at least one
+      ## of the dimensions has a matrix transform, it should be listed first
+      ## for optimum speed. This is due to the BLAS API. The API can do the
+      ## matrix transform with one function call if the matrix transform
+      ## dimension is first; otherwise it needs N calls where N is the
+      ## number of points in the dimension.
+      ##
+      ## Since users may not be aware of this, warn them if they aren't
+      ## putting the matrix transform dimension first.
+
+      if len(dimensionElements) >= 2:
+
+        firstDimensionTransformIsMMT = False
+        matrixTransformPresent = False
+
+        # Check if any of the dimensions have a matrix transform
+        for dimension in geometryTemplate.transverseDimensions:
+          if isinstance(dimension.transform, Transforms.MMT.MMT):
+            matrixTransformPresent = True
+
+        # Does the *first* transverse dimension have a matrix transform?
+        if isinstance(geometryTemplate.transverseDimensions[0].transform, Transforms.MMT.MMT):
+          firstDimensionTransformIsMMT = True
+
+        if matrixTransformPresent == True and not firstDimensionTransformIsMMT:
+          print
+          parserWarning(transverseDimensionsElement,
+                        "If using both matrix transforms (e.g. bessel, spherical-bessel, bessel-neumann, " 
+                        "hermite-gauss, ...) and non-matrix transforms (none, dft, dct, dst), the "
+                        "first transverse dimension should be one of the matrix transform dimensions "
+                        "for optimum speed.\n"
+                        "Unless you're sure you know what you're doing, you should consider "
+                        "re-ordering your transverse dimensions.")
+          print
+ 
+
+    ## End of "if transverseDimensionsElement" block
+
     
     driver = self.globalNameSpace['features']['Driver']
     if isinstance(driver, DistributedMPIDriverTemplate):
diff --git a/xpdeint/parser2.py b/xpdeint/parser2.py
index b904a4e..d547478 100755
--- a/xpdeint/parser2.py
+++ b/xpdeint/parser2.py
@@ -141,7 +141,7 @@ def main(argv=None):
   from Version import subversionRevisionString
   
   print "xmds2 version %(versionString)s (%(subversionRevisionString)s)" % locals()
-  print "Copyright 2000-2013 Graham Dennis, Joseph Hope, Mattias Johnsson"
+  print "Copyright 2000-2014 Graham Dennis, Joseph Hope, Mattias Johnsson"
   print "                    and the xmds team"
   
   if not os.path.isdir(xpdeintUserDataPath):
diff --git a/xpdeint/support/wscript b/xpdeint/support/wscript
index 07c8494..584c18f 100755
--- a/xpdeint/support/wscript
+++ b/xpdeint/support/wscript
@@ -361,38 +361,13 @@ def configure(conf):
             msg = "Checking for /dev/urandom",
         )
         
-        # Check for zlib, used by hdf5
-        check_cxx(
-            lib='z',
-            function_name="deflate",
-            header_name="zlib.h",
-            uselib_store="zlib",
-            msg = "Checking for zlib"
-        )
-        
-        check_cxx(
-            lib='hdf5',
-            header_name="hdf5.h",
-            function_name="H5check_version",
-            uselib_store="hdf5",
-            uselib="zlib" if "zlib" in conf.env['uselib'] else [],
-            msg = "Checking for HDF5",
-        )
-        
-        if 'hdf5' in conf.env['uselib']:
-            check_cxx(
-                lib='hdf5_hl',
-                defines='HAVE_HDF5_HL',
-                header_name=['hdf5.h', 'hdf5_hl.h'],
-                function_name='H5DSset_scale',
-                uselib_store='hdf5',
-                uselib='hdf5',
-                msg = "Checking for HDF5 High-level library",
-            )
+        # Check for hdf5
+        if conf.find_program('h5cc', var='H5CC', mandatory = False):
+            h5cc_shared_flags = conf.cmd_and_log([conf.env['H5CC'], '-show', '-shlib'])
+            h5cc_static_flags = conf.cmd_and_log([conf.env['H5CC'], '-show', '-noshlib'])
             
-            # We need to reverse the library order because hdf5_hl depends on hdf5
-            if conf.env['STLIB_hdf5']: conf.env['STLIB_hdf5'] = list(reversed(conf.env.get_flat('STLIB_hdf5').split()))
-            if conf.env['SHLIB_hdf5']: conf.env['SHLIB_hdf5'] = list(reversed(conf.env.get_flat('SHLIB_hdf5').split()))
+            conf.parse_flags(h5cc_shared_flags, 'hdf5', force_static = False)
+            conf.parse_flags(h5cc_static_flags, 'hdf5', force_static = True)
             
             check_cxx(
                 header_name=['hdf5.h'],
@@ -597,6 +572,4 @@ def configure(conf):
         del conf.env["DEFINES"]
     else:
         print "MPI not found. No scripts using MPI can be compiled on this system."
-        conf.setenv('default', env)
-        del conf.all_envs['mpi']
     
diff --git a/xpdeint/xsil2graphics2/MathematicaImport.py b/xpdeint/xsil2graphics2/MathematicaImport.py
index 11aa3c1..edd8be2 100644
--- a/xpdeint/xsil2graphics2/MathematicaImport.py
+++ b/xpdeint/xsil2graphics2/MathematicaImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.246509
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/MathematicaImport.tmpl'
+__CHEETAH_genTime__ = 1412053667.964978
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/xsil2graphics2/MathematicaImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jun  5 14:30:43 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/xsil2graphics2/MatlabOctaveImport.py b/xpdeint/xsil2graphics2/MatlabOctaveImport.py
index 144ff27..5663537 100644
--- a/xpdeint/xsil2graphics2/MatlabOctaveImport.py
+++ b/xpdeint/xsil2graphics2/MatlabOctaveImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.576239
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl'
+__CHEETAH_genTime__ = 1412053667.984757
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/xsil2graphics2/MatlabOctaveImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Thu Nov 21 19:01:13 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/xsil2graphics2/PythonImport.py b/xpdeint/xsil2graphics2/PythonImport.py
index d03f886..bf3dfc8 100644
--- a/xpdeint/xsil2graphics2/PythonImport.py
+++ b/xpdeint/xsil2graphics2/PythonImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.427775
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/PythonImport.tmpl'
+__CHEETAH_genTime__ = 1412053667.973113
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/xsil2graphics2/PythonImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Sun Jul 28 14:51:41 2013'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 
diff --git a/xpdeint/xsil2graphics2/RImport.py b/xpdeint/xsil2graphics2/RImport.py
index af0b5b1..cd4dd5b 100644
--- a/xpdeint/xsil2graphics2/RImport.py
+++ b/xpdeint/xsil2graphics2/RImport.py
@@ -32,9 +32,9 @@ VFN=valueForName
 currentTime=time.time
 __CHEETAH_version__ = '2.4.4'
 __CHEETAH_versionTuple__ = (2, 4, 4, 'development', 0)
-__CHEETAH_genTime__ = 1389652446.475812
-__CHEETAH_genTimestamp__ = 'Tue Jan 14 09:34:06 2014'
-__CHEETAH_src__ = '/home/mattias/xmds-2.2.0/admin/staging/xmds-2.2.0/xpdeint/xsil2graphics2/RImport.tmpl'
+__CHEETAH_genTime__ = 1412053667.976965
+__CHEETAH_genTimestamp__ = 'Tue Sep 30 15:07:47 2014'
+__CHEETAH_src__ = '/Users/joe/Applications/xmds2/admin/staging/xmds-2.2.1/xpdeint/xsil2graphics2/RImport.tmpl'
 __CHEETAH_srcLastModified__ = 'Wed Jan  8 13:35:53 2014'
 __CHEETAH_docstring__ = 'Autogenerated by Cheetah: The Python-Powered Template Engine'
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/xmds2.git



More information about the debian-science-commits mailing list