Make it possible to use FEP lambda states as a reaction coordinate in AWH. Atom masse...
authorMagnus Lundborg <magnus.lundborg@scilifelab.se>
Thu, 20 Aug 2020 12:15:28 +0000 (12:15 +0000)
committerMagnus Lundborg <magnus.lundborg@scilifelab.se>
Thu, 20 Aug 2020 12:15:28 +0000 (12:15 +0000)
48 files changed:
docs/reference-manual/special/awh.rst
docs/release-notes/2021/major/features.rst
docs/user-guide/mdp-options.rst
src/gromacs/awh/awh.cpp
src/gromacs/awh/awh.h
src/gromacs/awh/bias.cpp
src/gromacs/awh/bias.h
src/gromacs/awh/biasgrid.cpp
src/gromacs/awh/biasgrid.h
src/gromacs/awh/biasparams.cpp
src/gromacs/awh/biasparams.h
src/gromacs/awh/biasstate.cpp
src/gromacs/awh/biasstate.h
src/gromacs/awh/coordstate.cpp
src/gromacs/awh/coordstate.h
src/gromacs/awh/dimparams.h
src/gromacs/awh/pointstate.cpp
src/gromacs/awh/pointstate.h
src/gromacs/awh/read_params.cpp
src/gromacs/awh/read_params.h
src/gromacs/awh/tests/CMakeLists.txt
src/gromacs/awh/tests/bias.cpp
src/gromacs/awh/tests/bias_fep_lambda_state.cpp [new file with mode: 0644]
src/gromacs/awh/tests/biasstate.cpp
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_0.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_1.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_2.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_3.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_4.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_5.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_6.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_7.xml [new file with mode: 0644]
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_0.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_1.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_2.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_3.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_4.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_5.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_6.xml
src/gromacs/awh/tests/refdata/WithParameters_BiasTest_ForcesBiasPmf_7.xml
src/gromacs/gmxana/gmx_awh.cpp
src/gromacs/gmxpreprocess/grompp.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/mdlib/enerdata_utils.cpp
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdrun/md.cpp
src/gromacs/mdtypes/awh_params.h
src/gromacs/mdtypes/enerdata.h

index 1a76aa321b750875d94565947171613a4c7854b1..faa9f4197900011b55c3b95d91407b26efdaea0c 100644 (file)
@@ -20,22 +20,9 @@ Basics of the method
 ^^^^^^^^^^^^^^^^^^^^
 
 Rather than biasing the reaction coordinate :math:`\xi(x)` directly, AWH
-acts on a *reference coordinate* :math:`\lambda`. The reaction
-coordinate :math:`\xi(x)` is coupled to :math:`\lambda` with a harmonic
-potential
-
-.. math:: Q(\xi,\lambda) = \frac{1}{2} \beta k (\xi - \lambda)^2,
-          :label: eqnawhbasic
-
-so that for large force constants :math:`k`,
-:math:`\xi \approx \lambda`. Note the use of dimensionless energies for
-compatibility with previously published work. Units of energy are
-obtained by multiplication with :math:`k_BT=1/\beta`. In the simulation,
-:math:`\lambda` samples the user-defined sampling interval :math:`I`.
-For a multidimensional reaction coordinate :math:`\xi`, the sampling
-interval is the Cartesian product :math:`I=\Pi_{\mu} I_{\mu}` (a rectangular
-domain). The connection between atom coordinates and :math:`\lambda` is
-established through the extended ensemble \ :ref:`68 <refLyubartsev1992>`,
+acts on a *reference coordinate* :math:`\lambda`. The fundamentals of the
+method is based on the connection between atom coordinates and :math:`\lambda` and
+is established through the extended ensemble \ :ref:`68 <refLyubartsev1992>`,
 
 .. math:: P(x,\lambda) = \frac{1}{\mathcal{Z}}e^{g(\lambda) - Q(\xi(x),\lambda) - V(x)},
           :label: eqawhpxlambda
@@ -56,6 +43,18 @@ where :math:`F(\lambda)` is the free energy
 .. math:: F(\lambda) = -\ln \int e^{- Q(\xi(x),\lambda) - V(x)}  dx.
           :label: eqawhflambda
 
+The reaction coordinate :math:`\xi(x)` is commonly coupled to
+:math:`\lambda` with a harmonic potential
+
+.. math:: Q(\xi,\lambda) = \frac{1}{2} \beta k (\xi - \lambda)^2,
+          :label: eqnawhbasic
+
+so that for large force constants :math:`k`,
+:math:`\xi \approx \lambda`. Note the use of dimensionless energies for
+compatibility with previously published work. Units of energy are
+obtained by multiplication with :math:`k_BT=1/\beta`. In the simulation,
+:math:`\lambda` samples the user-defined sampling interval :math:`I`.
+
 Being the convolution of the PMF with the Gaussian defined by the
 harmonic potential, :math:`F(\lambda)` is a smoothened version of the
 PMF. :eq:`Eq. %s <eqawhplambda>` shows that in order to obtain
@@ -64,6 +63,17 @@ determined accurately. Thus, AWH adaptively calculates
 :math:`F(\lambda)` and simultaneously converges :math:`P(\lambda)`
 toward :math:`\rho(\lambda)`.
 
+It is also possible to directly control the :math:`\lambda` state
+of, e.g., alchemical free energy perturbations. In that case there is no harmonic
+potential and :math:`\lambda` changes in discrete steps along the reaction coordinate
+depending on the biased free energy difference between the :math:`\lambda` states.
+N.b., it is not yet possible to use AWH in combination with perturbed masses or
+constraints.
+
+For a multidimensional reaction coordinate :math:`\xi`, the sampling
+interval is the Cartesian product :math:`I=\Pi_{\mu} I_{\mu}` (a rectangular
+domain).
+
 The free energy update
 ^^^^^^^^^^^^^^^^^^^^^^
 
@@ -126,15 +136,23 @@ implies :math:`\Delta g_n(\lambda) < 0` (assuming
 Secondly, the normalization of the histogram
 :math:`N_n=\sum_\lambda W_n(\lambda)`, determines the update size
 :math:`| \Delta F(\lambda) |`. For instance, for a single sample
-:math:`\omega(\lambda|x)`, the shape of the update is approximately a
+:math:`\omega(\lambda|x)`, and using a harmonic potential
+(:see :eq:`Eq. %s <eqnawhbasic>`),
+the shape of the update is approximately a
 Gaussian function of width :math:`\sigma=1/\sqrt{\beta k}` and height
 :math:`\propto 1/N_n` :ref:`137 <reflindahl2014accelerated>`,
 
 .. math:: | \Delta F_n(\lambda) | \propto \frac{1}{N_n} e^{-\frac{1}{2} \beta k (\xi(x) - \lambda)^2}.
           :label: eqawhdfsize
 
-Therefore, as samples accumulate in :math:`W(\lambda)` and :math:`N_n`
-grows, the updates get smaller, allowing for the free energy to
+When directly controlling the lambda state of the system, the shape of
+the update is instead
+
+.. math:: | \Delta F_n(\lambda) | \propto \frac{1}{N_n} P_n(\lambda | x).
+          :label: eqawhdfsizelambda
+
+Therefore, in both cases, as samples accumulate in :math:`W(\lambda)` and
+:math:`N_n` grows, the updates get smaller, allowing for the free energy to
 converge.
 
 Note that quantity of interest to the user is not :math:`F(\lambda)` but
@@ -165,6 +183,13 @@ different in the two cases. This choice does not affect the internals of
 the AWH algorithm, only what force and potential AWH returns to the MD
 engine.
 
+Along a bias dimension directly controlling the
+:math:`\lambda` state of the system, such as when controlling free energy
+perturbations, the Monte-Carlo sampling alternative is always used, even if
+a convolved bias potential is chosen to be used along the other dimensions
+(if there are more than one).
+
+
 .. _fig-awhbiasevolution1:
 
 .. figure:: plots/awh-traj.*
index 7a5626f7cac69e84eb7fccd55b52ce93013b9a84..ac0c3462de255fd9fdff3cb4614b9ce7eb06d6da 100644 (file)
@@ -23,3 +23,11 @@ drift when large coordinate values are present. This allows for accurate
 simulations of systems with SETTLE up to 1000 nm in size (but note that
 constraining with LINCS and SHAKE still introduces significant drift,
 which limits the system size to 100 to 200 nm).
+
+FEP using AWH
+"""""""""""""
+
+It is now possible to control the lambda state of a free energy perturbation
+simulation using the Accelerated Weight Histogram method. This can be used
+as one of multiple AWH dimensions, where the other(s) are coupled to pull
+coordinates.
index 9281ac4e0e0c7b0730de6705f293479d5d2fa02d..90addbe69614216fd87c2e4b774a4b921b56abde 100644 (file)
@@ -2040,8 +2040,14 @@ AWH adaptive biasing
 
    .. mdp-value:: pull
 
-      The module providing the reaction coordinate for this dimension.
-      Currently AWH can only act on pull coordinates.
+      The pull module is providing the reaction coordinate for this dimension.
+
+   .. mdp-value:: fep-lambda
+
+      The free energy lambda state is the reaction coordinate for this dimension.
+      The lambda states to use are specified by :mdp:`fep-lambdas`, :mdp:`vdw-lambdas`,
+      :mdp:`coul-lambdas` etc. This is not compatible with delta-lambda. It also requires
+      calc-lambda-neighbors to be -1.
 
 .. mdp:: awh1-dim1-coord-index
 
@@ -2073,7 +2079,7 @@ AWH adaptive biasing
 
 .. mdp:: awh1-dim1-diffusion
 
-   (10\ :sup:`-5`) [nm\ :sup:`2`/ps] or [rad\ :sup:`2`/ps]
+   (10\ :sup:`-5`) [nm\ :sup:`2`/ps], [rad\ :sup:`2`/ps] or [ps\ :sup:`-1`]
    Estimated diffusion constant for this coordinate dimension determining the initial
    biasing rate. This needs only be a rough estimate and should not critically
    affect the results unless it is set to something very low, leading to slow convergence,
index 65c9837b4d5daa60b374751f1b30624aa5bd4124..490e7312cbaf1515bb43bb7e1a2f8b91e451c951 100644 (file)
@@ -39,6 +39,7 @@
  *
  * \author Viveca Lindahl
  * \author Berk Hess <hess@kth.se>
+ * \author Magnus Lundborg
  * \ingroup module_awh
  */
 
@@ -69,6 +70,7 @@
 #include "gromacs/pulling/pull.h"
 #include "gromacs/timing/wallcycle.h"
 #include "gromacs/trajectory/energyframe.h"
+#include "gromacs/utility/arrayref.h"
 #include "gromacs/utility/exceptions.h"
 #include "gromacs/utility/gmxassert.h"
 #include "gromacs/utility/pleasecite.h"
@@ -105,13 +107,67 @@ struct BiasCoupledToSystem
     /* Here AWH can be extended to work on other coordinates than pull. */
 };
 
+/*! \brief Checks whether any dimension uses pulling as a coordinate provider.
+ *
+ * \param[in] awhBiasParams The bias params to check.
+ * \returns true if any dimension of the bias is linked to pulling.
+ */
+static bool anyDimUsesPull(const AwhBiasParams& awhBiasParams)
+{
+    for (int d = 0; d < awhBiasParams.ndim; d++)
+    {
+        const AwhDimParams& awhDimParams = awhBiasParams.dimParams[d];
+        if (awhDimParams.eCoordProvider == eawhcoordproviderPULL)
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+/*! \brief Checks whether any dimension uses pulling as a coordinate provider.
+ *
+ * \param[in] awhParams The AWH params to check.
+ * \returns true if any dimension of awh is linked to pulling.
+ */
+static bool anyDimUsesPull(const AwhParams& awhParams)
+{
+    for (int k = 0; k < awhParams.numBias; k++)
+    {
+        const AwhBiasParams& awhBiasParams = awhParams.awhBiasParams[k];
+        if (anyDimUsesPull(awhBiasParams))
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
+/*! \brief Checks whether any dimension uses pulling as a coordinate provider.
+ *
+ * \param[in] biasCoupledToSystem The AWH biases to check.
+ * \returns true if any dimension of the provided biases is linked to pulling.
+ */
+static bool anyDimUsesPull(const ArrayRef<BiasCoupledToSystem> biasCoupledToSystem)
+{
+    for (const auto& biasCts : biasCoupledToSystem)
+    {
+        if (!biasCts.pullCoordIndex_.empty())
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
 BiasCoupledToSystem::BiasCoupledToSystem(Bias bias, const std::vector<int>& pullCoordIndex) :
     bias_(std::move(bias)),
     pullCoordIndex_(pullCoordIndex)
 {
     /* We already checked for this in grompp, but check again here. */
-    GMX_RELEASE_ASSERT(static_cast<size_t>(bias_.ndim()) == pullCoordIndex_.size(),
-                       "The bias dimensionality should match the number of pull coordinates.");
+    GMX_RELEASE_ASSERT(
+            static_cast<size_t>(bias_.ndim()) == pullCoordIndex_.size() + bias_.hasFepLambdaDimension() ? 1 : 0,
+            "The bias dimensionality should match the number of pull and lambda coordinates.");
 }
 
 Awh::Awh(FILE*                 fplog,
@@ -120,18 +176,24 @@ Awh::Awh(FILE*                 fplog,
          const gmx_multisim_t* multiSimRecord,
          const AwhParams&      awhParams,
          const std::string&    biasInitFilename,
-         pull_t*               pull_work) :
+         pull_t*               pull_work,
+         int                   numFepLambdaStates,
+         int                   fepLambdaState) :
     seed_(awhParams.seed),
     nstout_(awhParams.nstOut),
     commRecord_(commRecord),
     multiSimRecord_(multiSimRecord),
     pull_(pull_work),
-    potentialOffset_(0)
+    potentialOffset_(0),
+    numFepLambdaStates_(numFepLambdaStates),
+    fepLambdaState_(fepLambdaState)
 {
-    /* We already checked for this in grompp, but check again here. */
-    GMX_RELEASE_ASSERT(inputRecord.pull != nullptr, "With AWH we should have pull parameters");
-    GMX_RELEASE_ASSERT(pull_work != nullptr,
-                       "With AWH pull should be initialized before initializing AWH");
+    if (anyDimUsesPull(awhParams))
+    {
+        GMX_RELEASE_ASSERT(inputRecord.pull != nullptr, "With AWH we should have pull parameters");
+        GMX_RELEASE_ASSERT(pull_work != nullptr,
+                           "With AWH pull should be initialized before initializing AWH");
+    }
 
     if (fplog != nullptr)
     {
@@ -163,15 +225,29 @@ Awh::Awh(FILE*                 fplog,
         for (int d = 0; d < awhBiasParams.ndim; d++)
         {
             const AwhDimParams& awhDimParams = awhBiasParams.dimParams[d];
-            GMX_RELEASE_ASSERT(awhDimParams.eCoordProvider == eawhcoordproviderPULL,
-                               "Currently only the pull code is supported as coordinate provider");
-            const t_pull_coord& pullCoord = inputRecord.pull->coord[awhDimParams.coordIndex];
-            GMX_RELEASE_ASSERT(pullCoord.eGeom != epullgDIRPBC,
-                               "Pull geometry 'direction-periodic' is not supported by AWH");
-            double conversionFactor = pull_coordinate_is_angletype(&pullCoord) ? DEG2RAD : 1;
-            dimParams.emplace_back(conversionFactor, awhDimParams.forceConstant, beta);
-
-            pullCoordIndex.push_back(awhDimParams.coordIndex);
+            if (awhDimParams.eCoordProvider != eawhcoordproviderPULL
+                && awhDimParams.eCoordProvider != eawhcoordproviderFREE_ENERGY_LAMBDA)
+            {
+                GMX_THROW(
+                        InvalidInputError("Currently only the pull code and lambda are supported "
+                                          "as coordinate providers"));
+            }
+            if (awhDimParams.eCoordProvider == eawhcoordproviderPULL)
+            {
+                const t_pull_coord& pullCoord = inputRecord.pull->coord[awhDimParams.coordIndex];
+                if (pullCoord.eGeom == epullgDIRPBC)
+                {
+                    GMX_THROW(InvalidInputError(
+                            "Pull geometry 'direction-periodic' is not supported by AWH"));
+                }
+                double conversionFactor = pull_coordinate_is_angletype(&pullCoord) ? DEG2RAD : 1;
+                pullCoordIndex.push_back(awhDimParams.coordIndex);
+                dimParams.emplace_back(conversionFactor, awhDimParams.forceConstant, beta);
+            }
+            else
+            {
+                dimParams.emplace_back(awhDimParams.forceConstant, beta, numFepLambdaStates_);
+            }
         }
 
         /* Construct the bias and couple it to the system. */
@@ -207,16 +283,21 @@ bool Awh::isOutputStep(int64_t step) const
     return (nstout_ > 0 && step % nstout_ == 0);
 }
 
-real Awh::applyBiasForcesAndUpdateBias(PbcType               pbcType,
-                                       const real*           masses,
-                                       const matrix          box,
-                                       gmx::ForceWithVirial* forceWithVirial,
-                                       double                t,
-                                       int64_t               step,
-                                       gmx_wallcycle*        wallcycle,
-                                       FILE*                 fplog)
+real Awh::applyBiasForcesAndUpdateBias(PbcType                pbcType,
+                                       const real*            masses,
+                                       ArrayRef<const double> neighborLambdaEnergies,
+                                       ArrayRef<const double> neighborLambdaDhdl,
+                                       const matrix           box,
+                                       gmx::ForceWithVirial*  forceWithVirial,
+                                       double                 t,
+                                       int64_t                step,
+                                       gmx_wallcycle*         wallcycle,
+                                       FILE*                  fplog)
 {
-    GMX_ASSERT(forceWithVirial, "Need a valid ForceWithVirial object");
+    if (anyDimUsesPull(biasCoupledToSystem_))
+    {
+        GMX_ASSERT(forceWithVirial, "Need a valid ForceWithVirial object");
+    }
 
     wallcycle_start(wallcycle, ewcAWH);
 
@@ -233,10 +314,20 @@ real Awh::applyBiasForcesAndUpdateBias(PbcType               pbcType,
         /* Update the AWH coordinate values with those of the corresponding
          * pull coordinates.
          */
-        awh_dvec coordValue = { 0, 0, 0, 0 };
+        awh_dvec coordValue           = { 0, 0, 0, 0 };
+        int      numLambdaDimsCounted = 0;
         for (int d = 0; d < biasCts.bias_.ndim(); d++)
         {
-            coordValue[d] = get_pull_coord_value(pull_, biasCts.pullCoordIndex_[d], &pbc);
+            if (!biasCts.bias_.isFepLambdaDimension(d))
+            {
+                coordValue[d] = get_pull_coord_value(
+                        pull_, biasCts.pullCoordIndex_[d - numLambdaDimsCounted], &pbc);
+            }
+            else
+            {
+                coordValue[d] = fepLambdaState_;
+                numLambdaDimsCounted += 1;
+            }
         }
 
         /* Perform an AWH biasing step: this means, at regular intervals,
@@ -249,8 +340,8 @@ real Awh::applyBiasForcesAndUpdateBias(PbcType               pbcType,
          *       to supports bias sharing within a single simulation.
          */
         gmx::ArrayRef<const double> biasForce = biasCts.bias_.calcForceAndUpdateBias(
-                coordValue, &biasPotential, &biasPotentialJump, commRecord_, multiSimRecord_, t,
-                step, seed_, fplog);
+                coordValue, neighborLambdaEnergies, neighborLambdaDhdl, &biasPotential,
+                &biasPotentialJump, commRecord_, multiSimRecord_, t, step, seed_, fplog);
 
         awhPotential += biasPotential;
 
@@ -261,10 +352,20 @@ real Awh::applyBiasForcesAndUpdateBias(PbcType               pbcType,
          * The bias potential is returned at the end of this function,
          * so that it can be added externally to the correct energy data block.
          */
+        numLambdaDimsCounted = 0;
         for (int d = 0; d < biasCts.bias_.ndim(); d++)
         {
-            apply_external_pull_coord_force(pull_, biasCts.pullCoordIndex_[d], biasForce[d], masses,
-                                            forceWithVirial);
+            if (!biasCts.bias_.dimParams()[d].isFepLambdaDimension())
+            {
+                apply_external_pull_coord_force(pull_, biasCts.pullCoordIndex_[d - numLambdaDimsCounted],
+                                                biasForce[d], masses, forceWithVirial);
+            }
+            else
+            {
+                int umbrellaGridpointIndex = biasCts.bias_.state().coordState().umbrellaGridpoint();
+                fepLambdaState_ = biasCts.bias_.getGridCoordValue(umbrellaGridpointIndex)[d];
+                numLambdaDimsCounted += 1;
+            }
         }
 
         if (isOutputStep(step))
@@ -359,7 +460,7 @@ const char* Awh::externalPotentialString()
 
 void Awh::registerAwhWithPull(const AwhParams& awhParams, pull_t* pull_work)
 {
-    GMX_RELEASE_ASSERT(pull_work, "Need a valid pull object");
+    GMX_RELEASE_ASSERT(!anyDimUsesPull(awhParams) || pull_work, "Need a valid pull object");
 
     for (int k = 0; k < awhParams.numBias; k++)
     {
@@ -367,8 +468,11 @@ void Awh::registerAwhWithPull(const AwhParams& awhParams, pull_t* pull_work)
 
         for (int d = 0; d < biasParams.ndim; d++)
         {
-            register_external_pull_potential(pull_work, biasParams.dimParams[d].coordIndex,
-                                             Awh::externalPotentialString());
+            if (biasParams.dimParams[d].eCoordProvider == eawhcoordproviderPULL)
+            {
+                register_external_pull_potential(pull_work, biasParams.dimParams[d].coordIndex,
+                                                 Awh::externalPotentialString());
+            }
         }
     }
 }
@@ -412,6 +516,38 @@ void Awh::writeToEnergyFrame(int64_t step, t_enxframe* frame) const
     }
 }
 
+bool Awh::hasFepLambdaDimension() const
+{
+    return std::any_of(
+            std::begin(biasCoupledToSystem_), std::end(biasCoupledToSystem_),
+            [](const auto& coupledBias) { return coupledBias.bias_.hasFepLambdaDimension(); });
+}
+
+bool Awh::needForeignEnergyDifferences(const int64_t step) const
+{
+    /* If there is no FEP lambda dimension at all in any bias there will be no need for foreign
+     * energy differences */
+    if (!hasFepLambdaDimension())
+    {
+        return false;
+    }
+    if (step == 0)
+    {
+        return true;
+    }
+    /* Check whether the bias(es) that has/have a FEP lambda dimension should sample coordinates
+     * this step. Since the biases may have different sampleCoordStep it is necessary to check
+     * this combination. */
+    for (const auto& biasCts : biasCoupledToSystem_)
+    {
+        if (biasCts.bias_.hasFepLambdaDimension() && biasCts.bias_.isSampleCoordStep(step))
+        {
+            return true;
+        }
+    }
+    return false;
+}
+
 std::unique_ptr<Awh> prepareAwhModule(FILE*                 fplog,
                                       const t_inputrec&     inputRecord,
                                       t_state*              stateGlobal,
@@ -431,8 +567,9 @@ std::unique_ptr<Awh> prepareAwhModule(FILE*                 fplog,
         GMX_THROW(InvalidInputError("AWH biasing does not support shell particles."));
     }
 
-    auto awh = std::make_unique<Awh>(fplog, inputRecord, commRecord, multiSimRecord,
-                                     *inputRecord.awhParams, biasInitFilename, pull_work);
+    auto awh = std::make_unique<Awh>(
+            fplog, inputRecord, commRecord, multiSimRecord, *inputRecord.awhParams, biasInitFilename,
+            pull_work, inputRecord.fepvals->n_lambda, inputRecord.fepvals->init_fep_state);
 
     if (startingFromCheckpoint)
     {
index 8ed456c27c80e79abb3ded7bb20d96628cdf8685..d8bdfb71ed1e0dd864ae98be6ca5471a4d07c7c3 100644 (file)
@@ -46,6 +46,7 @@
  *
  * \author Viveca Lindahl
  * \author Berk Hess <hess@kth.se>
+ * \author Magnus Lundborg
  */
 
 /*! \libinternal \file
@@ -84,6 +85,8 @@ enum class PbcType : int;
 namespace gmx
 {
 
+template<typename>
+class ArrayRef;
 struct AwhHistory;
 struct AwhParams;
 class Bias;
@@ -115,13 +118,19 @@ public:
      * in the user input. This allows AWH to later apply the bias force to
      * these coordinate in \ref Awh::applyBiasForcesAndUpdateBias.
      *
-     * \param[in,out] fplog             General output file, normally md.log, can be nullptr.
-     * \param[in]     inputRecord       General input parameters (as set up by grompp).
-     * \param[in]     commRecord        Struct for communication, can be nullptr.
-     * \param[in]     multiSimRecord    Multi-sim handler
-     * \param[in]     awhParams         AWH input parameters, consistent with the relevant parts of \p inputRecord (as set up by grompp).
-     * \param[in]     biasInitFilename  Name of file to read PMF and target from.
-     * \param[in,out] pull_work         Pointer to a pull struct which AWH will couple to, has to be initialized, is assumed not to change during the lifetime of the Awh object.
+     * \param[in,out] fplog              General output file, normally md.log, can be nullptr.
+     * \param[in]     inputRecord        General input parameters (as set up by grompp).
+     * \param[in]     commRecord         Struct for communication, can be nullptr.
+     * \param[in]     multiSimRecord     Multi-sim handler
+     * \param[in]     awhParams          AWH input parameters, consistent with the relevant
+     * parts of \p inputRecord (as set up by grompp).
+     * \param[in]     biasInitFilename   Name of file to read PMF and target from.
+     * \param[in,out] pull_work          Pointer to a pull struct which AWH will
+     * couple to, has to be initialized, is assumed not to change during the
+     * lifetime of the Awh object.
+     * \param[in] numLambdaStates        The number of free energy lambda states.
+     * \param[in] lambdaState            The initial free energy lambda state of the system.
+     * \throws    InvalidInputError      If there is user input (or combinations thereof) that is not allowed.
      */
     Awh(FILE*                 fplog,
         const t_inputrec&     inputRecord,
@@ -129,7 +138,9 @@ public:
         const gmx_multisim_t* multiSimRecord,
         const AwhParams&      awhParams,
         const std::string&    biasInitFilename,
-        pull_t*               pull_work);
+        pull_t*               pull_work,
+        int                   numLambdaStates,
+        int                   lambdaState);
 
     ~Awh();
 
@@ -152,8 +163,20 @@ public:
      * since AWH needs the current coordinate values (the pull code checks
      * for this).
      *
-     * \param[in]     masses           Atoms masses.
      * \param[in]     pbcType          Type of periodic boundary conditions.
+     * \param[in]     masses           Atoms masses.
+     * \param[in]     neighborLambdaEnergies An array containing the energy of the system
+     * in neighboring lambdas. The array is of length numLambdas+1, where numLambdas is
+     * the number of free energy lambda states. Element 0 in the array is the energy
+     * of the current state and elements 1..numLambdas contain the energy of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
+     * \param[in]     neighborLambdaDhdl     An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
      * \param[in]     box              Box vectors.
      * \param[in,out] forceWithVirial  Force and virial buffers, should cover at least the local atoms.
      * \param[in]     t                Time.
@@ -162,14 +185,16 @@ public:
      * \param[in,out] fplog            General output file, normally md.log, can be nullptr.
      * \returns the potential energy for the bias.
      */
-    real applyBiasForcesAndUpdateBias(PbcType               pbcType,
-                                      const real*           masses,
-                                      const matrix          box,
-                                      gmx::ForceWithVirial* forceWithVirial,
-                                      double                t,
-                                      int64_t               step,
-                                      gmx_wallcycle*        wallcycle,
-                                      FILE*                 fplog);
+    real applyBiasForcesAndUpdateBias(PbcType                pbcType,
+                                      const real*            masses,
+                                      ArrayRef<const double> neighborLambdaEnergies,
+                                      ArrayRef<const double> neighborLambdaDhdl,
+                                      const matrix           box,
+                                      gmx::ForceWithVirial*  forceWithVirial,
+                                      double                 t,
+                                      int64_t                step,
+                                      gmx_wallcycle*         wallcycle,
+                                      FILE*                  fplog);
 
     /*! \brief
      * Update the AWH history in preparation for writing to checkpoint file.
@@ -229,6 +254,16 @@ public:
      */
     static void registerAwhWithPull(const AwhParams& awhParams, pull_t* pull_work);
 
+    /*! \brief Get the current free energy lambda state.
+     * \returns The value of lambdaState_.
+     */
+    int fepLambdaState() const { return fepLambdaState_; }
+
+    /*! \brief Returns if foreign energy differences are required during this step.
+     * \param[in]     step             The current MD step.
+     */
+    bool needForeignEnergyDifferences(int64_t step) const;
+
 private:
     /*! \brief Returns whether we need to write output at the current step.
      *
@@ -236,6 +271,10 @@ private:
      */
     bool isOutputStep(int64_t step) const;
 
+    /*! \brief Returns true if AWH has a bias with a free energy lambda state dimension at all.
+     */
+    bool hasFepLambdaDimension() const;
+
 private:
     std::vector<BiasCoupledToSystem> biasCoupledToSystem_; /**< AWH biases and definitions of their coupling to the system. */
     const int64_t    seed_;   /**< Random seed for MC jumping with umbrella type bias potential. */
@@ -244,6 +283,8 @@ private:
     const gmx_multisim_t* multiSimRecord_; /**< Handler for multi-simulations. */
     pull_t*               pull_;           /**< Pointer to the pull working data. */
     double                potentialOffset_; /**< The offset of the bias potential which changes due to bias updates. */
+    const int numFepLambdaStates_; /**< The number of free energy lambda states of the system. */
+    int       fepLambdaState_;     /**< The current free energy lambda state. */
 };
 
 /*! \brief Makes an Awh and prepares to use it if the user input
index 006dee4e87bb188d7eef2a8f0290ed1066dbe23a..31bdf4f52b9bcb4e0f15193615f12a106ea42aeb 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -102,15 +102,17 @@ void Bias::doSkippedUpdatesForAllPoints()
     }
 }
 
-gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        coordValue,
-                                                         double*               awhPotential,
-                                                         double*               potentialJump,
-                                                         const t_commrec*      commRecord,
-                                                         const gmx_multisim_t* ms,
-                                                         double                t,
-                                                         int64_t               step,
-                                                         int64_t               seed,
-                                                         FILE*                 fplog)
+gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec         coordValue,
+                                                         ArrayRef<const double> neighborLambdaEnergies,
+                                                         ArrayRef<const double> neighborLambdaDhdl,
+                                                         double*                awhPotential,
+                                                         double*                potentialJump,
+                                                         const t_commrec*       commRecord,
+                                                         const gmx_multisim_t*  ms,
+                                                         double                 t,
+                                                         int64_t                step,
+                                                         int64_t                seed,
+                                                         FILE*                  fplog)
 {
     if (step < 0)
     {
@@ -126,29 +128,35 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        c
      * the bias in the current neighborhood needs to be up-to-date
      * and the probablity weights need to be calculated.
      */
-    const bool sampleCoord   = params_.isSampleCoordStep(step);
-    const bool moveUmbrella  = (sampleCoord || step == 0);
-    double     convolvedBias = 0;
-    if (params_.convolveForce || moveUmbrella || sampleCoord)
+    const bool        isSampleCoordStep = params_.isSampleCoordStep(step);
+    const bool        moveUmbrella      = (isSampleCoordStep || step == 0);
+    double            convolvedBias     = 0;
+    const CoordState& coordState        = state_.coordState();
+
+    if (params_.convolveForce || moveUmbrella || isSampleCoordStep)
     {
         if (params_.skipUpdates())
         {
             state_.doSkippedUpdatesInNeighborhood(params_, grid_);
         }
+        convolvedBias = state_.updateProbabilityWeightsAndConvolvedBias(
+                dimParams_, grid_, moveUmbrella ? neighborLambdaEnergies : ArrayRef<const double>{},
+                &probWeightNeighbor);
 
-        convolvedBias =
-                state_.updateProbabilityWeightsAndConvolvedBias(dimParams_, grid_, &probWeightNeighbor);
-
-        if (sampleCoord)
+        if (isSampleCoordStep)
         {
-            updateForceCorrelationGrid(probWeightNeighbor, t);
+            updateForceCorrelationGrid(probWeightNeighbor, neighborLambdaDhdl, t);
 
-            state_.sampleCoordAndPmf(grid_, probWeightNeighbor, convolvedBias);
+            state_.sampleCoordAndPmf(dimParams_, grid_, probWeightNeighbor, convolvedBias);
+        }
+        /* Set the umbrella grid point (for the lambda axis) to the
+         * current grid point. */
+        if (params_.convolveForce && grid_.hasLambdaAxis())
+        {
+            state_.setUmbrellaGridpointToGridpoint();
         }
     }
 
-    const CoordState& coordState = state_.coordState();
-
     /* Set the bias force and get the potential contribution from this bias.
      * The potential jump occurs at different times depending on how
      * the force is applied (and how the potential is normalized).
@@ -159,7 +167,9 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        c
     double potential;
     if (params_.convolveForce)
     {
-        state_.calcConvolvedForce(dimParams_, grid_, probWeightNeighbor, tempForce_, biasForce_);
+        state_.calcConvolvedForce(dimParams_, grid_, probWeightNeighbor,
+                                  moveUmbrella ? neighborLambdaDhdl : ArrayRef<const double>{},
+                                  tempForce_, biasForce_);
 
         potential = -convolvedBias * params_.invBeta;
     }
@@ -170,7 +180,8 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        c
                            "AWH bias grid point for the umbrella reference value is outside of the "
                            "target region.");
         potential = state_.calcUmbrellaForceAndPotential(
-                dimParams_, grid_, coordState.umbrellaGridpoint(), biasForce_);
+                dimParams_, grid_, coordState.umbrellaGridpoint(),
+                moveUmbrella ? neighborLambdaDhdl : ArrayRef<const double>{}, biasForce_);
 
         /* Moving the umbrella results in a force correction and
          * a new potential. The umbrella center is sampled as often as
@@ -179,9 +190,11 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        c
          */
         if (moveUmbrella)
         {
-            double newPotential = state_.moveUmbrella(dimParams_, grid_, probWeightNeighbor,
-                                                      biasForce_, step, seed, params_.biasIndex);
-            *potentialJump      = newPotential - potential;
+            const bool onlySampleUmbrellaGridpoint = false;
+            double     newPotential = state_.moveUmbrella(dimParams_, grid_, probWeightNeighbor,
+                                                      neighborLambdaDhdl, biasForce_, step, seed,
+                                                      params_.biasIndex, onlySampleUmbrellaGridpoint);
+            *potentialJump          = newPotential - potential;
         }
     }
 
@@ -198,6 +211,14 @@ gmx::ArrayRef<const double> Bias::calcForceAndUpdateBias(const awh_dvec        c
             *potentialJump      = newPotential - potential;
         }
     }
+    /* If there is a lambda axis it is still controlled using an umbrella even if the force
+     * is convolved in the other dimensions. */
+    if (moveUmbrella && params_.convolveForce && grid_.hasLambdaAxis())
+    {
+        const bool onlySampleUmbrellaGridpoint = true;
+        state_.moveUmbrella(dimParams_, grid_, probWeightNeighbor, neighborLambdaDhdl, biasForce_,
+                            step, seed, params_.biasIndex, onlySampleUmbrellaGridpoint);
+    }
 
     /* Return the potential. */
     *awhPotential = potential;
@@ -383,7 +404,9 @@ void Bias::printInitializationToLog(FILE* fplog) const
     }
 }
 
-void Bias::updateForceCorrelationGrid(gmx::ArrayRef<const double> probWeightNeighbor, double t)
+void Bias::updateForceCorrelationGrid(gmx::ArrayRef<const double> probWeightNeighbor,
+                                      ArrayRef<const double>      neighborLambdaDhdl,
+                                      double                      t)
 {
     if (forceCorrelationGrid_ == nullptr)
     {
@@ -403,7 +426,8 @@ void Bias::updateForceCorrelationGrid(gmx::ArrayRef<const double> probWeightNeig
            We actually add the force normalized by beta which has the units of 1/length. This means that the
            resulting correlation time integral is directly in units of friction time/length^2 which is really what
            we're interested in. */
-        state_.calcUmbrellaForceAndPotential(dimParams_, grid_, indexNeighbor, forceFromNeighbor);
+        state_.calcUmbrellaForceAndPotential(dimParams_, grid_, indexNeighbor, neighborLambdaDhdl,
+                                             forceFromNeighbor);
 
         /* Note: we might want to give a whole list of data to add instead and have this loop in the data adding function */
         forceCorrelationGrid_->addData(indexNeighbor, weightNeighbor, forceFromNeighbor, t);
@@ -426,4 +450,17 @@ int Bias::writeToEnergySubblocks(t_enxsubblock* subblock) const
     return writer_->writeToEnergySubblocks(*this, subblock);
 }
 
+bool Bias::isFepLambdaDimension(int dim) const
+{
+    GMX_ASSERT(dim < ndim(), "Requested dimension out of range.");
+
+    return dimParams_[dim].isFepLambdaDimension();
+}
+
+bool Bias::isSampleCoordStep(const int64_t step) const
+{
+    return params_.isSampleCoordStep(step);
+}
+
+
 } // namespace gmx
index de16d7a7c66aa7683c1b0f14a62c7464979d2fc0..d034aea1cf0da6140f3e3d4dc61d5e2bf5162cd7 100644 (file)
@@ -159,7 +159,8 @@ public:
      * \param[in] mdTimeStep             The MD time step.
      * \param[in] numSharingSimulations  The number of simulations to share the bias across.
      * \param[in] biasInitFilename       Name of file to read PMF and target from.
-     * \param[in] thisRankWillDoIO       Tells whether this MPI rank will do I/O (checkpointing, AWH output), normally (only) the master rank does I/O.
+     * \param[in] thisRankWillDoIO       Tells whether this MPI rank will do I/O (checkpointing, AWH output),
+     * normally (only) the master rank does I/O.
      * \param[in] disableUpdateSkips     If to disable update skips, useful for testing.
      */
     Bias(int                            biasIndexInCollection,
@@ -192,6 +193,18 @@ public:
      * - reweight samples to extract the PMF.
      *
      * \param[in]     coordValue     The current coordinate value(s).
+     * \param[in]     neighborLambdaEnergies An array containing the energy of the system
+     * in neighboring lambdas. The array is of length numLambdas+1, where numLambdas is
+     * the number of free energy lambda states. Element 0 in the array is the energy
+     * of the current state and elements 1..numLambdas contain the energy of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
+     * \param[in]     neighborLambdaDhdl     An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
      * \param[out]    awhPotential   Bias potential.
      * \param[out]    potentialJump  Change in bias potential for this bias.
      * \param[in]     commRecord     Struct for intra-simulation communication.
@@ -202,15 +215,17 @@ public:
      * \param[in,out] fplog          Log file.
      * \returns a reference to the bias force, size \ref ndim(), valid until the next call of this method or destruction of Bias, whichever comes first.
      */
-    gmx::ArrayRef<const double> calcForceAndUpdateBias(const awh_dvec        coordValue,
-                                                       double*               awhPotential,
-                                                       double*               potentialJump,
-                                                       const t_commrec*      commRecord,
-                                                       const gmx_multisim_t* ms,
-                                                       double                t,
-                                                       int64_t               step,
-                                                       int64_t               seed,
-                                                       FILE*                 fplog);
+    gmx::ArrayRef<const double> calcForceAndUpdateBias(const awh_dvec         coordValue,
+                                                       ArrayRef<const double> neighborLambdaEnergies,
+                                                       ArrayRef<const double> neighborLambdaDhdl,
+                                                       double*                awhPotential,
+                                                       double*                potentialJump,
+                                                       const t_commrec*       commRecord,
+                                                       const gmx_multisim_t*  ms,
+                                                       double                 t,
+                                                       int64_t                step,
+                                                       int64_t                seed,
+                                                       FILE*                  fplog);
 
     /*! \brief
      * Calculates the convolved bias for a given coordinate value.
@@ -301,9 +316,17 @@ private:
      * Collect samples for the force correlation analysis on the grid.
      *
      * \param[in] probWeightNeighbor  Probability weight of the neighboring points.
+     * \param[in] neighborLambdaDhdl  An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
      * \param[in] t                   The time.
      */
-    void updateForceCorrelationGrid(gmx::ArrayRef<const double> probWeightNeighbor, double t);
+    void updateForceCorrelationGrid(gmx::ArrayRef<const double> probWeightNeighbor,
+                                    ArrayRef<const double>      neighborLambdaDhdl,
+                                    double                      t);
 
 public:
     /*! \brief Return a const reference to the force correlation grid.
@@ -328,6 +351,30 @@ public:
      */
     int writeToEnergySubblocks(t_enxsubblock* subblock) const;
 
+    /*! \brief Returns true if the bias has a free energy lambda state dimension at all.
+     */
+    bool hasFepLambdaDimension() const
+    {
+        return std::any_of(std::begin(dimParams_), std::end(dimParams_),
+                           [](const auto& dimParam) { return dimParam.isFepLambdaDimension(); });
+    }
+
+    /*! \brief Returns whether the specified dimension is a free energy lambda
+     * state dimension.
+     *
+     * \param[in] dim      The dimension to check.
+     *
+     * \returns true if the specified dimension is a free energy lambda state dimension.
+     */
+    bool isFepLambdaDimension(int dim) const;
+
+    /*! \brief
+     * Returns whether we should sample the coordinate.
+     *
+     * \param[in] step  The MD step number.
+     */
+    bool isSampleCoordStep(int64_t step) const;
+
     /* Data members. */
 private:
     const std::vector<DimParams> dimParams_; /**< Parameters for each dimension. */
index 028abc811a736a5602c7e483d098d270c8c0e1c8..f4db1606ced956509df3a728a9e01c559fc0feaa 100644 (file)
@@ -51,6 +51,7 @@
 #include <cstring>
 
 #include <algorithm>
+#include <optional>
 
 #include "gromacs/math/functions.h"
 #include "gromacs/math/utilities.h"
@@ -194,6 +195,69 @@ double getDeviationFromPointAlongGridAxis(const BiasGrid& grid, int dimIndex, in
     return getDeviationPeriodic(value, coordValue, grid.axis(dimIndex).period());
 }
 
+double getDeviationFromPointAlongGridAxis(const BiasGrid& grid, int dimIndex, int pointIndex1, int pointIndex2)
+{
+    double coordValue1 = grid.point(pointIndex1).coordValue[dimIndex];
+    double coordValue2 = grid.point(pointIndex2).coordValue[dimIndex];
+
+    return getDeviationPeriodic(coordValue1, coordValue2, grid.axis(dimIndex).period());
+}
+
+bool pointsAlongLambdaAxis(const BiasGrid& grid, int pointIndex1, int pointIndex2)
+{
+    if (!grid.hasLambdaAxis())
+    {
+        return false;
+    }
+    if (pointIndex1 == pointIndex2)
+    {
+        return true;
+    }
+    const int numDimensions = grid.numDimensions();
+    for (int d = 0; d < numDimensions; d++)
+    {
+        if (grid.axis(d).isFepLambdaAxis())
+        {
+            if (getDeviationFromPointAlongGridAxis(grid, d, pointIndex1, pointIndex2) == 0)
+            {
+                return false;
+            }
+        }
+        else
+        {
+            if (getDeviationFromPointAlongGridAxis(grid, d, pointIndex1, pointIndex2) != 0)
+            {
+                return false;
+            }
+        }
+    }
+    return true;
+}
+
+bool pointsHaveDifferentLambda(const BiasGrid& grid, int pointIndex1, int pointIndex2)
+{
+    if (!grid.hasLambdaAxis())
+    {
+        return false;
+    }
+    if (pointIndex1 == pointIndex2)
+    {
+        return false;
+    }
+    const int numDimensions = grid.numDimensions();
+    for (int d = 0; d < numDimensions; d++)
+    {
+        if (grid.axis(d).isFepLambdaAxis())
+        {
+            if (getDeviationFromPointAlongGridAxis(grid, d, pointIndex1, pointIndex2) != 0)
+            {
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
 void linearArrayIndexToMultiDim(int indexLinear, int numDimensions, const awh_ivec numPointsDim, awh_ivec indexMulti)
 {
     for (int d = 0; d < numDimensions; d++)
@@ -515,6 +579,30 @@ bool BiasGrid::covers(const awh_dvec value) const
     return valueIsInGrid(value, axis());
 }
 
+std::optional<int> BiasGrid::lambdaAxisIndex() const
+{
+    for (size_t i = 0; i < axis_.size(); i++)
+    {
+        if (axis_[i].isFepLambdaAxis())
+        {
+            return i;
+        }
+    }
+    return {};
+}
+
+int BiasGrid::numFepLambdaStates() const
+{
+    for (size_t i = 0; i < axis_.size(); i++)
+    {
+        if (axis_[i].isFepLambdaAxis())
+        {
+            return axis_[i].numPoints();
+        }
+    }
+    return 0;
+}
+
 int GridAxis::nearestIndex(double value) const
 {
     /* Get the point distance to the origin. This may by an out of index range for the axis. */
@@ -586,12 +674,21 @@ void setNeighborsOfGridPoint(int pointIndex, const BiasGrid& grid, std::vector<i
     awh_ivec subgridOrigin = { 0 };
     for (int d = 0; d < grid.numDimensions(); d++)
     {
-        /* The number of candidate points along this dimension is given by the scope cutoff. */
-        numCandidates[d] = std::min(c_maxNeighborsAlongAxis, grid.axis(d).numPoints());
+        if (grid.axis(d).isFepLambdaAxis())
+        {
+            /* Use all points along an axis linked to FEP */
+            numCandidates[d] = grid.axis(d).numPoints();
+            subgridOrigin[d] = 0;
+        }
+        else
+        {
+            /* The number of candidate points along this dimension is given by the scope cutoff. */
+            numCandidates[d] = std::min(c_maxNeighborsAlongAxis, grid.axis(d).numPoints());
 
-        /* The origin of the subgrid to search */
-        int centerIndex  = grid.point(pointIndex).index[d];
-        subgridOrigin[d] = centerIndex - numCandidates[d] / 2;
+            /* The origin of the subgrid to search */
+            int centerIndex  = grid.point(pointIndex).index[d];
+            subgridOrigin[d] = centerIndex - numCandidates[d] / 2;
+        }
     }
 
     /* Find and set the neighbors */
@@ -628,7 +725,14 @@ void BiasGrid::initPoints()
     {
         for (size_t d = 0; d < axis_.size(); d++)
         {
-            point.coordValue[d] = axis_[d].origin() + indexWork[d] * axis_[d].spacing();
+            if (axis_[d].isFepLambdaAxis())
+            {
+                point.coordValue[d] = indexWork[d];
+            }
+            else
+            {
+                point.coordValue[d] = axis_[d].origin() + indexWork[d] * axis_[d].spacing();
+            }
 
             if (axis_[d].period() > 0)
             {
@@ -645,7 +749,8 @@ void BiasGrid::initPoints()
 
 GridAxis::GridAxis(double origin, double end, double period, double pointDensity) :
     origin_(origin),
-    period_(period)
+    period_(period),
+    isFepLambdaAxis_(false)
 {
     length_ = getIntervalLengthPeriodic(origin_, end, period_);
 
@@ -686,14 +791,24 @@ GridAxis::GridAxis(double origin, double end, double period, double pointDensity
     }
 }
 
-GridAxis::GridAxis(double origin, double end, double period, int numPoints) :
+GridAxis::GridAxis(double origin, double end, double period, int numPoints, bool isFepLambdaAxis) :
     origin_(origin),
     period_(period),
-    numPoints_(numPoints)
+    numPoints_(numPoints),
+    isFepLambdaAxis_(isFepLambdaAxis)
 {
-    length_            = getIntervalLengthPeriodic(origin_, end, period_);
-    spacing_           = numPoints_ > 1 ? length_ / (numPoints_ - 1) : period_;
-    numPointsInPeriod_ = static_cast<int>(std::round(period_ / spacing_));
+    if (isFepLambdaAxis)
+    {
+        length_            = end - origin_;
+        spacing_           = 1;
+        numPointsInPeriod_ = numPoints;
+    }
+    else
+    {
+        length_            = getIntervalLengthPeriodic(origin_, end, period_);
+        spacing_           = numPoints_ > 1 ? length_ / (numPoints_ - 1) : period_;
+        numPointsInPeriod_ = static_cast<int>(std::round(period_ / spacing_));
+    }
 }
 
 BiasGrid::BiasGrid(const std::vector<DimParams>& dimParams, const AwhDimParams* awhDimParams)
@@ -705,12 +820,20 @@ BiasGrid::BiasGrid(const std::vector<DimParams>& dimParams, const AwhDimParams*
     {
         double origin = dimParams[d].scaleUserInputToInternal(awhDimParams[d].origin);
         double end    = dimParams[d].scaleUserInputToInternal(awhDimParams[d].end);
-        period[d]     = dimParams[d].scaleUserInputToInternal(awhDimParams[d].period);
-        static_assert(c_numPointsPerSigma >= 1.0,
-                      "The number of points per sigma should be at least 1.0 to get a uniformly "
-                      "covering the reaction using Gaussians");
-        double pointDensity = std::sqrt(dimParams[d].betak) * c_numPointsPerSigma;
-        axis_.emplace_back(origin, end, period[d], pointDensity);
+        if (awhDimParams[d].eCoordProvider == eawhcoordproviderPULL)
+        {
+            period[d] = dimParams[d].scaleUserInputToInternal(awhDimParams[d].period);
+            static_assert(
+                    c_numPointsPerSigma >= 1.0,
+                    "The number of points per sigma should be at least 1.0 to get a uniformly "
+                    "covering the reaction using Gaussians");
+            double pointDensity = std::sqrt(dimParams[d].betak) * c_numPointsPerSigma;
+            axis_.emplace_back(origin, end, period[d], pointDensity);
+        }
+        else
+        {
+            axis_.emplace_back(origin, end, 0, dimParams[d].numFepLambdaStates, true);
+        }
         numPoints *= axis_[d].numPoints();
     }
 
@@ -743,9 +866,10 @@ void mapGridToDataGrid(std::vector<int>*    gridpointToDatapoint,
 
     /* Count the number of points for each dimension. Each dimension
        has its own stride. */
-    int              stride           = 1;
-    int              numPointsCounted = 0;
-    std::vector<int> numPoints(grid.numDimensions());
+    int               stride           = 1;
+    int               numPointsCounted = 0;
+    std::vector<int>  numPoints(grid.numDimensions());
+    std::vector<bool> isFepLambdaAxis(grid.numDimensions());
     for (int d = grid.numDimensions() - 1; d >= 0; d--)
     {
         int    numPointsInDim = 0;
@@ -764,7 +888,8 @@ void mapGridToDataGrid(std::vector<int>*    gridpointToDatapoint,
 
         numPointsCounted = (numPointsCounted == 0) ? numPointsInDim : numPointsCounted * numPointsInDim;
 
-        numPoints[d] = numPointsInDim;
+        numPoints[d]       = numPointsInDim;
+        isFepLambdaAxis[d] = grid.axis(d).isFepLambdaAxis();
     }
 
     if (numPointsCounted != numDataPoints)
@@ -781,7 +906,15 @@ void mapGridToDataGrid(std::vector<int>*    gridpointToDatapoint,
     /* The data grid has the data that was read and the properties of the AWH grid */
     for (int d = 0; d < grid.numDimensions(); d++)
     {
-        axis_.emplace_back(data[d][0], data[d][numDataPoints - 1], grid.axis(d).period(), numPoints[d]);
+        if (isFepLambdaAxis[d])
+        {
+            axis_.emplace_back(data[d][0], data[d][numDataPoints - 1], 0, numPoints[d], true);
+        }
+        else
+        {
+            axis_.emplace_back(data[d][0], data[d][numDataPoints - 1], grid.axis(d).period(),
+                               numPoints[d], false);
+        }
     }
 
     /* Map each grid point to a data point. No interpolation, just pick the nearest one.
index d86505ac771d14049dfd46c84311693ba906b4a0..9fd994daa7d23c5d1416ffa9663a4378ffbc161f 100644 (file)
@@ -55,6 +55,7 @@
 #define GMX_AWH_BIASGRID_H
 
 #include <memory>
+#include <optional>
 #include <string>
 
 #include "dimparams.h" /* This is needed for awh_dvec */
@@ -90,10 +91,11 @@ public:
      * \param[in] end              End value.
      * \param[in] period           Period, pass 0 if not periodic.
      * \param[in] numPoints        The number of points.
+     * \param[in] isFepLambdaAxis     If this axis is controlling lambda.
      */
-    GridAxis(double origin, double end, double period, int numPoints);
+    GridAxis(double origin, double end, double period, int numPoints, bool isFepLambdaAxis);
 
-    /*! \brief Returns if the axis has periodic boundaries.
+    /*! \brief Returns whether the axis has periodic boundaries.
      */
     bool isPeriodic() const { return period_ > 0; }
 
@@ -135,6 +137,10 @@ public:
      */
     int nearestIndex(double value) const;
 
+    /*! \brief Returns whether this axis is coupled to the free energy lambda state.
+     */
+    bool isFepLambdaAxis() const { return isFepLambdaAxis_; }
+
 private:
     double origin_;            /**< Interval start value */
     double length_;            /**< Interval length */
@@ -142,6 +148,7 @@ private:
     double spacing_;           /**< Point spacing */
     int    numPoints_;         /**< Number of points in the interval */
     int    numPointsInPeriod_; /**< Number of points in a period (0 if no periodicity) */
+    bool isFepLambdaAxis_; /**< If this axis is coupled to the system's free energy lambda state */
 };
 
 /*! \internal
@@ -186,7 +193,8 @@ public:
 
     /*! \brief Construct a grid using AWH input parameters.
      *
-     * \param[in] dimParams     Dimension parameters including the expected inverse variance of the coordinate living on the grid (determines the grid spacing).
+     * \param[in] dimParams     Dimension parameters including the expected inverse variance of the
+     * coordinate living on the grid (determines the grid spacing).
      * \param[in] awhDimParams  Dimension params from inputrec.
      */
     BiasGrid(const std::vector<DimParams>& dimParams, const AwhDimParams* awhDimParams);
@@ -237,6 +245,27 @@ public:
      */
     bool covers(const awh_dvec value) const;
 
+    /*! \brief Returns true if the grid has a free energy lambda state axis at all.
+     */
+    bool hasLambdaAxis() const
+    {
+        return std::any_of(std::begin(axis_), std::end(axis_),
+                           [](const auto& axis) { return axis.isFepLambdaAxis(); });
+    }
+
+    /*! \brief
+     * Returns the index of a free energy lambda state axis (there can be
+     * no more than one) if there is one.
+     */
+    std::optional<int> lambdaAxisIndex() const;
+
+    /*! \brief
+     * Returns the number of free energy lambda states in the grid (the number
+     * of points along a free energy lambda state axis) or 0 if there are no free energy
+     * lambda state axes.
+     */
+    int numFepLambdaStates() const;
+
 private:
     std::vector<GridPoint> point_; /**< Points on the grid */
     std::vector<GridAxis>  axis_;  /**< Axes, one for each dimension. */
@@ -335,6 +364,38 @@ void mapGridToDataGrid(std::vector<int>*    gridpointToDatapoint,
  */
 double getDeviationFromPointAlongGridAxis(const BiasGrid& grid, int dimIndex, int pointIndex, double value);
 
+/*! \brief
+ * Get the deviation from one point to another along one dimension in the grid.
+ *
+ * \param[in] grid        The grid.
+ * \param[in] dimIndex    Dimensional index in [0, ndim -1].
+ * \param[in] pointIndex1 Grid point index of the first point.
+ * \param[in] pointIndex2 Grid point index of the second point.
+ * \returns the deviation of the two points along the given axis.
+ */
+double getDeviationFromPointAlongGridAxis(const BiasGrid& grid, int dimIndex, int pointIndex1, int pointIndex2);
+
+/*! \brief
+ * Checks whether two points are along a free energy lambda state axis.
+ *
+ * \param[in] grid        The grid.
+ * \param[in] pointIndex1 Grid point index of the first point.
+ * \param[in] pointIndex2 Grid point index of the second point.
+ * \returns true if the two points are along a free energy lambda state axis.
+ */
+bool pointsAlongLambdaAxis(const BiasGrid& grid, int pointIndex1, int pointIndex2);
+
+/*! \brief
+ * Checks whether two points are different in the free energy lambda state
+ * dimension (if any).
+ *
+ * \param[in] grid        The grid.
+ * \param[in] pointIndex1 Grid point index of the first point.
+ * \param[in] pointIndex2 Grid point index of the second point.
+ * \returns true if the two points have different lambda values.
+ */
+bool pointsHaveDifferentLambda(const BiasGrid& grid, int pointIndex1, int pointIndex2);
+
 } // namespace gmx
 
 #endif
index d5afec9f5fae4a6098232c3cedfdfdfa974f1a7b..ab3b6474962ff4c977a2d1d8b321d74ee32aa6b9 100644 (file)
@@ -124,20 +124,28 @@ int64_t calcCheckCoveringInterval(const AwhParams&              awhParams,
     int minNumSamplesCover = 0;
     for (size_t d = 0; d < gridAxis.size(); d++)
     {
-        GMX_RELEASE_ASSERT(dimParams[d].betak > 0,
-                           "Inverse temperature (beta) and force constant (k) should be positive.");
-        double sigma = 1.0 / std::sqrt(dimParams[d].betak);
-
-        /* The additional sample is here because to cover a discretized
-           axis of length sigma one needs two samples, one for each
-           end point. */
-        GMX_RELEASE_ASSERT(gridAxis[d].length() / sigma < std::numeric_limits<int>::max(),
-                           "The axis length in units of sigma should fit in an int");
-        int numSamplesCover = static_cast<int>(std::ceil(gridAxis[d].length() / sigma)) + 1;
-
+        int numSamplesCover;
+        if (!dimParams[d].isFepLambdaDimension())
+        {
+            GMX_RELEASE_ASSERT(
+                    dimParams[d].betak > 0,
+                    "Inverse temperature (beta) and force constant (k) should be positive.");
+            double sigma = 1.0 / std::sqrt(dimParams[d].betak);
+
+            /* The additional sample is here because to cover a discretized
+            axis of length sigma one needs two samples, one for each
+            end point. */
+            GMX_RELEASE_ASSERT(gridAxis[d].length() / sigma < std::numeric_limits<int>::max(),
+                               "The axis length in units of sigma should fit in an int");
+            numSamplesCover = static_cast<int>(std::ceil(gridAxis[d].length() / sigma)) + 1;
+        }
+        else
+        {
+            numSamplesCover = dimParams[d].numFepLambdaStates;
+        }
         /* The minimum number of samples needed for simultaneously
-           covering all axes is limited by the axis requiring most
-           samples. */
+        covering all axes is limited by the axis requiring most
+        samples. */
         minNumSamplesCover = std::max(minNumSamplesCover, numSamplesCover);
     }
 
@@ -255,12 +263,16 @@ double getInitialHistogramSizeEstimate(const std::vector<DimParams>& dimParams,
     std::vector<double> x;
     for (size_t d = 0; d < gridAxis.size(); d++)
     {
-        double axisLength = gridAxis[d].length();
+        double axisLength = gridAxis[d].isFepLambdaAxis() ? 1.0 : gridAxis[d].length();
         if (axisLength > 0)
         {
             crossingTime += awhBiasParams.dimParams[d].diffusion / (axisLength * axisLength);
             /* The sigma of the Gaussian distribution in the umbrella */
-            double sigma = 1. / std::sqrt(dimParams[d].betak);
+            double sigma = 1.;
+            if (dimParams[d].betak != 0)
+            {
+                sigma /= std::sqrt(dimParams[d].betak);
+            }
             x.push_back(sigma / axisLength);
         }
     }
@@ -334,6 +346,8 @@ BiasParams::BiasParams(const AwhParams&              awhParams,
 
     for (int d = 0; d < awhBiasParams.ndim; d++)
     {
+        /* The spacing in FEP dimensions is 1. The calculated coverRadius will be in lambda states
+         * (cf points in other dimensions). */
         double coverRadiusInNm = 0.5 * awhBiasParams.dimParams[d].coverDiameter;
         double spacing         = gridAxis[d].spacing();
         coverRadius_[d] = spacing > 0 ? static_cast<int>(std::round(coverRadiusInNm / spacing)) : 0;
index 812963c27a508386a9cc4dd1713d223adcd4c0ac..6b24e2bd094444fcab17b68bb444b8ac262f88a7 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
index c63749e889b35327d51193b0039ffa2493f870ee..24dec6dca849b0f8e883c1f10b4c717f8bda88fd 100644 (file)
@@ -53,6 +53,7 @@
 #include <cstring>
 
 #include <algorithm>
+#include <optional>
 
 #include "gromacs/fileio/gmxfio.h"
 #include "gromacs/fileio/xvgr.h"
@@ -207,12 +208,15 @@ double freeEnergyMinimumValue(gmx::ArrayRef<const PointState> pointState)
  * w(point|value) = exp(bias(point) - U(value,point)),
  * where U is a harmonic umbrella potential.
  *
- * \param[in] dimParams     The bias dimensions parameters
- * \param[in] points        The point state.
- * \param[in] grid          The grid.
- * \param[in] pointIndex    Point to evaluate probability weight for.
- * \param[in] pointBias     Bias for the point (as a log weight).
- * \param[in] value         Coordinate value.
+ * \param[in] dimParams              The bias dimensions parameters
+ * \param[in] points                 The point state.
+ * \param[in] grid                   The grid.
+ * \param[in] pointIndex             Point to evaluate probability weight for.
+ * \param[in] pointBias              Bias for the point (as a log weight).
+ * \param[in] value                  Coordinate value.
+ * \param[in] neighborLambdaEnergies The energy of the system in neighboring lambdas states. Can be
+ * empty when there are no free energy lambda state dimensions.
+ * \param[in] gridpointIndex         The index of the current grid point.
  * \returns the log of the biased probability weight.
  */
 double biasedLogWeightFromPoint(const std::vector<DimParams>&  dimParams,
@@ -220,11 +224,13 @@ double biasedLogWeightFromPoint(const std::vector<DimParams>&  dimParams,
                                 const BiasGrid&                grid,
                                 int                            pointIndex,
                                 double                         pointBias,
-                                const awh_dvec                 value)
+                                const awh_dvec                 value,
+                                gmx::ArrayRef<const double>    neighborLambdaEnergies,
+                                int                            gridpointIndex)
 {
     double logWeight = detail::c_largeNegativeExponent;
 
-    /* Only points in the target reigon have non-zero weight */
+    /* Only points in the target region have non-zero weight */
     if (points[pointIndex].inTargetRegion())
     {
         logWeight = pointBias;
@@ -232,14 +238,62 @@ double biasedLogWeightFromPoint(const std::vector<DimParams>&  dimParams,
         /* Add potential for all parameter dimensions */
         for (size_t d = 0; d < dimParams.size(); d++)
         {
-            double dev = getDeviationFromPointAlongGridAxis(grid, d, pointIndex, value[d]);
-            logWeight -= 0.5 * dimParams[d].betak * dev * dev;
+            if (dimParams[d].isFepLambdaDimension())
+            {
+                /* If this is not a sampling step or if this function is called from
+                 * calcConvolvedBias(), when writing energy subblocks, neighborLambdaEnergies will
+                 * be empty. No convolution is required along the lambda dimension. */
+                if (!neighborLambdaEnergies.empty())
+                {
+                    const int pointLambdaIndex     = grid.point(pointIndex).coordValue[d];
+                    const int gridpointLambdaIndex = grid.point(gridpointIndex).coordValue[d];
+                    logWeight -= dimParams[d].beta
+                                 * (neighborLambdaEnergies[pointLambdaIndex]
+                                    - neighborLambdaEnergies[gridpointLambdaIndex]);
+                }
+            }
+            else
+            {
+                double dev = getDeviationFromPointAlongGridAxis(grid, d, pointIndex, value[d]);
+                logWeight -= 0.5 * dimParams[d].betak * dev * dev;
+            }
         }
     }
-
     return logWeight;
 }
 
+/*! \brief
+ * Calculates the marginal distribution (marginal probability) for each value along
+ * a free energy lambda axis.
+ * The marginal distribution of one coordinate dimension value is the sum of the probability
+ * distribution of all values (herein all neighbor values) with the same value in the dimension
+ * of interest.
+ * \param[in] grid               The bias grid.
+ * \param[in] neighbors          The points to use for the calculation of the marginal distribution.
+ * \param[in] probWeightNeighbor Probability weights of the neighbors.
+ * \returns The calculated marginal distribution in a 1D array with
+ * as many elements as there are points along the axis of interest.
+ */
+std::vector<double> calculateFELambdaMarginalDistribution(const BiasGrid&          grid,
+                                                          gmx::ArrayRef<const int> neighbors,
+                                                          gmx::ArrayRef<const double> probWeightNeighbor)
+{
+    const std::optional<int> lambdaAxisIndex = grid.lambdaAxisIndex();
+    GMX_RELEASE_ASSERT(lambdaAxisIndex,
+                       "There must be a free energy lambda axis in order to calculate the free "
+                       "energy lambda marginal distribution.");
+    const int           numFepLambdaStates = grid.numFepLambdaStates();
+    std::vector<double> lambdaMarginalDistribution(numFepLambdaStates, 0);
+
+    for (size_t i = 0; i < neighbors.size(); i++)
+    {
+        const int neighbor    = neighbors[i];
+        const int lambdaState = grid.point(neighbor).coordValue[lambdaAxisIndex.value()];
+        lambdaMarginalDistribution[lambdaState] += probWeightNeighbor[i];
+    }
+    return lambdaMarginalDistribution;
+}
+
 } // namespace
 
 void BiasState::calcConvolvedPmf(const std::vector<DimParams>& dimParams,
@@ -267,7 +321,7 @@ void BiasState::calcConvolvedPmf(const std::vector<DimParams>& dimParams,
                Note that this function only adds point within the target > 0 region.
                Sum weights, take the logarithm last to get the free energy. */
             double logWeight = biasedLogWeightFromPoint(dimParams, points_, grid, neighbor,
-                                                        biasNeighbor, point.coordValue);
+                                                        biasNeighbor, point.coordValue, {}, m);
             freeEnergyWeights += std::exp(logWeight);
         }
 
@@ -416,19 +470,31 @@ int BiasState::warnForHistogramAnomalies(const BiasGrid& grid, int biasIndex, do
 double BiasState::calcUmbrellaForceAndPotential(const std::vector<DimParams>& dimParams,
                                                 const BiasGrid&               grid,
                                                 int                           point,
+                                                ArrayRef<const double>        neighborLambdaDhdl,
                                                 gmx::ArrayRef<double>         force) const
 {
     double potential = 0;
     for (size_t d = 0; d < dimParams.size(); d++)
     {
-        double deviation =
-                getDeviationFromPointAlongGridAxis(grid, d, point, coordState_.coordValue()[d]);
-
-        double k = dimParams[d].k;
+        if (dimParams[d].isFepLambdaDimension())
+        {
+            if (!neighborLambdaDhdl.empty())
+            {
+                const int coordpointLambdaIndex = grid.point(point).coordValue[d];
+                force[d]                        = neighborLambdaDhdl[coordpointLambdaIndex];
+                /* The potential should not be affected by the lambda dimension. */
+            }
+        }
+        else
+        {
+            double deviation =
+                    getDeviationFromPointAlongGridAxis(grid, d, point, coordState_.coordValue()[d]);
+            double k = dimParams[d].k;
 
-        /* Force from harmonic potential 0.5*k*dev^2 */
-        force[d] = -k * deviation;
-        potential += 0.5 * k * deviation * deviation;
+            /* Force from harmonic potential 0.5*k*dev^2 */
+            force[d] = -k * deviation;
+            potential += 0.5 * k * deviation * deviation;
+        }
     }
 
     return potential;
@@ -437,6 +503,7 @@ double BiasState::calcUmbrellaForceAndPotential(const std::vector<DimParams>& di
 void BiasState::calcConvolvedForce(const std::vector<DimParams>& dimParams,
                                    const BiasGrid&               grid,
                                    gmx::ArrayRef<const double>   probWeightNeighbor,
+                                   ArrayRef<const double>        neighborLambdaDhdl,
                                    gmx::ArrayRef<double>         forceWorkBuffer,
                                    gmx::ArrayRef<double>         force) const
 {
@@ -454,7 +521,7 @@ void BiasState::calcConvolvedForce(const std::vector<DimParams>& dimParams,
         int    indexNeighbor  = neighbor[n];
 
         /* Get the umbrella force from this point. The returned potential is ignored here. */
-        calcUmbrellaForceAndPotential(dimParams, grid, indexNeighbor, forceFromNeighbor);
+        calcUmbrellaForceAndPotential(dimParams, grid, indexNeighbor, neighborLambdaDhdl, forceFromNeighbor);
 
         /* Add the weighted umbrella force to the convolved force. */
         for (size_t d = 0; d < dimParams.size(); d++)
@@ -467,18 +534,25 @@ void BiasState::calcConvolvedForce(const std::vector<DimParams>& dimParams,
 double BiasState::moveUmbrella(const std::vector<DimParams>& dimParams,
                                const BiasGrid&               grid,
                                gmx::ArrayRef<const double>   probWeightNeighbor,
+                               ArrayRef<const double>        neighborLambdaDhdl,
                                gmx::ArrayRef<double>         biasForce,
                                int64_t                       step,
                                int64_t                       seed,
-                               int                           indexSeed)
+                               int                           indexSeed,
+                               bool                          onlySampleUmbrellaGridpoint)
 {
     /* Generate and set a new coordinate reference value */
     coordState_.sampleUmbrellaGridpoint(grid, coordState_.gridpointIndex(), probWeightNeighbor,
                                         step, seed, indexSeed);
 
+    if (onlySampleUmbrellaGridpoint)
+    {
+        return 0;
+    }
+
     std::vector<double> newForce(dimParams.size());
-    double              newPotential =
-            calcUmbrellaForceAndPotential(dimParams, grid, coordState_.umbrellaGridpoint(), newForce);
+    double              newPotential = calcUmbrellaForceAndPotential(
+            dimParams, grid, coordState_.umbrellaGridpoint(), neighborLambdaDhdl, newForce);
 
     /*  A modification of the reference value at time t will lead to a different
         force over t-dt/2 to t and over t to t+dt/2. For high switching rates
@@ -923,7 +997,17 @@ bool BiasState::isSamplingRegionCovered(const BiasParams&             params,
     double weightThreshold = 1;
     for (int d = 0; d < grid.numDimensions(); d++)
     {
-        weightThreshold *= grid.axis(d).spacing() * std::sqrt(dimParams[d].betak * 0.5 * M_1_PI);
+        if (grid.axis(d).isFepLambdaAxis())
+        {
+            /* TODO: Verify that a threshold of 1.0 is OK. With a very high sample weight 1.0 can be
+             * reached quickly even in regions with low probability. Should the sample weight be
+             * taken into account here? */
+            weightThreshold *= 1.0;
+        }
+        else
+        {
+            weightThreshold *= grid.axis(d).spacing() * std::sqrt(dimParams[d].betak * 0.5 * M_1_PI);
+        }
     }
 
     /* Project the sampling weights onto each dimension */
@@ -1154,6 +1238,7 @@ void BiasState::updateFreeEnergyAndAddSamplesToHistogram(const std::vector<DimPa
 
 double BiasState::updateProbabilityWeightsAndConvolvedBias(const std::vector<DimParams>& dimParams,
                                                            const BiasGrid&               grid,
+                                                           gmx::ArrayRef<const double> neighborLambdaEnergies,
                                                            std::vector<double, AlignedAllocator<double>>* weight) const
 {
     /* Only neighbors of the current coordinate value will have a non-negligible chance of getting sampled */
@@ -1179,9 +1264,9 @@ double BiasState::updateProbabilityWeightsAndConvolvedBias(const std::vector<Dim
             if (n < neighbors.size())
             {
                 const int neighbor = neighbors[n];
-                (*weight)[n] =
-                        biasedLogWeightFromPoint(dimParams, points_, grid, neighbor,
-                                                 points_[neighbor].bias(), coordState_.coordValue());
+                (*weight)[n]       = biasedLogWeightFromPoint(
+                        dimParams, points_, grid, neighbor, points_[neighbor].bias(),
+                        coordState_.coordValue(), neighborLambdaEnergies, coordState_.gridpointIndex());
             }
             else
             {
@@ -1201,6 +1286,30 @@ double BiasState::updateProbabilityWeightsAndConvolvedBias(const std::vector<Dim
 
     /* Normalize probabilities to sum to 1 */
     double invWeightSum = 1 / weightSum;
+
+    /* When there is a free energy lambda state axis remove the convolved contributions along that
+     * axis from the total bias. This must be done after calculating invWeightSum (since weightSum
+     * will be modified), but before normalizing the weights (below). */
+    if (grid.hasLambdaAxis())
+    {
+        /* If there is only one axis the bias will not be convolved in any dimension. */
+        if (grid.axis().size() == 1)
+        {
+            weightSum = gmx::exp(points_[coordState_.gridpointIndex()].bias());
+        }
+        else
+        {
+            for (size_t i = 0; i < neighbors.size(); i++)
+            {
+                const int neighbor = neighbors[i];
+                if (pointsHaveDifferentLambda(grid, coordState_.gridpointIndex(), neighbor))
+                {
+                    weightSum -= weightData[i];
+                }
+            }
+        }
+    }
+
     for (double& w : *weight)
     {
         w *= invWeightSum;
@@ -1221,8 +1330,13 @@ double BiasState::calcConvolvedBias(const std::vector<DimParams>& dimParams,
     double weightSum = 0;
     for (int neighbor : gridPoint.neighbor)
     {
+        /* No convolution is required along the lambda dimension. */
+        if (pointsHaveDifferentLambda(grid, point, neighbor))
+        {
+            continue;
+        }
         double logWeight = biasedLogWeightFromPoint(dimParams, points_, grid, neighbor,
-                                                    points_[neighbor].bias(), coordValue);
+                                                    points_[neighbor].bias(), coordValue, {}, point);
         weightSum += std::exp(logWeight);
     }
 
@@ -1284,9 +1398,10 @@ void BiasState::sampleProbabilityWeights(const BiasGrid& grid, gmx::ArrayRef<con
     }
 }
 
-void BiasState::sampleCoordAndPmf(const BiasGrid&             grid,
-                                  gmx::ArrayRef<const double> probWeightNeighbor,
-                                  double                      convolvedBias)
+void BiasState::sampleCoordAndPmf(const std::vector<DimParams>& dimParams,
+                                  const BiasGrid&               grid,
+                                  gmx::ArrayRef<const double>   probWeightNeighbor,
+                                  double                        convolvedBias)
 {
     /* Sampling-based deconvolution extracting the PMF.
      * Update the PMF histogram with the current coordinate value.
@@ -1301,13 +1416,60 @@ void BiasState::sampleCoordAndPmf(const BiasGrid&             grid,
      * it works (mainly because how the PMF histogram is rescaled).
      */
 
-    /* Only save coordinate data that is in range (the given index is always
-     * in range even if the coordinate value is not).
-     */
-    if (grid.covers(coordState_.coordValue()))
+    const int                gridPointIndex  = coordState_.gridpointIndex();
+    const std::optional<int> lambdaAxisIndex = grid.lambdaAxisIndex();
+
+    /* Update the PMF of points along a lambda axis with their bias. */
+    if (lambdaAxisIndex)
     {
-        /* Save PMF sum and keep a histogram of the sampled coordinate values */
-        points_[coordState_.gridpointIndex()].samplePmf(convolvedBias);
+        const std::vector<int>& neighbors = grid.point(gridPointIndex).neighbor;
+
+        std::vector<double> lambdaMarginalDistribution =
+                calculateFELambdaMarginalDistribution(grid, neighbors, probWeightNeighbor);
+
+        awh_dvec coordValueAlongLambda = { coordState_.coordValue()[0], coordState_.coordValue()[1],
+                                           coordState_.coordValue()[2], coordState_.coordValue()[3] };
+        for (size_t i = 0; i < neighbors.size(); i++)
+        {
+            const int neighbor = neighbors[i];
+            double    bias;
+            if (pointsAlongLambdaAxis(grid, gridPointIndex, neighbor))
+            {
+                const double neighborLambda = grid.point(neighbor).coordValue[lambdaAxisIndex.value()];
+                if (neighbor == gridPointIndex)
+                {
+                    bias = convolvedBias;
+                }
+                else
+                {
+                    coordValueAlongLambda[lambdaAxisIndex.value()] = neighborLambda;
+                    bias = calcConvolvedBias(dimParams, grid, coordValueAlongLambda);
+                }
+
+                const double probWeight   = lambdaMarginalDistribution[neighborLambda];
+                const double weightedBias = bias - std::log(probWeight);
+
+                if (neighbor == gridPointIndex && grid.covers(coordState_.coordValue()))
+                {
+                    points_[neighbor].samplePmf(weightedBias);
+                }
+                else
+                {
+                    points_[neighbor].updatePmfUnvisited(weightedBias);
+                }
+            }
+        }
+    }
+    else
+    {
+        /* Only save coordinate data that is in range (the given index is always
+         * in range even if the coordinate value is not).
+         */
+        if (grid.covers(coordState_.coordValue()))
+        {
+            /* Save PMF sum and keep a histogram of the sampled coordinate values */
+            points_[gridPointIndex].samplePmf(convolvedBias);
+        }
     }
 
     /* Save probability weights for the update */
index c086a2ffa8a915d2403f07e847dd81bf6c296a86..622f96f12c464a194402d5409cddf3c0743f24b8 100644 (file)
@@ -215,12 +215,19 @@ public:
      * \param[in]     dimParams  The bias dimensions parameters.
      * \param[in]     grid       The grid.
      * \param[in]     point      Point for umbrella center.
+     * \param[in]     neighborLambdaDhdl     An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
      * \param[in,out] force      Force vector to set.
      * Returns the umbrella potential.
      */
     double calcUmbrellaForceAndPotential(const std::vector<DimParams>& dimParams,
                                          const BiasGrid&               grid,
                                          int                           point,
+                                         ArrayRef<const double>        neighborLambdaDhdl,
                                          gmx::ArrayRef<double>         force) const;
 
     /*! \brief
@@ -232,12 +239,19 @@ public:
      * \param[in]     dimParams           The bias dimensions parameters.
      * \param[in]     grid                The grid.
      * \param[in]     probWeightNeighbor  Probability weights of the neighbors.
+     * \param[in]     neighborLambdaDhdl     An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
      * \param[in]     forceWorkBuffer     Force work buffer, values only used internally.
      * \param[in,out] force               Bias force vector to set.
      */
     void calcConvolvedForce(const std::vector<DimParams>& dimParams,
                             const BiasGrid&               grid,
                             gmx::ArrayRef<const double>   probWeightNeighbor,
+                            ArrayRef<const double>        neighborLambdaDhdl,
                             gmx::ArrayRef<double>         forceWorkBuffer,
                             gmx::ArrayRef<double>         force) const;
 
@@ -250,22 +264,32 @@ public:
      * This function should only be called when the bias force is not being convolved.
      * It is assumed that the probability distribution has been updated.
      *
-     * \param[in] dimParams           Bias dimension parameters.
-     * \param[in] grid                The grid.
-     * \param[in] probWeightNeighbor  Probability weights of the neighbors.
-     * \param[in,out] biasForce       The AWH bias force.
-     * \param[in] step                Step number, needed for the random number generator.
-     * \param[in] seed                Random seed.
-     * \param[in] indexSeed           Second random seed, should be the bias Index.
+     * \param[in] dimParams                   Bias dimension parameters.
+     * \param[in] grid                        The grid.
+     * \param[in] probWeightNeighbor          Probability weights of the neighbors.
+     * \param[in] neighborLambdaDhdl          An array containing the dHdL at the neighboring lambda
+     * points. The array is of length numLambdas+1, where numLambdas is the number of free
+     * energy lambda states. Element 0 in the array is the dHdL
+     * of the current state and elements 1..numLambdas contain the dHdL of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
+     * \param[in,out] biasForce               The AWH bias force.
+     * \param[in] step                        Step number, needed for the random number generator.
+     * \param[in] seed                        Random seed.
+     * \param[in] indexSeed                   Second random seed, should be the bias Index.
+     * \param[in] onlySampleUmbrellaGridpoint Only sample the umbrella gridpoint without calculating
+     * force and potential.
      * \returns the new potential value.
      */
     double moveUmbrella(const std::vector<DimParams>& dimParams,
                         const BiasGrid&               grid,
                         gmx::ArrayRef<const double>   probWeightNeighbor,
+                        ArrayRef<const double>        neighborLambdaDhdl,
                         gmx::ArrayRef<double>         biasForce,
                         int64_t                       step,
                         int64_t                       seed,
-                        int                           indexSeed);
+                        int                           indexSeed,
+                        bool                          onlySampleUmbrellaGridpoint);
 
 private:
     /*! \brief
@@ -413,14 +437,21 @@ public:
      * it here since this saves us from doing extra exponential function evaluations
      * later on.
      *
-     * \param[in]  dimParams  The bias dimensions parameters
-     * \param[in]  grid       The grid.
-     * \param[out] weight     Probability weights of the neighbors, SIMD aligned.
+     * \param[in]  dimParams              The bias dimensions parameters
+     * \param[in]  grid                   The grid.
+     * \param[in]  neighborLambdaEnergies An array containing the energy of the system
+     * in neighboring lambdas. The array is of length numLambdas+1, where numLambdas is
+     * the number of free energy lambda states. Element 0 in the array is the energy
+     * of the current state and elements 1..numLambdas contain the energy of the system in the
+     * neighboring lambda states (also including the current state). When there are no free
+     * energy lambda state dimensions this can be empty.
+     * \param[out] weight                 Probability weights of the neighbors, SIMD aligned.
      * \returns the convolved bias.
      */
 
     double updateProbabilityWeightsAndConvolvedBias(const std::vector<DimParams>& dimParams,
                                                     const BiasGrid&               grid,
+                                                    ArrayRef<const double> neighborLambdaEnergies,
                                                     std::vector<double, AlignedAllocator<double>>* weight) const;
 
     /*! \brief
@@ -441,13 +472,15 @@ public:
      * These samples do not affect the (future) sampling and are thus
      * pure observables. Statisics of these are stored in the energy file.
      *
+     * \param[in] dimParams           The bias dimensions parameters
      * \param[in] grid                The grid.
      * \param[in] probWeightNeighbor  Probability weights of the neighbors.
      * \param[in] convolvedBias       The convolved bias.
      */
-    void sampleCoordAndPmf(const BiasGrid&             grid,
-                           gmx::ArrayRef<const double> probWeightNeighbor,
-                           double                      convolvedBias);
+    void sampleCoordAndPmf(const std::vector<DimParams>& dimParams,
+                           const BiasGrid&               grid,
+                           gmx::ArrayRef<const double>   probWeightNeighbor,
+                           double                        convolvedBias);
     /*! \brief
      * Calculates the convolved bias for a given coordinate value.
      *
@@ -494,6 +527,10 @@ public:
      */
     inline HistogramSize histogramSize() const { return histogramSize_; }
 
+    /*! \brief Sets the umbrella grid point to the current grid point
+     */
+    void setUmbrellaGridpointToGridpoint() { coordState_.setUmbrellaGridpointToGridpoint(); }
+
     /* Data members */
 private:
     CoordState coordState_; /**< The Current coordinate state */
index 40b38da9538e21b3cad608eb1d29faa8608d525d..6de883221315b2ab4cbd70adfc0653bffbc34a88 100644 (file)
@@ -194,4 +194,9 @@ void CoordState::restoreFromHistory(const AwhBiasStateHistory& stateHistory)
     umbrellaGridpoint_ = stateHistory.umbrellaGridpoint;
 }
 
+void CoordState::setUmbrellaGridpointToGridpoint()
+{
+    umbrellaGridpoint_ = gridpointIndex_;
+}
+
 } // namespace gmx
index f924ef449d592156fcbb9a17e4eb58007d344867..f38ce86de98e2c27f0216138d849397f47654859 100644 (file)
@@ -126,6 +126,10 @@ public:
      */
     int umbrellaGridpoint() const { return umbrellaGridpoint_; }
 
+    /*! \brief Sets the umbrella grid point to the current grid point
+     */
+    void setUmbrellaGridpointToGridpoint();
+
 private:
     awh_dvec coordValue_;        /**< Current coordinate value in (nm or rad) */
     int      gridpointIndex_;    /**< The grid point index for the current coordinate value */
index 8478d19ec793e0f3fec8f2ee11574015af69bc51..41f23ac55a3d4ac54d08d327a111cb00921eb3f3 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -73,14 +73,33 @@ struct DimParams
     /*! \brief
      * Constructor.
      *
-     * \param[in] conversionFactor  Conversion factor from user coordinate units to bias internal units (=DEG2RAD for angles).
+     * \param[in] conversionFactor  Conversion factor from user coordinate units to bias internal
+     * units (=DEG2RAD for angles).
      * \param[in] forceConstant     The harmonic force constant.
      * \param[in] beta              1/(k_B T).
      */
     DimParams(double conversionFactor, double forceConstant, double beta) :
         k(forceConstant),
+        beta(beta),
         betak(beta * forceConstant),
-        userCoordUnitsToInternal(conversionFactor)
+        userCoordUnitsToInternal(conversionFactor),
+        numFepLambdaStates(0)
+    {
+    }
+
+    /*! \brief
+     * Constructor for lambda dimension.
+     *
+     * \param[in] forceConstant       The harmonic force constant.
+     * \param[in] beta                1/(k_B T).
+     * \param[in] numFepLambdaStates  Number of lambda states in the system.
+     */
+    DimParams(double forceConstant, double beta, int numFepLambdaStates) :
+        k(forceConstant),
+        beta(beta),
+        betak(beta * forceConstant),
+        userCoordUnitsToInternal(1.0),
+        numFepLambdaStates(numFepLambdaStates)
     {
     }
 
@@ -98,9 +117,17 @@ struct DimParams
      */
     double scaleUserInputToInternal(double value) const { return value * userCoordUnitsToInternal; }
 
+    /*! \brief Returns if this dimension has lambda states and thereby is a dimension coupled to lambda.
+     *
+     *  \returns true if this dimension is related to the lambda state of the system.
+     */
+    bool isFepLambdaDimension() const { return numFepLambdaStates > 0; }
+
     const double k;     /**< Force constant (kJ/mol/nm^2) for each coordinate dimension. */
+    const double beta;  /**< 1/(k_B T). */
     const double betak; /**< Inverse variance (1/nm^2) for each coordinate dimension. */
     const double userCoordUnitsToInternal; /**< Conversion factor coordinate units. */
+    const double numFepLambdaStates;       /**< Number of lambda points in this dimension. */
 };
 
 } // namespace gmx
index 5878860cb85cec96d983f9472d7ee709e7c4cd5a..2266fdcf209d90b5942e4eb9ef4ca863bc9b1a67 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2016,2017,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -74,4 +74,12 @@ void PointState::samplePmf(double convolvedBias)
     }
 }
 
+void PointState::updatePmfUnvisited(double bias)
+{
+    if (inTargetRegion())
+    {
+        logPmfSum_ = expSum(logPmfSum_, -bias);
+    }
+}
+
 } // namespace gmx
index a66a6371c242e520cb119564e35efb8b99218bba..a893140b6b90249bf24bdf0c9525de2c7b5cf52e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2015,2016,2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2015,2016,2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -322,6 +322,13 @@ public:
      */
     void samplePmf(double convolvedBias);
 
+    /*! \brief Update the PMF histogram of unvisited coordinate values
+     * (along a lambda axis)
+     *
+     * \param[in] bias  The bias to update with.
+     */
+    void updatePmfUnvisited(double bias);
+
 private:
     /*! \brief Update the free energy estimate of a point.
      *
index 96811105626f01e9ed3fe6c927c6390fcb05d89a..0eb30ee0f8fbe0564a0d35a77ff9ef9eb0e6db58 100644 (file)
@@ -52,6 +52,7 @@
 #include "gromacs/pbcutil/pbc.h"
 #include "gromacs/pulling/pull.h"
 #include "gromacs/random/seed.h"
+#include "gromacs/topology/mtop_util.h"
 #include "gromacs/utility/cstringutil.h"
 #include "gromacs/utility/fatalerror.h"
 #include "gromacs/utility/smalloc.h"
@@ -70,7 +71,203 @@ const char* eawhgrowth_names[eawhgrowthNR + 1] = { "exp-linear", "linear", nullp
 
 const char* eawhpotential_names[eawhpotentialNR + 1] = { "convolved", "umbrella", nullptr };
 
-const char* eawhcoordprovider_names[eawhcoordproviderNR + 1] = { "pull", nullptr };
+const char* eawhcoordprovider_names[eawhcoordproviderNR + 1] = { "pull", "fep-lambda", nullptr };
+
+namespace
+{
+/*! \brief
+ * Check the parameters of an AWH bias pull dimension.
+ *
+ * \param[in] prefix         Prefix for dimension parameters.
+ * \param[in,out] dimParams  AWH dimensional parameters.
+ * \param[in] pull_params    Pull parameters.
+ * \param[in,out] wi         Struct for bookeeping warnings.
+ */
+void checkPullDimParams(const std::string&   prefix,
+                        AwhDimParams*        dimParams,
+                        const pull_params_t* pull_params,
+                        warninp_t            wi)
+{
+    if (dimParams->coordIndex < 0)
+    {
+        gmx_fatal(FARGS,
+                  "Failed to read a valid coordinate index for %s-coord-index. "
+                  "Note that the pull coordinate indexing starts at 1.",
+                  prefix.c_str());
+    }
+    if (dimParams->coordIndex >= pull_params->ncoord)
+    {
+        gmx_fatal(FARGS,
+                  "The given AWH coordinate index (%d) is larger than the number of pull "
+                  "coordinates (%d)",
+                  dimParams->coordIndex + 1, pull_params->ncoord);
+    }
+    if (pull_params->coord[dimParams->coordIndex].rate != 0)
+    {
+        auto message = formatString(
+                "Setting pull-coord%d-rate (%g) is incompatible with AWH biasing this coordinate",
+                dimParams->coordIndex + 1, pull_params->coord[dimParams->coordIndex].rate);
+        warning_error(wi, message);
+    }
+
+    if (gmx_within_tol(dimParams->end - dimParams->origin, 0, GMX_REAL_EPS))
+    {
+        auto message = formatString(
+                "The given interval length given by %s-start (%g) and %s-end (%g) is zero. "
+                "This will result in only one point along this axis in the coordinate value grid.",
+                prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end);
+        warning(wi, message);
+    }
+
+    if (dimParams->forceConstant <= 0)
+    {
+        warning_error(wi, "The force AWH bias force constant should be > 0");
+    }
+
+    /* Grid params for each axis */
+    int eGeom = pull_params->coord[dimParams->coordIndex].eGeom;
+
+    /* Check that the requested interval is in allowed range */
+    if (eGeom == epullgDIST)
+    {
+        if (dimParams->origin < 0 || dimParams->end < 0)
+        {
+            gmx_fatal(FARGS,
+                      "%s-start (%g) or %s-end (%g) set to a negative value. With pull "
+                      "geometry distance coordinate values are non-negative. "
+                      "Perhaps you want to use geometry %s instead?",
+                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
+                      EPULLGEOM(epullgDIR));
+        }
+    }
+    else if (eGeom == epullgANGLE || eGeom == epullgANGLEAXIS)
+    {
+        if (dimParams->origin < 0 || dimParams->end > 180)
+        {
+            gmx_fatal(FARGS,
+                      "%s-start (%g) and %s-end (%g) are outside of the allowed range "
+                      "0 to 180 deg for pull geometries %s and %s ",
+                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
+                      EPULLGEOM(epullgANGLE), EPULLGEOM(epullgANGLEAXIS));
+        }
+    }
+    else if (eGeom == epullgDIHEDRAL)
+    {
+        if (dimParams->origin < -180 || dimParams->end > 180)
+        {
+            gmx_fatal(FARGS,
+                      "%s-start (%g) and %s-end (%g) are outside of the allowed range "
+                      "-180 to 180 deg for pull geometry %s. ",
+                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
+                      EPULLGEOM(epullgDIHEDRAL));
+        }
+    }
+}
+
+/*! \brief
+ * Check parameters of an AWH bias in a free energy lambda state dimension.
+ *
+ * \param[in] prefix         Prefix for dimension parameters.
+ * \param[in,out] dimParams  AWH dimensional parameters.
+ * \param[in] lambdaParams   The free energy lambda related parameters.
+ * \param[in] efep           This is the type of FEP calculation (efep enumerator).
+ * \param[in,out] wi         Struct for bookeeping warnings.
+ */
+void checkFepLambdaDimParams(const std::string&  prefix,
+                             const AwhDimParams* dimParams,
+                             const t_lambda*     lambdaParams,
+                             const int           efep,
+                             warninp_t           wi)
+{
+    std::string opt;
+
+    if (!lambdaParams)
+    {
+        gmx_fatal(FARGS,
+                  "There must be free energy input if using AWH to steer the free energy lambda "
+                  "state.");
+    }
+
+    if (lambdaParams->lambda_neighbors != -1)
+    {
+        gmx_fatal(FARGS,
+                  "When running AWH coupled to the free energy lambda state all lambda states "
+                  "should be used as neighbors in order to get correct probabilities, i.e. "
+                  "calc-lambda-neighbors (%d) must be %d.",
+                  lambdaParams->lambda_neighbors, -1);
+    }
+
+    if (efep == efepSLOWGROWTH || lambdaParams->delta_lambda != 0)
+    {
+        gmx_fatal(FARGS,
+                  "AWH coupled to the free energy lambda state is not compatible with slow-growth "
+                  "and delta-lambda must be 0.");
+    }
+
+    if (efep == efepEXPANDED)
+    {
+        gmx_fatal(FARGS,
+                  "AWH is not treated like other expanded ensemble methods. Do not use expanded.");
+    }
+
+    if (dimParams->origin < 0)
+    {
+        opt = prefix + "-start";
+        gmx_fatal(FARGS,
+                  "When running AWH coupled to the free energy lambda state the lower lambda state "
+                  "for AWH, %s (%.0f), must be >= 0.",
+                  opt.c_str(), dimParams->origin);
+    }
+    if (dimParams->end >= lambdaParams->n_lambda)
+    {
+        opt = prefix + "-end";
+        gmx_fatal(FARGS,
+                  "When running AWH coupled to the free energy lambda state the upper lambda state "
+                  "for AWH, %s (%.0f), must be < n_lambda (%d).",
+                  opt.c_str(), dimParams->origin, lambdaParams->n_lambda);
+    }
+    if (gmx_within_tol(dimParams->end - dimParams->origin, 0, GMX_REAL_EPS))
+    {
+        auto message = formatString(
+                "The given interval length given by %s-start (%g) and %s-end (%g) is zero. "
+                "This will result in only one lambda point along this free energy lambda state "
+                "axis in the coordinate value grid.",
+                prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end);
+        warning(wi, message);
+    }
+
+    if (dimParams->forceConstant != 0)
+    {
+        warning_error(
+                wi,
+                "The force AWH bias force constant is not used with free energy lambda state as "
+                "coordinate provider.");
+    }
+}
+
+/*! \brief
+ * Check that AWH FEP is not combined with incompatible decoupling.
+ *
+ * \param[in] mtop      System topology.
+ * \param[in,out] wi    Struct for bookeeping warnings.
+ */
+void checkFepLambdaDimDecouplingConsistency(const gmx_mtop_t& mtop, warninp_t wi)
+{
+    if (haveFepPerturbedMasses(mtop))
+    {
+        warning(wi,
+                "Masses may not be perturbed when using the free energy lambda state as AWH "
+                "coordinate provider. If you are using fep-lambdas to specify lambda states "
+                "make sure that you also specify mass-lambdas without perturbation.");
+    }
+    if (havePerturbedConstraints(mtop))
+    {
+        warning(wi,
+                "Constraints may not be perturbed when using the free energy lambda state as AWH "
+                "coordinate provider. If you are using fep-lambdas to specify lambda states "
+                "make sure that you also specify mass-lambdas without perturbation.");
+    }
+}
 
 /*! \brief
  * Read parameters of an AWH bias dimension.
@@ -81,19 +278,20 @@ const char* eawhcoordprovider_names[eawhcoordproviderNR + 1] = { "pull", nullptr
  * \param[in,out] wi         Struct for bookeeping warnings.
  * \param[in] bComment       True if comments should be printed.
  */
-static void readDimParams(std::vector<t_inpfile>* inp,
-                          const std::string&      prefix,
-                          AwhDimParams*           dimParams,
-                          warninp_t               wi,
-                          bool                    bComment)
+void readDimParams(std::vector<t_inpfile>* inp,
+                   const std::string&      prefix,
+                   AwhDimParams*           dimParams,
+                   warninp_t               wi,
+                   bool                    bComment)
 {
     std::string opt;
     if (bComment)
     {
         printStringNoNewline(
-                inp, "The provider of the reaction coordinate, currently only pull is supported");
+                inp,
+                "The provider of the reaction coordinate, "
+                "currently only 'pull' and 'fep-lambda' (free energy lambda state) is supported");
     }
-
     opt                       = prefix + "-coord-provider";
     dimParams->eCoordProvider = get_eeenum(inp, opt, eawhcoordprovider_names, wi);
 
@@ -104,13 +302,6 @@ static void readDimParams(std::vector<t_inpfile>* inp,
     opt = prefix + "-coord-index";
     int coordIndexInput;
     coordIndexInput = get_eint(inp, opt, 1, wi);
-    if (coordIndexInput < 1)
-    {
-        gmx_fatal(FARGS,
-                  "Failed to read a valid coordinate index for %s. "
-                  "Note that the pull coordinate indexing starts at 1.",
-                  opt.c_str());
-    }
 
     /* The pull coordinate indices start at 1 in the input file, at 0 internally */
     dimParams->coordIndex = coordIndexInput - 1;
@@ -119,12 +310,10 @@ static void readDimParams(std::vector<t_inpfile>* inp,
     {
         printStringNoNewline(inp, "Start and end values for each coordinate dimension");
     }
-
     opt               = prefix + "-start";
     dimParams->origin = get_ereal(inp, opt, 0., wi);
-
-    opt            = prefix + "-end";
-    dimParams->end = get_ereal(inp, opt, 0., wi);
+    opt               = prefix + "-end";
+    dimParams->end    = get_ereal(inp, opt, 0., wi);
 
     if (bComment)
     {
@@ -136,7 +325,7 @@ static void readDimParams(std::vector<t_inpfile>* inp,
 
     if (bComment)
     {
-        printStringNoNewline(inp, "Estimated diffusion constant (nm^2/ps or rad^2/ps)");
+        printStringNoNewline(inp, "Estimated diffusion constant (nm^2/ps, rad^2/ps or ps^-1)");
     }
     opt                  = prefix + "-diffusion";
     dimParams->diffusion = get_ereal(inp, opt, 0, wi);
@@ -145,7 +334,8 @@ static void readDimParams(std::vector<t_inpfile>* inp,
     {
         printStringNoNewline(inp,
                              "Diameter that needs to be sampled around a point before it is "
-                             "considered covered.");
+                             "considered covered. In FEP dimensions the cover diameter is "
+                             "specified in lambda states.");
     }
     opt                      = prefix + "-cover-diameter";
     dimParams->coverDiameter = get_ereal(inp, opt, 0, wi);
@@ -156,107 +346,36 @@ static void readDimParams(std::vector<t_inpfile>* inp,
  *
  * \param[in] prefix         Prefix for dimension parameters.
  * \param[in,out] dimParams  AWH dimensional parameters.
- * \param[in] pull_params    Pull parameters.
+ * \param[in] ir             Input parameter struct.
  * \param[in,out] wi         Struct for bookeeping warnings.
  */
-static void checkDimParams(const std::string&   prefix,
-                           AwhDimParams*        dimParams,
-                           const pull_params_t* pull_params,
-                           warninp_t            wi)
+void checkDimParams(const std::string& prefix, AwhDimParams* dimParams, const t_inputrec* ir, warninp_t wi)
 {
-    std::string opt;
-
-    /* The pull settings need to be consistent with the AWH settings */
-    if (!(pull_params->coord[dimParams->coordIndex].eType == epullEXTERNAL))
-    {
-        gmx_fatal(FARGS, "AWH biasing can only be  applied to pull type %s", EPULLTYPE(epullEXTERNAL));
-    }
-
-    if (dimParams->coordIndex >= pull_params->ncoord)
-    {
-        gmx_fatal(FARGS,
-                  "The given AWH coordinate index (%d) is larger than the number of pull "
-                  "coordinates (%d)",
-                  dimParams->coordIndex + 1, pull_params->ncoord);
-    }
-    if (pull_params->coord[dimParams->coordIndex].rate != 0)
-    {
-        auto message = formatString(
-                "Setting pull-coord%d-rate (%g) is incompatible with AWH biasing this coordinate",
-                dimParams->coordIndex + 1, pull_params->coord[dimParams->coordIndex].rate);
-        warning_error(wi, message);
-    }
-
-    /* BiasGrid params for each axis */
-    int eGeom = pull_params->coord[dimParams->coordIndex].eGeom;
-
-    if (gmx_within_tol(dimParams->end - dimParams->origin, 0, GMX_REAL_EPS))
-    {
-        auto message = formatString(
-                "The given interval length given by %s-start (%g) and %s-end (%g) is zero. "
-                "This will result in only one point along this axis in the coordinate value grid.",
-                prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end);
-        warning(wi, message);
-    }
-    /* Check that the requested interval is in allowed range */
-    if (eGeom == epullgDIST)
+    if (dimParams->eCoordProvider == eawhcoordproviderPULL)
     {
-        if (dimParams->origin < 0 || dimParams->end < 0)
+        if (!ir->bPull)
         {
             gmx_fatal(FARGS,
-                      "%s-start (%g) or %s-end (%g) set to a negative value. With pull geometry "
-                      "distance coordinate values are non-negative. "
-                      "Perhaps you want to use geometry %s instead?",
-                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
-                      EPULLGEOM(epullgDIR));
+                      "AWH biasing along a pull dimension is only compatible with COM pulling "
+                      "turned on");
         }
+        checkPullDimParams(prefix, dimParams, ir->pull, wi);
     }
-    else if (eGeom == epullgANGLE || eGeom == epullgANGLEAXIS)
+    else if (dimParams->eCoordProvider == eawhcoordproviderFREE_ENERGY_LAMBDA)
     {
-        if (dimParams->origin < 0 || dimParams->end > 180)
+        if (ir->efep == efepNO)
         {
             gmx_fatal(FARGS,
-                      "%s-start (%g) and %s-end (%g) are outside of the allowed range 0 to 180 deg "
-                      "for pull geometries %s and %s ",
-                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
-                      EPULLGEOM(epullgANGLE), EPULLGEOM(epullgANGLEAXIS));
+                      "AWH biasing along a free energy lambda state dimension is only compatible "
+                      "with free energy turned on");
         }
+        checkFepLambdaDimParams(prefix, dimParams, ir->fepvals, ir->efep, wi);
     }
-    else if (eGeom == epullgDIHEDRAL)
-    {
-        if (dimParams->origin < -180 || dimParams->end > 180)
-        {
-            gmx_fatal(FARGS,
-                      "%s-start (%g) and %s-end (%g) are outside of the allowed range -180 to 180 "
-                      "deg for pull geometry %s. ",
-                      prefix.c_str(), dimParams->origin, prefix.c_str(), dimParams->end,
-                      EPULLGEOM(epullgDIHEDRAL));
-        }
-    }
-
-    opt = prefix + "-force-constant";
-    if (dimParams->forceConstant <= 0)
-    {
-        warning_error(wi, "The force AWH bias force constant should be > 0");
-    }
-
-    opt = prefix + "-diffusion";
-    if (dimParams->diffusion <= 0)
-    {
-        const double diffusion_default = 1e-5;
-        auto         message           = formatString(
-                "%s not explicitly set by user. You can choose to use a default "
-                "value (%g nm^2/ps or rad^2/ps) but this may very well be "
-                "non-optimal for your system!",
-                opt.c_str(), diffusion_default);
-        warning(wi, message);
-        dimParams->diffusion = diffusion_default;
-    }
-
-    opt = prefix + "-cover-diameter";
-    if (dimParams->coverDiameter < 0)
+    else
     {
-        gmx_fatal(FARGS, "%s (%g) cannot be negative.", opt.c_str(), dimParams->coverDiameter);
+        gmx_fatal(FARGS,
+                  "AWH biasing can only be  applied to pull and free energy lambda state "
+                  "coordinates");
     }
 }
 
@@ -266,7 +385,7 @@ static void checkDimParams(const std::string&   prefix,
  * \param[in]     awhBiasParams  AWH bias parameters.
  * \param[in,out] wi             Struct for bookkeeping warnings.
  */
-static void checkInputConsistencyAwhBias(const AwhBiasParams& awhBiasParams, warninp_t wi)
+void checkInputConsistencyAwhBias(const AwhBiasParams& awhBiasParams, warninp_t wi)
 {
     /* Covering diameter and sharing warning. */
     for (int d = 0; d < awhBiasParams.ndim; d++)
@@ -289,11 +408,11 @@ static void checkInputConsistencyAwhBias(const AwhBiasParams& awhBiasParams, war
  * \param[in,out] wi             Struct for bookeeping warnings.
  * \param[in]     bComment       True if comments should be printed.
  */
-static void readBiasParams(std::vector<t_inpfile>* inp,
-                           AwhBiasParams*          awhBiasParams,
-                           const std::string&      prefix,
-                           warninp_t               wi,
-                           bool                    bComment)
+void readBiasParams(std::vector<t_inpfile>* inp,
+                    AwhBiasParams*          awhBiasParams,
+                    const std::string&      prefix,
+                    warninp_t               wi,
+                    bool                    bComment)
 {
     if (bComment)
     {
@@ -389,10 +508,7 @@ static void readBiasParams(std::vector<t_inpfile>* inp,
  * \param[in]     ir             Input parameter struct.
  * \param[in,out] wi             Struct for bookeeping warnings.
  */
-static void checkBiasParams(const AwhBiasParams* awhBiasParams,
-                            const std::string&   prefix,
-                            const t_inputrec*    ir,
-                            warninp_t            wi)
+void checkBiasParams(const AwhBiasParams* awhBiasParams, const std::string& prefix, const t_inputrec* ir, warninp_t wi)
 {
     std::string opt = prefix + "-error-init";
     if (awhBiasParams->errorInitial <= 0)
@@ -487,7 +603,7 @@ static void checkBiasParams(const AwhBiasParams* awhBiasParams,
     for (int d = 0; d < awhBiasParams->ndim; d++)
     {
         std::string prefixdim = prefix + formatString("-dim%d", d + 1);
-        checkDimParams(prefixdim, &awhBiasParams->dimParams[d], ir->pull, wi);
+        checkDimParams(prefixdim, &awhBiasParams->dimParams[d], ir, wi);
     }
 
     /* Check consistencies here that cannot be checked at read time at a lower level. */
@@ -500,7 +616,7 @@ static void checkBiasParams(const AwhBiasParams* awhBiasParams,
  * \param[in]     awhParams  AWH parameters.
  * \param[in,out] wi         Struct for bookkeeping warnings.
  */
-static void checkInputConsistencyAwh(const AwhParams& awhParams, warninp_t wi)
+void checkInputConsistencyAwh(const AwhParams& awhParams, warninp_t wi)
 {
     /* Each pull coord can map to at most 1 AWH coord.
      * Check that we have a shared bias when requesting multisim sharing.
@@ -520,11 +636,19 @@ static void checkInputConsistencyAwh(const AwhParams& awhParams, warninp_t wi)
         {
             for (int d1 = 0; d1 < awhBiasParams1.ndim; d1++)
             {
+                if (awhBiasParams1.dimParams[d1].eCoordProvider == eawhcoordproviderFREE_ENERGY_LAMBDA)
+                {
+                    continue;
+                }
                 const AwhBiasParams& awhBiasParams2 = awhParams.awhBiasParams[k2];
 
                 /* d1 is the reference dimension of the reference AWH. d2 is the dim index of the AWH to compare with. */
                 for (int d2 = 0; d2 < awhBiasParams2.ndim; d2++)
                 {
+                    if (awhBiasParams2.dimParams[d2].eCoordProvider == eawhcoordproviderFREE_ENERGY_LAMBDA)
+                    {
+                        continue;
+                    }
                     /* Give an error if (d1, k1) is different from (d2, k2) but the pull coordinate is the same */
                     if ((d1 != d2 || k1 != k2)
                         && (awhBiasParams1.dimParams[d1].coordIndex == awhBiasParams2.dimParams[d2].coordIndex))
@@ -559,6 +683,7 @@ static void checkInputConsistencyAwh(const AwhParams& awhParams, warninp_t wi)
                 "this (yet)");
     }
 }
+} // namespace
 
 AwhParams* readAwhParams(std::vector<t_inpfile>* inp, warninp_t wi)
 {
@@ -626,11 +751,6 @@ void checkAwhParams(const AwhParams* awhParams, const t_inputrec* ir, warninp_t
 {
     std::string opt;
 
-    if (!ir->bPull)
-    {
-        gmx_fatal(FARGS, "AWH biasing is only compatible with COM pulling turned on");
-    }
-
     opt = "awh-nstout";
     if (awhParams->nstOut <= 0)
     {
@@ -827,6 +947,71 @@ static void checkInputConsistencyInterval(const AwhParams* awhParams, warninp_t
     }
 }
 
+/*! \brief
+ * Sets AWH parameters, for one AWH pull dimension.
+ *
+ * \param[in,out] dimParams          AWH dimension parameters.
+ * \param[in]     biasIndex             The index of the bias containing this AWH pull dimension.
+ * \param[in]     dimIndex              The index of this AWH pull dimension.
+ * \param[in]     pull_params           Pull parameters.
+ * \param[in,out] pull_work             Pull working struct to register AWH bias in.
+ * \param[in]     pbc                   A pbc information structure.
+ * \param[in]     compressibility       Compressibility matrix for pressure coupling,
+ * pass all 0 without pressure coupling.
+ * \param[in,out] wi                    Struct for bookeeping warnings.
+ *
+ */
+static void setStateDependentAwhPullDimParams(AwhDimParams*        dimParams,
+                                              const int            biasIndex,
+                                              const int            dimIndex,
+                                              const pull_params_t* pull_params,
+                                              pull_t*              pull_work,
+                                              const t_pbc&         pbc,
+                                              const tensor&        compressibility,
+                                              warninp_t            wi)
+{
+    const t_pull_coord& pullCoordParams = pull_params->coord[dimParams->coordIndex];
+
+    if (pullCoordParams.eGeom == epullgDIRPBC)
+    {
+        gmx_fatal(FARGS,
+                  "AWH does not support pull geometry '%s'. "
+                  "If the maximum distance between the groups is always "
+                  "less than half the box size, "
+                  "you can use geometry '%s' instead.",
+                  EPULLGEOM(epullgDIRPBC), EPULLGEOM(epullgDIR));
+    }
+
+    dimParams->period = get_pull_coord_period(pullCoordParams, pbc, dimParams->end - dimParams->origin);
+    // We would like to check for scaling, but we don't have the full inputrec available here
+    if (dimParams->period > 0
+        && !(pullCoordParams.eGeom == epullgANGLE || pullCoordParams.eGeom == epullgDIHEDRAL))
+    {
+        bool coordIsScaled = false;
+        for (int d2 = 0; d2 < DIM; d2++)
+        {
+            if (pullCoordParams.vec[d2] != 0 && norm2(compressibility[d2]) != 0)
+            {
+                coordIsScaled = true;
+            }
+        }
+        if (coordIsScaled)
+        {
+            std::string mesg = gmx::formatString(
+                    "AWH dimension %d of bias %d is periodic with pull geometry '%s', "
+                    "while you should are applying pressure scaling to the "
+                    "corresponding box vector, this is not supported.",
+                    dimIndex + 1, biasIndex + 1, EPULLGEOM(pullCoordParams.eGeom));
+            warning(wi, mesg.c_str());
+        }
+    }
+
+    /* The initial coordinate value, converted to external user units. */
+    dimParams->coordValueInit = get_pull_coord_value(pull_work, dimParams->coordIndex, &pbc);
+
+    dimParams->coordValueInit *= pull_conversion_factor_internal2userinput(&pullCoordParams);
+}
+
 void setStateDependentAwhParams(AwhParams*           awhParams,
                                 const pull_params_t* pull_params,
                                 pull_t*              pull_work,
@@ -834,6 +1019,8 @@ void setStateDependentAwhParams(AwhParams*           awhParams,
                                 PbcType              pbcType,
                                 const tensor&        compressibility,
                                 const t_grpopts*     inputrecGroupOptions,
+                                const real           initLambda,
+                                const gmx_mtop_t&    mtop,
                                 warninp_t            wi)
 {
     /* The temperature is not really state depenendent but is not known
@@ -862,53 +1049,23 @@ void setStateDependentAwhParams(AwhParams*           awhParams,
         AwhBiasParams* awhBiasParams = &awhParams->awhBiasParams[k];
         for (int d = 0; d < awhBiasParams->ndim; d++)
         {
-            AwhDimParams*       dimParams       = &awhBiasParams->dimParams[d];
-            const t_pull_coord& pullCoordParams = pull_params->coord[dimParams->coordIndex];
-
-            if (pullCoordParams.eGeom == epullgDIRPBC)
+            AwhDimParams* dimParams = &awhBiasParams->dimParams[d];
+            if (dimParams->eCoordProvider == eawhcoordproviderPULL)
             {
-                gmx_fatal(FARGS,
-                          "AWH does not support pull geometry '%s'. "
-                          "If the maximum distance between the groups is always less than half the "
-                          "box size, "
-                          "you can use geometry '%s' instead.",
-                          EPULLGEOM(epullgDIRPBC), EPULLGEOM(epullgDIR));
+                setStateDependentAwhPullDimParams(dimParams, k, d, pull_params, pull_work, pbc,
+                                                  compressibility, wi);
             }
-
-            dimParams->period =
-                    get_pull_coord_period(pullCoordParams, pbc, dimParams->end - dimParams->origin);
-            // We would like to check for scaling, but we don't have the full inputrec available here
-            if (dimParams->period > 0
-                && !(pullCoordParams.eGeom == epullgANGLE || pullCoordParams.eGeom == epullgDIHEDRAL))
+            else
             {
-                bool coordIsScaled = false;
-                for (int d2 = 0; d2 < DIM; d2++)
-                {
-                    if (pullCoordParams.vec[d2] != 0 && norm2(compressibility[d2]) != 0)
-                    {
-                        coordIsScaled = true;
-                    }
-                }
-                if (coordIsScaled)
-                {
-                    std::string mesg = gmx::formatString(
-                            "AWH dimension %d of bias %d is periodic with pull geometry '%s', "
-                            "while you should are applying pressure scaling to the corresponding "
-                            "box vector, this is not supported.",
-                            d + 1, k + 1, EPULLGEOM(pullCoordParams.eGeom));
-                    warning(wi, mesg.c_str());
-                }
+                dimParams->coordValueInit = initLambda;
+                checkFepLambdaDimDecouplingConsistency(mtop, wi);
             }
-
-            /* The initial coordinate value, converted to external user units. */
-            dimParams->coordValueInit = get_pull_coord_value(pull_work, dimParams->coordIndex, &pbc);
-
-            dimParams->coordValueInit *= pull_conversion_factor_internal2userinput(&pullCoordParams);
         }
     }
     checkInputConsistencyInterval(awhParams, wi);
 
-    /* Register AWH as external potential with pull to check consistency. */
+    /* Register AWH as external potential with pull (for AWH dimensions that use pull as
+     * reaction coordinate provider) to check consistency. */
     Awh::registerAwhWithPull(*awhParams, pull_work);
 }
 
index 72e28b713181fd5394a0ebb89e54bd39170b090e..7da77f1fdd49758cd9a96684933666ba0a269b91 100644 (file)
@@ -52,6 +52,7 @@
 
 struct t_grpopts;
 struct t_inputrec;
+struct gmx_mtop_t;
 struct pull_params_t;
 struct pull_t;
 enum class PbcType : int;
@@ -87,6 +88,9 @@ void checkAwhParams(const AwhParams* awhParams, const t_inputrec* inputrec, warn
  * \param[in]     pbcType               Periodic boundary conditions enum.
  * \param[in]     compressibility       Compressibility matrix for pressure coupling, pass all 0 without pressure coupling
  * \param[in]     inputrecGroupOptions  Parameters for atom groups.
+ * \param[in]     initLambda            The starting lambda, to allow using free energy lambda as reaction coordinate
+ * provider in any dimension.
+ * \param[in]     mtop                  The system topology.
  * \param[in,out] wi                    Struct for bookeeping warnings.
  *
  * \note This function currently relies on the function set_pull_init to have been called.
@@ -98,6 +102,8 @@ void setStateDependentAwhParams(AwhParams*           awhParams,
                                 PbcType              pbcType,
                                 const tensor&        compressibility,
                                 const t_grpopts*     inputrecGroupOptions,
+                                real                 initLambda,
+                                const gmx_mtop_t&    mtop,
                                 warninp_t            wi);
 
 } // namespace gmx
index bb18d9568c25495bd0b0fa24b44cb8cbcf568a85..bbce544ace5c1b3c58847fedf4216b5b49245b88 100644 (file)
@@ -37,4 +37,5 @@ gmx_add_unit_test(AwhTest awh-test
         bias.cpp
        biasgrid.cpp
         biasstate.cpp
+        bias_fep_lambda_state.cpp
         )
index 4d5b54a8ee7f54568fed5766513f042bc24f76e6..c59fb1327f92fbc44d08a4c13fc2898872fbaab0 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2017,2018,2019, by the GROMACS development team, led by
+ * Copyright (c) 2017,2018,2019,2020, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -100,6 +100,7 @@ static AwhTestParameters getAwhTestParameters(int eawhgrowth, int eawhpotential)
     awhDimParams.end            = 1.5;
     awhDimParams.coordValueInit = awhDimParams.origin;
     awhDimParams.coverDiameter  = 0;
+    awhDimParams.eCoordProvider = eawhcoordproviderPULL;
 
     AwhBiasParams& awhBiasParams = params.awhBiasParams;
 
@@ -228,8 +229,9 @@ TEST_P(BiasTest, ForcesBiasPmf)
 
         awh_dvec                    coordValue = { coord, 0, 0, 0 };
         double                      potential  = 0;
-        gmx::ArrayRef<const double> biasForce  = bias.calcForceAndUpdateBias(
-                coordValue, &potential, &potentialJump, nullptr, nullptr, step, step, seed_, nullptr);
+        gmx::ArrayRef<const double> biasForce =
+                bias.calcForceAndUpdateBias(coordValue, {}, {}, &potential, &potentialJump, nullptr,
+                                            nullptr, step, step, seed_, nullptr);
 
         force.push_back(biasForce[0]);
         pot.push_back(potential);
@@ -313,8 +315,8 @@ TEST(BiasTest, DetectsCovering)
         awh_dvec coordValue    = { coord, 0, 0, 0 };
         double   potential     = 0;
         double   potentialJump = 0;
-        bias.calcForceAndUpdateBias(coordValue, &potential, &potentialJump, nullptr, nullptr, step,
-                                    step, params.awhParams.seed, nullptr);
+        bias.calcForceAndUpdateBias(coordValue, {}, {}, &potential, &potentialJump, nullptr,
+                                    nullptr, step, step, params.awhParams.seed, nullptr);
 
         inInitialStage = bias.state().inInitialStage();
         if (!inInitialStage)
diff --git a/src/gromacs/awh/tests/bias_fep_lambda_state.cpp b/src/gromacs/awh/tests/bias_fep_lambda_state.cpp
new file mode 100644 (file)
index 0000000..1e4b452
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2017,2018,2019,2020, by the GROMACS development team, led by
+ * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
+ * and including many others, as listed in the AUTHORS file in the
+ * top-level source directory and at http://www.gromacs.org.
+ *
+ * GROMACS is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * GROMACS is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with GROMACS; if not, see
+ * http://www.gnu.org/licenses, or write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
+ *
+ * If you want to redistribute modifications to GROMACS, please
+ * consider that scientific software is very special. Version
+ * control is crucial - bugs must be traceable. We will be happy to
+ * consider code for inclusion in the official distribution, but
+ * derived work must not be called official GROMACS. Details are found
+ * in the README & COPYING files - if they are missing, get the
+ * official version at http://www.gromacs.org.
+ *
+ * To help us fund GROMACS development, we humbly ask that you cite
+ * the research papers on the package. Check out http://www.gromacs.org.
+ */
+#include "gmxpre.h"
+
+#include <cmath>
+
+#include <memory>
+#include <random>
+#include <tuple>
+#include <vector>
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#include "gromacs/awh/bias.h"
+#include "gromacs/awh/correlationgrid.h"
+#include "gromacs/awh/pointstate.h"
+#include "gromacs/mdtypes/awh_params.h"
+#include "gromacs/utility/stringutil.h"
+
+#include "testutils/refdata.h"
+#include "testutils/testasserts.h"
+
+namespace gmx
+{
+
+namespace test
+{
+
+//! The number of lambda states to use in the tests.
+const int numLambdaStates = 16;
+
+/*! \internal \brief
+ * Struct that gathers all input for setting up and using a Bias
+ */
+struct AwhFepLambdaStateTestParameters
+{
+    AwhFepLambdaStateTestParameters() = default;
+    //! Move constructor
+    AwhFepLambdaStateTestParameters(AwhFepLambdaStateTestParameters&& o) noexcept :
+        beta(o.beta),
+        awhDimParams(o.awhDimParams),
+        awhBiasParams(o.awhBiasParams),
+        awhParams(o.awhParams),
+        dimParams(std::move(o.dimParams))
+    {
+        awhBiasParams.dimParams = &awhDimParams;
+        awhParams.awhBiasParams = &awhBiasParams;
+    }
+    double beta; //!< 1/(kB*T)
+
+    AwhDimParams  awhDimParams;  //!< Dimension parameters pointed to by \p awhBiasParams
+    AwhBiasParams awhBiasParams; //!< Bias parameters pointed to by \[ awhParams
+    AwhParams     awhParams;     //!< AWH parameters, this is the struct to actually use
+
+    std::vector<DimParams> dimParams; //!< Dimension parameters for setting up Bias
+};
+
+/*! \internal \brief Helper function to fill an array with random values (between lowerBound and
+ * upperBound) from randomEngine.
+ */
+static void randomArrayFill(ArrayRef<double>           array,
+                            std::default_random_engine randomEngine,
+                            double                     lowerBound,
+                            double                     upperBound)
+{
+    std::uniform_real_distribution<double> unif(lowerBound, upperBound);
+    for (size_t i = 0; i < array.size(); i++)
+    {
+        array[i] = unif(randomEngine);
+    }
+}
+
+//! Helper function to set up the C-style AWH parameters for the test
+static AwhFepLambdaStateTestParameters getAwhTestParameters(int eawhgrowth, int eawhpotential)
+{
+    AwhFepLambdaStateTestParameters params;
+
+    params.beta = 0.4;
+
+    AwhDimParams& awhDimParams = params.awhDimParams;
+
+    awhDimParams.period         = 0;
+    awhDimParams.diffusion      = 1e-4;
+    awhDimParams.origin         = 0;
+    awhDimParams.end            = numLambdaStates - 1;
+    awhDimParams.coordValueInit = awhDimParams.origin;
+    awhDimParams.coverDiameter  = 0;
+    awhDimParams.eCoordProvider = eawhcoordproviderFREE_ENERGY_LAMBDA;
+
+    AwhBiasParams& awhBiasParams = params.awhBiasParams;
+
+    awhBiasParams.ndim                 = 1;
+    awhBiasParams.dimParams            = &awhDimParams;
+    awhBiasParams.eTarget              = eawhtargetCONSTANT;
+    awhBiasParams.targetBetaScaling    = 0;
+    awhBiasParams.targetCutoff         = 0;
+    awhBiasParams.eGrowth              = eawhgrowth;
+    awhBiasParams.bUserData            = FALSE;
+    awhBiasParams.errorInitial         = 1.0 / params.beta;
+    awhBiasParams.shareGroup           = 0;
+    awhBiasParams.equilibrateHistogram = FALSE;
+
+    double  k    = 1000;
+    int64_t seed = 93471803;
+
+    params.dimParams.emplace_back(k, params.beta, numLambdaStates);
+
+    AwhParams& awhParams = params.awhParams;
+
+    awhParams.numBias                    = 1;
+    awhParams.awhBiasParams              = &awhBiasParams;
+    awhParams.seed                       = seed;
+    awhParams.nstOut                     = 0;
+    awhParams.nstSampleCoord             = 1;
+    awhParams.numSamplesUpdateFreeEnergy = 10;
+    awhParams.ePotential                 = eawhpotential;
+    awhParams.shareBiasMultisim          = FALSE;
+
+    return params;
+}
+
+//! Convenience typedef: growth type enum, potential type enum, disable update skips
+typedef std::tuple<int, int, BiasParams::DisableUpdateSkips> BiasTestParameters;
+
+/*! \brief Test fixture for testing Bias updates
+ */
+class BiasFepLambdaStateTest : public ::testing::TestWithParam<BiasTestParameters>
+{
+public:
+    //! Random seed for AWH MC sampling
+    int64_t seed_;
+
+    //! The awh Bias
+    std::unique_ptr<Bias> bias_;
+
+    BiasFepLambdaStateTest()
+    {
+        /* We test all combinations of:
+         *   eawhgrowth:
+         *     eawhgrowthLINEAR:     final, normal update phase
+         *     ewahgrowthEXP_LINEAR: intial phase, updated size is constant
+         *   eawhpotential (test both, but for the FEP lambda state dimension MC will in practice be used,
+         *                  except that eawhpotentialCONVOLVED also gives a potential output):
+         *     eawhpotentialUMBRELLA:  MC on lambda state
+         *     eawhpotentialCONVOLVED: MD on a convolved potential landscape (falling back to MC on lambda state)
+         *   disableUpdateSkips (should not affect the results):
+         *     BiasParams::DisableUpdateSkips::yes: update the point state for every sample
+         *     BiasParams::DisableUpdateSkips::no:  update the point state at an interval > 1 sample
+         *
+         * Note: It would be nice to explicitly check that eawhpotential
+         *       and disableUpdateSkips do not affect the point state.
+         *       But the reference data will also ensure this.
+         */
+        int                            eawhgrowth;
+        int                            eawhpotential;
+        BiasParams::DisableUpdateSkips disableUpdateSkips;
+        std::tie(eawhgrowth, eawhpotential, disableUpdateSkips) = GetParam();
+
+        /* Set up a basic AWH setup with a single, 1D bias with parameters
+         * such that we can measure the effects of different parameters.
+         */
+        const AwhFepLambdaStateTestParameters params = getAwhTestParameters(eawhgrowth, eawhpotential);
+
+        seed_ = params.awhParams.seed;
+
+        double mdTimeStep = 0.1;
+
+        bias_ = std::make_unique<Bias>(-1, params.awhParams, params.awhBiasParams, params.dimParams,
+                                       params.beta, mdTimeStep, 1, "", Bias::ThisRankWillDoIO::No,
+                                       disableUpdateSkips);
+    }
+};
+
+TEST_P(BiasFepLambdaStateTest, ForcesBiasPmf)
+{
+    gmx::test::TestReferenceData    data;
+    gmx::test::TestReferenceChecker checker(data.rootChecker());
+
+    Bias& bias = *bias_;
+
+    /* Make strings with the properties we expect to be different in the tests.
+     * These also helps to interpret the reference data.
+     */
+    std::vector<std::string> props;
+    props.push_back(formatString("stage:           %s", bias.state().inInitialStage() ? "initial" : "final"));
+    props.push_back(formatString("convolve forces: %s", bias.params().convolveForce ? "yes" : "no"));
+    props.push_back(formatString("skip updates:    %s", bias.params().skipUpdates() ? "yes" : "no"));
+
+    SCOPED_TRACE(gmx::formatString("%s, %s, %s", props[0].c_str(), props[1].c_str(), props[2].c_str()));
+
+    std::vector<double> force, pot;
+
+    double                     potentialJump        = 0;
+    double                     mdTimeStep           = 0.1;
+    double                     energyNoiseMagnitude = 1.0;
+    double                     dhdlNoiseMagnitude   = 1.5;
+    int                        nSteps               = 501;
+    std::default_random_engine randomEngine;
+    randomEngine.seed(1234);
+
+    /* Some energies to use as base values (to which some noise is added later on). */
+    std::vector<double> lambdaEnergyBase(numLambdaStates);
+    std::vector<double> lambdaDhdlBase(numLambdaStates);
+    const double        magnitude = 12.0;
+    for (int i = 0; i < numLambdaStates; i++)
+    {
+        lambdaEnergyBase[i] = magnitude * std::sin(i * 0.1);
+        lambdaDhdlBase[i]   = magnitude * std::cos(i * 0.1);
+    }
+
+    for (int step = 0; step < nSteps; step++)
+    {
+        /* Create some noise and add it to the base values */
+        std::vector<double> neighborLambdaEnergyNoise(numLambdaStates);
+        std::vector<double> neighborLambdaDhdlNoise(numLambdaStates);
+        randomArrayFill(neighborLambdaEnergyNoise, randomEngine, -energyNoiseMagnitude, energyNoiseMagnitude);
+        randomArrayFill(neighborLambdaDhdlNoise, randomEngine, -dhdlNoiseMagnitude, dhdlNoiseMagnitude);
+        std::vector<double> neighborLambdaEnergies(numLambdaStates);
+        std::vector<double> neighborLambdaDhdl(numLambdaStates);
+        for (int i = 0; i < numLambdaStates; i++)
+        {
+            neighborLambdaEnergies[i] = lambdaEnergyBase[i] + neighborLambdaEnergyNoise[i];
+            neighborLambdaDhdl[i]     = lambdaDhdlBase[i] + neighborLambdaDhdlNoise[i];
+        }
+
+        int      umbrellaGridpointIndex = bias.state().coordState().umbrellaGridpoint();
+        awh_dvec coordValue = { bias.getGridCoordValue(umbrellaGridpointIndex)[0], 0, 0, 0 };
+        double   potential  = 0;
+        gmx::ArrayRef<const double> biasForce = bias.calcForceAndUpdateBias(
+                coordValue, neighborLambdaEnergies, neighborLambdaDhdl, &potential, &potentialJump,
+                nullptr, nullptr, step * mdTimeStep, step, seed_, nullptr);
+
+        force.push_back(biasForce[0]);
+        pot.push_back(potential);
+    }
+
+    /* When skipping updates, ensure all skipped updates are performed here.
+     * This should result in the same bias state as at output in a normal run.
+     */
+    if (bias.params().skipUpdates())
+    {
+        bias.doSkippedUpdatesForAllPoints();
+    }
+
+    std::vector<double> pointBias, logPmfsum;
+    for (auto& point : bias.state().points())
+    {
+        pointBias.push_back(point.bias());
+        logPmfsum.push_back(point.logPmfSum());
+    }
+
+    constexpr int ulpTol = 10;
+
+    checker.checkSequence(props.begin(), props.end(), "Properties");
+    checker.setDefaultTolerance(absoluteTolerance(magnitude * GMX_DOUBLE_EPS * ulpTol));
+    checker.checkSequence(force.begin(), force.end(), "Force");
+    checker.checkSequence(pot.begin(), pot.end(), "Potential");
+    checker.setDefaultTolerance(relativeToleranceAsUlp(1.0, ulpTol));
+    checker.checkSequence(pointBias.begin(), pointBias.end(), "PointBias");
+    checker.checkSequence(logPmfsum.begin(), logPmfsum.end(), "PointLogPmfsum");
+}
+
+/* Scan initial/final phase, MC/convolved force and update skip (not) allowed
+ * Both the convolving and skipping should not affect the bias and PMF.
+ * It would be nice if the test would explicitly check for this.
+ * Currently this is tested through identical reference data.
+ */
+INSTANTIATE_TEST_CASE_P(WithParameters,
+                        BiasFepLambdaStateTest,
+                        ::testing::Combine(::testing::Values(eawhgrowthLINEAR, eawhgrowthEXP_LINEAR),
+                                           ::testing::Values(eawhpotentialUMBRELLA, eawhpotentialCONVOLVED),
+                                           ::testing::Values(BiasParams::DisableUpdateSkips::yes,
+                                                             BiasParams::DisableUpdateSkips::no)));
+
+// Test that we detect coverings and exit the initial stage at the correct step
+TEST(BiasFepLambdaStateTest, DetectsCovering)
+{
+    const AwhFepLambdaStateTestParameters params =
+            getAwhTestParameters(eawhgrowthEXP_LINEAR, eawhpotentialCONVOLVED);
+
+    const double mdTimeStep = 0.1;
+
+    Bias bias(-1, params.awhParams, params.awhBiasParams, params.dimParams, params.beta, mdTimeStep,
+              1, "", Bias::ThisRankWillDoIO::No);
+
+    const int64_t exitStepRef = 380;
+
+    bool inInitialStage = bias.state().inInitialStage();
+
+    double                     energyNoiseMagnitude = 1.0;
+    double                     dhdlNoiseMagnitude   = 1.5;
+    std::default_random_engine randomEngine;
+    randomEngine.seed(1234);
+
+    /* Some energies to use as base values (to which some noise is added later on). */
+    std::vector<double> lambdaEnergyBase(numLambdaStates);
+    std::vector<double> lambdaDhdlBase(numLambdaStates);
+    const double        magnitude = 12.0;
+    for (int i = 0; i < numLambdaStates; i++)
+    {
+        lambdaEnergyBase[i] = magnitude * std::sin(i * 0.1);
+        lambdaDhdlBase[i]   = magnitude * std::cos(i * 0.1);
+    }
+
+    int64_t step;
+    /* Normally this loop exits at exitStepRef, but we extend with failure */
+    for (step = 0; step <= 2 * exitStepRef; step++)
+    {
+        /* Create some noise and add it to the base values */
+        std::vector<double> neighborLambdaEnergyNoise(numLambdaStates);
+        std::vector<double> neighborLambdaDhdlNoise(numLambdaStates);
+        randomArrayFill(neighborLambdaEnergyNoise, randomEngine, -energyNoiseMagnitude, energyNoiseMagnitude);
+        randomArrayFill(neighborLambdaDhdlNoise, randomEngine, -dhdlNoiseMagnitude, dhdlNoiseMagnitude);
+        std::vector<double> neighborLambdaEnergies(numLambdaStates);
+        std::vector<double> neighborLambdaDhdl(numLambdaStates);
+        for (int i = 0; i < numLambdaStates; i++)
+        {
+            neighborLambdaEnergies[i] = lambdaEnergyBase[i] + neighborLambdaEnergyNoise[i];
+            neighborLambdaDhdl[i]     = lambdaDhdlBase[i] + neighborLambdaDhdlNoise[i];
+        }
+
+        int      umbrellaGridpointIndex = bias.state().coordState().umbrellaGridpoint();
+        awh_dvec coordValue = { bias.getGridCoordValue(umbrellaGridpointIndex)[0], 0, 0, 0 };
+
+        double potential     = 0;
+        double potentialJump = 0;
+        bias.calcForceAndUpdateBias(coordValue, neighborLambdaEnergies, neighborLambdaDhdl,
+                                    &potential, &potentialJump, nullptr, nullptr, step, step,
+                                    params.awhParams.seed, nullptr);
+
+        inInitialStage = bias.state().inInitialStage();
+        if (!inInitialStage)
+        {
+            break;
+        }
+    }
+
+    EXPECT_EQ(false, inInitialStage);
+    if (!inInitialStage)
+    {
+        EXPECT_EQ(exitStepRef, step);
+    }
+}
+
+} // namespace test
+} // namespace gmx
index cdb08acd00afef27380f8b1fd42289ed7081c35f..60fe0d44d0ad537a2137a94e3e0fcd2d33794403 100644 (file)
@@ -92,6 +92,7 @@ static AwhTestParameters getAwhTestParameters()
     awhDimParams0.end            = 1.5;
     awhDimParams0.coordValueInit = awhDimParams0.origin;
     awhDimParams0.coverDiameter  = 0;
+    awhDimParams0.eCoordProvider = eawhcoordproviderPULL;
 
     AwhDimParams& awhDimParams1 = awhBiasParams.dimParams[1];
 
@@ -101,6 +102,7 @@ static AwhTestParameters getAwhTestParameters()
     awhDimParams1.end            = 1.3;
     awhDimParams1.coordValueInit = awhDimParams1.origin;
     awhDimParams1.coverDiameter  = 0;
+    awhDimParams1.eCoordProvider = eawhcoordproviderPULL;
 
     awhBiasParams.ndim                 = 2;
     awhBiasParams.eTarget              = eawhtargetCONSTANT;
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_0.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_0.xml
new file mode 100644 (file)
index 0000000..73dca47
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           final</String>
+    <String>convolve forces: no</String>
+    <String>skip updates:    no</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.495530169773147</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.636619251512844</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.876409458086407</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>12.105272542330583</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>7.8299236962943137</Real>
+    <Real>11.787055710383672</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.453526208106549</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.453526208106549</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.207027337780797</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.681645921797619</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>9.9060287852367068</Real>
+    <Real>9.3745732085462272</Real>
+    <Real>10.587906626094059</Real>
+    <Real>11.348116419520498</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>9.889523596492225</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>9.268714272099011</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>11.348116419520498</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.847706720169054</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>7.1844138499758952</Real>
+    <Real>5.895911017983547</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.121219715705681</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.587906626094059</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.742029040098897</Real>
+    <Real>9.7652513140669175</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.5636045255826794</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.495530169773147</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>6.4000390266268736</Real>
+    <Real>7.3550123563420993</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>9.268714272099011</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.540556840057921</Real>
+    <Real>8.5187524437411657</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.452891705061662</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>9.5724992829595852</Real>
+    <Real>10.861002114951933</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9581412974089889</Real>
+    <Real>-2.8246290310544016</Real>
+    <Real>-2.8377550587114126</Real>
+    <Real>-2.7807132483932633</Real>
+    <Real>-2.7730438576965382</Real>
+    <Real>-2.7530943926215756</Real>
+    <Real>-2.7508149584848902</Real>
+    <Real>-2.7469978091585223</Real>
+    <Real>-2.7452501953880741</Real>
+    <Real>-2.7434830854330015</Real>
+    <Real>-2.7422859611327945</Real>
+    <Real>-2.7423485956208657</Real>
+    <Real>-2.7414859306831203</Real>
+    <Real>-2.7399531430550184</Real>
+    <Real>-2.7407368669517913</Real>
+    <Real>-2.7401802010430738</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.795538595485068</Real>
+    <Real>9.6620263291304571</Real>
+    <Real>9.6751523567874607</Real>
+    <Real>9.6181105464693228</Real>
+    <Real>9.6104411557726053</Real>
+    <Real>9.5904916906976396</Real>
+    <Real>9.5882122565609738</Real>
+    <Real>9.5843951072345863</Real>
+    <Real>9.5826474934641475</Real>
+    <Real>9.5808803835090632</Real>
+    <Real>9.5796832592088723</Real>
+    <Real>9.5797458936969182</Real>
+    <Real>9.5788832287591763</Real>
+    <Real>9.5773504411310704</Real>
+    <Real>9.5781341650278762</Real>
+    <Real>9.577577499119128</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_1.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_1.xml
new file mode 100644 (file)
index 0000000..189b927
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           final</String>
+    <String>convolve forces: no</String>
+    <String>skip updates:    yes</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.495530169773147</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.636619251512844</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.876409458086407</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>12.105272542330583</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>7.8299236962943137</Real>
+    <Real>11.787055710383672</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.453526208106549</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.453526208106549</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.207027337780797</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.681645921797619</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>9.9060287852367068</Real>
+    <Real>9.3745732085462272</Real>
+    <Real>10.587906626094059</Real>
+    <Real>11.348116419520498</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>9.889523596492225</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>9.268714272099011</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>11.348116419520498</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.847706720169054</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>7.1844138499758952</Real>
+    <Real>5.895911017983547</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.121219715705681</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.587906626094059</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.742029040098897</Real>
+    <Real>9.7652513140669175</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.5636045255826794</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.495530169773147</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>6.4000390266268736</Real>
+    <Real>7.3550123563420993</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>9.268714272099011</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.540556840057921</Real>
+    <Real>8.5187524437411657</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.452891705061662</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>9.5724992829595852</Real>
+    <Real>10.861002114951933</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9581412974089889</Real>
+    <Real>-2.8246290310544016</Real>
+    <Real>-2.8377550587114126</Real>
+    <Real>-2.7807132483932633</Real>
+    <Real>-2.7730438576965382</Real>
+    <Real>-2.7530943926215756</Real>
+    <Real>-2.7508149584848902</Real>
+    <Real>-2.7469978091585223</Real>
+    <Real>-2.7452501953880741</Real>
+    <Real>-2.7434830854330015</Real>
+    <Real>-2.7422859611327945</Real>
+    <Real>-2.7423485956208657</Real>
+    <Real>-2.7414859306831203</Real>
+    <Real>-2.7399531430550184</Real>
+    <Real>-2.7407368669517913</Real>
+    <Real>-2.7401802010430738</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.795538595485068</Real>
+    <Real>9.6620263291304571</Real>
+    <Real>9.6751523567874607</Real>
+    <Real>9.6181105464693228</Real>
+    <Real>9.6104411557726053</Real>
+    <Real>9.5904916906976396</Real>
+    <Real>9.5882122565609738</Real>
+    <Real>9.5843951072345863</Real>
+    <Real>9.5826474934641475</Real>
+    <Real>9.5808803835090632</Real>
+    <Real>9.5796832592088723</Real>
+    <Real>9.5797458936969182</Real>
+    <Real>9.5788832287591763</Real>
+    <Real>9.5773504411310704</Real>
+    <Real>9.5781341650278762</Real>
+    <Real>9.577577499119128</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_2.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_2.xml
new file mode 100644 (file)
index 0000000..95ff4bc
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           final</String>
+    <String>convolve forces: yes</String>
+    <String>skip updates:    no</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.33116289142915</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952773</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360288</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.328721740716153</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393916</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393916</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755106</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.3268797531491</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.3268797531491</Real>
+    <Real>11.326263666913031</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913031</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.325646544371667</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371669</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371669</Real>
+    <Real>11.325646544371667</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837328</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609746</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976006</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574409</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316503</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316503</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863699</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863705</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970877</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970877</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211268</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211266</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211268</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211266</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341109</Real>
+    <Real>11.316900968341107</Real>
+    <Real>11.316900968341107</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316268931488539</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488542</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007524</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.312456878176308</Real>
+    <Real>11.312456878176308</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870779</Real>
+    <Real>11.311818277870778</Real>
+    <Real>11.311818277870779</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870781</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107207</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887635</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199793</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017056</Real>
+    <Real>11.309254752017056</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298387</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298385</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298385</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988324</Real>
+    <Real>11.307967583988324</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299544</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299545</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216112</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216116</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.304734215607887</Real>
+    <Real>11.304734215607887</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.304734215607892</Real>
+    <Real>11.304084932769417</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.304084932769417</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542855</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734226</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9321205465116007</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9264840928509583</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9391397469176175</Real>
+    <Real>6.9283827044702084</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9391397469176175</Real>
+    <Real>6.9411932330686001</Real>
+    <Real>6.9313102331123568</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9411932330686001</Real>
+    <Real>6.9312632745043148</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9252837567321794</Real>
+    <Real>6.9312632745043148</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9417006573982079</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9417006573982079</Real>
+    <Real>6.926916157079531</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9331209951034181</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9442639735959224</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9331209951034181</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9311796289722993</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9235436976485722</Real>
+    <Real>6.9468296602865509</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9311796289722993</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9253153260906055</Real>
+    <Real>6.9468296602865509</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>6.9206590497395437</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>6.9235230066919744</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>6.9203684075030001</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>6.9541728878362026</Real>
+    <Real>6.9341538594290517</Real>
+    <Real>7.0102935545845666</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9190964309145375</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9345052760011674</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>6.9310796496048734</Real>
+    <Real>6.9310530697331068</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9639195964006202</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9156319061415186</Real>
+    <Real>6.9348602301954818</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9201499384998595</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9671705782083553</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>6.9352187061305628</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>6.9352187061305628</Real>
+    <Real>6.9671705782083553</Real>
+    <Real>6.9596924348231139</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9622716179654089</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>6.9309933944894722</Real>
+    <Real>6.9359461599776555</Real>
+    <Real>6.9648529316098449</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>7.0586172604738149</Real>
+    <Real>6.916796832536698</Real>
+    <Real>7.0586172604738149</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>7.068197069775084</Real>
+    <Real>6.9674363423988783</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>6.936315106406906</Real>
+    <Real>6.9099221125279726</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>7.068197069775084</Real>
+    <Real>6.9130815477175878</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>6.9674363423988783</Real>
+    <Real>6.9309702069176513</Real>
+    <Real>7.0777488668289603</Real>
+    <Real>6.9700218172034134</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9700218172034134</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9309702069176513</Real>
+    <Real>7.0777488668289603</Real>
+    <Real>6.9083944066192071</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9309635547993285</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9726093231217039</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9726093231217039</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9370633599887013</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>6.9751988274782484</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>6.9751988274782484</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9309600724401133</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9899528122985775</Real>
+    <Real>6.9378253241337084</Real>
+    <Real>6.91326026429003</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9777902978227004</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>6.9932106133682534</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>7.1156784523322516</Real>
+    <Real>6.9002947318506971</Real>
+    <Real>7.1156784523322516</Real>
+    <Real>6.9049849024228882</Real>
+    <Real>6.9101500318940552</Real>
+    <Real>6.9309632177332627</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>6.9007787595552497</Real>
+    <Real>6.9386008751375776</Real>
+    <Real>6.9309696044292037</Real>
+    <Real>6.9309696044292037</Real>
+    <Real>6.9007177283853665</Real>
+    <Real>6.982979007793034</Real>
+    <Real>6.982979007793034</Real>
+    <Real>7.1250920720289699</Real>
+    <Real>6.9964691089738711</Real>
+    <Real>6.9386008751375776</Real>
+    <Real>6.9102994269491713</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>6.9855761836340067</Real>
+    <Real>6.9855761836340067</Real>
+    <Real>6.999728265001453</Real>
+    <Real>6.9079519070249056</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>6.9389937072960794</Real>
+    <Real>6.9881751978908504</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>6.9881751978908504</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>6.9393898901810269</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>6.8961572203942083</Real>
+    <Real>6.9310080917707664</Real>
+    <Real>6.9083371552713153</Real>
+    <Real>7.0062484232931439</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9933786165057956</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9401922473263999</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.0095093587504742</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9401922473263999</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>6.8932010392253575</Real>
+    <Real>6.9063841333105636</Real>
+    <Real>7.1717536581142713</Real>
+    <Real>7.1717536581142713</Real>
+    <Real>6.9959829588358495</Real>
+    <Real>6.9959829588358495</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>6.9985890155234483</Real>
+    <Real>6.9024944945572306</Real>
+    <Real>7.0160327773761422</Real>
+    <Real>7.0160327773761422</Real>
+    <Real>6.8916102562066435</Real>
+    <Real>7.181005520750424</Real>
+    <Real>6.9410078255140917</Real>
+    <Real>7.181005520750424</Real>
+    <Real>7.181005520750424</Real>
+    <Real>6.9310753171762984</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>7.0192951954142293</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.0011967560946831</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.0038061502896802</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>6.9418365045588546</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>6.9422557195828993</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.0258212881803246</Real>
+    <Real>6.9311709581977112</Real>
+    <Real>7.0064171680614873</Real>
+    <Real>6.9422557195828993</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.0090297795749628</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>6.8981672650228711</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>6.93125034750497</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>6.9431038264692226</Real>
+    <Real>6.93125034750497</Real>
+    <Real>6.93125034750497</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.0116439552056518</Real>
+    <Real>7.0142596655386722</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.0142596655386722</Real>
+    <Real>6.8792401036454294</Real>
+    <Real>6.9312946954931149</Real>
+    <Real>7.0356130949373874</Real>
+    <Real>6.9435326888275135</Real>
+    <Real>6.9435326888275135</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>6.9313421301248006</Real>
+    <Real>6.8949442401667236</Real>
+    <Real>6.8810530022941006</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>7.0168768813676046</Real>
+    <Real>7.0194955736933657</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>7.0421423820248545</Real>
+    <Real>6.8977089489300063</Real>
+    <Real>6.9443999580180069</Real>
+    <Real>7.0194955736933657</Real>
+    <Real>6.9443999580180069</Real>
+    <Real>6.8815587695612903</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>6.8801188424585034</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.0454073587248853</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>6.8766678653427782</Real>
+    <Real>7.0221157137231058</Real>
+    <Real>6.9448383356685719</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.0454073587248853</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>6.8786804914314157</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0273602227475687</Real>
+    <Real>6.8750529497439317</Real>
+    <Real>7.2810502177983984</Real>
+    <Real>6.8712010677788289</Real>
+    <Real>6.9457245045269387</Real>
+    <Real>7.0519378283601242</Real>
+    <Real>7.0519378283601242</Real>
+    <Real>6.9315625029080579</Real>
+    <Real>7.0273602227475687</Real>
+    <Real>6.8836797956320863</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.0299845351777002</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9461722668731056</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9316251969529468</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9316909083828238</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>6.9466231286779232</Real>
+    <Real>7.2989072216593396</Real>
+    <Real>6.8690695323135085</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>6.9466231286779232</Real>
+    <Real>7.0617343809148849</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>6.8874978225812722</Real>
+    <Real>6.8705683918912204</Real>
+    <Real>6.9470770756430058</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.0617343809148849</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>6.9475340935226884</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>6.9318313377872798</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.0404948538365808</Real>
+    <Real>6.9479941681239001</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.0682656431414852</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>6.8853891472814439</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>6.9484572853060156</Real>
+    <Real>7.0715312569533948</Real>
+    <Real>6.9484572853060156</Real>
+    <Real>6.8662309122613756</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>6.8843379345018096</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>7.0715312569533948</Real>
+    <Real>6.8892167430757576</Real>
+    <Real>6.9489234309807211</Real>
+    <Real>6.9489234309807211</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.343113325609214</Real>
+    <Real>6.8749264504672771</Real>
+    <Real>6.8658058562408755</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.351880608715339</Real>
+    <Real>6.8658058562408755</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.0510247708499243</Real>
+    <Real>7.3606234979269844</Real>
+    <Real>6.9322344212561973</Real>
+    <Real>6.8684345757381813</Real>
+    <Real>7.0510247708499243</Real>
+    <Real>7.3606234979269844</Real>
+    <Real>6.9322344212561973</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0845929466266933</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0845929466266933</Real>
+    <Real>7.0878580407553073</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>7.378036521369018</Real>
+    <Real>6.8699646020805814</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>6.9508180186621047</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>6.9325114866103688</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.3867068674946186</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9581412974089889</Real>
+    <Real>-2.8246290310544016</Real>
+    <Real>-2.8377550587114126</Real>
+    <Real>-2.7807132483932633</Real>
+    <Real>-2.7730438576965382</Real>
+    <Real>-2.7530943926215756</Real>
+    <Real>-2.7508149584848902</Real>
+    <Real>-2.7469978091585223</Real>
+    <Real>-2.7452501953880741</Real>
+    <Real>-2.7434830854330015</Real>
+    <Real>-2.7422859611327945</Real>
+    <Real>-2.7423485956208657</Real>
+    <Real>-2.7414859306831203</Real>
+    <Real>-2.7399531430550184</Real>
+    <Real>-2.7407368669517913</Real>
+    <Real>-2.7401802010430738</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.795538595485068</Real>
+    <Real>9.6620263291304571</Real>
+    <Real>9.6751523567874607</Real>
+    <Real>9.6181105464693228</Real>
+    <Real>9.6104411557726053</Real>
+    <Real>9.5904916906976396</Real>
+    <Real>9.5882122565609738</Real>
+    <Real>9.5843951072345863</Real>
+    <Real>9.5826474934641475</Real>
+    <Real>9.5808803835090632</Real>
+    <Real>9.5796832592088723</Real>
+    <Real>9.5797458936969182</Real>
+    <Real>9.5788832287591763</Real>
+    <Real>9.5773504411310704</Real>
+    <Real>9.5781341650278762</Real>
+    <Real>9.577577499119128</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_3.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_3.xml
new file mode 100644 (file)
index 0000000..52ac3d8
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           final</String>
+    <String>convolve forces: yes</String>
+    <String>skip updates:    yes</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.33116289142915</Real>
+    <Real>11.331162891429148</Real>
+    <Real>11.331162891429146</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.330554209108149</Real>
+    <Real>11.330554209108147</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952777</Real>
+    <Real>11.329944452952775</Real>
+    <Real>11.329944452952773</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360288</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.329333628360287</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.328721740716153</Real>
+    <Real>11.32872174071615</Real>
+    <Real>11.328721740716151</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393916</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393916</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.328108795393918</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755106</Real>
+    <Real>11.327494797755104</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.327494797755103</Real>
+    <Real>11.3268797531491</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.326879753149099</Real>
+    <Real>11.3268797531491</Real>
+    <Real>11.326263666913031</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913031</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.326263666913029</Real>
+    <Real>11.326263666913027</Real>
+    <Real>11.325646544371667</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371669</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371669</Real>
+    <Real>11.325646544371667</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325646544371665</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837328</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.32502839083733</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.325028390837332</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609746</Real>
+    <Real>11.324409211609748</Real>
+    <Real>11.324409211609749</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976006</Real>
+    <Real>11.323789011976004</Real>
+    <Real>11.323789011976002</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.323167797210406</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210408</Real>
+    <Real>11.323167797210409</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574406</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574409</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.322545572574407</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316503</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316505</Real>
+    <Real>11.321922343316503</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672162</Real>
+    <Real>11.321298114672164</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863699</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863705</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320672891863701</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100221</Real>
+    <Real>11.320046680100223</Real>
+    <Real>11.320046680100225</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577555</Real>
+    <Real>11.319419484577553</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318791310478117</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970877</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970877</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.318162162970875</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211268</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211266</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211268</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211266</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.317532047211269</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341109</Real>
+    <Real>11.316900968341107</Real>
+    <Real>11.316900968341107</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316900968341111</Real>
+    <Real>11.316268931488539</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488542</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.316268931488541</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315635941767935</Real>
+    <Real>11.315635941767937</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.315002004279844</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.314367124110948</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333942</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313731306333944</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007528</Real>
+    <Real>11.313094556007526</Real>
+    <Real>11.313094556007524</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.31245687817631</Real>
+    <Real>11.312456878176308</Real>
+    <Real>11.312456878176308</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870779</Real>
+    <Real>11.311818277870778</Real>
+    <Real>11.311818277870779</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870776</Real>
+    <Real>11.311818277870781</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107207</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107206</Real>
+    <Real>11.311178760107209</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887635</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.310538329887637</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309896992199793</Real>
+    <Real>11.309896992199796</Real>
+    <Real>11.309896992199794</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017056</Real>
+    <Real>11.309254752017056</Real>
+    <Real>11.309254752017052</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.309254752017051</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298387</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298385</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298385</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.308611614298391</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988324</Real>
+    <Real>11.307967583988324</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307967583988326</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.307322666016884</Real>
+    <Real>11.307322666016885</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299544</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299545</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306676865299542</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737198</Real>
+    <Real>11.306030186737196</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216112</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216116</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.305382635216114</Real>
+    <Real>11.304734215607887</Real>
+    <Real>11.304734215607887</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.30473421560789</Real>
+    <Real>11.304734215607892</Real>
+    <Real>11.304084932769417</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.304084932769417</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.30408493276942</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542855</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.303434791542854</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755564</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302783796755563</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220114</Real>
+    <Real>11.302131953220115</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734226</Real>
+    <Real>11.301479265734224</Real>
+    <Real>11.301479265734224</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9321205465116007</Real>
+    <Real>6.937951424136366</Real>
+    <Real>6.9513536780404817</Real>
+    <Real>6.9264840928509583</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9391397469176175</Real>
+    <Real>6.9283827044702084</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9391397469176175</Real>
+    <Real>6.9411932330686001</Real>
+    <Real>6.9313102331123568</Real>
+    <Real>6.9612501694630389</Real>
+    <Real>6.9411932330686001</Real>
+    <Real>6.9312632745043148</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9252837567321794</Real>
+    <Real>6.9312632745043148</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9417006573982079</Real>
+    <Real>6.9711172111785462</Real>
+    <Real>6.9417006573982079</Real>
+    <Real>6.926916157079531</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9331209951034181</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9442639735959224</Real>
+    <Real>6.9809549374046798</Real>
+    <Real>6.9331209951034181</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9476806540317995</Real>
+    <Real>6.9311796289722993</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9235436976485722</Real>
+    <Real>6.9468296602865509</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9311796289722993</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9253153260906055</Real>
+    <Real>6.9468296602865509</Real>
+    <Real>6.9907634816419577</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>6.9206590497395437</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>6.9235230066919744</Real>
+    <Real>6.9493976824829842</Real>
+    <Real>6.9203684075030001</Real>
+    <Real>7.0005429766767922</Real>
+    <Real>6.9541728878362026</Real>
+    <Real>6.9341538594290517</Real>
+    <Real>7.0102935545845666</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9190964309145375</Real>
+    <Real>6.957420713992426</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9519680054341411</Real>
+    <Real>6.9345052760011674</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>7.0200153467327207</Real>
+    <Real>6.9310796496048734</Real>
+    <Real>6.9310530697331068</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9639195964006202</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9156319061415186</Real>
+    <Real>6.9348602301954818</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9201499384998595</Real>
+    <Real>7.0297084837838488</Real>
+    <Real>6.9671705782083553</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>6.9352187061305628</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>6.9352187061305628</Real>
+    <Real>6.9671705782083553</Real>
+    <Real>6.9596924348231139</Real>
+    <Real>7.0393730956988154</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9622716179654089</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>6.9704225379629703</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>7.0490093117398764</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>6.9309933944894722</Real>
+    <Real>6.9359461599776555</Real>
+    <Real>6.9648529316098449</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>7.0586172604738149</Real>
+    <Real>6.916796832536698</Real>
+    <Real>7.0586172604738149</Real>
+    <Real>6.9736754392005658</Real>
+    <Real>7.068197069775084</Real>
+    <Real>6.9674363423988783</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>6.936315106406906</Real>
+    <Real>6.9099221125279726</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>7.068197069775084</Real>
+    <Real>6.9130815477175878</Real>
+    <Real>6.9309801493708134</Real>
+    <Real>6.9674363423988783</Real>
+    <Real>6.9309702069176513</Real>
+    <Real>7.0777488668289603</Real>
+    <Real>6.9700218172034134</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9700218172034134</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9309702069176513</Real>
+    <Real>7.0777488668289603</Real>
+    <Real>6.9083944066192071</Real>
+    <Real>6.9801839217674866</Real>
+    <Real>6.9309635547993285</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9726093231217039</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9726093231217039</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9370633599887013</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>7.0872727781347074</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>6.9751988274782484</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>7.0967689295087499</Real>
+    <Real>6.9866957401662688</Real>
+    <Real>6.9751988274782484</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9309600724401133</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9899528122985775</Real>
+    <Real>6.9378253241337084</Real>
+    <Real>6.91326026429003</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>7.1062374460878397</Real>
+    <Real>6.9777902978227004</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>6.9932106133682534</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>7.1156784523322516</Real>
+    <Real>6.9002947318506971</Real>
+    <Real>7.1156784523322516</Real>
+    <Real>6.9049849024228882</Real>
+    <Real>6.9101500318940552</Real>
+    <Real>6.9309632177332627</Real>
+    <Real>6.9122709879096034</Real>
+    <Real>6.9007787595552497</Real>
+    <Real>6.9386008751375776</Real>
+    <Real>6.9309696044292037</Real>
+    <Real>6.9309696044292037</Real>
+    <Real>6.9007177283853665</Real>
+    <Real>6.982979007793034</Real>
+    <Real>6.982979007793034</Real>
+    <Real>7.1250920720289699</Real>
+    <Real>6.9964691089738711</Real>
+    <Real>6.9386008751375776</Real>
+    <Real>6.9102994269491713</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>6.9855761836340067</Real>
+    <Real>6.9855761836340067</Real>
+    <Real>6.999728265001453</Real>
+    <Real>6.9079519070249056</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>7.1344784282948837</Real>
+    <Real>6.9389937072960794</Real>
+    <Real>6.9881751978908504</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>6.9881751978908504</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>7.0029880476226891</Real>
+    <Real>7.1438376435799853</Real>
+    <Real>6.9393898901810269</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>6.8961572203942083</Real>
+    <Real>6.9310080917707664</Real>
+    <Real>6.9083371552713153</Real>
+    <Real>7.0062484232931439</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>6.9397894085777345</Real>
+    <Real>7.1531698396705785</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9933786165057956</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9401922473263999</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.0095093587504742</Real>
+    <Real>7.16247513769249</Real>
+    <Real>6.9401922473263999</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.16247513769249</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>6.8932010392253575</Real>
+    <Real>6.9063841333105636</Real>
+    <Real>7.1717536581142713</Real>
+    <Real>7.1717536581142713</Real>
+    <Real>6.9959829588358495</Real>
+    <Real>6.9959829588358495</Real>
+    <Real>7.0127708210126416</Real>
+    <Real>6.9985890155234483</Real>
+    <Real>6.9024944945572306</Real>
+    <Real>7.0160327773761422</Real>
+    <Real>7.0160327773761422</Real>
+    <Real>6.8916102562066435</Real>
+    <Real>7.181005520750424</Real>
+    <Real>6.9410078255140917</Real>
+    <Real>7.181005520750424</Real>
+    <Real>7.181005520750424</Real>
+    <Real>6.9310753171762984</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>7.0192951954142293</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.0011967560946831</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>6.9311040560598176</Real>
+    <Real>7.1902308447646064</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.0038061502896802</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.0225580429751382</Real>
+    <Real>7.1994297486728627</Real>
+    <Real>6.9418365045588546</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>6.9422557195828993</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.0258212881803246</Real>
+    <Real>6.9311709581977112</Real>
+    <Real>7.0064171680614873</Real>
+    <Real>6.9422557195828993</Real>
+    <Real>7.2086023503468297</Real>
+    <Real>7.0090297795749628</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>6.8981672650228711</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.2177487670169693</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.0290848994227009</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>6.93125034750497</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>6.9431038264692226</Real>
+    <Real>6.93125034750497</Real>
+    <Real>6.93125034750497</Real>
+    <Real>7.2268691152757745</Real>
+    <Real>7.0116439552056518</Real>
+    <Real>7.0142596655386722</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.2359635110810041</Real>
+    <Real>7.0142596655386722</Real>
+    <Real>6.8792401036454294</Real>
+    <Real>6.9312946954931149</Real>
+    <Real>7.0356130949373874</Real>
+    <Real>6.9435326888275135</Real>
+    <Real>6.9435326888275135</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>6.9313421301248006</Real>
+    <Real>6.8949442401667236</Real>
+    <Real>6.8810530022941006</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>6.9439647375496367</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>7.2450320697588868</Real>
+    <Real>7.0168768813676046</Real>
+    <Real>7.0194955736933657</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>7.0421423820248545</Real>
+    <Real>6.8977089489300063</Real>
+    <Real>6.9443999580180069</Real>
+    <Real>7.0194955736933657</Real>
+    <Real>6.9443999580180069</Real>
+    <Real>6.8815587695612903</Real>
+    <Real>7.2540749060073484</Real>
+    <Real>6.8801188424585034</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.0454073587248853</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>6.8766678653427782</Real>
+    <Real>7.0221157137231058</Real>
+    <Real>6.9448383356685719</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.2630921338992263</Real>
+    <Real>7.0454073587248853</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>6.8786804914314157</Real>
+    <Real>7.0486725174219416</Real>
+    <Real>7.2720838668854784</Real>
+    <Real>7.0273602227475687</Real>
+    <Real>6.8750529497439317</Real>
+    <Real>7.2810502177983984</Real>
+    <Real>6.8712010677788289</Real>
+    <Real>6.9457245045269387</Real>
+    <Real>7.0519378283601242</Real>
+    <Real>7.0519378283601242</Real>
+    <Real>6.9315625029080579</Real>
+    <Real>7.0273602227475687</Real>
+    <Real>6.8836797956320863</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.0299845351777002</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9461722668731056</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9316251969529468</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>7.2899912988548232</Real>
+    <Real>6.9316909083828238</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>6.9466231286779232</Real>
+    <Real>7.2989072216593396</Real>
+    <Real>6.8690695323135085</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>7.0326101821804086</Real>
+    <Real>6.9466231286779232</Real>
+    <Real>7.0617343809148849</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.307798097207483</Real>
+    <Real>6.8874978225812722</Real>
+    <Real>6.8705683918912204</Real>
+    <Real>6.9470770756430058</Real>
+    <Real>7.307798097207483</Real>
+    <Real>7.0617343809148849</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>6.9475340935226884</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>6.9318313377872798</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.0650000083831532</Real>
+    <Real>7.3166640358889357</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.0404948538365808</Real>
+    <Real>6.9479941681239001</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.0682656431414852</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>7.3255051474907216</Real>
+    <Real>6.8853891472814439</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>6.9484572853060156</Real>
+    <Real>7.0715312569533948</Real>
+    <Real>6.9484572853060156</Real>
+    <Real>6.8662309122613756</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>6.8843379345018096</Real>
+    <Real>7.3343215412003939</Real>
+    <Real>7.0715312569533948</Real>
+    <Real>6.8892167430757576</Real>
+    <Real>6.9489234309807211</Real>
+    <Real>6.9489234309807211</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.343113325609214</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.0747968218296808</Real>
+    <Real>7.343113325609214</Real>
+    <Real>6.8749264504672771</Real>
+    <Real>6.8658058562408755</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.351880608715339</Real>
+    <Real>6.8658058562408755</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.0780623100267395</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.351880608715339</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.0510247708499243</Real>
+    <Real>7.3606234979269844</Real>
+    <Real>6.9322344212561973</Real>
+    <Real>6.8684345757381813</Real>
+    <Real>7.0510247708499243</Real>
+    <Real>7.3606234979269844</Real>
+    <Real>6.9322344212561973</Real>
+    <Real>7.0813276940448873</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0845929466266933</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0536601110339667</Real>
+    <Real>7.369342100065599</Real>
+    <Real>7.0845929466266933</Real>
+    <Real>7.0878580407553073</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>7.378036521369018</Real>
+    <Real>6.8699646020805814</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.378036521369018</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>7.0562965428761348</Real>
+    <Real>6.9508180186621047</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>7.3867068674946186</Real>
+    <Real>6.9325114866103688</Real>
+    <Real>7.0911229496528039</Real>
+    <Real>7.3867068674946186</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9581412974089889</Real>
+    <Real>-2.8246290310544016</Real>
+    <Real>-2.8377550587114126</Real>
+    <Real>-2.7807132483932633</Real>
+    <Real>-2.7730438576965382</Real>
+    <Real>-2.7530943926215756</Real>
+    <Real>-2.7508149584848902</Real>
+    <Real>-2.7469978091585223</Real>
+    <Real>-2.7452501953880741</Real>
+    <Real>-2.7434830854330015</Real>
+    <Real>-2.7422859611327945</Real>
+    <Real>-2.7423485956208657</Real>
+    <Real>-2.7414859306831203</Real>
+    <Real>-2.7399531430550184</Real>
+    <Real>-2.7407368669517913</Real>
+    <Real>-2.7401802010430738</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.795538595485068</Real>
+    <Real>9.6620263291304571</Real>
+    <Real>9.6751523567874607</Real>
+    <Real>9.6181105464693228</Real>
+    <Real>9.6104411557726053</Real>
+    <Real>9.5904916906976396</Real>
+    <Real>9.5882122565609738</Real>
+    <Real>9.5843951072345863</Real>
+    <Real>9.5826474934641475</Real>
+    <Real>9.5808803835090632</Real>
+    <Real>9.5796832592088723</Real>
+    <Real>9.5797458936969182</Real>
+    <Real>9.5788832287591763</Real>
+    <Real>9.5773504411310704</Real>
+    <Real>9.5781341650278762</Real>
+    <Real>9.577577499119128</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_4.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_4.xml
new file mode 100644 (file)
index 0000000..797223a
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           initial</String>
+    <String>convolve forces: no</String>
+    <String>skip updates:    no</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.495530169773147</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.636619251512844</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.876409458086407</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>12.105272542330583</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>7.8299236962943137</Real>
+    <Real>11.787055710383672</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.453526208106549</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.453526208106549</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.207027337780797</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.681645921797619</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>9.9060287852367068</Real>
+    <Real>9.3745732085462272</Real>
+    <Real>10.587906626094059</Real>
+    <Real>11.348116419520498</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>9.889523596492225</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>9.268714272099011</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>11.348116419520498</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.847706720169054</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>7.1844138499758952</Real>
+    <Real>5.895911017983547</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.121219715705681</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.587906626094059</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.742029040098897</Real>
+    <Real>9.7652513140669175</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.5636045255826794</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.495530169773147</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>6.4000390266268736</Real>
+    <Real>7.3550123563420993</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>9.268714272099011</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.540556840057921</Real>
+    <Real>8.5187524437411657</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.452891705061662</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>9.5724992829595852</Real>
+    <Real>10.861002114951933</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9609406022688112</Real>
+    <Real>-2.8254853588504654</Real>
+    <Real>-2.8388142854965275</Real>
+    <Real>-2.7808707305637332</Real>
+    <Real>-2.7730760637757532</Real>
+    <Real>-2.7527961218476045</Real>
+    <Real>-2.750478498847527</Real>
+    <Real>-2.7465971997542016</Real>
+    <Real>-2.7448201329604163</Real>
+    <Real>-2.7430231881398033</Real>
+    <Real>-2.7418058217996886</Real>
+    <Real>-2.7418695159782902</Real>
+    <Real>-2.7409922499818697</Real>
+    <Real>-2.7394334874951958</Real>
+    <Real>-2.7402304975580041</Real>
+    <Real>-2.7396643957984965</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.7725264428930814</Real>
+    <Real>9.6370711994747449</Real>
+    <Real>9.6504001261207897</Real>
+    <Real>9.5924565711879861</Real>
+    <Real>9.5846619044000256</Real>
+    <Real>9.5643819624718809</Real>
+    <Real>9.5620643394718012</Real>
+    <Real>9.5581830403784735</Real>
+    <Real>9.5564059735846918</Real>
+    <Real>9.5546090287640624</Real>
+    <Real>9.553391662423957</Real>
+    <Real>9.5534553566025338</Real>
+    <Real>9.5525780906061382</Real>
+    <Real>9.5510193281194482</Real>
+    <Real>9.5518163381822738</Real>
+    <Real>9.5512502364227903</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_5.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_5.xml
new file mode 100644 (file)
index 0000000..1bb1ad6
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           initial</String>
+    <String>convolve forces: no</String>
+    <String>skip updates:    yes</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>7.9854380397522462</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.495530169773147</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.681645921797619</Real>
+    <Real>12.636619251512844</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>8.8909476519676431</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.876409458086407</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>12.105272542330583</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>7.8299236962943137</Real>
+    <Real>11.787055710383672</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.453526208106549</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.453526208106549</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.6024448199752941</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.207027337780797</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.636619251512844</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.681645921797619</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>9.9060287852367068</Real>
+    <Real>9.3745732085462272</Real>
+    <Real>10.587906626094059</Real>
+    <Real>11.348116419520498</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>9.889523596492225</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.01580992711963</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>9.268714272099011</Real>
+    <Real>8.6010207644998786</Real>
+    <Real>11.348116419520498</Real>
+    <Real>11.379053429351316</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.847706720169054</Real>
+    <Real>7.6333818298061127</Real>
+    <Real>8.1647285389883741</Real>
+    <Real>11.681645921797619</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.876409458086407</Real>
+    <Real>10.618843635924877</Real>
+    <Real>10.847706720169054</Real>
+    <Real>8.6319577743306972</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.105272542330583</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.618843635924877</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.785832700507417</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>7.1844138499758952</Real>
+    <Real>5.895911017983547</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.484463217937368</Real>
+    <Real>12.121219715705681</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.453526208106549</Real>
+    <Real>10.587906626094059</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>11.787055710383672</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.742029040098897</Real>
+    <Real>12.742029040098897</Real>
+    <Real>9.7652513140669175</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>7.4957596909723048</Real>
+    <Real>8.4507330206875295</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>9.889523596492225</Real>
+    <Real>8.9345502667770003</Real>
+    <Real>6.2294405202606695</Real>
+    <Real>6.5636045255826794</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.847706720169054</Real>
+    <Real>10.816769710338235</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.495530169773147</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>12.074335532499765</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>6.4000390266268736</Real>
+    <Real>7.3550123563420993</Real>
+    <Real>13.362838364492113</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>8.4030946900865189</Real>
+    <Real>9.268714272099011</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.074335532499765</Real>
+    <Real>11.11936220278454</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.484463217937368</Real>
+    <Real>11.484463217937368</Real>
+    <Real>8.2701383275744256</Real>
+    <Real>7.9359743222524166</Real>
+    <Real>10.92143612837118</Real>
+    <Real>10.92143612837118</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.379053429351316</Real>
+    <Real>12.01580992711963</Real>
+    <Real>12.121219715705681</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.540556840057921</Real>
+    <Real>8.5187524437411657</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>11.452891705061662</Real>
+    <Real>9.4310873087449067</Real>
+    <Real>9.1284948162986037</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>12.105272542330583</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>9.5724992829595852</Real>
+    <Real>10.861002114951933</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>12.407865034776886</Real>
+    <Real>12.407865034776886</Real>
+    <Real>10.540556840057921</Real>
+    <Real>10.540556840057921</Real>
+    <Real>11.452891705061662</Real>
+    <Real>12.407865034776886</Real>
+    <Real>13.362838364492113</Real>
+    <Real>12.742029040098897</Real>
+    <Real>11.787055710383672</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.150299212615359</Real>
+    <Real>10.847706720169054</Real>
+    <Real>11.150299212615359</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.452891705061662</Real>
+    <Real>11.11936220278454</Real>
+    <Real>10.816769710338235</Real>
+    <Real>11.150299212615359</Real>
+    <Real>9.4310873087449067</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+    <Real>0</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9609406022688112</Real>
+    <Real>-2.8254853588504654</Real>
+    <Real>-2.8388142854965275</Real>
+    <Real>-2.7808707305637332</Real>
+    <Real>-2.7730760637757532</Real>
+    <Real>-2.7527961218476045</Real>
+    <Real>-2.750478498847527</Real>
+    <Real>-2.7465971997542016</Real>
+    <Real>-2.7448201329604163</Real>
+    <Real>-2.7430231881398033</Real>
+    <Real>-2.7418058217996886</Real>
+    <Real>-2.7418695159782902</Real>
+    <Real>-2.7409922499818697</Real>
+    <Real>-2.7394334874951958</Real>
+    <Real>-2.7402304975580041</Real>
+    <Real>-2.7396643957984965</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.7725264428930814</Real>
+    <Real>9.6370711994747449</Real>
+    <Real>9.6504001261207897</Real>
+    <Real>9.5924565711879861</Real>
+    <Real>9.5846619044000256</Real>
+    <Real>9.5643819624718809</Real>
+    <Real>9.5620643394718012</Real>
+    <Real>9.5581830403784735</Real>
+    <Real>9.5564059735846918</Real>
+    <Real>9.5546090287640624</Real>
+    <Real>9.553391662423957</Real>
+    <Real>9.5534553566025338</Real>
+    <Real>9.5525780906061382</Real>
+    <Real>9.5510193281194482</Real>
+    <Real>9.5518163381822738</Real>
+    <Real>9.5512502364227903</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_6.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_6.xml
new file mode 100644 (file)
index 0000000..4c95766
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           initial</String>
+    <String>convolve forces: yes</String>
+    <String>skip updates:    no</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727541</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727541</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.326864367918214</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326244398323681</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323681</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323677</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759738</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170713</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506791</Real>
+    <Real>11.324375621506791</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506793</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723925</Real>
+    <Real>11.323749749723925</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.32312240978367</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.32312240978367</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653056</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653056</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.32249360465306</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715552</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715556</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715552</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715557</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752429</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.319327705358427</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358427</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731563</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506833</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506834</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506834</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020664</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162846</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820357</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.313538161330838</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728593</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728593</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340746</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000029</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468741</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101034</Real>
+    <Real>11.308955544101028</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101028</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.30829526495368</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.307633590086253</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.306970982199161</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199157</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199161</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603645</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594746</Real>
+    <Real>11.305642988594744</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594744</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.304977613451198</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451198</Real>
+    <Real>11.304311326435442</Real>
+    <Real>11.304311326435442</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.303644132793531</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793531</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755135</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755135</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325253</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310734</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310731</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9321207726666163</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9264806355150021</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.9391450670710935</Real>
+    <Real>6.9283805667770562</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.9391450670710935</Real>
+    <Real>6.941199973255415</Real>
+    <Real>6.931310128253326</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.941199973255415</Real>
+    <Real>6.9312630790600602</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.9252773258756424</Real>
+    <Real>6.9312630790600602</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.941711310296828</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.941711310296828</Real>
+    <Real>6.9269114299639973</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9331233338539757</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9442817491821653</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9331233338539757</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9311792114187067</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9235299899580394</Real>
+    <Real>6.9468563544542308</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9311792114187067</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9253047054963881</Real>
+    <Real>6.9468563544542308</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>6.9206365940994825</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>6.9235065484118694</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>6.9203453428494512</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>6.9542201836513549</Real>
+    <Real>6.93416062177696</Real>
+    <Real>7.0104827335335438</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9190664541868436</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9345140614392005</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>6.9310789014171839</Real>
+    <Real>6.9310522396882757</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9640211164915495</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9155825855996866</Real>
+    <Real>6.9348713253219909</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9201148556045933</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9672947255888742</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>6.9352324048546983</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>6.9352324048546983</Real>
+    <Real>6.9672947255888742</Real>
+    <Real>6.9597908591808677</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9623898537395181</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>6.9309924995288519</Real>
+    <Real>6.9359659765997881</Real>
+    <Real>6.9649928126260967</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>7.059137135556651</Real>
+    <Real>6.9167363412506493</Real>
+    <Real>7.059137135556651</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>7.0688019488652953</Real>
+    <Real>6.9675997073840179</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>6.9363384516837439</Real>
+    <Real>6.9098253314164717</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>7.0688019488652953</Real>
+    <Real>6.9129992138314176</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>6.9675997073840179</Real>
+    <Real>6.9309694865956573</Real>
+    <Real>7.0784449175304642</Real>
+    <Real>6.9702105096592737</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9702105096592737</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9309694865956573</Real>
+    <Real>7.0784449175304642</Real>
+    <Real>6.9082828225605812</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9309630071711039</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9728251912005277</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9728251912005277</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9370947374745917</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>7.097665623228691</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>6.9754437238591969</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>7.097665623228691</Real>
+    <Real>7.097665623228691</Real>
+    <Real>7.097665623228691</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>6.9754437238591969</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9309600738816197</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9902993723992193</Real>
+    <Real>6.9378660803981163</Real>
+    <Real>6.9131546719649792</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9780660795895244</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>6.9935981211198017</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>7.116799854613399</Real>
+    <Real>6.9001007989926499</Real>
+    <Real>7.116799854613399</Real>
+    <Real>6.9048208433471547</Real>
+    <Real>6.9100188066322863</Real>
+    <Real>6.9309636086049444</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>6.9005776253467079</Real>
+    <Real>6.9386524120621873</Real>
+    <Real>6.9309704699649117</Real>
+    <Real>6.9309704699649117</Real>
+    <Real>6.9005161833395547</Real>
+    <Real>6.9833221485966677</Real>
+    <Real>6.9833221485966677</Real>
+    <Real>7.1263347293980601</Real>
+    <Real>6.996899864077518</Real>
+    <Real>6.9386524120621873</Real>
+    <Real>6.9101554250570434</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>6.9859558062966753</Real>
+    <Real>6.9859558062966753</Real>
+    <Real>7.0002045688629435</Real>
+    <Real>6.9077913191471998</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>6.9390511773143837</Real>
+    <Real>6.9885931759148177</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>6.9885931759148177</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>6.9394536641298856</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>6.939859863975796</Real>
+    <Real>6.939859863975796</Real>
+    <Real>6.895889464487639</Real>
+    <Real>6.9310109567917682</Real>
+    <Real>6.9081644103982427</Real>
+    <Real>7.0068227350669341</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>6.939859863975796</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9938789408855451</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9402697683231187</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.01013613245361</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9402697683231187</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>6.8928846838777025</Real>
+    <Real>6.9061801759923371</Real>
+    <Real>7.1736896592222985</Real>
+    <Real>7.1736896592222985</Real>
+    <Real>6.9965272814859478</Real>
+    <Real>6.9965272814859478</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>6.9991792245001596</Real>
+    <Real>6.9022481447977038</Real>
+    <Real>7.0167713968931267</Real>
+    <Real>7.0167713968931267</Real>
+    <Real>6.8912670914593397</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>6.9411006564261202</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>6.9310811778744039</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>7.0200932008541441</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.0018347428099563</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.0044938094002696</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>6.9419462602888231</Real>
+    <Real>7.211194670133267</Real>
+    <Real>6.9423745593519364</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.0267449956993513</Real>
+    <Real>6.9311809790930132</Real>
+    <Real>7.0071563973591786</Real>
+    <Real>6.9423745593519364</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.0098224798778936</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>6.8978398541639718</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>6.9432421092245207</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.0124920302507405</Real>
+    <Real>7.0151650218751289</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.0151650218751289</Real>
+    <Real>6.8786818659538564</Real>
+    <Real>6.9313102063322232</Real>
+    <Real>7.0367426902616428</Real>
+    <Real>6.9436813430409927</Real>
+    <Real>6.9436813430409927</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>6.9313597945596825</Real>
+    <Real>6.8945489318633291</Real>
+    <Real>6.8804984728959804</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>7.0178414282515256</Real>
+    <Real>7.0205212229834064</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>7.0434207967690821</Real>
+    <Real>6.897334879982707</Real>
+    <Real>6.9445706859875731</Real>
+    <Real>7.0205212229834064</Real>
+    <Real>6.9445706859875731</Real>
+    <Real>6.8809938491968294</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>6.8795202091679064</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.0467636519146728</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>6.8760270059715882</Real>
+    <Real>7.0232043797772201</Real>
+    <Real>6.9450207781536832</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.0467636519146728</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>6.8780471993761481</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0285806748909625</Real>
+    <Real>6.8743556235059202</Real>
+    <Real>7.2852138279013836</Real>
+    <Real>6.8704536898936848</Real>
+    <Real>6.9459317614993381</Real>
+    <Real>7.0534568156123729</Real>
+    <Real>7.0534568156123729</Real>
+    <Real>6.9315905577057038</Real>
+    <Real>7.0285806748909625</Real>
+    <Real>6.8830942842910305</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.0312737611381397</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9463926357454744</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9316563225255337</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9317253055506569</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>6.946857087093675</Real>
+    <Real>7.3035154958245352</Real>
+    <Real>6.8682537462499029</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>6.946857087093675</Real>
+    <Real>7.0635124251253734</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>6.8869217880115965</Real>
+    <Real>6.8697546368392235</Real>
+    <Real>6.9473247828492504</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.0635124251253734</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>6.9477957076251293</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>6.9318727467581089</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.0420671954043792</Real>
+    <Real>6.9319511804041607</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.0702178728918206</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>6.8847592142140144</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>6.9487471829810898</Real>
+    <Real>7.0735705529168245</Real>
+    <Real>6.9487471829810898</Real>
+    <Real>6.8653023835814375</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>6.8836812175057647</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>7.0735705529168245</Real>
+    <Real>6.8886329227211185</Real>
+    <Real>6.9492277030781207</Real>
+    <Real>6.9492277030781207</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.348826673965096</Real>
+    <Real>6.8741153225133367</Real>
+    <Real>6.8648397981086422</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>6.8648397981086422</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.0528810208748292</Real>
+    <Real>7.3667700635868503</Real>
+    <Real>6.9322960509323686</Real>
+    <Real>6.8674960112228876</Real>
+    <Real>7.0528810208748292</Real>
+    <Real>7.3667700635868503</Real>
+    <Real>6.9322960509323686</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0869802807542293</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0869802807542293</Real>
+    <Real>7.0903323173730115</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>6.8690261621401252</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>6.9511813133231923</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>6.9325870582251596</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.3934940272217169</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9609406022688112</Real>
+    <Real>-2.8254853588504654</Real>
+    <Real>-2.8388142854965275</Real>
+    <Real>-2.7808707305637332</Real>
+    <Real>-2.7730760637757532</Real>
+    <Real>-2.7527961218476045</Real>
+    <Real>-2.750478498847527</Real>
+    <Real>-2.7465971997542016</Real>
+    <Real>-2.7448201329604163</Real>
+    <Real>-2.7430231881398033</Real>
+    <Real>-2.7418058217996886</Real>
+    <Real>-2.7418695159782902</Real>
+    <Real>-2.7409922499818697</Real>
+    <Real>-2.7394334874951958</Real>
+    <Real>-2.7402304975580041</Real>
+    <Real>-2.7396643957984965</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.7725264428930814</Real>
+    <Real>9.6370711994747449</Real>
+    <Real>9.6504001261207897</Real>
+    <Real>9.5924565711879861</Real>
+    <Real>9.5846619044000256</Real>
+    <Real>9.5643819624718809</Real>
+    <Real>9.5620643394718012</Real>
+    <Real>9.5581830403784735</Real>
+    <Real>9.5564059735846918</Real>
+    <Real>9.5546090287640624</Real>
+    <Real>9.553391662423957</Real>
+    <Real>9.5534553566025338</Real>
+    <Real>9.5525780906061382</Real>
+    <Real>9.5510193281194482</Real>
+    <Real>9.5518163381822738</Real>
+    <Real>9.5512502364227903</Real>
+  </Sequence>
+</ReferenceData>
diff --git a/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_7.xml b/src/gromacs/awh/tests/refdata/WithParameters_BiasFepLambdaStateTest_ForcesBiasPmf_7.xml
new file mode 100644 (file)
index 0000000..aa6df74
--- /dev/null
@@ -0,0 +1,1056 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Sequence Name="Properties">
+    <Int Name="Length">3</Int>
+    <String>stage:           initial</String>
+    <String>convolve forces: yes</String>
+    <String>skip updates:    yes</String>
+  </Sequence>
+  <Sequence Name="Force">
+    <Int Name="Length">501</Int>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.332377012920768</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506847</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331770494506848</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912046</Real>
+    <Real>11.331162469912048</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.330552942021512</Real>
+    <Real>11.330552942021514</Real>
+    <Real>11.330552942021511</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727541</Real>
+    <Real>11.32994191372754</Real>
+    <Real>11.329941913727541</Real>
+    <Real>11.329941913727538</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929416</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.329329387929418</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328715367533293</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.328099855452027</Real>
+    <Real>11.328099855452026</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605044</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.327482854605046</Real>
+    <Real>11.326864367918214</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326864367918215</Real>
+    <Real>11.326244398323681</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323681</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.326244398323677</Real>
+    <Real>11.326244398323679</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759735</Real>
+    <Real>11.325622948759738</Real>
+    <Real>11.325622948759737</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170713</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170711</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.325000022170707</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506791</Real>
+    <Real>11.324375621506791</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506793</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.324375621506789</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723925</Real>
+    <Real>11.323749749723925</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323749749723927</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.32312240978367</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.32312240978367</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.323122409783668</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653056</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653056</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.32249360465306</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.322493604653058</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304482</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321863337304483</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715552</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715556</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715552</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715554</Real>
+    <Real>11.321231610715557</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868978</Real>
+    <Real>11.320598427868976</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752432</Real>
+    <Real>11.319963791752429</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.31996379175243</Real>
+    <Real>11.319327705358427</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358427</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358429</Real>
+    <Real>11.319327705358425</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684187</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318690171684185</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731563</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.318051193731559</Real>
+    <Real>11.318051193731561</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506833</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506834</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506834</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.317410774506836</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020664</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316768917020667</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287951</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287947</Real>
+    <Real>11.316125624287949</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.315480899327676</Real>
+    <Real>11.315480899327675</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162846</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.31483474516285</Real>
+    <Real>11.314834745162848</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820357</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.314187164820355</Real>
+    <Real>11.313538161330838</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330836</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.313538161330834</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728593</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728591</Real>
+    <Real>11.312887737728595</Real>
+    <Real>11.312887737728593</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051471</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051474</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.312235897051472</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340746</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340742</Real>
+    <Real>11.311582642340744</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.31092797664099</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310927976640992</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000029</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.310271903000027</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468741</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.309614424468739</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101034</Real>
+    <Real>11.308955544101028</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101028</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.30895554410103</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308955544101032</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.30829526495368</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.308295264953678</Real>
+    <Real>11.307633590086253</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086255</Real>
+    <Real>11.307633590086256</Real>
+    <Real>11.306970982199161</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199157</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199159</Real>
+    <Real>11.306970982199161</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603645</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.306307446603643</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594746</Real>
+    <Real>11.305642988594744</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594744</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.305642988594743</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.304977613451198</Real>
+    <Real>11.304977613451197</Real>
+    <Real>11.3049776134512</Real>
+    <Real>11.304977613451198</Real>
+    <Real>11.304311326435442</Real>
+    <Real>11.304311326435442</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435441</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.304311326435439</Real>
+    <Real>11.303644132793531</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793531</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793533</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.303644132793535</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755135</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755137</Real>
+    <Real>11.302976037755135</Real>
+    <Real>11.302976037755139</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533466</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.302307046533464</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325253</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325255</Real>
+    <Real>11.301637164325257</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310731</Real>
+    <Real>11.300966396310734</Real>
+    <Real>11.300966396310733</Real>
+    <Real>11.300966396310731</Real>
+  </Sequence>
+  <Sequence Name="Potential">
+    <Int Name="Length">501</Int>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9314718055994531</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9347109351254961</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9340252851965136</Real>
+    <Real>6.9414276019729915</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9321207726666163</Real>
+    <Real>6.9379536694368795</Real>
+    <Real>6.9513605465210233</Real>
+    <Real>6.9264806355150021</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.9391450670710935</Real>
+    <Real>6.9283805667770562</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.9391450670710935</Real>
+    <Real>6.941199973255415</Real>
+    <Real>6.931310128253326</Real>
+    <Real>6.9612707182833597</Real>
+    <Real>6.941199973255415</Real>
+    <Real>6.9312630790600602</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.9252773258756424</Real>
+    <Real>6.9312630790600602</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.941711310296828</Real>
+    <Real>6.9711581960406255</Real>
+    <Real>6.941711310296828</Real>
+    <Real>6.9269114299639973</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9331233338539757</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9442817491821653</Real>
+    <Real>6.9810230583137747</Real>
+    <Real>6.9331233338539757</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9477031491033419</Real>
+    <Real>6.9311792114187067</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9235299899580394</Real>
+    <Real>6.9468563544542308</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9311792114187067</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9253047054963881</Real>
+    <Real>6.9468563544542308</Real>
+    <Real>6.9908653833636283</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>6.9206365940994825</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>6.9235065484118694</Real>
+    <Real>6.9494350969416816</Real>
+    <Real>6.9203453428494512</Real>
+    <Real>7.0006852491904503</Real>
+    <Real>6.9542201836513549</Real>
+    <Real>6.93416062177696</Real>
+    <Real>7.0104827335335438</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9190664541868436</Real>
+    <Real>6.9574838114457771</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9520179475748662</Real>
+    <Real>6.9345140614392005</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>7.0202579138708767</Real>
+    <Real>6.9310789014171839</Real>
+    <Real>6.9310522396882757</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9640211164915495</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9155825855996866</Real>
+    <Real>6.9348713253219909</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9201148556045933</Real>
+    <Real>7.0300108674187367</Real>
+    <Real>6.9672947255888742</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>6.9352324048546983</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>6.9352324048546983</Real>
+    <Real>6.9672947255888742</Real>
+    <Real>6.9597908591808677</Real>
+    <Real>7.0397416711314129</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9623898537395181</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>6.9705715938992228</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>7.0494504017009039</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>6.9309924995288519</Real>
+    <Real>6.9359659765997881</Real>
+    <Real>6.9649928126260967</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>7.059137135556651</Real>
+    <Real>6.9167363412506493</Real>
+    <Real>7.059137135556651</Real>
+    <Real>6.9738516877444825</Real>
+    <Real>7.0688019488652953</Real>
+    <Real>6.9675997073840179</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>6.9363384516837439</Real>
+    <Real>6.9098253314164717</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>7.0688019488652953</Real>
+    <Real>6.9129992138314176</Real>
+    <Real>6.9309793154801884</Real>
+    <Real>6.9675997073840179</Real>
+    <Real>6.9309694865956573</Real>
+    <Real>7.0784449175304642</Real>
+    <Real>6.9702105096592737</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9702105096592737</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9309694865956573</Real>
+    <Real>7.0784449175304642</Real>
+    <Real>6.9082828225605812</Real>
+    <Real>6.9804214181234503</Real>
+    <Real>6.9309630071711039</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9728251912005277</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9728251912005277</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9370947374745917</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>7.0880661171925796</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>7.097665623228691</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>6.9754437238591969</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>7.097665623228691</Real>
+    <Real>7.097665623228691</Real>
+    <Real>7.097665623228691</Real>
+    <Real>6.9870036504830315</Real>
+    <Real>6.9754437238591969</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9309600738816197</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9902993723992193</Real>
+    <Real>6.9378660803981163</Real>
+    <Real>6.9131546719649792</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>7.1072435107523315</Real>
+    <Real>6.9780660795895244</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>6.9935981211198017</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>7.116799854613399</Real>
+    <Real>6.9001007989926499</Real>
+    <Real>7.116799854613399</Real>
+    <Real>6.9048208433471547</Real>
+    <Real>6.9100188066322863</Real>
+    <Real>6.9309636086049444</Real>
+    <Real>6.9121532254305436</Real>
+    <Real>6.9005776253467079</Real>
+    <Real>6.9386524120621873</Real>
+    <Real>6.9309704699649117</Real>
+    <Real>6.9309704699649117</Real>
+    <Real>6.9005161833395547</Real>
+    <Real>6.9833221485966677</Real>
+    <Real>6.9833221485966677</Real>
+    <Real>7.1263347293980601</Real>
+    <Real>6.996899864077518</Real>
+    <Real>6.9386524120621873</Real>
+    <Real>6.9101554250570434</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>6.9859558062966753</Real>
+    <Real>6.9859558062966753</Real>
+    <Real>7.0002045688629435</Real>
+    <Real>6.9077913191471998</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>7.1358482094286746</Real>
+    <Real>6.9390511773143837</Real>
+    <Real>6.9885931759148177</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>6.9885931759148177</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>7.0035122032242452</Real>
+    <Real>7.1453403687637431</Real>
+    <Real>6.9394536641298856</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>6.939859863975796</Real>
+    <Real>6.939859863975796</Real>
+    <Real>6.895889464487639</Real>
+    <Real>6.9310109567917682</Real>
+    <Real>6.9081644103982427</Real>
+    <Real>7.0068227350669341</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>6.939859863975796</Real>
+    <Real>7.1548112811978744</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9938789408855451</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9402697683231187</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.01013613245361</Real>
+    <Real>7.164261020261784</Real>
+    <Real>6.9402697683231187</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.164261020261784</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>6.8928846838777025</Real>
+    <Real>6.9061801759923371</Real>
+    <Real>7.1736896592222985</Real>
+    <Real>7.1736896592222985</Real>
+    <Real>6.9965272814859478</Real>
+    <Real>6.9965272814859478</Real>
+    <Real>7.0134523636036885</Real>
+    <Real>6.9991792245001596</Real>
+    <Real>6.9022481447977038</Real>
+    <Real>7.0167713968931267</Real>
+    <Real>7.0167713968931267</Real>
+    <Real>6.8912670914593397</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>6.9411006564261202</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>7.1830972710823895</Real>
+    <Real>6.9310811778744039</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>7.0200932008541441</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.0018347428099563</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>6.9311111658763789</Real>
+    <Real>7.1924839285812272</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.0044938094002696</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.0234177441749317</Real>
+    <Real>7.2018497041942524</Real>
+    <Real>6.9419462602888231</Real>
+    <Real>7.211194670133267</Real>
+    <Real>6.9423745593519364</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.0267449956993513</Real>
+    <Real>6.9311809790930132</Real>
+    <Real>7.0071563973591786</Real>
+    <Real>6.9423745593519364</Real>
+    <Real>7.211194670133267</Real>
+    <Real>7.0098224798778936</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>6.8978398541639718</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.2205188983465485</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.0300749244266312</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>6.9432421092245207</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>6.9312638705406115</Real>
+    <Real>7.2298224605189727</Real>
+    <Real>7.0124920302507405</Real>
+    <Real>7.0151650218751289</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.2391054280721665</Real>
+    <Real>7.0151650218751289</Real>
+    <Real>6.8786818659538564</Real>
+    <Real>6.9313102063322232</Real>
+    <Real>7.0367426902616428</Real>
+    <Real>6.9436813430409927</Real>
+    <Real>6.9436813430409927</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>6.9313597945596825</Real>
+    <Real>6.8945489318633291</Real>
+    <Real>6.8804984728959804</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>6.9441242047901719</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>7.2483678721646712</Real>
+    <Real>7.0178414282515256</Real>
+    <Real>7.0205212229834064</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>7.0434207967690821</Real>
+    <Real>6.897334879982707</Real>
+    <Real>6.9445706859875731</Real>
+    <Real>7.0205212229834064</Real>
+    <Real>6.9445706859875731</Real>
+    <Real>6.8809938491968294</Real>
+    <Real>7.2576098636921271</Real>
+    <Real>6.8795202091679064</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.0467636519146728</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>6.8760270059715882</Real>
+    <Real>7.0232043797772201</Real>
+    <Real>6.9450207781536832</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.2668314732874713</Real>
+    <Real>7.0467636519146728</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>6.8780471993761481</Real>
+    <Real>7.0501090015032153</Real>
+    <Real>7.2760327713211561</Real>
+    <Real>7.0285806748909625</Real>
+    <Real>6.8743556235059202</Real>
+    <Real>7.2852138279013836</Real>
+    <Real>6.8704536898936848</Real>
+    <Real>6.9459317614993381</Real>
+    <Real>7.0534568156123729</Real>
+    <Real>7.0534568156123729</Real>
+    <Real>6.9315905577057038</Real>
+    <Real>7.0285806748909625</Real>
+    <Real>6.8830942842910305</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.0312737611381397</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9463926357454744</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9316563225255337</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>7.2943747128743555</Real>
+    <Real>6.9317253055506569</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>6.946857087093675</Real>
+    <Real>7.3035154958245352</Real>
+    <Real>6.8682537462499029</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>7.0339701053016075</Real>
+    <Real>6.946857087093675</Real>
+    <Real>7.0635124251253734</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>6.8869217880115965</Real>
+    <Real>6.8697546368392235</Real>
+    <Real>6.9473247828492504</Real>
+    <Real>7.3126299381912307</Real>
+    <Real>7.0635124251253734</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>6.9477957076251293</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>6.9318727467581089</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.0668651534935512</Real>
+    <Real>7.3217181590811009</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.0420671954043792</Real>
+    <Real>6.9319511804041607</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.0702178728918206</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>7.3307802769332682</Real>
+    <Real>6.8847592142140144</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>6.9487471829810898</Real>
+    <Real>7.0735705529168245</Real>
+    <Real>6.9487471829810898</Real>
+    <Real>6.8653023835814375</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>6.8836812175057647</Real>
+    <Real>7.3398164095229532</Real>
+    <Real>7.0735705529168245</Real>
+    <Real>6.8886329227211185</Real>
+    <Real>6.9492277030781207</Real>
+    <Real>6.9492277030781207</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.348826673965096</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.0769231634388454</Real>
+    <Real>7.348826673965096</Real>
+    <Real>6.8741153225133367</Real>
+    <Real>6.8648397981086422</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>6.8648397981086422</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.0802756745998874</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.3578111867179832</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.0528810208748292</Real>
+    <Real>7.3667700635868503</Real>
+    <Real>6.9322960509323686</Real>
+    <Real>6.8674960112228876</Real>
+    <Real>7.0528810208748292</Real>
+    <Real>7.3667700635868503</Real>
+    <Real>6.9322960509323686</Real>
+    <Real>7.0836280568117704</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0869802807542293</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0555874464894544</Real>
+    <Real>7.3757034197274987</Real>
+    <Real>7.0869802807542293</Real>
+    <Real>7.0903323173730115</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>6.8690261621401252</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.3846113696498863</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>7.0582950030413336</Real>
+    <Real>6.9511813133231923</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>7.3934940272217169</Real>
+    <Real>6.9325870582251596</Real>
+    <Real>7.0936841378779985</Real>
+    <Real>7.3934940272217169</Real>
+  </Sequence>
+  <Sequence Name="PointBias">
+    <Int Name="Length">16</Int>
+    <Real>-2.9609406022688112</Real>
+    <Real>-2.8254853588504654</Real>
+    <Real>-2.8388142854965275</Real>
+    <Real>-2.7808707305637332</Real>
+    <Real>-2.7730760637757532</Real>
+    <Real>-2.7527961218476045</Real>
+    <Real>-2.750478498847527</Real>
+    <Real>-2.7465971997542016</Real>
+    <Real>-2.7448201329604163</Real>
+    <Real>-2.7430231881398033</Real>
+    <Real>-2.7418058217996886</Real>
+    <Real>-2.7418695159782902</Real>
+    <Real>-2.7409922499818697</Real>
+    <Real>-2.7394334874951958</Real>
+    <Real>-2.7402304975580041</Real>
+    <Real>-2.7396643957984965</Real>
+  </Sequence>
+  <Sequence Name="PointLogPmfsum">
+    <Int Name="Length">16</Int>
+    <Real>9.7725264428930814</Real>
+    <Real>9.6370711994747449</Real>
+    <Real>9.6504001261207897</Real>
+    <Real>9.5924565711879861</Real>
+    <Real>9.5846619044000256</Real>
+    <Real>9.5643819624718809</Real>
+    <Real>9.5620643394718012</Real>
+    <Real>9.5581830403784735</Real>
+    <Real>9.5564059735846918</Real>
+    <Real>9.5546090287640624</Real>
+    <Real>9.553391662423957</Real>
+    <Real>9.5534553566025338</Real>
+    <Real>9.5525780906061382</Real>
+    <Real>9.5510193281194482</Real>
+    <Real>9.5518163381822738</Real>
+    <Real>9.5512502364227903</Real>
+  </Sequence>
+</ReferenceData>
index 953a44d524a2fa61dd94040339c56a1ca23dd0d5..16d4ac61223cd1a6f1d75c7022731b56a93d66b3 100644 (file)
     <Real>-70.000000000000014</Real>
     <Real>-49.999999999999986</Real>
     <Real>-5.0000000000000604</Real>
-    <Real>-49.999999999999993</Real>
-    <Real>-5</Real>
+    <Real>-50.000000000000043</Real>
+    <Real>-5.0000000000000568</Real>
     <Real>80.000000000000014</Real>
     <Real>-184.99999999999989</Real>
     <Real>-64.999999999999829</Real>
-    <Real>75.000000000000071</Real>
+    <Real>75.000000000000128</Real>
     <Real>10.000000000000011</Real>
-    <Real>-59.999999999999943</Real>
-    <Real>-9.999999999999897</Real>
-    <Real>-4.9999999999999485</Real>
+    <Real>-60.000000000000057</Real>
+    <Real>-10.000000000000009</Real>
+    <Real>-5.0000000000000053</Real>
     <Real>60</Real>
     <Real>0</Real>
-    <Real>-44.999999999999929</Real>
-    <Real>60.000000000000057</Real>
+    <Real>-44.999999999999986</Real>
+    <Real>60</Real>
     <Real>5.3290705182007514e-14</Real>
     <Real>-30.000000000000028</Real>
     <Real>-59.999999999999943</Real>
     <Real>4.9999999999999973</Real>
     <Real>0.19999999999999815</Real>
     <Real>11.250000000000004</Real>
-    <Real>3.1999999999999966</Real>
+    <Real>3.2000000000000055</Real>
     <Real>8.4500000000000011</Real>
     <Real>33.799999999999969</Real>
     <Real>4.0499999999999874</Real>
     <Real>11.250000000000021</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>0.049999999999998976</Real>
-    <Real>0.44999999999999746</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>0.050000000000000086</Real>
+    <Real>0.45000000000000084</Real>
     <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>7.1999999999999993</Real>
-    <Real>6.0500000000000105</Real>
+    <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>0.45000000000000084</Real>
     <Real>1.7999999999999965</Real>
     <Real>-6.9999999999999991</Real>
     <Real>-4.9999999999999973</Real>
     <Real>0.25000000000000266</Real>
-    <Real>-10.000000000000002</Real>
-    <Real>-0.75</Real>
+    <Real>-10.000000000000007</Real>
+    <Real>-0.75000000000000888</Real>
     <Real>-8</Real>
     <Real>-27.749999999999982</Real>
     <Real>-3.2499999999999947</Real>
     <Real>-11.250000000000021</Real>
-    <Real>-0.99999999999999956</Real>
+    <Real>-1.000000000000002</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>-0.24999999999999711</Real>
+    <Real>-0.2500000000000005</Real>
     <Real>-5.9999999999999982</Real>
     <Real>0</Real>
-    <Real>-6.7499999999999956</Real>
-    <Real>-6.0000000000000107</Real>
+    <Real>-6.7499999999999982</Real>
+    <Real>-5.9999999999999982</Real>
     <Real>-5.5511151231257827e-15</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>-3.4502423109495881</Real>
     <Real>-3.469814270443778</Real>
     <Real>-3.4405375988254123</Real>
-    <Real>-3.2226649751609364</Real>
+    <Real>-3.222664975160936</Real>
     <Real>-2.9351106219650442</Real>
     <Real>-2.8182713948302314</Real>
     <Real>-2.9109204815675662</Real>
     <Real>-2.9974201933988711</Real>
-    <Real>-2.909045620263937</Real>
-    <Real>-2.7875440262964757</Real>
+    <Real>-2.9090456202639374</Real>
+    <Real>-2.7875440262964752</Real>
     <Real>-2.7504540277720304</Real>
     <Real>-2.7468371894369819</Real>
     <Real>-2.7467110222070819</Real>
index 0e77b34d81aa74cb2ea9792fc886fbd88630f255..e633780fd14046e1a9de082943b1244df4b236f5 100644 (file)
     <Real>-70.000000000000014</Real>
     <Real>-49.999999999999986</Real>
     <Real>-5.0000000000000604</Real>
-    <Real>-49.999999999999993</Real>
-    <Real>-5</Real>
+    <Real>-50.000000000000043</Real>
+    <Real>-5.0000000000000568</Real>
     <Real>80.000000000000014</Real>
     <Real>-184.99999999999989</Real>
     <Real>-64.999999999999829</Real>
-    <Real>75.000000000000071</Real>
+    <Real>75.000000000000128</Real>
     <Real>10.000000000000011</Real>
-    <Real>-59.999999999999943</Real>
-    <Real>-9.999999999999897</Real>
-    <Real>-4.9999999999999485</Real>
+    <Real>-60.000000000000057</Real>
+    <Real>-10.000000000000009</Real>
+    <Real>-5.0000000000000053</Real>
     <Real>60</Real>
     <Real>0</Real>
-    <Real>-44.999999999999929</Real>
-    <Real>60.000000000000057</Real>
+    <Real>-44.999999999999986</Real>
+    <Real>60</Real>
     <Real>5.3290705182007514e-14</Real>
     <Real>-30.000000000000028</Real>
     <Real>-59.999999999999943</Real>
     <Real>4.9999999999999973</Real>
     <Real>0.19999999999999815</Real>
     <Real>11.250000000000004</Real>
-    <Real>3.1999999999999966</Real>
+    <Real>3.2000000000000055</Real>
     <Real>8.4500000000000011</Real>
     <Real>33.799999999999969</Real>
     <Real>4.0499999999999874</Real>
     <Real>11.250000000000021</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>0.049999999999998976</Real>
-    <Real>0.44999999999999746</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>0.050000000000000086</Real>
+    <Real>0.45000000000000084</Real>
     <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>7.1999999999999993</Real>
-    <Real>6.0500000000000105</Real>
+    <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>0.45000000000000084</Real>
     <Real>1.7999999999999965</Real>
     <Real>-6.9999999999999991</Real>
     <Real>-4.9999999999999973</Real>
     <Real>0.25000000000000266</Real>
-    <Real>-10.000000000000002</Real>
-    <Real>-0.75</Real>
+    <Real>-10.000000000000007</Real>
+    <Real>-0.75000000000000888</Real>
     <Real>-8</Real>
     <Real>-27.749999999999982</Real>
     <Real>-3.2499999999999947</Real>
     <Real>-11.250000000000021</Real>
-    <Real>-0.99999999999999956</Real>
+    <Real>-1.000000000000002</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>-0.24999999999999711</Real>
+    <Real>-0.2500000000000005</Real>
     <Real>-5.9999999999999982</Real>
     <Real>0</Real>
-    <Real>-6.7499999999999956</Real>
-    <Real>-6.0000000000000107</Real>
+    <Real>-6.7499999999999982</Real>
+    <Real>-5.9999999999999982</Real>
     <Real>-5.5511151231257827e-15</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>-3.4502423109495881</Real>
     <Real>-3.469814270443778</Real>
     <Real>-3.4405375988254123</Real>
-    <Real>-3.2226649751609364</Real>
+    <Real>-3.222664975160936</Real>
     <Real>-2.9351106219650442</Real>
     <Real>-2.8182713948302314</Real>
     <Real>-2.9109204815675662</Real>
     <Real>-2.9974201933988711</Real>
-    <Real>-2.909045620263937</Real>
-    <Real>-2.7875440262964757</Real>
+    <Real>-2.9090456202639374</Real>
+    <Real>-2.7875440262964752</Real>
     <Real>-2.7504540277720304</Real>
     <Real>-2.7468371894369819</Real>
     <Real>-2.7467110222070819</Real>
index 533383afa7ce85fcd7485f8560deb9b07a91f49b..07158824432d57f6cc9914879c765bee6ae8224d 100644 (file)
@@ -9,51 +9,51 @@
   </Sequence>
   <Sequence Name="Force">
     <Int Name="Length">21</Int>
-    <Real>0.21526724902654029</Real>
-    <Real>0.00037168043378189554</Real>
-    <Real>0.0023506021278633634</Real>
-    <Real>1.8322908294787776e-14</Real>
-    <Real>1.8182159860257569e-05</Real>
-    <Real>-1.8182159861071263e-05</Real>
-    <Real>-6.7883759693111072e-06</Real>
-    <Real>6.7883758926473613e-06</Real>
-    <Real>-4.5547116425681544e-14</Real>
-    <Real>6.7883759521357456e-06</Real>
-    <Real>-6.7883759527878661e-06</Real>
-    <Real>-3.5538537690811558</Real>
-    <Real>-2.0147107048387825</Real>
-    <Real>-2.7052521678814725</Real>
-    <Real>-1.0406813794780787</Real>
-    <Real>-3.967066260592369</Real>
-    <Real>-0.87907598448922164</Real>
-    <Real>-1.6612940249811217</Real>
-    <Real>-2.6184399315060456</Real>
-    <Real>-1.2743003165852991</Real>
-    <Real>-0.86472575028406273</Real>
+    <Real>0.21526724902654093</Real>
+    <Real>0.0003716804337800827</Real>
+    <Real>0.0023506021278663566</Real>
+    <Real>1.8012407615664505e-14</Real>
+    <Real>1.818215991704466e-05</Real>
+    <Real>-1.8182159915952154e-05</Real>
+    <Real>-6.788375906408334e-06</Real>
+    <Real>6.7883759915004787e-06</Real>
+    <Real>1.6429796433937993e-14</Real>
+    <Real>6.7883759305581166e-06</Real>
+    <Real>-6.7883759311136313e-06</Real>
+    <Real>-3.5538537690812251</Real>
+    <Real>-2.0147107048388269</Real>
+    <Real>-2.7052521678814729</Real>
+    <Real>-1.0406813794780656</Real>
+    <Real>-3.967066260592401</Real>
+    <Real>-0.8790759844891981</Real>
+    <Real>-1.6612940249811192</Real>
+    <Real>-2.6184399315060443</Real>
+    <Real>-1.2743003165852878</Real>
+    <Real>-0.86472575028404164</Real>
   </Sequence>
   <Sequence Name="Potential">
     <Int Name="Length">21</Int>
     <Real>5.3171052747656216</Real>
     <Real>5.3139634951471235</Real>
     <Real>5.3139852805648378</Real>
-    <Real>5.3139597783455503</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139597783455486</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139599283044348</Real>
+    <Real>5.3139599283044348</Real>
     <Real>5.3139598111771358</Real>
-    <Real>5.3139598111771358</Real>
-    <Real>5.8523574407739236</Real>
-    <Real>5.909517708141518</Real>
-    <Real>5.5891055083437386</Real>
+    <Real>5.3139598111771367</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.8523574407739245</Real>
+    <Real>5.9095177081415207</Real>
+    <Real>5.5891055083437378</Real>
     <Real>5.5179043538034485</Real>
-    <Real>5.6909400832286146</Real>
+    <Real>5.6909400832286137</Real>
     <Real>5.5084236091309347</Real>
     <Real>5.4647638463620405</Real>
     <Real>5.4221743541770948</Real>
     <Real>5.4793615522962513</Real>
-    <Real>5.4998305387193387</Real>
+    <Real>5.4998305387193378</Real>
   </Sequence>
   <Sequence Name="PotentialJump">
     <Int Name="Length">21</Int>
@@ -67,7 +67,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.60502446654887354</Real>
+    <Real>0.60502446654887332</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
@@ -77,7 +77,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.83485389150670564</Real>
+    <Real>0.8348538915067063</Real>
   </Sequence>
   <Sequence Name="PointBias">
     <Int Name="Length">21</Int>
     <Real>-3.4502423109495881</Real>
     <Real>-3.469814270443778</Real>
     <Real>-3.4405375988254123</Real>
-    <Real>-3.2226649751609364</Real>
+    <Real>-3.222664975160936</Real>
     <Real>-2.9351106219650442</Real>
     <Real>-2.8182713948302314</Real>
     <Real>-2.9109204815675662</Real>
     <Real>-2.9974201933988711</Real>
-    <Real>-2.909045620263937</Real>
-    <Real>-2.7875440262964757</Real>
+    <Real>-2.9090456202639374</Real>
+    <Real>-2.7875440262964752</Real>
     <Real>-2.7504540277720304</Real>
     <Real>-2.7468371894369819</Real>
     <Real>-2.7467110222070819</Real>
index dc189ee2665d6133963f3ec2a285dc7c5821cbeb..89d0b3483678d50b7d1dbc34a243159094ca5a6c 100644 (file)
@@ -9,51 +9,51 @@
   </Sequence>
   <Sequence Name="Force">
     <Int Name="Length">21</Int>
-    <Real>0.21526724902654029</Real>
-    <Real>0.00037168043378189554</Real>
-    <Real>0.0023506021278633634</Real>
-    <Real>1.8322908294787776e-14</Real>
-    <Real>1.8182159860257569e-05</Real>
-    <Real>-1.8182159861071263e-05</Real>
-    <Real>-6.7883759693111072e-06</Real>
-    <Real>6.7883758926473613e-06</Real>
-    <Real>-4.5547116425681544e-14</Real>
-    <Real>6.7883759521357456e-06</Real>
-    <Real>-6.7883759527878661e-06</Real>
-    <Real>-3.5538537690811558</Real>
-    <Real>-2.0147107048387825</Real>
-    <Real>-2.7052521678814725</Real>
-    <Real>-1.0406813794780787</Real>
-    <Real>-3.967066260592369</Real>
-    <Real>-0.87907598448922164</Real>
-    <Real>-1.6612940249811217</Real>
-    <Real>-2.6184399315060456</Real>
-    <Real>-1.2743003165852991</Real>
-    <Real>-0.86472575028406273</Real>
+    <Real>0.21526724902654093</Real>
+    <Real>0.0003716804337800827</Real>
+    <Real>0.0023506021278663566</Real>
+    <Real>1.8012407615664505e-14</Real>
+    <Real>1.818215991704466e-05</Real>
+    <Real>-1.8182159915952154e-05</Real>
+    <Real>-6.788375906408334e-06</Real>
+    <Real>6.7883759915004787e-06</Real>
+    <Real>1.6429796433937993e-14</Real>
+    <Real>6.7883759305581166e-06</Real>
+    <Real>-6.7883759311136313e-06</Real>
+    <Real>-3.5538537690812251</Real>
+    <Real>-2.0147107048388269</Real>
+    <Real>-2.7052521678814729</Real>
+    <Real>-1.0406813794780656</Real>
+    <Real>-3.967066260592401</Real>
+    <Real>-0.8790759844891981</Real>
+    <Real>-1.6612940249811192</Real>
+    <Real>-2.6184399315060443</Real>
+    <Real>-1.2743003165852878</Real>
+    <Real>-0.86472575028404164</Real>
   </Sequence>
   <Sequence Name="Potential">
     <Int Name="Length">21</Int>
     <Real>5.3171052747656216</Real>
     <Real>5.3139634951471235</Real>
     <Real>5.3139852805648378</Real>
-    <Real>5.3139597783455503</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139597783455486</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139599283044348</Real>
+    <Real>5.3139599283044348</Real>
     <Real>5.3139598111771358</Real>
-    <Real>5.3139598111771358</Real>
-    <Real>5.8523574407739236</Real>
-    <Real>5.909517708141518</Real>
-    <Real>5.5891055083437386</Real>
+    <Real>5.3139598111771367</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.8523574407739245</Real>
+    <Real>5.9095177081415207</Real>
+    <Real>5.5891055083437378</Real>
     <Real>5.5179043538034485</Real>
-    <Real>5.6909400832286146</Real>
+    <Real>5.6909400832286137</Real>
     <Real>5.5084236091309347</Real>
     <Real>5.4647638463620405</Real>
     <Real>5.4221743541770948</Real>
     <Real>5.4793615522962513</Real>
-    <Real>5.4998305387193387</Real>
+    <Real>5.4998305387193378</Real>
   </Sequence>
   <Sequence Name="PotentialJump">
     <Int Name="Length">21</Int>
@@ -67,7 +67,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.60502446654887354</Real>
+    <Real>0.60502446654887332</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
@@ -77,7 +77,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.83485389150670564</Real>
+    <Real>0.8348538915067063</Real>
   </Sequence>
   <Sequence Name="PointBias">
     <Int Name="Length">21</Int>
     <Real>-3.4502423109495881</Real>
     <Real>-3.469814270443778</Real>
     <Real>-3.4405375988254123</Real>
-    <Real>-3.2226649751609364</Real>
+    <Real>-3.222664975160936</Real>
     <Real>-2.9351106219650442</Real>
     <Real>-2.8182713948302314</Real>
     <Real>-2.9109204815675662</Real>
     <Real>-2.9974201933988711</Real>
-    <Real>-2.909045620263937</Real>
-    <Real>-2.7875440262964757</Real>
+    <Real>-2.9090456202639374</Real>
+    <Real>-2.7875440262964752</Real>
     <Real>-2.7504540277720304</Real>
     <Real>-2.7468371894369819</Real>
     <Real>-2.7467110222070819</Real>
index c57f9877723dc21f52dd7da577009ea3bf80a6e5..3639d33008ffc9f46cd498d78fd61b8f14e45ab0 100644 (file)
     <Real>-70.000000000000014</Real>
     <Real>-49.999999999999986</Real>
     <Real>-5.0000000000000604</Real>
-    <Real>-49.999999999999993</Real>
-    <Real>-5</Real>
+    <Real>-50.000000000000043</Real>
+    <Real>-5.0000000000000568</Real>
     <Real>80.000000000000014</Real>
     <Real>-184.99999999999989</Real>
     <Real>-64.999999999999829</Real>
-    <Real>75.000000000000071</Real>
+    <Real>75.000000000000128</Real>
     <Real>10.000000000000011</Real>
-    <Real>-59.999999999999943</Real>
-    <Real>-9.999999999999897</Real>
-    <Real>-4.9999999999999485</Real>
+    <Real>-60.000000000000057</Real>
+    <Real>-10.000000000000009</Real>
+    <Real>-5.0000000000000053</Real>
     <Real>60</Real>
     <Real>0</Real>
-    <Real>-44.999999999999929</Real>
-    <Real>60.000000000000057</Real>
+    <Real>-44.999999999999986</Real>
+    <Real>60</Real>
     <Real>5.3290705182007514e-14</Real>
     <Real>-30.000000000000028</Real>
     <Real>-59.999999999999943</Real>
     <Real>4.9999999999999973</Real>
     <Real>0.19999999999999815</Real>
     <Real>11.250000000000004</Real>
-    <Real>3.1999999999999966</Real>
+    <Real>3.2000000000000055</Real>
     <Real>8.4500000000000011</Real>
     <Real>33.799999999999969</Real>
     <Real>4.0499999999999874</Real>
     <Real>11.250000000000021</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>0.049999999999998976</Real>
-    <Real>0.44999999999999746</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>0.050000000000000086</Real>
+    <Real>0.45000000000000084</Real>
     <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>7.1999999999999993</Real>
-    <Real>6.0500000000000105</Real>
+    <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>0.45000000000000084</Real>
     <Real>1.7999999999999965</Real>
     <Real>-6.9999999999999991</Real>
     <Real>-4.9999999999999973</Real>
     <Real>0.25000000000000266</Real>
-    <Real>-10.000000000000002</Real>
-    <Real>-0.75</Real>
+    <Real>-10.000000000000007</Real>
+    <Real>-0.75000000000000888</Real>
     <Real>-8</Real>
     <Real>-27.749999999999982</Real>
     <Real>-3.2499999999999947</Real>
     <Real>-11.250000000000021</Real>
-    <Real>-0.99999999999999956</Real>
+    <Real>-1.000000000000002</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>-0.24999999999999711</Real>
+    <Real>-0.2500000000000005</Real>
     <Real>-5.9999999999999982</Real>
     <Real>0</Real>
-    <Real>-6.7499999999999956</Real>
-    <Real>-6.0000000000000107</Real>
+    <Real>-6.7499999999999982</Real>
+    <Real>-5.9999999999999982</Real>
     <Real>-5.5511151231257827e-15</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>-3.5460149559446359</Real>
     <Real>-3.5687884755542472</Real>
     <Real>-3.4901303714495153</Real>
-    <Real>-3.4970015262603624</Real>
+    <Real>-3.4970015262603629</Real>
     <Real>-3.4496621504416853</Real>
     <Real>-3.2125376886451624</Real>
     <Real>-2.91505863813991</Real>
     <Real>-2.7962936950351538</Real>
     <Real>-2.8888307484050659</Real>
     <Real>-2.9753285114361296</Real>
-    <Real>-2.8869539267116591</Real>
+    <Real>-2.8869539267116595</Real>
     <Real>-2.7654523327441973</Real>
     <Real>-2.7283623342197525</Real>
     <Real>-2.7247454958847039</Real>
     <Real>4.1747174038020365</Real>
     <Real>4.1623670231442622</Real>
     <Real>4.0396595028897746</Real>
-    <Real>4.1446557041188061</Real>
+    <Real>4.144655704118807</Real>
     <Real>3.9896509587172271</Real>
     <Real>3.7345175271931224</Real>
     <Real>3.7345175271931224</Real>
index 7309c59486b9b4fe336695b678decd4d76a80e00..902717c221ad994ef3aac79809d72b3ca54916bc 100644 (file)
     <Real>-70.000000000000014</Real>
     <Real>-49.999999999999986</Real>
     <Real>-5.0000000000000604</Real>
-    <Real>-49.999999999999993</Real>
-    <Real>-5</Real>
+    <Real>-50.000000000000043</Real>
+    <Real>-5.0000000000000568</Real>
     <Real>80.000000000000014</Real>
     <Real>-184.99999999999989</Real>
     <Real>-64.999999999999829</Real>
-    <Real>75.000000000000071</Real>
+    <Real>75.000000000000128</Real>
     <Real>10.000000000000011</Real>
-    <Real>-59.999999999999943</Real>
-    <Real>-9.999999999999897</Real>
-    <Real>-4.9999999999999485</Real>
+    <Real>-60.000000000000057</Real>
+    <Real>-10.000000000000009</Real>
+    <Real>-5.0000000000000053</Real>
     <Real>60</Real>
     <Real>0</Real>
-    <Real>-44.999999999999929</Real>
-    <Real>60.000000000000057</Real>
+    <Real>-44.999999999999986</Real>
+    <Real>60</Real>
     <Real>5.3290705182007514e-14</Real>
     <Real>-30.000000000000028</Real>
     <Real>-59.999999999999943</Real>
     <Real>4.9999999999999973</Real>
     <Real>0.19999999999999815</Real>
     <Real>11.250000000000004</Real>
-    <Real>3.1999999999999966</Real>
+    <Real>3.2000000000000055</Real>
     <Real>8.4500000000000011</Real>
     <Real>33.799999999999969</Real>
     <Real>4.0499999999999874</Real>
     <Real>11.250000000000021</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>1.7999999999999965</Real>
-    <Real>0.049999999999998976</Real>
-    <Real>0.44999999999999746</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>1.8000000000000034</Real>
+    <Real>0.050000000000000086</Real>
+    <Real>0.45000000000000084</Real>
     <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>7.1999999999999993</Real>
-    <Real>6.0500000000000105</Real>
+    <Real>6.049999999999998</Real>
     <Real>1.2500000000000022</Real>
     <Real>0.45000000000000084</Real>
     <Real>1.7999999999999965</Real>
     <Real>-6.9999999999999991</Real>
     <Real>-4.9999999999999973</Real>
     <Real>0.25000000000000266</Real>
-    <Real>-10.000000000000002</Real>
-    <Real>-0.75</Real>
+    <Real>-10.000000000000007</Real>
+    <Real>-0.75000000000000888</Real>
     <Real>-8</Real>
     <Real>-27.749999999999982</Real>
     <Real>-3.2499999999999947</Real>
     <Real>-11.250000000000021</Real>
-    <Real>-0.99999999999999956</Real>
+    <Real>-1.000000000000002</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>-0.24999999999999711</Real>
+    <Real>-0.2500000000000005</Real>
     <Real>-5.9999999999999982</Real>
     <Real>0</Real>
-    <Real>-6.7499999999999956</Real>
-    <Real>-6.0000000000000107</Real>
+    <Real>-6.7499999999999982</Real>
+    <Real>-5.9999999999999982</Real>
     <Real>-5.5511151231257827e-15</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>-3.5460149559446359</Real>
     <Real>-3.5687884755542472</Real>
     <Real>-3.4901303714495153</Real>
-    <Real>-3.4970015262603624</Real>
+    <Real>-3.4970015262603629</Real>
     <Real>-3.4496621504416853</Real>
     <Real>-3.2125376886451624</Real>
     <Real>-2.91505863813991</Real>
     <Real>-2.7962936950351538</Real>
     <Real>-2.8888307484050659</Real>
     <Real>-2.9753285114361296</Real>
-    <Real>-2.8869539267116591</Real>
+    <Real>-2.8869539267116595</Real>
     <Real>-2.7654523327441973</Real>
     <Real>-2.7283623342197525</Real>
     <Real>-2.7247454958847039</Real>
     <Real>4.1747174038020365</Real>
     <Real>4.1623670231442622</Real>
     <Real>4.0396595028897746</Real>
-    <Real>4.1446557041188061</Real>
+    <Real>4.144655704118807</Real>
     <Real>3.9896509587172271</Real>
     <Real>3.7345175271931224</Real>
     <Real>3.7345175271931224</Real>
index 9ede0c3dcbbaba3060532f31565735bce05b2f8d..defaed77f33e7b4376d9fefb19027b257ea1c38a 100644 (file)
@@ -9,51 +9,51 @@
   </Sequence>
   <Sequence Name="Force">
     <Int Name="Length">21</Int>
-    <Real>0.21526724902654029</Real>
-    <Real>0.00037168043378189554</Real>
-    <Real>0.0023506021278633634</Real>
-    <Real>1.8322908294787776e-14</Real>
-    <Real>1.8182159860257569e-05</Real>
-    <Real>-1.8182159861071263e-05</Real>
-    <Real>-6.7883759693111072e-06</Real>
-    <Real>6.7883758926473613e-06</Real>
-    <Real>-4.5547116425681544e-14</Real>
-    <Real>6.7883759521357456e-06</Real>
-    <Real>-6.7883759527878661e-06</Real>
-    <Real>-3.5538537690811558</Real>
-    <Real>-2.0147107048387825</Real>
-    <Real>-2.7052521678814725</Real>
-    <Real>-1.0406813794780787</Real>
-    <Real>-3.967066260592369</Real>
-    <Real>-0.87907598448922164</Real>
-    <Real>-1.6612940249811217</Real>
-    <Real>-2.6184399315060456</Real>
-    <Real>-1.2743003165852991</Real>
-    <Real>-0.86472575028406273</Real>
+    <Real>0.21526724902654093</Real>
+    <Real>0.0003716804337800827</Real>
+    <Real>0.0023506021278663566</Real>
+    <Real>1.8012407615664505e-14</Real>
+    <Real>1.818215991704466e-05</Real>
+    <Real>-1.8182159915952154e-05</Real>
+    <Real>-6.788375906408334e-06</Real>
+    <Real>6.7883759915004787e-06</Real>
+    <Real>1.6429796433937993e-14</Real>
+    <Real>6.7883759305581166e-06</Real>
+    <Real>-6.7883759311136313e-06</Real>
+    <Real>-3.5538537690812251</Real>
+    <Real>-2.0147107048388269</Real>
+    <Real>-2.7052521678814729</Real>
+    <Real>-1.0406813794780656</Real>
+    <Real>-3.967066260592401</Real>
+    <Real>-0.8790759844891981</Real>
+    <Real>-1.6612940249811192</Real>
+    <Real>-2.6184399315060443</Real>
+    <Real>-1.2743003165852878</Real>
+    <Real>-0.86472575028404164</Real>
   </Sequence>
   <Sequence Name="Potential">
     <Int Name="Length">21</Int>
     <Real>5.3171052747656216</Real>
     <Real>5.3139634951471235</Real>
     <Real>5.3139852805648378</Real>
-    <Real>5.3139597783455503</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139597783455486</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139599283044348</Real>
+    <Real>5.3139599283044348</Real>
     <Real>5.3139598111771358</Real>
-    <Real>5.3139598111771358</Real>
-    <Real>5.8523574407739236</Real>
-    <Real>5.909517708141518</Real>
-    <Real>5.5891055083437386</Real>
+    <Real>5.3139598111771367</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.8523574407739245</Real>
+    <Real>5.9095177081415207</Real>
+    <Real>5.5891055083437378</Real>
     <Real>5.5179043538034485</Real>
-    <Real>5.6909400832286146</Real>
+    <Real>5.6909400832286137</Real>
     <Real>5.5084236091309347</Real>
     <Real>5.4647638463620405</Real>
     <Real>5.4221743541770948</Real>
     <Real>5.4793615522962513</Real>
-    <Real>5.4998305387193387</Real>
+    <Real>5.4998305387193378</Real>
   </Sequence>
   <Sequence Name="PotentialJump">
     <Int Name="Length">21</Int>
@@ -67,7 +67,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.60502446654887354</Real>
+    <Real>0.60502446654887332</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
@@ -77,7 +77,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.93416481023846032</Real>
+    <Real>0.93416481023846054</Real>
   </Sequence>
   <Sequence Name="PointBias">
     <Int Name="Length">21</Int>
     <Real>-3.5460149559446359</Real>
     <Real>-3.5687884755542472</Real>
     <Real>-3.4901303714495153</Real>
-    <Real>-3.4970015262603624</Real>
+    <Real>-3.4970015262603629</Real>
     <Real>-3.4496621504416853</Real>
     <Real>-3.2125376886451624</Real>
     <Real>-2.91505863813991</Real>
     <Real>-2.7962936950351538</Real>
     <Real>-2.8888307484050659</Real>
     <Real>-2.9753285114361296</Real>
-    <Real>-2.8869539267116591</Real>
+    <Real>-2.8869539267116595</Real>
     <Real>-2.7654523327441973</Real>
     <Real>-2.7283623342197525</Real>
     <Real>-2.7247454958847039</Real>
     <Real>4.1747174038020365</Real>
     <Real>4.1623670231442622</Real>
     <Real>4.0396595028897746</Real>
-    <Real>4.1446557041188061</Real>
+    <Real>4.144655704118807</Real>
     <Real>3.9896509587172271</Real>
     <Real>3.7345175271931224</Real>
     <Real>3.7345175271931224</Real>
index 35b41a85496247c16f53e4fdf0c7aeb8ca428d73..b5362d7f324360f06e221f84dc11a48a71c15714 100644 (file)
@@ -9,51 +9,51 @@
   </Sequence>
   <Sequence Name="Force">
     <Int Name="Length">21</Int>
-    <Real>0.21526724902654029</Real>
-    <Real>0.00037168043378189554</Real>
-    <Real>0.0023506021278633634</Real>
-    <Real>1.8322908294787776e-14</Real>
-    <Real>1.8182159860257569e-05</Real>
-    <Real>-1.8182159861071263e-05</Real>
-    <Real>-6.7883759693111072e-06</Real>
-    <Real>6.7883758926473613e-06</Real>
-    <Real>-4.5547116425681544e-14</Real>
-    <Real>6.7883759521357456e-06</Real>
-    <Real>-6.7883759527878661e-06</Real>
-    <Real>-3.5538537690811558</Real>
-    <Real>-2.0147107048387825</Real>
-    <Real>-2.7052521678814725</Real>
-    <Real>-1.0406813794780787</Real>
-    <Real>-3.967066260592369</Real>
-    <Real>-0.87907598448922164</Real>
-    <Real>-1.6612940249811217</Real>
-    <Real>-2.6184399315060456</Real>
-    <Real>-1.2743003165852991</Real>
-    <Real>-0.86472575028406273</Real>
+    <Real>0.21526724902654093</Real>
+    <Real>0.0003716804337800827</Real>
+    <Real>0.0023506021278663566</Real>
+    <Real>1.8012407615664505e-14</Real>
+    <Real>1.818215991704466e-05</Real>
+    <Real>-1.8182159915952154e-05</Real>
+    <Real>-6.788375906408334e-06</Real>
+    <Real>6.7883759915004787e-06</Real>
+    <Real>1.6429796433937993e-14</Real>
+    <Real>6.7883759305581166e-06</Real>
+    <Real>-6.7883759311136313e-06</Real>
+    <Real>-3.5538537690812251</Real>
+    <Real>-2.0147107048388269</Real>
+    <Real>-2.7052521678814729</Real>
+    <Real>-1.0406813794780656</Real>
+    <Real>-3.967066260592401</Real>
+    <Real>-0.8790759844891981</Real>
+    <Real>-1.6612940249811192</Real>
+    <Real>-2.6184399315060443</Real>
+    <Real>-1.2743003165852878</Real>
+    <Real>-0.86472575028404164</Real>
   </Sequence>
   <Sequence Name="Potential">
     <Int Name="Length">21</Int>
     <Real>5.3171052747656216</Real>
     <Real>5.3139634951471235</Real>
     <Real>5.3139852805648378</Real>
-    <Real>5.3139597783455503</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.313959928304433</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139598111771384</Real>
-    <Real>5.3139597783455486</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139599283044348</Real>
+    <Real>5.3139599283044348</Real>
     <Real>5.3139598111771358</Real>
-    <Real>5.3139598111771358</Real>
-    <Real>5.8523574407739236</Real>
-    <Real>5.909517708141518</Real>
-    <Real>5.5891055083437386</Real>
+    <Real>5.3139598111771367</Real>
+    <Real>5.3139597783455494</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.3139598111771393</Real>
+    <Real>5.8523574407739245</Real>
+    <Real>5.9095177081415207</Real>
+    <Real>5.5891055083437378</Real>
     <Real>5.5179043538034485</Real>
-    <Real>5.6909400832286146</Real>
+    <Real>5.6909400832286137</Real>
     <Real>5.5084236091309347</Real>
     <Real>5.4647638463620405</Real>
     <Real>5.4221743541770948</Real>
     <Real>5.4793615522962513</Real>
-    <Real>5.4998305387193387</Real>
+    <Real>5.4998305387193378</Real>
   </Sequence>
   <Sequence Name="PotentialJump">
     <Int Name="Length">21</Int>
@@ -67,7 +67,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.60502446654887354</Real>
+    <Real>0.60502446654887332</Real>
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
@@ -77,7 +77,7 @@
     <Real>0</Real>
     <Real>0</Real>
     <Real>0</Real>
-    <Real>0.93416481023846032</Real>
+    <Real>0.93416481023846054</Real>
   </Sequence>
   <Sequence Name="PointBias">
     <Int Name="Length">21</Int>
     <Real>-3.5460149559446359</Real>
     <Real>-3.5687884755542472</Real>
     <Real>-3.4901303714495153</Real>
-    <Real>-3.4970015262603624</Real>
+    <Real>-3.4970015262603629</Real>
     <Real>-3.4496621504416853</Real>
     <Real>-3.2125376886451624</Real>
     <Real>-2.91505863813991</Real>
     <Real>-2.7962936950351538</Real>
     <Real>-2.8888307484050659</Real>
     <Real>-2.9753285114361296</Real>
-    <Real>-2.8869539267116591</Real>
+    <Real>-2.8869539267116595</Real>
     <Real>-2.7654523327441973</Real>
     <Real>-2.7283623342197525</Real>
     <Real>-2.7247454958847039</Real>
     <Real>4.1747174038020365</Real>
     <Real>4.1623670231442622</Real>
     <Real>4.0396595028897746</Real>
-    <Real>4.1446557041188061</Real>
+    <Real>4.144655704118807</Real>
     <Real>3.9896509587172271</Real>
     <Real>3.7345175271931224</Real>
     <Real>3.7345175271931224</Real>
index 0c02278867b66eaabbf31efbb7e9cbac2cbf474a..f68beb07e9f36e335e460503f39f25b2049a7acb 100644 (file)
@@ -340,7 +340,7 @@ void OutputFile::initializeAwhOutputFile(int                  subblockStart,
     int numLegend = numDim_ - 1 + numGraph_;
     legend_       = makeLegend(awhBiasParams, OutputFileType::Awh, numLegend);
     /* We could have both length and angle coordinates in a single bias */
-    xLabel_ = "(nm or deg)";
+    xLabel_ = "(nm, deg or lambda state)";
     yLabel_ = useKTForEnergy_ ? "(k\\sB\\NT)" : "(kJ/mol)";
     if (graphSelection == AwhGraphSelection::All)
     {
@@ -377,14 +377,16 @@ void OutputFile::initializeFrictionOutputFile(int                  subBlockStart
     scaleFactor_.resize(numGraph_, useKTForEnergy_ ? 1 : kTValue);
     int numLegend = numDim_ - 1 + numGraph_;
     legend_       = makeLegend(awhBiasParams, OutputFileType::Friction, numLegend);
-    xLabel_       = "(nm or deg)";
+    xLabel_       = "(nm, deg or lambda state)";
     if (useKTForEnergy_)
     {
-        yLabel_ = "friction/k\\sB\\NT (nm\\S-2\\Nps or rad\\S-2\\Nps)";
+        yLabel_ = "friction/k\\sB\\NT (nm\\S-2\\Nps, rad\\S-2\\Nps or ps)";
     }
     else
     {
-        yLabel_ = "friction (kJ mol\\S-1\\Nnm\\S-2\\Nps or kJ mol\\S-1\\Nrad\\S-2\\Nps)";
+        yLabel_ =
+                "friction (kJ mol\\S-1\\Nnm\\S-2\\Nps, kJ mol\\S-1\\Nrad\\S-2\\Nps or kJ "
+                "mol\\S-1\\Nps)";
     }
 }
 
index 7e74e01660098e7e4e5ac0415d77e3931470a9cd..61fadce8db84768b7f5c4ffd8c9a10a2a5cfdb47 100644 (file)
@@ -2303,8 +2303,10 @@ int gmx_grompp(int argc, char* argv[])
         {
             copy_mat(ir->compress, compressibility);
         }
-        setStateDependentAwhParams(ir->awhParams, ir->pull, pull, state.box, ir->pbcType,
-                                   compressibility, &ir->opts, wi);
+        setStateDependentAwhParams(
+                ir->awhParams, ir->pull, pull, state.box, ir->pbcType, compressibility, &ir->opts,
+                ir->efep != efepNO ? ir->fepvals->all_lambda[efptFEP][ir->fepvals->init_fep_state] : 0,
+                sys, wi);
     }
 
     if (ir->bPull)
index 2e750d20b05e73b068df2174311d255ffc6d865d..66f7522eac0797c204a2cd4b9c24cb0d78d4cce6 100644 (file)
@@ -2116,7 +2116,7 @@ void get_ir(const char*     mdparin,
     }
 
     /* AWH biasing
-       NOTE: needs COM pulling input */
+       NOTE: needs COM pulling or free energy input */
     printStringNewline(&inp, "AWH biasing");
     ir->bDoAwh = (get_eeenum(&inp, "awh", yesno_names, wi) != 0);
     if (ir->bDoAwh)
index 5408847868067ddb3f186690ce04ff82acf517a5..8f7cf633a9ca79d09220381daa55b51e143c2301 100644 (file)
@@ -53,7 +53,7 @@ ForeignLambdaTerms::ForeignLambdaTerms(int numLambdas) :
 {
 }
 
-std::pair<std::vector<double>, std::vector<double>> ForeignLambdaTerms::getTerms(t_commrec* cr) const
+std::pair<std::vector<double>, std::vector<double>> ForeignLambdaTerms::getTerms(const t_commrec* cr) const
 {
     GMX_RELEASE_ASSERT(finalizedPotentialContributions_,
                        "The object needs to be finalized before calling getTerms");
index d8fc0267f7a435d6aded8248996496ae5ae68db3..3f2cd68dd8156f42dc4a4dc06cc21f7317336c68 100644 (file)
@@ -624,12 +624,21 @@ static void computeSpecialForces(FILE*                          fplog,
     {
         pull_potential_wrapper(cr, inputrec, box, x, forceWithVirial, mdatoms, enerd, pull_work,
                                lambda.data(), t, wcycle);
-
-        if (awh)
+    }
+    if (awh)
+    {
+        const bool          needForeignEnergyDifferences = awh->needForeignEnergyDifferences(step);
+        std::vector<double> foreignLambdaDeltaH, foreignLambdaDhDl;
+        if (needForeignEnergyDifferences)
         {
-            enerd->term[F_COM_PULL] += awh->applyBiasForcesAndUpdateBias(
-                    inputrec->pbcType, mdatoms->massT, box, forceWithVirial, t, step, wcycle, fplog);
+            enerd->foreignLambdaTerms.finalizePotentialContributions(enerd->dvdl_lin, lambda,
+                                                                     *inputrec->fepvals);
+            std::tie(foreignLambdaDeltaH, foreignLambdaDhDl) = enerd->foreignLambdaTerms.getTerms(cr);
         }
+
+        enerd->term[F_COM_PULL] += awh->applyBiasForcesAndUpdateBias(
+                inputrec->pbcType, mdatoms->massT, foreignLambdaDeltaH, foreignLambdaDhDl, box,
+                forceWithVirial, t, step, wcycle, fplog);
     }
 
     rvec* f = as_rvec_array(forceWithVirial->force_.data());
@@ -1577,6 +1586,26 @@ void do_force(FILE*                               fplog,
 
     wallcycle_stop(wcycle, ewcFORCE);
 
+    // VdW dispersion correction, only computed on master rank to avoid double counting
+    if ((stepWork.computeEnergy || stepWork.computeVirial) && fr->dispersionCorrection && MASTER(cr))
+    {
+        // Calculate long range corrections to pressure and energy
+        const DispersionCorrection::Correction correction =
+                fr->dispersionCorrection->calculate(box, lambda[efptVDW]);
+
+        if (stepWork.computeEnergy)
+        {
+            enerd->term[F_DISPCORR] = correction.energy;
+            enerd->term[F_DVDL_VDW] += correction.dvdl;
+            enerd->dvdl_lin[efptVDW] += correction.dvdl;
+        }
+        if (stepWork.computeVirial)
+        {
+            correction.correctVirial(vir_force);
+            enerd->term[F_PDISPCORR] = correction.pressure;
+        }
+    }
+
     computeSpecialForces(fplog, cr, inputrec, awh, enforcedRotation, imdSession, pull_work, step, t,
                          wcycle, fr->forceProviders, box, x.unpaddedArrayRef(), mdatoms, lambda,
                          stepWork, &forceOut.forceWithVirial(), enerd, ed, stepWork.doNeighborSearch);
@@ -1845,26 +1874,6 @@ void do_force(FILE*                               fplog,
                                         vir_force, *mdatoms, *fr, vsite, stepWork);
     }
 
-    // VdW dispersion correction, only computed on master rank to avoid double counting
-    if ((stepWork.computeEnergy || stepWork.computeVirial) && fr->dispersionCorrection && MASTER(cr))
-    {
-        // Calculate long range corrections to pressure and energy
-        const DispersionCorrection::Correction correction =
-                fr->dispersionCorrection->calculate(box, lambda[efptVDW]);
-
-        if (stepWork.computeEnergy)
-        {
-            enerd->term[F_DISPCORR] = correction.energy;
-            enerd->term[F_DVDL_VDW] += correction.dvdl;
-            enerd->dvdl_lin[efptVDW] += correction.dvdl;
-        }
-        if (stepWork.computeVirial)
-        {
-            correction.correctVirial(vir_force);
-            enerd->term[F_PDISPCORR] = correction.pressure;
-        }
-    }
-
     // TODO refactor this and unify with above GPU PME-PP / GPU update path call to the same function
     if (PAR(cr) && !thisRankHasDuty(cr, DUTY_PME) && !simulationWork.useGpuPmePpCommunication
         && !simulationWork.useGpuUpdate)
index 478ca749f0d213036aab3da2b21a3ba25c3c438e..6e683a8dd89141cd0cd34cf978adb5729a6ebacc 100644 (file)
@@ -529,6 +529,10 @@ void gmx::LegacySimulator::do_md()
         {
             nstfep = std::gcd(replExParams.exchangeInterval, nstfep);
         }
+        if (ir->bDoAwh)
+        {
+            nstfep = std::gcd(ir->awhParams->nstSampleCoord, nstfep);
+        }
     }
 
     /* Be REALLY careful about what flags you set here. You CANNOT assume
@@ -1549,6 +1553,10 @@ void gmx::LegacySimulator::do_md()
             /* Gets written into the state at the beginning of next loop*/
             state->fep_state = lamnew;
         }
+        else if (ir->bDoAwh && awh->needForeignEnergyDifferences(step))
+        {
+            state->fep_state = awh->fepLambdaState();
+        }
         /* Print the remaining wall clock time for the run */
         if (isMasterSimMasterRank(ms, MASTER(cr)) && (do_verbose || gmx_got_usr_signal()) && !bPMETunePrinting)
         {
index 940c8df00865758789e59f227ea44f6a27832af3..951a7d25907ebf55a8728690d0f147b6057a467f 100644 (file)
@@ -99,6 +99,7 @@ extern const char* eawhpotential_names[eawhpotentialNR + 1];
 enum
 {
     eawhcoordproviderPULL,
+    eawhcoordproviderFREE_ENERGY_LAMBDA,
     eawhcoordproviderNR
 };
 //! String for AWH bias reaction coordinate provider.
@@ -117,7 +118,7 @@ struct AwhDimParams
     double end;            /**< End value of the interval. */
     double period;         /**< The period of this dimension (= 0 if not periodic). */
     double forceConstant;  /**< The force constant in kJ/mol/nm^2, kJ/mol/rad^2 */
-    double diffusion;      /**< Estimated diffusion constant in units of nm^2/ps or rad^2/ps. */
+    double diffusion; /**< Estimated diffusion constant in units of nm^2/ps, rad^2/ps or ps^-1. */
     double coordValueInit; /**< The initial coordinate value. */
     double coverDiameter; /**< The diameter that needs to be sampled around a point before it is considered covered. */
 };
index ca9ba67d34a432d9a26d5a2d2bc9e1a17e09b465..deef2444a123a737dc40e2f47dbfde2302e582b2 100644 (file)
@@ -161,7 +161,7 @@ public:
      *
      * \param[in] cr  Communication record, used to reduce the terms when !=nullptr
      */
-    std::pair<std::vector<double>, std::vector<double>> getTerms(t_commrec* cr) const;
+    std::pair<std::vector<double>, std::vector<double>> getTerms(const t_commrec* cr) const;
 
     //! Sets all terms to 0
     void zeroAllTerms();