Add unit test for the nonbonded fep kernel.
authorSebastian Kehl <sebastian.kehl@mpcdf.mpg.de>
Mon, 12 Apr 2021 15:10:18 +0000 (15:10 +0000)
committerPaul Bauer <paul.bauer.q@gmail.com>
Mon, 12 Apr 2021 15:10:18 +0000 (15:10 +0000)
39 files changed:
src/gromacs/gmxlib/CMakeLists.txt
src/gromacs/gmxlib/nonbonded/tests/CMakeLists.txt [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/nb_free_energy.cpp [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_0.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_1.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_10.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_11.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_12.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_13.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_14.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_15.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_16.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_17.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_18.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_19.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_2.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_20.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_21.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_22.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_23.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_24.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_25.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_26.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_27.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_28.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_29.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_3.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_30.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_31.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_32.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_33.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_34.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_35.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_4.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_5.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_6.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_7.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_8.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_9.xml [new file with mode: 0644]

index 3b830d5e1a0a5ced6e79a1a4522cb65a8253b8f2..acb56892a68de5e5aaee21620e00a879ea6ea97d 100644 (file)
@@ -2,7 +2,7 @@
 # This file is part of the GROMACS molecular simulation package.
 #
 # Copyright (c) 2009,2010,2012,2014,2015 by the GROMACS development team.
-# Copyright (c) 2016,2020, by the GROMACS development team, led by
+# Copyright (c) 2016,2020,2021, 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.
@@ -75,6 +75,6 @@ target_link_libraries(gmxlib INTERFACE
 # TODO: Explicitly link specific modules.
 #target_link_libraries(gmxlib PRIVATE legacy_modules)
 
-if(BUILD_TESTING)
-#     add_subdirectory(tests)
-endif()
+if(BUILD_TESTING)
+    add_subdirectory(nonbonded/tests)
+endif()
diff --git a/src/gromacs/gmxlib/nonbonded/tests/CMakeLists.txt b/src/gromacs/gmxlib/nonbonded/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ba9b6b9
--- /dev/null
@@ -0,0 +1,38 @@
+#
+# This file is part of the GROMACS molecular simulation package.
+#
+# Copyright (c) 2021, 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.
+
+gmx_add_unit_test(GmxlibTests nonbonded-fep-test
+    CPP_SOURCE_FILES
+        nb_free_energy.cpp
+    )
diff --git a/src/gromacs/gmxlib/nonbonded/tests/nb_free_energy.cpp b/src/gromacs/gmxlib/nonbonded/tests/nb_free_energy.cpp
new file mode 100644 (file)
index 0000000..145c70f
--- /dev/null
@@ -0,0 +1,500 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2021, 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.
+ */
+
+/*! \internal \file
+ * \brief Implements test of nonbonded fep kernel
+ *
+ * Implements the test logic from the bonded interactions also for the
+ * nonbonded fep kernel. This requires setting up some more input
+ * structures that in the bonded case.
+ *
+ * The test setup consists of an atom pair that is evaluated in an fep setting
+ * (vanishing charge and lennard-jones parameters of atom #2) with and without
+ * softcore Potentials.
+ *
+ * \author Sebastian Kehl <sebastian.kehl@mpcdf.mpg.de>
+ * \ingroup module_gmxlib_nonbonded
+ */
+#include "gmxpre.h"
+
+#include "gromacs/gmxlib/nonbonded/nb_free_energy.h"
+#include "gromacs/gmxlib/nonbonded/nonbonded.h"
+
+#include <cmath>
+
+#include <gtest/gtest.h>
+
+#include "gromacs/math/paddedvector.h"
+#include "gromacs/math/units.h"
+#include "gromacs/math/vec.h"
+#include "gromacs/math/vectypes.h"
+#include "gromacs/math/arrayrefwithpadding.h"
+#include "gromacs/mdtypes/mdatom.h"
+#include "gromacs/mdtypes/enerdata.h"
+#include "gromacs/mdtypes/forcerec.h"
+#include "gromacs/mdtypes/inputrec.h"
+#include "gromacs/mdtypes/interaction_const.h"
+#include "gromacs/mdtypes/nblist.h"
+#include "gromacs/mdtypes/forceoutput.h"
+#include "gromacs/mdlib/forcerec.h"
+#include "gromacs/tables/forcetable.h"
+#include "gromacs/pbcutil/ishift.h"
+#include "gromacs/pbcutil/pbc.h"
+#include "gromacs/topology/idef.h"
+#include "gromacs/topology/forcefieldparameters.h"
+#include "gromacs/utility/enumerationhelpers.h"
+#include "gromacs/utility/strconvert.h"
+#include "gromacs/utility/stringstream.h"
+#include "gromacs/utility/textwriter.h"
+#include "gromacs/utility/arrayref.h"
+#include "gromacs/utility/smalloc.h"
+#include "gromacs/ewald/ewald_utils.h"
+#include "gromacs/gmxlib/nrnb.h"
+
+#include "testutils/refdata.h"
+#include "testutils/testasserts.h"
+
+namespace gmx
+{
+namespace test
+{
+namespace
+{
+
+//! Number of atoms used in these tests.
+constexpr int c_numAtoms     = 4;
+constexpr int c_numAtomTypes = 3;
+
+/*! \brief Output from nonbonded fep kernel
+ *
+ */
+struct OutputQuantities
+{
+    OutputQuantities() :
+        energy(static_cast<int>(NonBondedEnergyTerms::Count)),
+        dvdLambda(static_cast<int>(FreeEnergyPerturbationCouplingType::Count), 0.0),
+        fShift(1, { 0.0, 0.0, 0.0 }),
+        f(c_numAtoms, { 0.0, 0.0, 0.0 })
+    {
+    }
+
+    //! Energies of this interaction (size EgNR)
+    gmx_grppairener_t energy;
+    //! Derivative with respect to lambda (size efptNR)
+    std::vector<real> dvdLambda;
+    //! Shift force vectors (size N_IVEC but in this test only 1)
+    std::vector<RVec> fShift;
+    //! Forces (size c_numAtoms)
+    PaddedVector<RVec> f;
+};
+
+/*! \brief Utility to check the output from nonbonded test
+ *
+ * \param[in] checker Reference checker
+ * \param[in] output  The output from the test to check
+ */
+void checkOutput(TestReferenceChecker* checker, const OutputQuantities& output)
+{
+    checker->checkReal(output.energy.energyGroupPairTerms[NonBondedEnergyTerms::LJSR][0], "EVdw ");
+    checker->checkReal(output.energy.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR][0],
+                       "ECoul ");
+    checker->checkReal(output.dvdLambda[static_cast<int>(FreeEnergyPerturbationCouplingType::Coul)],
+                       "dVdlCoul ");
+    checker->checkReal(output.dvdLambda[static_cast<int>(FreeEnergyPerturbationCouplingType::Vdw)],
+                       "dVdlVdw ");
+
+    checker->checkSequence(std::begin(output.f), std::end(output.f), "Forces");
+
+    auto shiftForcesChecker = checker->checkCompound("Shift-Forces", "Shift-forces");
+    shiftForcesChecker.checkVector(output.fShift[0], "Central");
+}
+
+class InteractionConstHelper
+{
+public:
+    InteractionConstHelper() {}
+
+    //! init data to construct interaction_const
+    void initInteractionConst(CoulombInteractionType coulType, VanDerWaalsType vdwType, InteractionModifiers vdwMod)
+    {
+        coulType_ = coulType;
+        vdwType_  = vdwType;
+        vdwMod_   = vdwMod;
+
+        // initialize correction tables
+        interaction_const_t tmp;
+        tmp.ewaldcoeff_q       = calc_ewaldcoeff_q(1.0, 1.0e-5);
+        tmp.ewaldcoeff_lj      = calc_ewaldcoeff_lj(1.0, 1.0e-5);
+        tmp.eeltype            = coulType;
+        tmp.vdwtype            = vdwType;
+        tmp.coulombEwaldTables = std::make_unique<EwaldCorrectionTables>();
+        tmp.vdwEwaldTables     = std::make_unique<EwaldCorrectionTables>();
+
+        init_interaction_const_tables(nullptr, &tmp, 1.0, 0.0);
+        coulombTables_ = *tmp.coulombEwaldTables;
+        vdwTables_     = *tmp.vdwEwaldTables;
+    }
+
+    /*! \brief Setup interaction_const_t
+     *
+     * \param[in]  fepVals t_lambda struct of fep values
+     * \param[out] ic      interaction_const_t pointer with data
+     */
+    void getInteractionConst(const t_lambda& fepVals, interaction_const_t* ic)
+    {
+        ic->softCoreParameters = std::unique_ptr<interaction_const_t::SoftCoreParameters>(
+                new interaction_const_t::SoftCoreParameters(fepVals));
+
+        ic->coulombEwaldTables  = std::unique_ptr<EwaldCorrectionTables>(new EwaldCorrectionTables);
+        *ic->coulombEwaldTables = coulombTables_;
+
+        ic->vdwEwaldTables  = std::unique_ptr<EwaldCorrectionTables>(new EwaldCorrectionTables);
+        *ic->vdwEwaldTables = vdwTables_;
+
+        // set coulomb and vdw types
+        ic->eeltype      = coulType_;
+        ic->vdwtype      = vdwType_;
+        ic->vdw_modifier = vdwMod_;
+
+        // some non default parameters used in this testcase
+        ic->epsfac                   = gmx::c_one4PiEps0 * 0.25;
+        ic->reactionFieldCoefficient = 0.0; // former k_rf
+        ic->reactionFieldShift       = 1.0; // former c_rf
+        ic->sh_ewald                 = 1.0e-5;
+        ic->sh_lj_ewald              = -1.0;
+        ic->dispersion_shift.cpot    = -1.0;
+        ic->repulsion_shift.cpot     = -1.0;
+    }
+
+private:
+    //! correction tables
+    EwaldCorrectionTables coulombTables_;
+    EwaldCorrectionTables vdwTables_;
+
+    //! coulomb and vdw type specifiers
+    CoulombInteractionType coulType_;
+    VanDerWaalsType        vdwType_;
+    InteractionModifiers   vdwMod_;
+};
+
+
+/* \brief Utility class to setup forcerec
+ *
+ * This helper takes care of handling the neccessary data that are kept
+ * at various places and in various forms in the forcerec hierarchy such
+ * that this class can safely be used.
+ *
+ * Data is only initialized as necessary for the nonbonded kernel to work!
+ */
+class ForcerecHelper
+{
+public:
+    ForcerecHelper()
+    {
+        fepVals_.sc_alpha     = 0.3;
+        fepVals_.sc_power     = 1;
+        fepVals_.sc_r_power   = 6.0;
+        fepVals_.sc_sigma     = 0.3;
+        fepVals_.sc_sigma_min = 0.3;
+        fepVals_.bScCoul      = true;
+    }
+
+    //! initialize data structure to construct forcerec
+    void initForcerec(const gmx_ffparams_t&  idef,
+                      CoulombInteractionType coulType,
+                      VanDerWaalsType        vdwType,
+                      InteractionModifiers   vdwMod)
+    {
+        icHelper_.initInteractionConst(coulType, vdwType, vdwMod);
+        nbfp_ = makeNonBondedParameterLists(idef, false);
+        t_forcerec frTmp;
+        ljPmeC6Grid_ = makeLJPmeC6GridCorrectionParameters(idef, frTmp);
+    }
+
+    void setSoftcoreAlpha(const real scAlpha) { fepVals_.sc_alpha = scAlpha; }
+    void setSoftcoreCoulomb(const real scCoulomb) { fepVals_.bScCoul = scCoulomb; }
+
+    //! get forcerec data as wanted by the nonbonded kernel
+    void getForcerec(t_forcerec* fr)
+    {
+        fr->ic = std::make_unique<interaction_const_t>();
+
+        // set data in ic
+        icHelper_.getInteractionConst(fepVals_, fr->ic.get());
+
+        // set data in fr
+        fr->ljpme_c6grid = ljPmeC6Grid_;
+        fr->nbfp         = nbfp_;
+        fr->shift_vec    = { { 0.0, 0.0, 0.0 } };
+        fr->rlist        = rlist_;
+        fr->ntype        = c_numAtomTypes;
+
+        // simd
+        fr->use_simd_kernels = GMX_USE_SIMD_KERNELS;
+    }
+
+private:
+    InteractionConstHelper icHelper_;
+    std::vector<real>      ljPmeC6Grid_;
+    std::vector<real>      nbfp_;
+    t_lambda               fepVals_;
+    real                   rlist_ = 1.0;
+};
+
+/*! \brief Utility structure to hold atoms data
+ *
+ * A system having 4 interactions with the following perturbation pattern:
+ *  - no perturbation
+ *  - vdw- and coulomb-perturbation
+ *  - coulomb-perturbation only
+ *  - vdw-perturbation only
+ *
+ * This is realized by defining 3 different atom types that control
+ * the vdw-perturbation. The coulomb-perturbation is controlled by directly
+ * setting the charge of the atoms at the lambda states A/B.
+ */
+struct AtomData
+{
+    AtomData()
+    {
+        idef.atnr = c_numAtomTypes;
+        idef.iparams.resize(2 * c_numAtomTypes * c_numAtomTypes);
+
+        // set interaction parameters for different combinations of types
+        idef.iparams[0].lj = { 0.001458, 1.0062882e-6 }; // 0-0
+        idef.iparams[1].lj = { 0.0, 0.0 };               // 0-1
+        idef.iparams[2].lj = { 0.001458, 1.0062882e-6 }; // 0-2
+        idef.iparams[3].lj = { 0.0, 0.0 };               // 1-0
+        idef.iparams[4].lj = { 0.0, 0.0 };               // 1-1
+        idef.iparams[5].lj = { 0.0, 0.0 };               // 1-2
+        idef.iparams[6].lj = { 0.001458, 1.0062882e-6 }; // 2-0
+        idef.iparams[7].lj = { 0.0, 0.0 };               // 2-1
+        idef.iparams[8].lj = { 0.001458, 1.0062882e-6 }; // 2-2
+
+        GMX_ASSERT(chargeA.size() == c_numAtoms, "This test wants 4 atoms");
+        GMX_ASSERT(chargeB.size() == c_numAtoms, "This test wants 4 atoms");
+        GMX_ASSERT(typeA.size() == c_numAtoms, "This test wants 4 atoms");
+        GMX_ASSERT(typeB.size() == c_numAtoms, "This test wants 4 atoms");
+    }
+
+    // forcefield parameters
+    gmx_ffparams_t idef;
+
+    // atom data
+    std::vector<real> chargeA = { 1.0, -1.0, -1.0, 1.0 };
+    std::vector<real> chargeB = { 1.0, 0.0, 0.0, 1.0 };
+    std::vector<int>  typeA   = { 0, 0, 0, 0 };
+    std::vector<int>  typeB   = { 0, 1, 2, 1 };
+    // perturbation pattern: {no-pert, vdw- and coul-pert, coul-pert, vdw-pert}
+
+    // neighbourhood information
+    std::vector<int> iAtoms  = { 0 };
+    std::vector<int> jAtoms  = { 0, 1, 2, 3 };
+    std::vector<int> jIndex  = { 0, 4 };
+    std::vector<int> shift   = { 0 };
+    std::vector<int> gid     = { 0 };
+    std::vector<int> exclFep = { 0, 1, 1, 1 };
+
+    // construct t_nblist
+    t_nblist getNbList()
+    {
+        t_nblist nbl;
+        nbl.nri      = 1;
+        nbl.nrj      = 4;
+        nbl.iinr     = iAtoms;
+        nbl.jindex   = jIndex;
+        nbl.jjnr     = jAtoms;
+        nbl.shift    = shift;
+        nbl.gid      = gid;
+        nbl.excl_fep = exclFep;
+        return nbl;
+    }
+};
+
+/*! \brief Input structure for nonbonded fep kernel
+ */
+struct ListInput
+{
+public:
+    //! Function type
+    int fType = F_LJ;
+    //! Tolerance for float evaluation
+    float floatToler = 1e-6;
+    //! Tolerance for double evaluation
+    double doubleToler = 1e-8;
+    //! atom parameters
+    AtomData atoms;
+    //! forcerec helper
+    ForcerecHelper frHelper;
+
+    //! Constructor
+    ListInput() {}
+
+    /*! \brief Constructor with tolerance
+     *
+     * \param[in] ftol Single precision tolerance
+     * \param[in] dtol Double precision tolerance
+     */
+    ListInput(float ftol, double dtol)
+    {
+        floatToler  = ftol;
+        doubleToler = dtol;
+    }
+
+    /*! \brief Set parameters for nonbonded interaction
+     *
+     * \param[in] coulType coulomb type
+     * \param[in] vdwType  vdw type
+     * \param[in] vdwMod   vdw potential modifier
+     */
+    ListInput setInteraction(CoulombInteractionType coulType, VanDerWaalsType vdwType, InteractionModifiers vdwMod)
+    {
+        frHelper.initForcerec(atoms.idef, coulType, vdwType, vdwMod);
+        return *this;
+    }
+};
+
+class NonbondedFepTest :
+    public ::testing::TestWithParam<std::tuple<ListInput, PaddedVector<RVec>, real, real, bool>>
+{
+protected:
+    PaddedVector<RVec>   x_;
+    ListInput            input_;
+    real                 lambda_;
+    real                 softcoreAlpha_;
+    bool                 softcoreCoulomb_;
+    TestReferenceData    refData_;
+    TestReferenceChecker checker_;
+
+    NonbondedFepTest() : checker_(refData_.rootChecker())
+    {
+        input_           = std::get<0>(GetParam());
+        x_               = std::get<1>(GetParam());
+        lambda_          = std::get<2>(GetParam());
+        softcoreAlpha_   = std::get<3>(GetParam());
+        softcoreCoulomb_ = std::get<4>(GetParam());
+
+        test::FloatingPointTolerance tolerance(
+                input_.floatToler, input_.doubleToler, 1.0e-6, 1.0e-12, 10000, 100, false);
+        checker_.setDefaultTolerance(tolerance);
+    }
+
+    void testKernel()
+    {
+        input_.frHelper.setSoftcoreAlpha(softcoreAlpha_);
+        input_.frHelper.setSoftcoreCoulomb(softcoreCoulomb_);
+
+        // get forcerec and interaction_const
+        t_forcerec fr;
+        input_.frHelper.getForcerec(&fr);
+
+        // t_nblist
+        t_nblist nbl = input_.atoms.getNbList();
+
+        // output buffers
+        OutputQuantities output;
+
+        // lambda vector
+        int numFepCouplingTerms = static_cast<int>(FreeEnergyPerturbationCouplingType::Count);
+        std::vector<real> lambdas(numFepCouplingTerms, lambda_);
+
+        // fep kernel data
+        int doNBFlags = 0;
+        doNBFlags |= GMX_NONBONDED_DO_FORCE;
+        doNBFlags |= GMX_NONBONDED_DO_SHIFTFORCE;
+        doNBFlags |= GMX_NONBONDED_DO_POTENTIAL;
+
+        // force buffers
+        bool                      unusedBool = true; // this bool has no effect in the kernel
+        gmx::ForceWithShiftForces forces(output.f.arrayRefWithPadding(), unusedBool, output.fShift);
+
+        // dummy counter
+        t_nrnb nrnb;
+
+        // run fep kernel
+        gmx_nb_free_energy_kernel(nbl,
+                                  x_.arrayRefWithPadding().unpaddedArrayRef(),
+                                  &forces,
+                                  fr,
+                                  input_.atoms.chargeA,
+                                  input_.atoms.chargeB,
+                                  input_.atoms.typeA,
+                                  input_.atoms.typeB,
+                                  doNBFlags,
+                                  lambdas,
+                                  output.dvdLambda,
+                                  output.energy.energyGroupPairTerms[NonBondedEnergyTerms::CoulombSR],
+                                  output.energy.energyGroupPairTerms[NonBondedEnergyTerms::LJSR],
+                                  &nrnb);
+
+        checkOutput(&checker_, output);
+    }
+};
+
+TEST_P(NonbondedFepTest, testKernel)
+{
+    testKernel();
+}
+
+//! configurations to test
+std::vector<ListInput> c_interaction = {
+    { ListInput(1e-6, 1e-8).setInteraction(CoulombInteractionType::Cut, VanDerWaalsType::Cut, InteractionModifiers::None) },
+    { ListInput(1e-6, 1e-8).setInteraction(CoulombInteractionType::Cut, VanDerWaalsType::Cut, InteractionModifiers::PotSwitch) },
+    { ListInput(1e-6, 1e-8).setInteraction(CoulombInteractionType::Pme, VanDerWaalsType::Pme, InteractionModifiers::None) }
+};
+
+//! test parameters
+std::vector<real> c_fepLambdas      = { 0.0, 0.5, 1.0 };
+std::vector<real> c_softcoreAlphas  = { 0.0, 0.3 };
+std::vector<bool> c_softcoreCoulomb = { true, false };
+
+//! Coordinates for testing
+std::vector<PaddedVector<RVec>> c_coordinates = {
+    { { 1.0, 1.0, 1.0 }, { 1.1, 1.15, 1.2 }, { 0.9, 0.85, 0.8 }, { 1.1, 1.15, 0.8 } }
+};
+
+INSTANTIATE_TEST_CASE_P(NBInteraction,
+                        NonbondedFepTest,
+                        ::testing::Combine(::testing::ValuesIn(c_interaction),
+                                           ::testing::ValuesIn(c_coordinates),
+                                           ::testing::ValuesIn(c_fepLambdas),
+                                           ::testing::ValuesIn(c_softcoreAlphas),
+                                           ::testing::ValuesIn(c_softcoreCoulomb)));
+
+} // namespace
+
+} // namespace test
+
+} // namespace gmx
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_0.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_0.xml
new file mode 100644 (file)
index 0000000..0f00800
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">9.3145478052213058</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-260.95857104646757</Real>
+      <Real Name="Y">-391.43785656970101</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-94.898901947422004</Real>
+      <Real Name="Y">-142.3483529211328</Real>
+      <Real Name="Z">-189.79780389484378</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">94.898901947421891</Real>
+      <Real Name="Y">142.34835292113289</Real>
+      <Real Name="Z">189.79780389484378</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">260.95857104646768</Real>
+      <Real Name="Y">391.4378565697009</Real>
+      <Real Name="Z">-521.9171420929348</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-260.95857104646757</Real>
+      <Real Name="Y">-391.43785656970101</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_1.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_1.xml
new file mode 100644 (file)
index 0000000..0f00800
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">9.3145478052213058</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-260.95857104646757</Real>
+      <Real Name="Y">-391.43785656970101</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-94.898901947422004</Real>
+      <Real Name="Y">-142.3483529211328</Real>
+      <Real Name="Z">-189.79780389484378</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">94.898901947421891</Real>
+      <Real Name="Y">142.34835292113289</Real>
+      <Real Name="Z">189.79780389484378</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">260.95857104646768</Real>
+      <Real Name="Y">391.4378565697009</Real>
+      <Real Name="Z">-521.9171420929348</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-260.95857104646757</Real>
+      <Real Name="Y">-391.43785656970101</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_10.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_10.xml
new file mode 100644 (file)
index 0000000..516db05
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.1048492684071043</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">200.86758822144873</Real>
+  <Real Name="dVdlVdw ">-0.73574306288264069</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-94.898901947422047</Real>
+      <Real Name="Y">-142.34835292113266</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-83.029834549522803</Real>
+      <Real Name="Y">-124.54475182428425</Real>
+      <Real Name="Z">-166.05966909904561</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541691</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-94.898901947422047</Real>
+      <Real Name="Y">-142.34835292113266</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_11.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_11.xml
new file mode 100644 (file)
index 0000000..4bf4726
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.1048492684071043</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-0.86321750690201693</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-94.898901947422047</Real>
+      <Real Name="Y">-142.34835292113266</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-83.029834549522803</Real>
+      <Real Name="Y">-124.54475182428425</Real>
+      <Real Name="Z">-166.05966909904561</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541691</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-94.898901947422047</Real>
+      <Real Name="Y">-142.34835292113266</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_12.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_12.xml
new file mode 100644 (file)
index 0000000..b5fed0e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">8.1515314473352767</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-251.93068947881358</Real>
+      <Real Name="Y">-377.89603421822011</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-103.926783515076</Real>
+      <Real Name="Y">-155.89017527261376</Real>
+      <Real Name="Z">-207.85356703015177</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">103.92678351507588</Real>
+      <Real Name="Y">155.89017527261387</Real>
+      <Real Name="Z">207.85356703015177</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">251.93068947881369</Real>
+      <Real Name="Y">377.89603421822</Real>
+      <Real Name="Z">-503.86137895762681</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-251.93068947881358</Real>
+      <Real Name="Y">-377.89603421822011</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_13.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_13.xml
new file mode 100644 (file)
index 0000000..b5fed0e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">8.1515314473352767</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-251.93068947881358</Real>
+      <Real Name="Y">-377.89603421822011</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-103.926783515076</Real>
+      <Real Name="Y">-155.89017527261376</Real>
+      <Real Name="Z">-207.85356703015177</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">103.92678351507588</Real>
+      <Real Name="Y">155.89017527261387</Real>
+      <Real Name="Z">207.85356703015177</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">251.93068947881369</Real>
+      <Real Name="Y">377.89603421822</Real>
+      <Real Name="Z">-503.86137895762681</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-251.93068947881358</Real>
+      <Real Name="Y">-377.89603421822011</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_14.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_14.xml
new file mode 100644 (file)
index 0000000..95992cf
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">8.1515314473352838</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">179.13707363564816</Real>
+  <Real Name="dVdlVdw ">-15.697835624983551</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-251.93068947881363</Real>
+      <Real Name="Y">-377.89603421822017</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-103.92678351507598</Real>
+      <Real Name="Y">-155.89017527261373</Real>
+      <Real Name="Z">-207.85356703015174</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">103.92678351507587</Real>
+      <Real Name="Y">155.89017527261385</Real>
+      <Real Name="Z">207.85356703015174</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">251.93068947881375</Real>
+      <Real Name="Y">377.89603421822005</Real>
+      <Real Name="Z">-503.86137895762693</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-251.93068947881363</Real>
+      <Real Name="Y">-377.89603421822017</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_15.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_15.xml
new file mode 100644 (file)
index 0000000..3baedd8
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">8.1515314473352838</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-15.15135030534281</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-251.93068947881363</Real>
+      <Real Name="Y">-377.89603421822017</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-103.92678351507598</Real>
+      <Real Name="Y">-155.89017527261373</Real>
+      <Real Name="Z">-207.85356703015174</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">103.92678351507587</Real>
+      <Real Name="Y">155.89017527261385</Real>
+      <Real Name="Z">207.85356703015174</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">251.93068947881375</Real>
+      <Real Name="Y">377.89603421822005</Real>
+      <Real Name="Z">-503.86137895762693</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-251.93068947881363</Real>
+      <Real Name="Y">-377.89603421822017</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_16.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_16.xml
new file mode 100644 (file)
index 0000000..51292d9
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">5.4343542982235178</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541685</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-51.963391757537998</Real>
+      <Real Name="Y">-77.94508763630688</Real>
+      <Real Name="Z">-103.92678351507588</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">14.962415266603566</Real>
+      <Real Name="Y">22.443622899905357</Real>
+      <Real Name="Z">29.924830533207132</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">214.92971298787927</Real>
+      <Real Name="Y">322.39456948181839</Real>
+      <Real Name="Z">-429.85942597575803</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541685</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_17.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_17.xml
new file mode 100644 (file)
index 0000000..51292d9
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">5.4343542982235178</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541685</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-51.963391757537998</Real>
+      <Real Name="Y">-77.94508763630688</Real>
+      <Real Name="Z">-103.92678351507588</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">14.962415266603566</Real>
+      <Real Name="Y">22.443622899905357</Real>
+      <Real Name="Z">29.924830533207132</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">214.92971298787927</Real>
+      <Real Name="Y">322.39456948181839</Real>
+      <Real Name="Z">-429.85942597575803</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541685</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_18.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_18.xml
new file mode 100644 (file)
index 0000000..a80b81e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.761435515884914</Real>
+  <Real Name="ECoul ">-20.022624722133244</Real>
+  <Real Name="dVdlCoul ">187.81393532738895</Real>
+  <Real Name="dVdlVdw ">-4.1916248207515459</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-111.57199247569103</Real>
+      <Real Name="Y">-167.35798871353634</Real>
+      <Real Name="Z">367.76618196621394</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-51.11796452031161</Real>
+      <Real Name="Y">-76.676946780467304</Real>
+      <Real Name="Z">-102.23592904062311</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">14.962415266603525</Real>
+      <Real Name="Y">22.443622899905296</Real>
+      <Real Name="Z">29.92483053320705</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">147.72754172939912</Real>
+      <Real Name="Y">221.59131259409835</Real>
+      <Real Name="Z">-295.4550834587979</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-111.57199247569103</Real>
+      <Real Name="Y">-167.35798871353634</Real>
+      <Real Name="Z">367.76618196621394</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_19.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_19.xml
new file mode 100644 (file)
index 0000000..6f1a096
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.8186569219444455</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-4.2823914414719937</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-135.5995394305331</Real>
+      <Real Name="Y">-203.39930914579941</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-73.127990290743867</Real>
+      <Real Name="Y">-109.69198543611563</Real>
+      <Real Name="Z">-146.25598058148756</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">14.962415266603525</Real>
+      <Real Name="Y">22.443622899905296</Real>
+      <Real Name="Z">29.92483053320705</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">193.76511445467344</Real>
+      <Real Name="Y">290.64767168200973</Real>
+      <Real Name="Z">-387.53022890934642</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-135.5995394305331</Real>
+      <Real Name="Y">-203.39930914579941</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_2.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_2.xml
new file mode 100644 (file)
index 0000000..e58373a
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">9.3145478052213129</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">179.13707363564816</Real>
+  <Real Name="dVdlVdw ">-17.725275114526866</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-260.95857104646763</Real>
+      <Real Name="Y">-391.43785656970118</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-94.898901947421962</Real>
+      <Real Name="Y">-142.34835292113274</Real>
+      <Real Name="Z">-189.79780389484372</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">94.898901947421862</Real>
+      <Real Name="Y">142.34835292113286</Real>
+      <Real Name="Z">189.79780389484372</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">260.95857104646774</Real>
+      <Real Name="Y">391.43785656970107</Real>
+      <Real Name="Z">-521.91714209293491</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-260.95857104646763</Real>
+      <Real Name="Y">-391.43785656970118</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_20.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_20.xml
new file mode 100644 (file)
index 0000000..d050e9f
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">2.7171771491117589</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-103.9267835150761</Real>
+      <Real Name="Y">-155.89017527261367</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-74.001952981868754</Real>
+      <Real Name="Y">-111.00292947280317</Real>
+      <Real Name="Z">-148.00390596373751</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541685</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-103.9267835150761</Real>
+      <Real Name="Y">-155.89017527261367</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_21.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_21.xml
new file mode 100644 (file)
index 0000000..d050e9f
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">2.7171771491117589</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-103.9267835150761</Real>
+      <Real Name="Y">-155.89017527261367</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-74.001952981868754</Real>
+      <Real Name="Y">-111.00292947280317</Real>
+      <Real Name="Z">-148.00390596373751</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541685</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-103.9267835150761</Real>
+      <Real Name="Y">-155.89017527261367</Real>
+      <Real Name="Z">503.86137895762681</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_22.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_22.xml
new file mode 100644 (file)
index 0000000..d054f7e
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">2.7171771491117611</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">200.86758822144873</Real>
+  <Real Name="dVdlVdw ">-0.62492893998153254</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-103.92678351507604</Real>
+      <Real Name="Y">-155.89017527261365</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-74.001952981868811</Real>
+      <Real Name="Y">-111.00292947280326</Real>
+      <Real Name="Z">-148.00390596373762</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541691</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-103.92678351507604</Real>
+      <Real Name="Y">-155.89017527261365</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_23.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_23.xml
new file mode 100644 (file)
index 0000000..d0ca51c
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">2.7171771491117611</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-0.73424360351625861</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-103.92678351507604</Real>
+      <Real Name="Y">-155.89017527261365</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-74.001952981868811</Real>
+      <Real Name="Y">-111.00292947280326</Real>
+      <Real Name="Z">-148.00390596373762</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541691</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-103.92678351507604</Real>
+      <Real Name="Y">-155.89017527261365</Real>
+      <Real Name="Z">503.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_24.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_24.xml
new file mode 100644 (file)
index 0000000..47ea9c0
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">11.244864181870648</Real>
+  <Real Name="ECoul ">-91.43161122279804</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-209.02699861275136</Real>
+      <Real Name="Y">-313.54049791912666</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-40.828136036689216</Real>
+      <Real Name="Y">-61.242204055033739</Real>
+      <Real Name="Z">-81.656272073378346</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">40.828136036689173</Real>
+      <Real Name="Y">61.242204055033781</Real>
+      <Real Name="Z">81.656272073378346</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">209.02699861275138</Real>
+      <Real Name="Y">313.54049791912661</Real>
+      <Real Name="Z">-418.05399722550226</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-209.02699861275136</Real>
+      <Real Name="Y">-313.54049791912666</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_25.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_25.xml
new file mode 100644 (file)
index 0000000..47ea9c0
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">11.244864181870648</Real>
+  <Real Name="ECoul ">-91.43161122279804</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-209.02699861275136</Real>
+      <Real Name="Y">-313.54049791912666</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-40.828136036689216</Real>
+      <Real Name="Y">-61.242204055033739</Real>
+      <Real Name="Z">-81.656272073378346</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">40.828136036689173</Real>
+      <Real Name="Y">61.242204055033781</Real>
+      <Real Name="Z">81.656272073378346</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">209.02699861275138</Real>
+      <Real Name="Y">313.54049791912661</Real>
+      <Real Name="Z">-418.05399722550226</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-209.02699861275136</Real>
+      <Real Name="Y">-313.54049791912666</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_26.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_26.xml
new file mode 100644 (file)
index 0000000..6f31f86
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">11.244864181870655</Real>
+  <Real Name="ECoul ">-91.43161122279804</Real>
+  <Real Name="dVdlCoul ">51.055517365549605</Real>
+  <Real Name="dVdlVdw ">-18.644737807620768</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-209.02699861275141</Real>
+      <Real Name="Y">-313.54049791912678</Real>
+      <Real Name="Z">418.05399722550248</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-40.828136036689187</Real>
+      <Real Name="Y">-61.242204055033682</Real>
+      <Real Name="Z">-81.656272073378275</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">40.828136036689138</Real>
+      <Real Name="Y">61.242204055033731</Real>
+      <Real Name="Z">81.656272073378275</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">209.02699861275147</Real>
+      <Real Name="Y">313.54049791912672</Real>
+      <Real Name="Z">-418.05399722550248</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-209.02699861275141</Real>
+      <Real Name="Y">-313.54049791912678</Real>
+      <Real Name="Z">418.05399722550248</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_27.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_27.xml
new file mode 100644 (file)
index 0000000..0202545
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">11.244864181870655</Real>
+  <Real Name="ECoul ">-91.43161122279804</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-18.031583913092721</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-209.02699861275141</Real>
+      <Real Name="Y">-313.54049791912678</Real>
+      <Real Name="Z">418.05399722550248</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-40.828136036689187</Real>
+      <Real Name="Y">-61.242204055033682</Real>
+      <Real Name="Z">-81.656272073378275</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">40.828136036689138</Real>
+      <Real Name="Y">61.242204055033731</Real>
+      <Real Name="Z">81.656272073378275</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">209.02699861275147</Real>
+      <Real Name="Y">313.54049791912672</Real>
+      <Real Name="Z">-418.05399722550248</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-209.02699861275141</Real>
+      <Real Name="Y">-313.54049791912678</Real>
+      <Real Name="Z">418.05399722550248</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_28.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_28.xml
new file mode 100644 (file)
index 0000000..4b877de
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">7.6802835669165956</Real>
+  <Real Name="ECoul ">-61.20791980865792</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-124.92756732472033</Real>
+      <Real Name="Y">-187.39135098708019</Real>
+      <Real Name="Z">418.05399722550231</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-20.414068018344608</Real>
+      <Real Name="Y">-30.621102027516869</Real>
+      <Real Name="Z">-40.828136036689173</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-21.635647625670902</Real>
+      <Real Name="Y">-32.453471438506362</Real>
+      <Real Name="Z">-43.271295251341805</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">166.97728296873584</Real>
+      <Real Name="Y">250.46592445310341</Real>
+      <Real Name="Z">-333.95456593747133</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-124.92756732472033</Real>
+      <Real Name="Y">-187.39135098708019</Real>
+      <Real Name="Z">418.05399722550231</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_29.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_29.xml
new file mode 100644 (file)
index 0000000..4b877de
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">7.6802835669165956</Real>
+  <Real Name="ECoul ">-61.20791980865792</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-124.92756732472033</Real>
+      <Real Name="Y">-187.39135098708019</Real>
+      <Real Name="Z">418.05399722550231</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-20.414068018344608</Real>
+      <Real Name="Y">-30.621102027516869</Real>
+      <Real Name="Z">-40.828136036689173</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-21.635647625670902</Real>
+      <Real Name="Y">-32.453471438506362</Real>
+      <Real Name="Z">-43.271295251341805</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">166.97728296873584</Real>
+      <Real Name="Y">250.46592445310341</Real>
+      <Real Name="Z">-333.95456593747133</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-124.92756732472033</Real>
+      <Real Name="Y">-187.39135098708019</Real>
+      <Real Name="Z">418.05399722550231</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_3.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_3.xml
new file mode 100644 (file)
index 0000000..a87e13a
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">9.3145478052213129</Real>
+  <Real Name="ECoul ">-111.63140175473714</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-17.112121219998826</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-260.95857104646763</Real>
+      <Real Name="Y">-391.43785656970118</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-94.898901947421962</Real>
+      <Real Name="Y">-142.34835292113274</Real>
+      <Real Name="Z">-189.79780389484372</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">94.898901947421862</Real>
+      <Real Name="Y">142.34835292113286</Real>
+      <Real Name="Z">189.79780389484372</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">260.95857104646774</Real>
+      <Real Name="Y">391.43785656970107</Real>
+      <Real Name="Z">-521.91714209293491</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-260.95857104646763</Real>
+      <Real Name="Y">-391.43785656970118</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_30.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_30.xml
new file mode 100644 (file)
index 0000000..a91ddbd
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">5.7877856110730166</Real>
+  <Real Name="ECoul ">-63.863612325243423</Real>
+  <Real Name="dVdlCoul ">59.732379057290416</Real>
+  <Real Name="dVdlVdw ">-5.7498617329574744</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-53.906398242222338</Real>
+      <Real Name="Y">-80.859597363333336</Real>
+      <Real Name="Z">281.95880023408944</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-21.900853311740317</Real>
+      <Real Name="Y">-32.851279967610424</Real>
+      <Real Name="Z">-43.801706623480584</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-21.635647625670948</Real>
+      <Real Name="Y">-32.453471438506433</Real>
+      <Real Name="Z">-43.271295251341897</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">97.442899179633599</Real>
+      <Real Name="Y">146.16434876945019</Real>
+      <Real Name="Z">-194.88579835926697</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-53.906398242222338</Real>
+      <Real Name="Y">-80.859597363333336</Real>
+      <Real Name="Z">281.95880023408944</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_31.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_31.xml
new file mode 100644 (file)
index 0000000..dddf605
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">5.853205445506128</Real>
+  <Real Name="ECoul ">-61.20791980865792</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-5.8511380489996379</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-78.08967666351046</Real>
+      <Real Name="Y">-117.13451499526545</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-43.833013348949535</Real>
+      <Real Name="Y">-65.749520023424211</Real>
+      <Real Name="Z">-87.666026697898971</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-21.635647625670948</Real>
+      <Real Name="Y">-32.453471438506433</Real>
+      <Real Name="Z">-43.271295251341897</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">143.55833763813095</Real>
+      <Real Name="Y">215.3375064571961</Real>
+      <Real Name="Z">-287.11667527626156</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-78.08967666351046</Real>
+      <Real Name="Y">-117.13451499526545</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_32.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_32.xml
new file mode 100644 (file)
index 0000000..60b2660
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.1157029519625441</Real>
+  <Real Name="ECoul ">-30.9842283945178</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-84.099431288030971</Real>
+      <Real Name="Y">-126.14914693204652</Real>
+      <Real Name="Z">-168.19886257606194</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">124.92756732472027</Real>
+      <Real Name="Y">187.39135098708013</Real>
+      <Real Name="Z">-249.85513464944029</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_33.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_33.xml
new file mode 100644 (file)
index 0000000..60b2660
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.1157029519625441</Real>
+  <Real Name="ECoul ">-30.9842283945178</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-84.099431288030971</Real>
+      <Real Name="Y">-126.14914693204652</Real>
+      <Real Name="Z">-168.19886257606194</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">124.92756732472027</Real>
+      <Real Name="Y">187.39135098708013</Real>
+      <Real Name="Z">-249.85513464944029</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_34.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_34.xml
new file mode 100644 (file)
index 0000000..1396356
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.1157029519625468</Real>
+  <Real Name="ECoul ">-30.9842283945178</Real>
+  <Real Name="dVdlCoul ">72.786031951350168</Real>
+  <Real Name="dVdlVdw ">-1.6552057559765398</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-84.099431288031028</Real>
+      <Real Name="Y">-126.14914693204661</Real>
+      <Real Name="Z">-168.19886257606206</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">124.92756732472033</Real>
+      <Real Name="Y">187.39135098708022</Real>
+      <Real Name="Z">-249.85513464944037</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_35.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_35.xml
new file mode 100644 (file)
index 0000000..566fe07
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.1157029519625468</Real>
+  <Real Name="ECoul ">-30.9842283945178</Real>
+  <Real Name="dVdlCoul ">60.44738282828024</Real>
+  <Real Name="dVdlVdw ">-1.7826801999959161</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-84.099431288031028</Real>
+      <Real Name="Y">-126.14914693204661</Real>
+      <Real Name="Z">-168.19886257606206</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">124.92756732472033</Real>
+      <Real Name="Y">187.39135098708022</Real>
+      <Real Name="Z">-249.85513464944037</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-40.828136036689301</Real>
+      <Real Name="Y">-61.242204055033611</Real>
+      <Real Name="Z">418.05399722550243</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_4.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_4.xml
new file mode 100644 (file)
index 0000000..8ff39ee
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">6.2096985368142033</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541691</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-47.449450973711002</Real>
+      <Real Name="Y">-71.1741764605664</Real>
+      <Real Name="Z">-94.898901947421891</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">5.9345336989495747</Real>
+      <Real Name="Y">8.9018005484243652</Real>
+      <Real Name="Z">11.869067397899149</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">219.44365377170627</Real>
+      <Real Name="Y">329.16548065755893</Real>
+      <Real Name="Z">-438.88730754341202</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541691</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_5.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_5.xml
new file mode 100644 (file)
index 0000000..8ff39ee
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">6.2096985368142033</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541691</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-47.449450973711002</Real>
+      <Real Name="Y">-71.1741764605664</Real>
+      <Real Name="Z">-94.898901947421891</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">5.9345336989495747</Real>
+      <Real Name="Y">8.9018005484243652</Real>
+      <Real Name="Z">11.869067397899149</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">219.44365377170627</Real>
+      <Real Name="Y">329.16548065755893</Real>
+      <Real Name="Z">-438.88730754341202</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-177.92873649694485</Real>
+      <Real Name="Y">-266.89310474541691</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_6.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_6.xml
new file mode 100644 (file)
index 0000000..08a0677
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.3172005809706242</Real>
+  <Real Name="ECoul ">-20.022624722133244</Real>
+  <Real Name="dVdlCoul ">187.81393532738895</Real>
+  <Real Name="dVdlVdw ">-4.8303990398635737</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-106.90756741444682</Real>
+      <Real Name="Y">-160.36135112167005</Real>
+      <Real Name="Z">385.82194510152198</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-48.936236267106707</Real>
+      <Real Name="Y">-73.404354400659955</Real>
+      <Real Name="Z">-97.872472534213301</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">5.9345336989495294</Real>
+      <Real Name="Y">8.9018005484242977</Real>
+      <Real Name="Z">11.869067397899059</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">149.909269982604</Real>
+      <Real Name="Y">224.8639049739057</Real>
+      <Real Name="Z">-299.81853996520772</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-106.90756741444682</Real>
+      <Real Name="Y">-160.36135112167005</Real>
+      <Real Name="Z">385.82194510152198</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_7.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_7.xml
new file mode 100644 (file)
index 0000000..bbf4351
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">4.3826204154037347</Real>
+  <Real Name="ECoul ">-17.366932205547741</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-4.9316753559057389</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-131.09084583573497</Real>
+      <Real Name="Y">-196.63626875360214</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-70.868396304315922</Real>
+      <Real Name="Y">-106.30259445647374</Real>
+      <Real Name="Z">-141.7367926086317</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">5.9345336989495294</Real>
+      <Real Name="Y">8.9018005484242977</Real>
+      <Real Name="Z">11.869067397899059</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">196.02470844110135</Real>
+      <Real Name="Y">294.03706266165159</Real>
+      <Real Name="Z">-392.04941688220231</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-131.09084583573497</Real>
+      <Real Name="Y">-196.63626875360214</Real>
+      <Real Name="Z">521.91714209293491</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_8.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_8.xml
new file mode 100644 (file)
index 0000000..b88870b
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.1048492684071016</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-94.898901947422104</Real>
+      <Real Name="Y">-142.34835292113269</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-83.029834549522747</Real>
+      <Real Name="Y">-124.54475182428416</Real>
+      <Real Name="Z">-166.05966909904549</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541685</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-94.898901947422104</Real>
+      <Real Name="Y">-142.34835292113269</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_9.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_9.xml
new file mode 100644 (file)
index 0000000..b88870b
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+  <Real Name="EVdw ">3.1048492684071016</Real>
+  <Real Name="ECoul ">76.897537343641645</Real>
+  <Real Name="dVdlCoul ">188.52893909837877</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-94.898901947422104</Real>
+      <Real Name="Y">-142.34835292113269</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">0</Real>
+      <Real Name="Y">0</Real>
+      <Real Name="Z">0</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-83.029834549522747</Real>
+      <Real Name="Y">-124.54475182428416</Real>
+      <Real Name="Z">-166.05966909904549</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">177.92873649694485</Real>
+      <Real Name="Y">266.89310474541685</Real>
+      <Real Name="Z">-355.8574729938893</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-94.898901947422104</Real>
+      <Real Name="Y">-142.34835292113269</Real>
+      <Real Name="Z">521.9171420929348</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>