Add gapsys softcore function.
authorSebastian Kehl <sebastian.kehl@mpcdf.mpg.de>
Mon, 16 Nov 2020 09:27:47 +0000 (10:27 +0100)
committerMagnus Lundborg <magnus.lundborg@scilifelab.se>
Tue, 5 Oct 2021 11:38:46 +0000 (11:38 +0000)
Change nonbonded fep-kernel to allow to use both, standard
beutler function as well as new gapsys function. Add new
input name to choose one of these.

102 files changed:
docs/CMakeLists.txt
docs/reference-manual/functions/free-energy-interactions.rst
docs/reference-manual/functions/plots/gapsys-sc.pdf [new file with mode: 0644]
docs/reference-manual/functions/plots/gapsys-sc.svg [new file with mode: 0644]
docs/reference-manual/references.rst
src/gromacs/fileio/tpxio.cpp
src/gromacs/gmxlib/nonbonded/nb_free_energy.cpp
src/gromacs/gmxlib/nonbonded/nb_softcore.h [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/nb_free_energy.cpp
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_100.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_101.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_102.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_103.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_104.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_105.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_106.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_107.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_36.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_37.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_38.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_39.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_40.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_41.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_42.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_43.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_44.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_45.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_46.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_47.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_48.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_49.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_50.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_51.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_52.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_53.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_54.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_55.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_56.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_57.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_58.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_59.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_60.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_61.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_62.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_63.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_64.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_65.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_66.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_67.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_68.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_69.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_70.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_71.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_72.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_73.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_74.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_75.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_76.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_77.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_78.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_79.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_80.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_81.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_82.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_83.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_84.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_85.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_86.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_87.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_88.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_89.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_90.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_91.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_92.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_93.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_94.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_95.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_96.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_97.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_98.xml [new file with mode: 0644]
src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_99.xml [new file with mode: 0644]
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsDefineParametersWithValuesIncludingAssignment.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsElectricField.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsElectricFieldOscillating.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsElectricFieldPulsed.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsEmptyLines.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsImplicitSolventNo.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsKeyWithoutValue.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_AcceptsMimic.xml
src/gromacs/gmxpreprocess/tests/refdata/GetIrTest_HandlesDifferentKindsOfMdpLines.xml
src/gromacs/listed_forces/pairs.cpp
src/gromacs/listed_forces/tests/pairs.cpp
src/gromacs/listed_forces/tests/refdata/14Interaction_ListedForcesPairsTest_Ifunc_0.xml
src/gromacs/listed_forces/tests/refdata/14Interaction_ListedForcesPairsTest_Ifunc_1.xml
src/gromacs/listed_forces/tests/refdata/14Interaction_ListedForcesPairsTest_Ifunc_2.xml
src/gromacs/mdtypes/inputrec.cpp
src/gromacs/mdtypes/inputrec.h
src/gromacs/mdtypes/interaction_const.cpp
src/gromacs/mdtypes/interaction_const.h
src/gromacs/mdtypes/md_enums.cpp
src/gromacs/mdtypes/md_enums.h

index 44de35856c3efdc39cfc1989ce6db3bac01a8219..0122c6cf7e587d6ff9f9b966fed6a648634d4fbd 100644 (file)
@@ -290,6 +290,7 @@ if (SPHINX_FOUND)
         reference-manual/functions/plots/f-rbs.pdf
         reference-manual/functions/plots/ring-imp.pdf
         reference-manual/functions/plots/softcore.pdf
+        reference-manual/functions/plots/gapsys-sc.pdf
         reference-manual/functions/plots/subst-im.pdf
         reference-manual/functions/plots/tetra-im.pdf
         reference-manual/functions/plots/vcrf.pdf
index 2f29ceac05d00a2ef14437bb107cbd02f34dc020..e5cf44205867fd3105432f23f26c022a93fda1ca 100644 (file)
@@ -198,8 +198,8 @@ with :math:`d_k` as before, so
           {\frac{\partial G}{\partial {\lambda}}}    &=&     -2 \sum^K_k \lambda_k \left(d_k^B-d_k^A\right)\end{aligned}
           :label: eqnfepshakeconstr2
 
-Soft-core interactions
-~~~~~~~~~~~~~~~~~~~~~~
+Soft-core interactions: Beutler *et al.*
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 .. _fig-softcore:
 
@@ -327,3 +327,175 @@ This “1-1-48” path is also implemented in |Gromacs|. Note that for this
 path the soft core :math:`\alpha` should satisfy
 :math:`0.001 < \alpha < 0.003`, rather than :math:`\alpha \approx
 0.5`.
+
+
+Soft-core interactions: Gapsys *et al.*
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+In this section we describe the functional form and parameters for 
+the soft-cored non-bonded interactions using the formalism by Gapsys *et al.*\ :ref:`185 <refGapsys2012>`.
+
+The Gapsys *et al.* soft-core is formulated to act on the level of van der Waals and electrostatic forces:
+the non-bonded interactions are linearized at a point defined as, :math:`r_{scLJ}` or :math:`r_{scQ}`, respectively.
+The linearization point depends on the state of the system as controlled by the :math:`\lambda` parameter and 
+two parameters :math:`\alpha_Q` and :math:`\alpha_{LJ}`.
+The dependence on :math:`\lambda` guarantees that the end-states are properly represented by their hard-core potentials.
+:numref:`Fig. %s <fig-gapsyssc>` illustrates the behaviour of the linearization point, forces and integrated potential energies with respect
+to the parameters :math:`\alpha_Q` and :math:`\alpha_{LJ}`.
+
+.. _fig-gapsyssc:
+
+.. figure:: plots/gapsys-sc.*
+        :width: 15.0cm
+
+        Illustration of the soft-core parameter influence on the linearization point (top row), 
+        forces (middle row) and energies (bottom row)
+        for van der Waals (left column) and electrostatic interactions (right column).
+        The case of two interacting atoms is considered.
+        In state A both atoms have charges of 0.5 and :math:`\sigma=0.3` nm, :math:`\epsilon=0.5` kJ/mol.
+        In state B all the non-bonded interactions are set to zero.
+        The parameter :math:`\lambda` is set to 0.5 and electrostatic interaction cutoff is 1 nm.
+
+The parameter :math:`\alpha_{LJ}` is a unitless scaling factor in the range :math:`[0,1)`.
+It scales the position of the point from which the van der Waals force will be linearized.
+The linearization of the force is allowed in the range :math:`[0,F_{min}^{LJ})`,
+where setting :math:`\alpha_{LJ}=0` results in a standard hard-core interaction.
+Setting :math:`\alpha_{LJ}` closer to 1 brings the force linearization point towards 
+the minimum in the Lennard-Jones force curve (:math:`F_{min}^{LJ}`).
+This construct allows retaining the repulsion between two particles with non-zero C12 parameter at any :math:`\lambda` value.
+
+The parameter :math:`\alpha_{Q}` has a unit of :math:`\frac{nm}{e^2}` and is defined in the range :math:`[0,\inf)`.
+It scales the position of the point from which the Coulombic force will be linearized.
+Even though in theory :math:`\alpha_{Q}` can be set to an arbitrarily large value,
+algorithmically the linearization point for the force is bound in the range :math:`[0,F_{rcoul}^{Q})`,
+where setting :math:`\alpha_{Q}=0` results in a standard hard-core interaction.
+Setting :math:`\alpha_{Q}` to a larger value softens the Coulombic force.
+
+In all the notations below, for simplicity, the distance between two atoms :math:`i` and :math:`j` is noted as :math:`r`, i.e. :math:`r=r_{ij}`.
+
+Forces: van der Waals interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. math:: \begin{aligned}
+          \mathbf{F}_{ij}^{LJ}(\mathbf{r})=\begin{cases}
+          (\frac{12C_{ij}^{(12)}}{r^{13}} - \frac{6C_{ij}^{(6)}}{r^7})\frac{\mathbf{r}}{r}, & \mbox{if } \mbox{ $r \geq r_{scLJ}$} 
+          \\
+          \frac{d\mathbf{F}_{ij}^{LJ}}{dr}_{r=r_{scLJ}}r + \mathbf{F}_{ij}^{LJ}(r_{scLJ}), & \mbox{if } \mbox{ $r<r_{scLJ}$}
+          \end{cases}\end{aligned}
+          :label: eqvdwforces
+
+where the switching point between the soft and hard-core Lennard-Jones forces
+:math:`r_{scLJ} = \alpha_{LJ}(\frac{26}{7}\frac{C_{ij}^{(12)}}{C_{ij}^{(6)}}\lambda)^{\frac{1}{6}}` for state A, and
+:math:`r_{scLJ} = \alpha_{LJ}(\frac{26}{7}\frac{C_{ij}^{(12)}}{C_{ij}^{(6)}}(1-\lambda))^{\frac{1}{6}}` for state B.
+
+Explicit expression:
+
+.. math:: \begin{aligned}
+          \mathbf{F}_{LJ}(\mathbf{r})=\begin{cases}
+          \left(\frac{12C^{(12)}}{r^{13}} - \frac{6C^{(6)}}{r^7}\right)\frac{\mathbf{r}}{r}, & \mbox{if } \mbox{ $r \geq r_{scLJ}$} 
+          \\
+          \left(-\frac{156C^{(12)}}{r_{scLJ}^{14}} + \frac{42C^{(6)}}{r_{scLJ}^{8}}\right)\mathbf{r} + \frac{168C^{(12)}}{r_{scLJ}^{13}} - \frac{48C^{(6)}}{r_{scLJ}^{7}}, & \mbox{if } \mbox{ $r<r_{scLJ}$}
+          \end{cases}\end{aligned}
+          :label: eqvdwforcesexpl
+
+Forces: Coulomb interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. math:: \begin{aligned}
+          \mathbf{F}_{ij}^{Q}(\mathbf{r})=\begin{cases}
+          \frac{q_{i}q_{j}}{4{\pi}{\varepsilon_0}{\varepsilon_r}r^{2}}\frac{\mathbf{r}}{r}, & \mbox{if } \mbox{ $r \geq r_{scQ} < r_{cutoffQ}$} 
+          \\
+          \frac{d\mathbf{F}_{ij}^{Q}}{dr}_{r=r_{scQ}}r + \mathbf{F}_{ij}^{Q}(r_{scQ}), & \mbox{if } \mbox{ $r<r_{scQ} < r_{cutoffQ}$}
+          \\
+          \frac{d\mathbf{F}_{ij}^{Q}}{dr}_{r=r_{cutoffQ}}r + \mathbf{F}_{ij}^{Q}(r_{cutoffQ}), & \mbox{if } \mbox{ $r < r^{scQ} \geq r_{cutoffQ}$} 
+          \end{cases}\end{aligned}
+          :label: eqqforces
+
+where the switching point :math:`r^{sc}` between the soft and hard-core electrostatic forces is 
+:math:`r_{scQ} = \alpha_Q(1+|q_iq_j|)\lambda^{\frac{1}{6}}` for state A, and
+:math:`r_{scQ} = \alpha_Q(1+|q_iq_j|)(1-\lambda)^{\frac{1}{6}}` for state B.
+The :math:`\lambda` dependence of the linearization point for both van der Waals and Coulombic interactions is of the same power :math:`1/6`.
+
+Explicit expression:
+
+.. math:: \begin{aligned}
+          \mathbf{F}_{Q}(\mathbf{r})=\begin{cases}
+          \frac{q_iq_j}{4{\pi}{\varepsilon_0}{\varepsilon_r}r^{2}}\frac{\mathbf{r}}{r}, & \mbox{if } \mbox{ $r \geq r_{scQ} < r_{cutoffQ}$} 
+          \\
+          \frac{1}{4{\pi}{\varepsilon_0}{\varepsilon_r}}\big( -\frac{2q_{i}q_{j}}{r_{sc}^3}\mathbf{r} + \frac{3q_iq_j}{r_{sc}^2} \big), & \mbox{if } \mbox{ $r<r_{scQ} < r_{cutoffQ}$}
+          \\
+          \frac{1}{4{\pi}{\varepsilon_0}{\varepsilon_r}}\big( -\frac{2q_{i}q_{j}}{r_{cutoffQ}^3}\mathbf{r} + \frac{3q_iq_j}{r_{cutoffQ}^2} \big), & \mbox{if } \mbox{ $r < r_{scQ} \geq r_{cutoffQ}$}                        \end{cases}\end{aligned}
+          :label: eqqforcesexpl
+
+Energies: van der Waals interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Explicition definition of energies:
+
+.. math:: \begin{aligned}
+          V_{LJ}(r)=\begin{cases}
+          \frac{C^{(12)}}{r^{12}} - \frac{C^{(6)}}{r^6}, & \mbox{if } \mbox{ $r \geq r_{scLJ}$} 
+          \\
+          \left(\frac{78C^{(12)}}{r_{scLJ}^{14}} - \frac{21C^{(6)}}{r_{scLJ}^{8}}\right)r^2 - \left(\frac{168C^{(12)}}{r_{scLJ}^{13}} - \frac{48C^{(12)}}{r_{scLJ}^{7}}\right)r
+          + \frac{91C^{(12)}}{r_{scLJ}^{12}} - \frac{28C^{(6)}}{r_{scLJ}^{6}}, & \mbox{if } \mbox{ $r<r_{scLJ}$}
+          \end{cases}\end{aligned}
+          :label: eqvdwener
+
+Energies: Coulomb interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. math:: \begin{aligned}
+          V_{Q}(r)=\begin{cases}
+          \frac{q_{i}q_{j}}{4{\pi}{\varepsilon_0}{\varepsilon_r}r}, & \mbox{if } \mbox{ $r \geq r_{scQ} < r_{cutoffQ}$}
+          \\
+          \frac{q_{i}q_{j}}{r_{scQ}^3}r^2 - \frac{3q_iq_j}{r_{scQ}^2}r + \frac{3q_iq_j}{r_{scQ}}, & \mbox{if } \mbox{ $r<r_{scQ} < r_{cutoffQ}$}
+          \\
+          \frac{q_{i}q_{j}}{r_{cutoffQ}^3}r^2 - \frac{3q_iq_j}{r_{cutoffQ}^2}r + \frac{3q_iq_j}{r_{cutoffQ}}, & \mbox{if } \mbox{ $r < r_{scQ} \geq r_{cutoffQ}$}                
+          \end{cases}\end{aligned}
+          :label: eqqener
+
+:math:`\partial H / \partial \lambda`: van der Waals interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Here we provide the explicit expressions of :math:`\partial H/ \partial \lambda` for Lennard-Jones potential, when :math:`r<r_{scLJ}`.
+For simplicity, in the expression below we use the notation :math:`r_{scLJ_A}=r_{scA}` and :math:`r_{scLJ_B}=r_{scB}`.
+
+.. math:: \begin{aligned}
+          \frac{\partial{H}}{\partial{\lambda}} &= V_{LJ}^B(r) - V_{LJ}^A(r) + (1-\lambda)\frac{\partial{V_{LJ}^A(r)}}{\partial{\lambda}} + \lambda\frac{\partial{V_{LJ}^B(r)}}{\partial{\lambda}} \\
+          & =  \left(\frac{78C^{(12)}_B}{r_{scB}^{14}} - \frac{21C^{(6)}_B}{r_{scB}^{8}}\right)r^2 - \left(\frac{168C^{(12)}_B}{r_{scB}^{13}} - \frac{48C^{(12)}_B}{r_{scB}^{7}}\right)r
+          + \frac{91C^{(12)}_B}{r_{scB}^{12}} - \frac{28C^{(6)}_B}{r_{scB}^{6}} \\
+          & -  \left[\left(\frac{78C^{(12)}_A}{r_{scA}^{14}} - \frac{21C^{(6)}_A}{r_{scA}^{8}}\right)r^2 - \left(\frac{168C^{(12)}_A}{r_{scA}^{13}} - \frac{48C^{(12)}_A}{r_{scA}^{7}}\right)r
+          + \frac{91C^{(12)}_A}{r_{scA}^{12}} - \frac{28C^{(6)}_A}{r_{scA}^{6}} \right]\\
+          & +  \frac{14(\lambda-1)}{\lambda}\left[\left(\frac{13C^{(12)}_A}{r_{scA}^{14}} - \frac{2C^{(6)}_A}{r_{scA}^{8}}\right)r^2
+          - \left(\frac{26C^{(12)}_A}{r_{scA}^{13}} - \frac{4C^{(6)}_A}{r_{scA}^{7}}\right)r
+          + \frac{13C^{(12)}_A}{r_{scA}^{12}} - \frac{2C^{(6)}_A}{r_{scA}^{6}}\right] \\
+          & +  \frac{14\lambda}{1-\lambda}\left[\left(\frac{13C^{(12)}_B}{r_{scB}^{14}} - \frac{2C^{(6)}_B}{r_{scB}^{8}}\right)r^2
+          - \left(\frac{26C^{(12)}_B}{r_{scB}^{13}} - \frac{4C^{(6)}_B}{r_{scB}^{7}}\right)r
+          + \frac{13C^{(12)}_B}{r_{scB}^{12}} - \frac{2C^{(6)}_B}{r_{scB}^{6}}\right] \end{aligned}
+          :label: eqvdwdhdl
+
+:math:`\partial H/ \partial \lambda` for Lennard-Jones potential, when :math:`r \geq r_{scLJ}` is calculated as a standard hard-core
+contribution to :math:`\partial H/ \partial \lambda`: :math:`\frac{\partial{H}}{\partial{\lambda}} = V_{LJ}^B(r) - V_{LJ}^A(r)`.
+
+:math:`\partial H/ \partial \lambda` for Coulomb interactions
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Here we provide the explicit expressions of :math:`\partial H/ \partial \lambda` for Coulomb potential, when :math:`r<r_{scQ}<r_{cutoffQ}`.
+For simplicity, in the expression below we use the notation :math:`r_{scQ_A}=r_{scA}` and :math:`r_{scQ_B}=r_{scB}`.
+
+.. math:: \begin{aligned}
+          \frac{\partial{H}}{\partial{\lambda}} &= V_Q^B(r) - V_Q^A(r) + (1-\lambda)\frac{\partial{V_Q^A(r)}}{\partial{\lambda}} + \lambda\frac{\partial{V_Q^B(r)}}{\partial{\lambda}} \\
+          & =  \frac{q_{i}^Bq_{j}^B}{r_{scB}^3}r^2 - \frac{3q_i^Bq_j^B}{r_{scB}^2}r + \frac{3q^B_iq_j^B}{r_{scB}} \\
+          & -  \left[\frac{q_{i}^Aq_{j}^A}{r_{scA}^3}r^2 - \frac{3q_i^Aq_j^A}{r_{scA}^2}r + \frac{3q^A_iq_j^A}{r_{scA}}\right] \\
+          & +  \frac{\lambda-1}{2\lambda}\left[\frac{q_i^Aq_j^A}{r_{scA}^3}r^2 - \frac{2q_i^Aq_j^A}{r_{scA}^2}r + \frac{q_i^Aq_j^A}{r_{scA}}\right] \\
+          & +  \frac{\lambda}{2(1-\lambda)}\left[\frac{q_i^Bq_j^B}{r_{scB}^3}r^2 - \frac{2q_i^Bq_j^B}{r_{scB}^2}r + \frac{q_i^Bq_j^B}{r_{scB}}\right] \end{aligned}
+          :label: eqqdhdl
+
+:math:`\partial H/ \partial \lambda` for Coulomb potential, when :math:`r < r_{scQ} \geq r_{cutoffQ}` is calculated using the same expression above
+by setting :math:`r_{scA}=r_{cutoffQ}` and :math:`r_{scB}=r_{cutoffQ}`.
+
+:math:`\partial H/ \partial \lambda` for Coulomb potential, when :math:`r \geq r_{scQ} < r_{cutoffQ}` is calculated as a standard hard-core
+contribution to :math:`\partial H/ \partial \lambda`: :math:`\frac{\partial{H}}{\partial{\lambda}} = V_{Q}^B(r) - V_{Q}^A(r)`.
+
+
+
diff --git a/docs/reference-manual/functions/plots/gapsys-sc.pdf b/docs/reference-manual/functions/plots/gapsys-sc.pdf
new file mode 100644 (file)
index 0000000..0db5195
Binary files /dev/null and b/docs/reference-manual/functions/plots/gapsys-sc.pdf differ
diff --git a/docs/reference-manual/functions/plots/gapsys-sc.svg b/docs/reference-manual/functions/plots/gapsys-sc.svg
new file mode 100644 (file)
index 0000000..d8dbc06
--- /dev/null
@@ -0,0 +1,2450 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="410mm"
+   height="305mm"
+   viewBox="0 0 1452.7559 1080.7087"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="gapsys-sc.svg">
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.49497475"
+     inkscape:cx="-442.00202"
+     inkscape:cy="755.3487"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1149"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="1" />
+  <defs
+     style="stroke-linecap:butt;stroke-linejoin:round"
+     id="defs4">
+    <style
+       type="text/css"
+       id="style4697">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
+    <style
+       type="text/css"
+       id="style8121">*{stroke-linecap:butt;stroke-linejoin:round;}</style>
+  </defs>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     style="stroke-linecap:butt;stroke-linejoin:round"
+     sodipodi:insensitive="true"
+     inkscape:label="bg"
+     id="layer2"
+     inkscape:groupmode="layer">
+    <rect
+       y="-357.7486"
+       x="-416.18292"
+       height="1535.4319"
+       width="2072.833"
+       id="rect14881"
+       style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+  </g>
+  <g
+     transform="translate(0,28.346457)"
+     id="layer1"
+     inkscape:groupmode="layer"
+     inkscape:label="Layer 1">
+    <g
+       style="stroke-linecap:butt;stroke-linejoin:round"
+       transform="translate(850.54844,468.71078)"
+       id="g14076">
+      <image
+         style="stroke-linecap:butt;stroke-linejoin:round"
+         width="709.20001"
+         height="1080"
+         preserveAspectRatio="none"
+         id="image14043"
+         x="-111.17142"
+         y="-489.06635"
+         xlink:href="data:image/png;base64,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
+LFOmuPO2dUbMOY2AZZTl5zFtoNr1J0uewtClPa5n1VefM2VkPI9OSfDbxMfCUq58eU45rSa79m7g
+02VLufzKq9wOyRiTi7Jly/LGG2/kqe7y5cvp2LFjgCPyXdmyZf3SzqZNmwA466yzTipLTU1lxYoV
+AFx33XUnlX/44Yc8/fTTjBkz5oTEKcPFF19M3bp1eeutt3JMngI5Ybx+/foA7Nixg2PHjnmd3L11
+69YT6uZFoNr1J0uewpCI8OCYifS68iLef2MRl/a43u2Q8q1pi5Zs/mUrX3z+uSVPxoQAEcnzJOtS
+pUr5bUJ2MMsYHfE2ep6YmHj8TTFvycHYsWMpW7as18d5GWrWrHk8ActOICeMN2/enGLFinHkyBFW
+rlzJeeedd1KdjNG3tm3b5vnegWrXn2zOU5gqWao0Y6bPYca4kfy29We3w8m3ps1bElOiOGvX/Oh2
+KMYY45PSpZ1pE7/88ssJ53fu3MnIkSOP/5z16cA///zDl19+yXXXXUfJkiWzbX/Xrl05lkNgJ4yX
+KlWKrl27AvD00ye/qPTzzz/zySefAHDNNdfk2l6g2/UnS57C2Jlnn8Pt9w3k0YH3cuRIitvh5EuT
+Zi2JQG2DYGNMyMpY4HHSpEns8uyYkJSUxJVXXsnevXupXLkyAF9//fUJ161ZswZVpVGjRtm2nZKS
+wtatW2ncuHGAos+bRx55BBFhwYIFPP3008fncf3111/ceOONpKenc95559G0adOTrp0+fTq1atWi
+ffv2PrV71VVXeW23MFjyFOau79WHylWrkTjxMbdDyZf6DRuhaans+fdft0MxxhifDB06lKioKDZt
+2kTt2rW57777qFu3Lt999x333Xff8XWd7rvvPtq3b8+BAwcAjh8rVcp+weOXX36Z5ORkevToEfiO
+5KBVq1bHl2G45557qFmzJs2bN6d27dp8//33NGjQINtHj3v37uW3337jjz/+8KndZ555JnAdy4Ul
+T2EuIiKChyc+yWcfLeHzj993O5w8i46O5tSatYkgLahXIjbGmOy0bduWjz76iAsvvJDIyEi2b99O
+tWrVmD59OomJidx///3ceuutiAjbt28//pgvY/2n3377zWu7KSkpTJw4kRo1anDnnXcWWn+yM3Dg
+QD7++GMuueQSDh06xIYNG6hZsybDhw/nu+++83kCfm7t5pRcBpwvz0KD7QMUBwYAPwB7gf+AVcB9
+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
+" />
+      <image
+         style="stroke-linecap:butt;stroke-linejoin:round"
+         width="715.20001"
+         height="1071.6"
+         preserveAspectRatio="none"
+         id="image14054"
+         x="-846.17145"
+         y="-484.86633"
+         xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlQAAAN9CAYAAABVTOdjAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90
+bGliIHZlcnNpb24zLjQuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Z1A+gAAAACXBIWXMAAAuJ
+AAALiQE3ycutAADs1ElEQVR4nOzdd5xU9fX/8dfZAuzSm3RBOlixG7tgjCUxir1isGPUKPlqTIzG
+xBp7wZifiYAtIvauFBUVEQVEqoACKlKkw8Ky5fz+uDO4LDPL7pSdmZ338/GYx7D3fu5nzr277h4/
+93PPx9wdEREREYldTqoDEBEREcl0SqhERERE4qSESkRERCROSqhERERE4qSESkRERCROSqhERERE
+4qSESkRERCROSqhERERE4pS1CZWZHWFm481svZmtMbO3zKxfjH01NrPFZuZm9r9ExyoiIiLpLS/V
+AaSCmR0PvAqsBUaENp8FfGxmh7v75Bp2eSfQIoEhioiISAbJuhEqM6sH/AvYDBzk7le4+xXALwAP
+7atJf4cBlwI3JjpWERERyQxZl1ABRwMdgSfdfW54o7vPAZ4G9q7urT8zKwAeB14GXkp8qCIiIpIJ
+sjGhOjT0PjbCvjGV2uzILUAb4Ip4gxIREZHMlY0JVffQ+4II+xZUahOVme0H/AG43t2XJCg2ERER
+yUDZOCm9Seh9XYR94W1Nq+rAzPKB/wCfUvM5V0OAIeGv27Vr1+fJJ5+sSRfVUlRURGFhYcL7lW3p
+OiefrnHt0HWuHbrOyZfMa9y/f3+Lti8bE6rwxfA4+vgz0Avo5+416sfdHwEeCX/dt29f79+/fxyh
+RDZ27FiS0a9sS9c5+XSNa4euc+3QdU6+VF3jbLzltzb0HmkUqkmlNtsxs17An4A73H1WgmMTERGR
+DJSNCdX80Hu3CPu6VWoTSR+gHvDXUCFPNzMHvg3tPz207eWERCsiIiJpLxtv+U0ArgP6A89X2jeg
+QptoFhLMn6qsEXA68A0wHpgaV5QiIiKSMbIxoRoDfA+ca2b3hWtRmVlv4GxgqrtPDW3LJxi1KnL3
+xQDuPg24sHKnZtaFIKGa7O7b7RcREZG6K+tu+bl7MXAZ0ACYaGYPm9nDwCcE1+PSCs07ALOBkbUe
+qIiIiGSMrEuoANz9dYLbe9OBQcB5wCTgYHf/LIWhiYiISAbKxlt+ALj7eIK5TlW1WcjPZRZ21F+1
+24qIiEjdkpUjVCIiIiKJpIRKREREJE5KqERERETipIRKREREJE5KqERERETipIRKREREJE5KqERE
+RETipIRKREREJE5KqERERETipIRKREREJE5KqERERETipIRKREREJE5KqERERETipIRKREREJE5K
+qERERETipIRKREREJE5KqERERETipIRKREREJE5KqERERETipIRKREREJE5KqERERETipIRKRERE
+JE5KqERERETipIRKREREJE5KqERERETipIRKRERE6oSioiKWLFlCUVFRrX+2EioRERHJaGVlZQwd
+OpSWLVsyePBgWrZsydChQykrK6u1GPJq7ZNEREREkuC6665j2LBhbN68GYCSkhKGDRsGwN13310r
+MWiESkRERDJWUVERjzzyCJs2bdpm+6ZNmxg2bFit3f5TQiUiIiIZa+nSpbh7xH3uztKlS2slDt3y
+ExERkYw0Y8YMhg8fTmlpacT9Zkbbtm1rJRYlVCIiIpIxSktLeeWVV/jwww/Zdddd+dvf/gbAsGHD
+trntV1BQwOWXX05hYWGtxKWESkRERNLe8uXLeeKJJ1i+fDknnngi999/P2YGwJ133gkESVVpaSl5
+eXlcfvnlW7fXBiVUIiIikpbcnc8++4zRo0fTrFkzBg0aRIcOHbZrl5uby913380tt9zCCy+8wMCB
+A2ttZCpMCZWIiIiklc2bN/Pcc88xdepUDjjgAG699Vbq1au3w+MKCwtp3759rSdToIRKREREallR
+URFLly6lbdu22yQ/ixYtYsSIEWzcuJHTTz+d888/P4VR1owSKhEREakVZWVlXHfddTzyyCNbt11+
++eX88pe/5O2336ZTp04MGTKEli1bpjDK2CihEhERkVpRuaI5wAMPPMA333zD6NGjyc3NTWF08VFh
+TxEREUm6aBXNy8rKeOeddyguLk5RZImhhEpERESSqrS0lJEjR1JSUhJxf21WNE8W3fITERGRpFix
+YgUjRozgxx9/5OijjyYvL4+ysrLt2tVmRfNkydqEysyOAG4C9gXKgInADe4+tRrH9gOuDh3bHqgH
+LAbeA+509x+SErSIiEgG+Pzzzxk1ahRNmjTh/PPPp1OnTgBcccUVKa9onixZmVCZ2fHAq8BaYERo
+81nAx2Z2uLtP3kEXBwBHEyRh7wElwO7AFcDZZnagu89LSvAiIiJpqLi4mOeff57PP/+cfffdl7//
+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
+5SdSQ2VlZQwdOpSWLVsyePBgWrZsydChQykrK2PNmjU8+OCDXHvttbg79957L1dddVW1kykREclM
+GqESqaHKBThLSkp4+OGHmTBhAr/61a8477zz6NatW4qjFBGR2qSESqQGohXgLC4uZvr06YwfP17z
+nkREspBu+YnUwNKlS3H3KveLiEj20QiVSDW4O59++in/+9//olY0VwFOEZHspYRKpAqbNm3if//7
+H9OmTeOggw7in//8pwpwiojIdpRQiUSwcOFChg8fzqZNmzjjjDO44IILtu6rWICztLSUvLw8FeAU
+EclySqhEQsrLyxk7dixvvvkmnTp14sorr6RFixbbtatYgPOFF15g4MCBGpkSEclySqgk661bt46R
+I0cyf/58BgwYwN13301ubu4OjyssLKR9+/ZKpkRERAmV1G1FRUVRl3GZNWsWTz31FHl5eZxzzjlc
+ccUVKYpSREQynRIqqZPKysq47rrreOSRR7ZuGzJkCLfeeitvvvkmH3zwAX369OGGG26gUaNGKYxU
+RETqAiVUUidVrmYO8MADD/D+++9zzz33cN9992FmKYxQRETqEiVUUudEq2ZeWlrKrFmz2G+//ZRM
+iYhIQqlSutQ5ixYtilp8091VzVxERBJOI1RSZyxevJjhw4ezevXqqCNQqmYuIiLJoIRKMpq7M378
+eF577TU6dOjA5ZdfTqtWrcjNzVU1cxERqTVKqCQjrV+/nqeeeoo5c+Zw1FFHbVc7qmI1c3fHzFTN
+XEREkkYJlWSUOXPm8NRTTwFw9tlnc9lll0VsV7GaebQ6VCIiIomihErSQlUFOMvKynj99dcZN24c
+vXv35rrrrqNx48bV6rewsJCuXbsmI2QREZGtlFBJSkUrwHnnnXeyevVqhg8fzpIlSzjhhBO4//77
+Ve5ARETSkhIqSalIBTgffvhhPvjgA379618zaNAgdt555xRGKCIismNKqCRlohXgLC4uZsaMGXzw
+wQea9yQiIhlBhT0lZZYuXYq7V7lfREQkE2iESmqdu/Phhx8yevToqBXNVYBTREQyiRIqqTUbNmzg
+6aefZtasWRx++OHcd9991K9fXwU4RUQk4ymhkqSbN28eI0eOpKysjLPPPptLLrlk6z4V4BQRkbpA
+CZUkRVlZGW+99RbvvfcePXr0YOjQoTRt2nS7dirAKSIidYESKkmoVatWMXz4cL777juOO+447rvv
+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
+zQAAAABJRU5ErkJggg==
+" />
+    </g>
+  </g>
+</svg>
index 2f32912f79bd77043cbda54807d32f0c2ceb1b09..772fb84579e8241071d8d430ef1508913098f0b4 100644 (file)
@@ -2659,6 +2659,19 @@ structures into cryoelectron microscopy maps using biased molecular dynamics sim
 :sup:`189` Laino T., Mohamed F., Laio A. and Parrinello M.,
 "An Efficient Real Space Multigrid QM/MM Electrostatic Coupling", *J. Chem. Theory Comput.*, **1**, 1176 (2005).
 
+.. raw:: html
+
+   </div>
+
+.. raw:: html
+
+   <div id="ref-Gapsys2012">
+
+.. _refGapsys2012:
+
+:sup:`185` V. Gapsys, D. Seeliger, and B.L. de Groot, 
+"New Soft-Core Potential Function for Molecular Dynamics Based Alchemical Free Energy Calculations", *J. Chem. Theor. Comput.*, **8** 2373-2382 (2012).
+
 .. raw:: html
 
    </div>
index f5bf5874eb29a62c7f121bf2548d699f06a87399..33e63d4f11b5029b2fb7b6f4dc38fb448af4e6a9 100644 (file)
@@ -138,6 +138,7 @@ enum tpxv
     tpxv_MTS,                                     /**< Added multiple time stepping */
     tpxv_RemovedConstantAcceleration, /**< Removed support for constant acceleration NEMD. */
     tpxv_TransformationPullCoord,     /**< Support for transformation pull coordinates */
+    tpxv_SoftcoreGapsys,              /**< Added gapsys softcore function */
     tpxv_Count                        /**< the total number of tpxv versions */
 };
 
@@ -622,6 +623,14 @@ static void do_fepvals(gmx::ISerializer* serializer, t_lambda* fepvals, int file
     {
         fepvals->edHdLPrintEnergy = FreeEnergyPrintEnergy::No;
     }
+    if (file_version >= tpxv_SoftcoreGapsys)
+    {
+        serializer->doInt(reinterpret_cast<int*>(&fepvals->softcoreFunction));
+    }
+    else
+    {
+        fepvals->softcoreFunction = SoftcoreType::Beutler;
+    }
 
     /* handle lambda_neighbors */
     if ((file_version >= 83 && file_version < 90) || file_version >= 92)
index c8e46d15d3a5cb381c876ddc79941fc6fabf9a39..d51dc4e8d1bd5e443f5c5810bf9951b8a2843612 100644 (file)
@@ -63,6 +63,7 @@
 #include "gromacs/utility/fatalerror.h"
 #include "gromacs/utility/arrayref.h"
 
+#include "nb_softcore.h"
 
 //! Scalar (non-SIMD) data types.
 struct ScalarDataTypes
@@ -257,7 +258,7 @@ static inline RealType potSwitchPotentialMod(const RealType potentialInp, const
 
 
 //! Templated free-energy non-bonded kernel
-template<typename DataTypes, bool useSoftCore, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch, bool computeForces>
+template<typename DataTypes, SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch, bool computeForce>
 static void nb_free_energy_kernel(const t_nblist&                                  nlist,
                                   const gmx::ArrayRefWithPadding<const gmx::RVec>& coords,
                                   const int                                        ntype,
@@ -364,8 +365,9 @@ static void nb_free_energy_kernel(const t_nblist&
         icoul = NbkernelElecType::None;
     }
 
-    real rcutoff_max2 = std::max(ic.rcoulomb, ic.rvdw);
-    rcutoff_max2      = rcutoff_max2 * rcutoff_max2;
+    real rcutoff_max2                 = std::max(ic.rcoulomb, ic.rvdw);
+    rcutoff_max2                      = rcutoff_max2 * rcutoff_max2;
+    const real gmx_unused rCutoffCoul = ic.rcoulomb;
 
     real gmx_unused sh_ewald = 0;
     if constexpr (elecInteractionTypeIsEwald || vdwInteractionTypeIsEwald)
@@ -526,7 +528,8 @@ static void nb_free_energy_kernel(const t_nblist&
                         {
                             preloadLjPmeC6Grid[i][s] = 0;
                         }
-                        if constexpr (useSoftCore)
+                        if constexpr (softcoreType == SoftcoreType::Beutler
+                                      || softcoreType == SoftcoreType::Gapsys)
                         {
                             const real c6  = nbfp[2 * typeIndices[i][s]];
                             const real c12 = nbfp[2 * typeIndices[i][s] + 1];
@@ -546,7 +549,8 @@ static void nb_free_energy_kernel(const t_nblist&
                             }
                         }
                     }
-                    if constexpr (useSoftCore)
+                    if constexpr (softcoreType == SoftcoreType::Beutler
+                                  || softcoreType == SoftcoreType::Gapsys)
                     {
                         /* only use softcore if one of the states has a zero endstate - softcore is for avoiding infinities!*/
                         const real c12A = nbfp[2 * typeIndices[STATE_A][s] + 1];
@@ -558,8 +562,16 @@ static void nb_free_energy_kernel(const t_nblist&
                         }
                         else
                         {
-                            preloadAlphaVdwEff[s]  = alpha_vdw;
-                            preloadAlphaCoulEff[s] = alpha_coul;
+                            if constexpr (softcoreType == SoftcoreType::Beutler)
+                            {
+                                preloadAlphaVdwEff[s]  = alpha_vdw;
+                                preloadAlphaCoulEff[s] = alpha_coul;
+                            }
+                            else if constexpr (softcoreType == SoftcoreType::Gapsys)
+                            {
+                                preloadAlphaVdwEff[s]  = alpha_vdw;
+                                preloadAlphaCoulEff[s] = gmx::sixthroot(sigma6_def);
+                            }
                         }
                     }
                 }
@@ -634,12 +646,12 @@ static void nb_free_energy_kernel(const t_nblist&
                 gmx::gatherLoadTranspose<2>(nbfp.data(), typeIndices[i], &c6[i], &c12[i]);
                 qq[i]          = gmx::load<RealType>(preloadQq[i]);
                 ljPmeC6Grid[i] = gmx::load<RealType>(preloadLjPmeC6Grid[i]);
-                if constexpr (useSoftCore)
+                if constexpr (softcoreType == SoftcoreType::Beutler || softcoreType == SoftcoreType::Gapsys)
                 {
                     sigma6[i] = gmx::load<RealType>(preloadSigma6[i]);
                 }
             }
-            if constexpr (useSoftCore)
+            if constexpr (softcoreType == SoftcoreType::Beutler || softcoreType == SoftcoreType::Gapsys)
             {
                 alphaVdwEff  = gmx::load<RealType>(preloadAlphaVdwEff);
                 alphaCoulEff = gmx::load<RealType>(preloadAlphaCoulEff);
@@ -651,7 +663,7 @@ static void nb_free_energy_kernel(const t_nblist&
             r    = rSq * rInv;
 
             RealType gmx_unused rp, rpm2;
-            if constexpr (useSoftCore)
+            if constexpr (softcoreType == SoftcoreType::Beutler)
             {
                 rpm2 = rSq * rSq;  /* r4 */
                 rp   = rpm2 * rSq; /* r6 */
@@ -689,7 +701,7 @@ static void nb_free_energy_kernel(const t_nblist&
                                              && bPairIncluded && withinCutoffMask);
                     if (gmx::anyTrue(nonZeroState))
                     {
-                        if constexpr (useSoftCore)
+                        if constexpr (softcoreType == SoftcoreType::Beutler)
                         {
                             RealType divisor = (alphaCoulEff * lFacCoul[i] * sigma6[i] + rp);
                             rPInvC           = gmx::inv(divisor);
@@ -742,6 +754,22 @@ static void nb_free_energy_kernel(const t_nblist&
                                 {
                                     fScalC[i] = ewaldScalarForce(qq[i], rInvC);
                                 }
+
+                                if constexpr (softcoreType == SoftcoreType::Gapsys)
+                                {
+                                    ewaldQuadraticPotential(qq[i],
+                                                            facel,
+                                                            rC,
+                                                            rCutoffCoul,
+                                                            LFC[i],
+                                                            DLF[i],
+                                                            alphaCoulEff,
+                                                            sh_ewald,
+                                                            &fScalC[i],
+                                                            &vCoul[i],
+                                                            &dvdlCoul,
+                                                            computeElecInteraction);
+                                }
                             }
                             else
                             {
@@ -750,6 +778,23 @@ static void nb_free_energy_kernel(const t_nblist&
                                 {
                                     fScalC[i] = reactionFieldScalarForce(qq[i], rInvC, rC, krf, two);
                                 }
+
+                                if constexpr (softcoreType == SoftcoreType::Gapsys)
+                                {
+                                    reactionFieldQuadraticPotential(qq[i],
+                                                                    facel,
+                                                                    rC,
+                                                                    rCutoffCoul,
+                                                                    LFC[i],
+                                                                    DLF[i],
+                                                                    alphaCoulEff,
+                                                                    krf,
+                                                                    crf,
+                                                                    &fScalC[i],
+                                                                    &vCoul[i],
+                                                                    &dvdlCoul,
+                                                                    computeElecInteraction);
+                                }
                             }
 
                             vCoul[i] = gmx::selectByMask(vCoul[i], computeElecInteraction);
@@ -777,7 +822,7 @@ static void nb_free_energy_kernel(const t_nblist&
                         if (gmx::anyTrue(computeVdwInteraction))
                         {
                             RealType rInv6;
-                            if constexpr (useSoftCore)
+                            if constexpr (softcoreType == SoftcoreType::Beutler)
                             {
                                 rInv6 = rPInvV;
                             }
@@ -801,6 +846,24 @@ static void nb_free_energy_kernel(const t_nblist&
                                 fScalV[i] = lennardJonesScalarForce(vVdw6, vVdw12);
                             }
 
+                            if constexpr (softcoreType == SoftcoreType::Gapsys)
+                            {
+                                lennardJonesQuadraticPotential(c6[i],
+                                                               c12[i],
+                                                               r,
+                                                               rSq,
+                                                               LFV[i],
+                                                               DLF[i],
+                                                               sigma6[i],
+                                                               alphaVdwEff,
+                                                               repulsionShift,
+                                                               dispersionShift,
+                                                               &fScalV[i],
+                                                               &vVdw[i],
+                                                               &dvdlVdw,
+                                                               computeVdwInteraction);
+                            }
+
                             if constexpr (vdwInteractionTypeIsEwald)
                             {
                                 /* Subtract the grid potential at the cut-off */
@@ -864,7 +927,7 @@ static void nb_free_energy_kernel(const t_nblist&
                             fScal = fScal + LFV[i] * fScalV[i] * rpm2;
                         }
 
-                        if constexpr (useSoftCore)
+                        if constexpr (softcoreType == SoftcoreType::Beutler)
                         {
                             dvdlCoul = dvdlCoul + vCoul[i] * DLF[i]
                                        + LFC[i] * alphaCoulEff * dlFacCoul[i] * fScalC[i] * sigma6[i];
@@ -1063,56 +1126,56 @@ typedef void (*KernelFunction)(const t_nblist&
                                gmx::ArrayRef<real> threadVv,
                                gmx::ArrayRef<real> threadDvdl);
 
-template<bool useSoftCore, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch, bool computeForces>
+template<SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch, bool computeForces>
 static KernelFunction dispatchKernelOnUseSimd(const bool useSimd)
 {
     if (useSimd)
     {
 #if GMX_SIMD_HAVE_REAL && GMX_SIMD_HAVE_INT32_ARITHMETICS && GMX_USE_SIMD_KERNELS
-        return (nb_free_energy_kernel<SimdDataTypes, useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces>);
+        return (nb_free_energy_kernel<SimdDataTypes, softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces>);
 #else
-        return (nb_free_energy_kernel<ScalarDataTypes, useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces>);
+        return (nb_free_energy_kernel<ScalarDataTypes, softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch computeForces>);
 #endif
     }
     else
     {
-        return (nb_free_energy_kernel<ScalarDataTypes, useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces>);
+        return (nb_free_energy_kernel<ScalarDataTypes, softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces>);
     }
 }
 
-template<bool useSoftCore, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch>
+template<SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald, bool vdwModifierIsPotSwitch>
 static KernelFunction dispatchKernelOnComputeForces(const bool computeForces, const bool useSimd)
 {
     if (computeForces)
     {
-        return (dispatchKernelOnUseSimd<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, true>(
+        return (dispatchKernelOnUseSimd<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, true>(
                 useSimd));
     }
     else
     {
-        return (dispatchKernelOnUseSimd<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, false>(
+        return (dispatchKernelOnUseSimd<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, false>(
                 useSimd));
     }
 }
 
-template<bool useSoftCore, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald>
+template<SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald, bool elecInteractionTypeIsEwald>
 static KernelFunction dispatchKernelOnVdwModifier(const bool vdwModifierIsPotSwitch,
                                                   const bool computeForces,
                                                   const bool useSimd)
 {
     if (vdwModifierIsPotSwitch)
     {
-        return (dispatchKernelOnComputeForces<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, true>(
+        return (dispatchKernelOnComputeForces<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, true>(
                 computeForces, useSimd));
     }
     else
     {
-        return (dispatchKernelOnComputeForces<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, false>(
+        return (dispatchKernelOnComputeForces<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, false>(
                 computeForces, useSimd));
     }
 }
 
-template<bool useSoftCore, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald>
+template<SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer, bool vdwInteractionTypeIsEwald>
 static KernelFunction dispatchKernelOnElecInteractionType(const bool elecInteractionTypeIsEwald,
                                                           const bool vdwModifierIsPotSwitch,
                                                           const bool computeForces,
@@ -1120,17 +1183,17 @@ static KernelFunction dispatchKernelOnElecInteractionType(const bool elecInterac
 {
     if (elecInteractionTypeIsEwald)
     {
-        return (dispatchKernelOnVdwModifier<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, true>(
+        return (dispatchKernelOnVdwModifier<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, true>(
                 vdwModifierIsPotSwitch, computeForces, useSimd));
     }
     else
     {
-        return (dispatchKernelOnVdwModifier<useSoftCore, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, false>(
+        return (dispatchKernelOnVdwModifier<softcoreType, scLambdasOrAlphasDiffer, vdwInteractionTypeIsEwald, false>(
                 vdwModifierIsPotSwitch, computeForces, useSimd));
     }
 }
 
-template<bool useSoftCore, bool scLambdasOrAlphasDiffer>
+template<SoftcoreType softcoreType, bool scLambdasOrAlphasDiffer>
 static KernelFunction dispatchKernelOnVdwInteractionType(const bool vdwInteractionTypeIsEwald,
                                                          const bool elecInteractionTypeIsEwald,
                                                          const bool vdwModifierIsPotSwitch,
@@ -1139,17 +1202,17 @@ static KernelFunction dispatchKernelOnVdwInteractionType(const bool vdwInteracti
 {
     if (vdwInteractionTypeIsEwald)
     {
-        return (dispatchKernelOnElecInteractionType<useSoftCore, scLambdasOrAlphasDiffer, true>(
+        return (dispatchKernelOnElecInteractionType<softcoreType, scLambdasOrAlphasDiffer, true>(
                 elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces, useSimd));
     }
     else
     {
-        return (dispatchKernelOnElecInteractionType<useSoftCore, scLambdasOrAlphasDiffer, false>(
+        return (dispatchKernelOnElecInteractionType<softcoreType, scLambdasOrAlphasDiffer, false>(
                 elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces, useSimd));
     }
 }
 
-template<bool useSoftCore>
+template<SoftcoreType softcoreType>
 static KernelFunction dispatchKernelOnScLambdasOrAlphasDifference(const bool scLambdasOrAlphasDiffer,
                                                                   const bool vdwInteractionTypeIsEwald,
                                                                   const bool elecInteractionTypeIsEwald,
@@ -1159,12 +1222,12 @@ static KernelFunction dispatchKernelOnScLambdasOrAlphasDifference(const bool scL
 {
     if (scLambdasOrAlphasDiffer)
     {
-        return (dispatchKernelOnVdwInteractionType<useSoftCore, true>(
+        return (dispatchKernelOnVdwInteractionType<softcoreType, true>(
                 vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces, useSimd));
     }
     else
     {
-        return (dispatchKernelOnVdwInteractionType<useSoftCore, false>(
+        return (dispatchKernelOnVdwInteractionType<softcoreType, false>(
                 vdwInteractionTypeIsEwald, elecInteractionTypeIsEwald, vdwModifierIsPotSwitch, computeForces, useSimd));
     }
 }
@@ -1177,23 +1240,38 @@ static KernelFunction dispatchKernel(const bool                 scLambdasOrAlpha
                                      const bool                 useSimd,
                                      const interaction_const_t& ic)
 {
-    if (ic.softCoreParameters->alphaCoulomb == 0 && ic.softCoreParameters->alphaVdw == 0)
+    if ((ic.softCoreParameters->alphaCoulomb == 0 && ic.softCoreParameters->alphaVdw == 0)
+        || ic.softCoreParameters->softcoreType == SoftcoreType::None)
     {
-        return (dispatchKernelOnScLambdasOrAlphasDifference<false>(scLambdasOrAlphasDiffer,
-                                                                   vdwInteractionTypeIsEwald,
-                                                                   elecInteractionTypeIsEwald,
-                                                                   vdwModifierIsPotSwitch,
-                                                                   computeForces,
-                                                                   useSimd));
+        return (dispatchKernelOnScLambdasOrAlphasDifference<SoftcoreType::None>(scLambdasOrAlphasDiffer,
+                                                                                vdwInteractionTypeIsEwald,
+                                                                                elecInteractionTypeIsEwald,
+                                                                                vdwModifierIsPotSwitch,
+                                                                                computeForces,
+                                                                                useSimd));
     }
     else
     {
-        return (dispatchKernelOnScLambdasOrAlphasDifference<true>(scLambdasOrAlphasDiffer,
-                                                                  vdwInteractionTypeIsEwald,
-                                                                  elecInteractionTypeIsEwald,
-                                                                  vdwModifierIsPotSwitch,
-                                                                  computeForces,
-                                                                  useSimd));
+        if (ic.softCoreParameters->softcoreType == SoftcoreType::Beutler)
+        {
+            return (dispatchKernelOnScLambdasOrAlphasDifference<SoftcoreType::Beutler>(
+                    scLambdasOrAlphasDiffer,
+                    vdwInteractionTypeIsEwald,
+                    elecInteractionTypeIsEwald,
+                    vdwModifierIsPotSwitch,
+                    computeForces,
+                    useSimd));
+        }
+        else
+        {
+            return (dispatchKernelOnScLambdasOrAlphasDifference<SoftcoreType::Gapsys>(
+                    scLambdasOrAlphasDiffer,
+                    vdwInteractionTypeIsEwald,
+                    elecInteractionTypeIsEwald,
+                    vdwModifierIsPotSwitch,
+                    computeForces,
+                    useSimd));
+        }
     }
 }
 
diff --git a/src/gromacs/gmxlib/nonbonded/nb_softcore.h b/src/gromacs/gmxlib/nonbonded/nb_softcore.h
new file mode 100644 (file)
index 0000000..c557c6f
--- /dev/null
@@ -0,0 +1,262 @@
+/*
+ * This file is part of the GROMACS molecular simulation package.
+ *
+ * Copyright (c) 2012,2013,2014,2016,2017 by the GROMACS development team.
+ * Copyright (c) 2018,2019,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.
+ *
+ * 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.
+ */
+#ifndef GMX_GMXLIB_NONBONDED_SOFTCORE_H
+#define GMX_GMXLIB_NONBONDED_SOFTCORE_H
+
+#include "config.h"
+
+#include "gromacs/math/functions.h"
+#include "gromacs/simd/simd.h"
+#include "gromacs/simd/simd_math.h"
+
+/* linearized electrostatics */
+template<class RealType, class BoolType>
+static inline void quadraticApproximationCoulomb(const RealType qq,
+                                                 const RealType rInvQ,
+                                                 const RealType r,
+                                                 const real     lambdaFac,
+                                                 const real     dLambdaFac,
+                                                 RealType*      force,
+                                                 RealType*      potential,
+                                                 RealType*      dvdl,
+                                                 BoolType       dvdlMask)
+{
+    RealType constFac = qq * rInvQ;
+    RealType linFac   = constFac * r * rInvQ;
+    RealType quadrFac = linFac * r * rInvQ;
+
+    /* Computing Coulomb force and potential energy */
+    *force = -2. * quadrFac + 3. * linFac;
+
+    *potential = quadrFac - 3. * (linFac - constFac);
+
+    RealType lambdaFacRevInv = gmx::maskzInv(1.0 - lambdaFac, dvdlMask);
+    *dvdl = dLambdaFac * 0.5 * (lambdaFac * lambdaFacRevInv) * (quadrFac - 2. * linFac + constFac);
+}
+
+/* reaction-field linearized electrostatics */
+template<class RealType, class BoolType>
+static inline void reactionFieldQuadraticPotential(const RealType qq,
+                                                   const real     facel,
+                                                   const RealType r,
+                                                   const real     rCutoff,
+                                                   const real     lambdaFac,
+                                                   const real     dLambdaFac,
+                                                   const RealType alphaEff,
+                                                   const real     krf,
+                                                   const real     potentialShift,
+                                                   RealType*      force,
+                                                   RealType*      potential,
+                                                   RealType*      dvdl,
+                                                   BoolType       mask)
+{
+    /* check if we have to use the hardcore values */
+    BoolType computeValues = mask && (lambdaFac < 1 && 0 < alphaEff);
+    if (gmx::anyTrue(computeValues))
+    {
+        RealType lambdaFacRev = gmx::selectByMask(1.0 - lambdaFac, computeValues);
+
+        RealType rQ = gmx::cbrt(lambdaFacRev);
+        rQ          = gmx::sqrt(rQ) * (1.0 + gmx::abs(qq / facel));
+        rQ          = rQ * alphaEff;
+
+        // ensure that the linearization point doesn't go beyond rCutoff
+        BoolType beyondCutoff = rCutoff < rQ;
+        BoolType withinCutoff = rQ <= rCutoff;
+        if (gmx::anyTrue(beyondCutoff))
+        {
+            rQ = gmx::blend(rQ, rCutoff, beyondCutoff);
+        }
+
+        computeValues = computeValues && (r < rQ);
+        if (gmx::anyTrue(computeValues))
+        {
+            RealType rInvQ = gmx::maskzInv(rQ, computeValues);
+
+            // Compute quadratic force, potential and dvdl
+            RealType forceQuad(0);
+            RealType potentialQuad(0);
+            RealType dvdlQuad(0);
+            quadraticApproximationCoulomb(
+                    qq, rInvQ, r, lambdaFac, dLambdaFac, &forceQuad, &potentialQuad, &dvdlQuad, computeValues);
+
+            // rf modification
+            forceQuad     = forceQuad - qq * 2.0 * krf * r * r;
+            potentialQuad = potentialQuad + qq * (krf * r * r - potentialShift);
+
+            // update
+            *force     = gmx::blend(*force, forceQuad, computeValues);
+            *potential = gmx::blend(*potential, potentialQuad, computeValues);
+            *dvdl      = *dvdl + gmx::selectByMask(dvdlQuad, computeValues && withinCutoff);
+        }
+    }
+}
+
+/* ewald linearized electrostatics */
+template<class RealType, class BoolType>
+static inline void ewaldQuadraticPotential(const RealType qq,
+                                           const real     facel,
+                                           const RealType r,
+                                           const real     rCutoff,
+                                           const real     lambdaFac,
+                                           const real     dLambdaFac,
+                                           const RealType alphaEff,
+                                           const real     potentialShift,
+                                           RealType*      force,
+                                           RealType*      potential,
+                                           RealType*      dvdl,
+                                           BoolType       mask)
+{
+
+    /* check if we have to use the hardcore values */
+    BoolType computeValues = mask && (lambdaFac < 1 && 0 < alphaEff);
+    if (gmx::anyTrue(computeValues))
+    {
+        RealType lambdaFacRev = gmx::selectByMask(1.0 - lambdaFac, computeValues);
+
+        RealType rQ = gmx::cbrt(lambdaFacRev);
+        rQ          = gmx::sqrt(rQ) * (1.0 + gmx::abs(qq / facel));
+        rQ          = rQ * alphaEff;
+
+        // ensure that the linearization point doesn't go beyond rCutoff
+        BoolType beyondCutoff = rCutoff < rQ;
+        BoolType withinCutoff = rQ <= rCutoff;
+        if (gmx::anyTrue(beyondCutoff))
+        {
+            rQ = gmx::blend(rQ, rCutoff, beyondCutoff);
+        }
+
+        computeValues = computeValues && (r < rQ);
+        if (gmx::anyTrue(computeValues))
+        {
+            RealType rInvQ = gmx::maskzInv(rQ, computeValues);
+
+            // Compute quadratic force, potential and dvdl
+            RealType forceQuad(0);
+            RealType potentialQuad(0);
+            RealType dvdlQuad(0);
+            quadraticApproximationCoulomb(
+                    qq, rInvQ, r, lambdaFac, dLambdaFac, &forceQuad, &potentialQuad, &dvdlQuad, computeValues);
+
+            // ewald modification
+            potentialQuad = potentialQuad - qq * potentialShift;
+
+            // update
+            *force     = gmx::blend(*force, forceQuad, computeValues);
+            *potential = gmx::blend(*potential, potentialQuad, computeValues);
+            *dvdl      = *dvdl + gmx::selectByMask(dvdlQuad, computeValues && withinCutoff);
+        }
+    }
+}
+
+/* cutoff LJ with quadratic appximation of lj-potential */
+template<class RealType, class BoolType>
+static inline void lennardJonesQuadraticPotential(const RealType c6,
+                                                  const RealType c12,
+                                                  const RealType r,
+                                                  const RealType rsq,
+                                                  const real     lambdaFac,
+                                                  const real     dLambdaFac,
+                                                  const RealType sigma6,
+                                                  const RealType alphaEff,
+                                                  const real     repulsionShift,
+                                                  const real     dispersionShift,
+                                                  RealType*      force,
+                                                  RealType*      potential,
+                                                  RealType*      dvdl,
+                                                  BoolType       mask)
+{
+    constexpr real c_twentySixSeventh = 26.0 / 7.0;
+    constexpr real c_oneSixth         = 1.0 / 6.0;
+    constexpr real c_oneTwelth        = 1.0 / 12.0;
+
+    /* check if we have to use the hardcore values */
+    BoolType computeValues = mask && (lambdaFac < 1 && 0 < alphaEff);
+    if (gmx::anyTrue(computeValues))
+    {
+        RealType lambdaFacRev    = gmx::selectByMask(1.0 - lambdaFac, computeValues);
+        RealType lambdaFacRevInv = gmx::maskzInv(1.0 - lambdaFac, computeValues);
+
+        RealType rQ = gmx::cbrt(c_twentySixSeventh * sigma6 * lambdaFacRev);
+        rQ          = gmx::sqrt(rQ);
+        rQ          = rQ * alphaEff;
+
+        computeValues = (computeValues && r < rQ);
+        if (gmx::anyTrue(computeValues))
+        {
+            /* scaled values for c6 and c12 */
+            RealType c6s, c12s;
+            c6s  = c_oneSixth * c6;
+            c12s = c_oneTwelth * c12;
+            /* Temporary variables for inverted values */
+            RealType rInvQ = gmx::maskzInv(rQ, computeValues);
+            RealType rInv14C, rInv13C, rInv12C;
+            RealType rInv8C, rInv7C, rInv6C;
+            rInv6C  = rInvQ * rInvQ * rInvQ;
+            rInv6C  = rInv6C * rInv6C;
+            rInv7C  = rInv6C * rInvQ;
+            rInv8C  = rInv7C * rInvQ;
+            rInv14C = c12s * rInv7C * rInv7C * rsq;
+            rInv13C = c12s * rInv7C * rInv6C * r;
+            rInv12C = c12s * rInv6C * rInv6C;
+            rInv8C  = rInv8C * c6s * rsq;
+            rInv7C  = rInv7C * c6s * r;
+            rInv6C  = rInv6C * c6s;
+
+            /* Temporary variables for A and B */
+            RealType quadrFac, linearFac, constFac;
+            quadrFac  = 156. * rInv14C - 42. * rInv8C;
+            linearFac = 168. * rInv13C - 48. * rInv7C;
+            constFac  = 91. * rInv12C - 28. * rInv6C;
+
+            /* Computing LJ force and potential energy */
+            RealType forceQuad     = -quadrFac + linearFac;
+            RealType potentialQuad = 0.5 * quadrFac - linearFac + constFac;
+            RealType dvdlQuad      = dLambdaFac * 28. * (lambdaFac * lambdaFacRevInv)
+                                * ((6.5 * rInv14C - rInv8C) - (13. * rInv13C - 2. * rInv7C)
+                                   + (6.5 * rInv12C - rInv6C));
+
+            *potential = *potential
+                         + gmx::selectByMask(((c12s * repulsionShift) - (c6s * dispersionShift)),
+                                             computeValues);
+            *force     = gmx::blend(*force, forceQuad, computeValues);
+            *potential = gmx::blend(*potential, potentialQuad, computeValues);
+            *dvdl      = *dvdl + gmx::selectByMask(dvdlQuad, computeValues);
+        }
+    }
+}
+
+#endif
index a4414ee71622a65ced93a0161e1dcfd41c8529e8..6ced2038278bd10b8b6600973b33ee7bca5ee606 100644 (file)
@@ -229,12 +229,13 @@ 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;
+        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;
+        fepVals_.softcoreFunction = SoftcoreType::Beutler;
     }
 
     //! initialize data structure to construct forcerec
@@ -250,6 +251,11 @@ public:
 
     void setSoftcoreAlpha(const real scAlpha) { fepVals_.sc_alpha = scAlpha; }
     void setSoftcoreCoulomb(const bool scCoulomb) { fepVals_.bScCoul = scCoulomb; }
+    void setSoftcoreType(const SoftcoreType softcoreType)
+    {
+        fepVals_.softcoreFunction = softcoreType;
+    }
+
 
     //! get forcerec data as wanted by the nonbonded kernel
     void getForcerec(t_forcerec* fr)
@@ -392,7 +398,7 @@ public:
 };
 
 class NonbondedFepTest :
-    public ::testing::TestWithParam<std::tuple<ListInput, PaddedVector<RVec>, real, real, bool>>
+    public ::testing::TestWithParam<std::tuple<SoftcoreType, ListInput, PaddedVector<RVec>, real, real, bool>>
 {
 protected:
     PaddedVector<RVec>   x_;
@@ -400,16 +406,18 @@ protected:
     real                 lambda_;
     real                 softcoreAlpha_;
     bool                 softcoreCoulomb_;
+    SoftcoreType         softcoreType_;
     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());
+        softcoreType_    = std::get<0>(GetParam());
+        input_           = std::get<1>(GetParam());
+        x_               = std::get<2>(GetParam());
+        lambda_          = std::get<3>(GetParam());
+        softcoreAlpha_   = std::get<4>(GetParam());
+        softcoreCoulomb_ = std::get<5>(GetParam());
 
         // Note that the reference data for Ewald type interactions has been generated
         // with accurate analytical approximations for the long-range corrections.
@@ -424,6 +432,7 @@ protected:
     {
         input_.frHelper.setSoftcoreAlpha(softcoreAlpha_);
         input_.frHelper.setSoftcoreCoulomb(softcoreCoulomb_);
+        input_.frHelper.setSoftcoreType(softcoreType_);
 
         // get forcerec and interaction_const
         t_forcerec fr;
@@ -495,6 +504,7 @@ std::vector<ListInput> c_interaction = {
 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 };
+std::vector<SoftcoreType> c_softcoreType = { SoftcoreType::Beutler, SoftcoreType::Gapsys, SoftcoreType::None };
 
 //! Coordinates for testing
 std::vector<PaddedVector<RVec>> c_coordinates = {
@@ -503,7 +513,8 @@ std::vector<PaddedVector<RVec>> c_coordinates = {
 
 INSTANTIATE_TEST_SUITE_P(NBInteraction,
                          NonbondedFepTest,
-                         ::testing::Combine(::testing::ValuesIn(c_interaction),
+                         ::testing::Combine(::testing::ValuesIn(c_softcoreType),
+                                            ::testing::ValuesIn(c_interaction),
                                             ::testing::ValuesIn(c_coordinates),
                                             ::testing::ValuesIn(c_fepLambdas),
                                             ::testing::ValuesIn(c_softcoreAlphas),
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_100.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_100.xml
new file mode 100644 (file)
index 0000000..7fceee2
--- /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.05399722550226</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.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_101.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_101.xml
new file mode 100644 (file)
index 0000000..7fceee2
--- /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.05399722550226</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.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_102.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_102.xml
new file mode 100644 (file)
index 0000000..0223d66
--- /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.05399722550243</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.05399722550243</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_103.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_103.xml
new file mode 100644 (file)
index 0000000..7fceee2
--- /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.05399722550226</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.05399722550226</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_104.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_104.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_105.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_105.xml
new file mode 100644 (file)
index 0000000..d2f265f
--- /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 ">-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.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_106.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_106.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_107.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_107.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_36.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_36.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_37.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_37.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_38.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_38.xml
new file mode 100644 (file)
index 0000000..3956cca
--- /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 ">166.92179102684565</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_39.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_39.xml
new file mode 100644 (file)
index 0000000..3956cca
--- /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 ">166.92179102684565</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_40.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_40.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_41.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_41.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_42.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_42.xml
new file mode 100644 (file)
index 0000000..59cb56a
--- /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 ">-25.250698539278318</Real>
+  <Real Name="dVdlCoul ">180.76337086185185</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-133.94299908103679</Real>
+      <Real Name="Y">-200.91449862155494</Real>
+      <Real Name="Z">258.00271759748694</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-3.4637135578029787</Real>
+      <Real Name="Y">-5.1955703367044608</Real>
+      <Real Name="Z">-6.9274271156059495</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">131.4721789398902</Real>
+      <Real Name="Y">197.20826840983503</Real>
+      <Real Name="Z">-262.94435787978011</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-133.94299908103679</Real>
+      <Real Name="Y">-200.91449862155494</Real>
+      <Real Name="Z">258.00271759748694</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_43.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_43.xml
new file mode 100644 (file)
index 0000000..59cb56a
--- /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 ">-25.250698539278318</Real>
+  <Real Name="dVdlCoul ">180.76337086185185</Real>
+  <Real Name="dVdlVdw ">-6.2096985368142033</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-133.94299908103679</Real>
+      <Real Name="Y">-200.91449862155494</Real>
+      <Real Name="Z">258.00271759748694</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-3.4637135578029787</Real>
+      <Real Name="Y">-5.1955703367044608</Real>
+      <Real Name="Z">-6.9274271156059495</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">131.4721789398902</Real>
+      <Real Name="Y">197.20826840983503</Real>
+      <Real Name="Z">-262.94435787978011</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-133.94299908103679</Real>
+      <Real Name="Y">-200.91449862155494</Real>
+      <Real Name="Z">258.00271759748694</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_44.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_44.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_45.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_45.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_46.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_46.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_47.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_47.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_48.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_48.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_49.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_49.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_50.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_50.xml
new file mode 100644 (file)
index 0000000..efd8456
--- /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 ">166.92179102684565</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_51.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_51.xml
new file mode 100644 (file)
index 0000000..efd8456
--- /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 ">166.92179102684565</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_52.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_52.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_53.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_53.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_54.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_54.xml
new file mode 100644 (file)
index 0000000..2e5feb0
--- /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 ">-25.250698539278318</Real>
+  <Real Name="dVdlCoul ">180.76337086185185</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-133.94299908103682</Real>
+      <Real Name="Y">-200.91449862155497</Real>
+      <Real Name="Z">239.94695446217898</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-7.9776543416299788</Real>
+      <Real Name="Y">-11.96648151244495</Real>
+      <Real Name="Z">-15.95530868325994</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">126.95823815606323</Real>
+      <Real Name="Y">190.43735723409455</Real>
+      <Real Name="Z">-253.91647631212618</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-133.94299908103682</Real>
+      <Real Name="Y">-200.91449862155497</Real>
+      <Real Name="Z">239.94695446217898</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_55.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_55.xml
new file mode 100644 (file)
index 0000000..7a45791
--- /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 ">-25.250698539278318</Real>
+  <Real Name="dVdlCoul ">180.76337086185185</Real>
+  <Real Name="dVdlVdw ">-5.4343542982235178</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-133.94299908103682</Real>
+      <Real Name="Y">-200.91449862155497</Real>
+      <Real Name="Z">239.94695446217898</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">-7.9776543416299788</Real>
+      <Real Name="Y">-11.96648151244495</Real>
+      <Real Name="Z">-15.95530868325994</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">126.95823815606323</Real>
+      <Real Name="Y">190.43735723409455</Real>
+      <Real Name="Z">-253.91647631212618</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-133.94299908103682</Real>
+      <Real Name="Y">-200.91449862155497</Real>
+      <Real Name="Z">239.94695446217898</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_56.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_56.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_57.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_57.xml
new file mode 100644 (file)
index 0000000..df3874b
--- /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.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.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.86137895762693</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_58.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_58.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_59.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_59.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_60.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_60.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_61.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_61.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_62.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_62.xml
new file mode 100644 (file)
index 0000000..af9e85b
--- /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 ">38.840234756747122</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_63.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_63.xml
new file mode 100644 (file)
index 0000000..af9e85b
--- /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 ">38.840234756747122</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_64.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_64.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_65.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_65.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_66.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_66.xml
new file mode 100644 (file)
index 0000000..ca44395
--- /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 ">-69.091686142388497</Real>
+  <Real Name="dVdlCoul ">52.681814591753323</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-80.941829908812309</Real>
+      <Real Name="Y">-121.41274486321822</Real>
+      <Real Name="Z">154.13957273005445</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">23.571669397563412</Real>
+      <Real Name="Y">35.357504096345068</Real>
+      <Real Name="Z">47.143338795126773</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">79.005808136919796</Real>
+      <Real Name="Y">118.50871220537951</Real>
+      <Real Name="Z">-158.01161627383942</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-80.941829908812309</Real>
+      <Real Name="Y">-121.41274486321822</Real>
+      <Real Name="Z">154.13957273005445</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_67.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_67.xml
new file mode 100644 (file)
index 0000000..ca44395
--- /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 ">-69.091686142388497</Real>
+  <Real Name="dVdlCoul ">52.681814591753323</Real>
+  <Real Name="dVdlVdw ">-7.1291612299081022</Real>
+  <Sequence Name="Forces">
+    <Int Name="Length">4</Int>
+    <Vector>
+      <Real Name="X">-80.941829908812309</Real>
+      <Real Name="Y">-121.41274486321822</Real>
+      <Real Name="Z">154.13957273005445</Real>
+    </Vector>
+    <Vector>
+      <Real Name="X">23.571669397563412</Real>
+      <Real Name="Y">35.357504096345068</Real>
+      <Real Name="Z">47.143338795126773</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">79.005808136919796</Real>
+      <Real Name="Y">118.50871220537951</Real>
+      <Real Name="Z">-158.01161627383942</Real>
+    </Vector>
+  </Sequence>
+  <Shift-Forces Name="Shift-forces">
+    <Vector Name="Central">
+      <Real Name="X">-80.941829908812309</Real>
+      <Real Name="Y">-121.41274486321822</Real>
+      <Real Name="Z">154.13957273005445</Real>
+    </Vector>
+  </Shift-Forces>
+</ReferenceData>
diff --git a/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_68.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_68.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_69.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_69.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_70.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_70.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_71.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_71.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_72.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_72.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_73.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_73.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_74.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_74.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_75.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_75.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_76.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_76.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_77.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_77.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_78.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_78.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_79.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_79.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_80.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_80.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_81.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_81.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_82.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_82.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_83.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_83.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_84.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_84.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_85.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_85.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_86.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_86.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_87.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_87.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_88.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_88.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_89.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_89.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_90.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_90.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_91.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_91.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_92.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_92.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_93.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_93.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_94.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_94.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_95.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_95.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_96.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_96.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_97.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_97.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_98.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_98.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_99.xml b/src/gromacs/gmxlib/nonbonded/tests/refdata/NBInteraction_NonbondedFepTest_testKernel_99.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>
index 1286c79bf79dc772b26fb7da38d5243e187dd0dc..da337645e3cfbd368f027e135ffe9b2399c91b10 100644 (file)
@@ -850,6 +850,26 @@ void check_ir(const char*                    mdparin,
                 CHECK((fep->all_lambda[i][j] < 0) || (fep->all_lambda[i][j] > 1));
             }
         }
+
+        if (fep->softcoreFunction == SoftcoreType::Gapsys)
+        {
+            if (fep->sc_alpha < 0.0)
+            {
+                sprintf(warn_buf,
+                        "sc_alpha is equal %g but must be >= 0 when used with sc_function=gapsys.",
+                        fep->sc_alpha);
+                warning_note(wi, warn_buf);
+            }
+
+            if ((fep->sc_sigma < 0.0) || (fep->sc_sigma >= 1.0))
+            {
+                sprintf(warn_buf,
+                        "sc_sigma is equal %g but must be in [0,1) when used with "
+                        "sc_function=gapsys.",
+                        fep->sc_sigma);
+                warning_note(wi, warn_buf);
+            }
+        }
     }
 
     if ((ir->bSimTemp) || (ir->efep == FreeEnergyPerturbationType::Expanded))
@@ -2308,6 +2328,7 @@ void get_ir(const char*     mdparin,
     fep->sc_r_power         = get_ereal(&inp, "sc-r-power", 6.0, wi);
     fep->sc_sigma           = get_ereal(&inp, "sc-sigma", 0.3, wi);
     fep->bScCoul            = (getEnum<Boolean>(&inp, "sc-coul", wi) != Boolean::No);
+    fep->softcoreFunction   = getEnum<SoftcoreType>(&inp, "sc-function", wi);
     fep->dh_hist_size       = get_eint(&inp, "dh_hist_size", 0, wi);
     fep->dh_hist_spacing    = get_ereal(&inp, "dh_hist_spacing", 0.1, wi);
     fep->separate_dhdl_file = getEnum<SeparateDhdlFile>(&inp, "separate-dhdl-file", wi);
index c88c2aa7928a82785c179cfeff34f872892ba3e5..62fa19cdb9ba8588614c9ac25438ae2462d08faf 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 7b6968ea7c4753af90bdf42345e3d5e88b8b27e0..469dd00cf91a9478beb669bff55d7b49e5870b17 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 4afc56f511fad2b3b3f92d3139766613b7d32858..81a37d4db7d95aba66d01da2c4220150b89bd71e 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 4aac61bfa2a7e26bd16d904a61309268bdacc39b..932fdf5ba1a5621b2bcd4b56bfac8a74ba97c8fc 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 2f3bebf7c10abb1bda56a7251e9b46c402143a12..ce9b1c5e7b23b15fc33326f2f9606fd27dee14f5 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 2f3bebf7c10abb1bda56a7251e9b46c402143a12..ce9b1c5e7b23b15fc33326f2f9606fd27dee14f5 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 2f3bebf7c10abb1bda56a7251e9b46c402143a12..ce9b1c5e7b23b15fc33326f2f9606fd27dee14f5 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 54545d90e3f21c69a800edd0136101dfd2db4d7f..72691f18bcfd467090df0e19495f805fa38c75ea 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index 136d8617e7d3b08ba68853a762acabcc27f23a1f..a7aa6c008c774a4a0629e0c6c6f68f463389bdf1 100644 (file)
@@ -254,6 +254,7 @@ sc-power                 = 1
 sc-r-power               = 6
 sc-sigma                 = 0.3
 sc-coul                  = no
+sc-function              = beutler
 separate-dhdl-file       = yes
 dhdl-derivatives         = yes
 dh_hist_size             = 0
index c23c5f0a870946046f65b67df83102e453610cd9..3bea5450e2df47fe9e87d88982d914a410034704 100644 (file)
@@ -169,7 +169,9 @@ static inline real sixthRoot(const real r)
 }
 
 /*! \brief Compute the energy and force for a single pair interaction under FEP */
+template<SoftcoreType softcoreType>
 static real free_energy_evaluate_single(real                                           r2,
+                                        real                                           rCoulCutoff,
                                         const interaction_const_t::SoftCoreParameters& scParams,
                                         real                                           tabscale,
                                         const real*                                    vftab,
@@ -180,6 +182,7 @@ static real free_energy_evaluate_single(real
                                         real                                           qqB,
                                         real                                           c6B,
                                         real                                           c12B,
+                                        real                                           facel,
                                         const real                                     LFC[2],
                                         const real                                     LFV[2],
                                         const real                                     DLF[2],
@@ -193,10 +196,13 @@ static real free_energy_evaluate_single(real
 {
     real       rtab, eps, eps2, Y, F, Geps, Heps2, Fp, VV, FF, fscal;
     real       qq[2], c6[2], c12[2], sigma6[2], sigma_pow[2];
-    real       alpha_coul_eff, alpha_vdw_eff, dvdl_coul, dvdl_vdw;
+    real       alpha_coul_eff, alpha_vdw_eff, dvdl_coul_sum, dvdl_vdw_sum;
     real       rpinv, r_coul, r_vdw, velecsum, vvdwsum;
     real       fscal_vdw[2], fscal_elec[2];
     real       velec[2], vvdw[2];
+    real       dvdl_elec[2], dvdl_vdw[2];
+    real       rQ, rLJ;
+    real       scaleDvdlRCoul;
     int        i, ntab;
     const real half = 0.5_real;
     const real one  = 1.0_real;
@@ -211,38 +217,53 @@ static real free_energy_evaluate_single(real
 
     const real rpm2 = r2 * r2;   /* r4 */
     const real rp   = rpm2 * r2; /* r6 */
+    const real r    = sqrt(r2);  /* r1 */
 
     /* Loop over state A(0) and B(1) */
     for (i = 0; i < 2; i++)
     {
-        if ((c6[i] > 0) && (c12[i] > 0))
+        if (softcoreType == SoftcoreType::Beutler || softcoreType == SoftcoreType::Gapsys)
         {
-            /* The c6 & c12 coefficients now contain the constants 6.0 and 12.0, respectively.
-             * Correct for this by multiplying with (1/12.0)/(1/6.0)=6.0/12.0=0.5.
-             */
-            sigma6[i] = half * c12[i] / c6[i];
-            if (sigma6[i] < scParams.sigma6Minimum) /* for disappearing coul and vdw with soft core at the same time */
+            if ((c6[i] > 0) && (c12[i] > 0))
             {
-                sigma6[i] = scParams.sigma6Minimum;
+                /* The c6 & c12 coefficients now contain the constants 6.0 and 12.0, respectively.
+                 * Correct for this by multiplying with (1/12.0)/(1/6.0)=6.0/12.0=0.5.
+                 */
+                sigma6[i] = half * c12[i] / c6[i];
+                if ((sigma6[i] < scParams.sigma6Minimum) && softcoreType == SoftcoreType::Beutler) /* for disappearing coul and vdw with soft core at the same time */
+                {
+                    sigma6[i] = scParams.sigma6Minimum;
+                }
             }
+            else
+            {
+                sigma6[i] = scParams.sigma6WithInvalidSigma;
+            }
+            sigma_pow[i] = sigma6[i];
         }
-        else
-        {
-            sigma6[i] = scParams.sigma6WithInvalidSigma;
-        }
-        sigma_pow[i] = sigma6[i];
     }
 
-    /* only use softcore if one of the states has a zero endstate - softcore is for avoiding infinities!*/
-    if ((c12[0] > 0) && (c12[1] > 0))
-    {
-        alpha_vdw_eff  = 0;
-        alpha_coul_eff = 0;
-    }
-    else
+    if (softcoreType == SoftcoreType::Beutler || softcoreType == SoftcoreType::Gapsys)
     {
-        alpha_vdw_eff  = scParams.alphaVdw;
-        alpha_coul_eff = scParams.alphaCoulomb;
+        /* only use softcore if one of the states has a zero endstate - softcore is for avoiding infinities!*/
+        if ((c12[0] > 0) && (c12[1] > 0))
+        {
+            alpha_vdw_eff  = 0;
+            alpha_coul_eff = 0;
+        }
+        else
+        {
+            if (softcoreType == SoftcoreType::Beutler)
+            {
+                alpha_vdw_eff  = scParams.alphaVdw;
+                alpha_coul_eff = scParams.alphaCoulomb;
+            }
+            else if (softcoreType == SoftcoreType::Gapsys)
+            {
+                alpha_vdw_eff  = scParams.alphaVdw;
+                alpha_coul_eff = gmx::sixthroot(scParams.sigma6WithInvalidSigma);
+            }
+        }
     }
 
     /* Loop over A and B states again */
@@ -252,71 +273,172 @@ static real free_energy_evaluate_single(real
         fscal_vdw[i]  = 0;
         velec[i]      = 0;
         vvdw[i]       = 0;
+        dvdl_elec[i]  = 0;
+        dvdl_vdw[i]   = 0;
+        rQ            = 0;
+        rLJ           = 0;
 
         /* Only spend time on A or B state if it is non-zero */
         if ((qq[i] != 0) || (c6[i] != 0) || (c12[i] != 0))
         {
             /* Coulomb */
-            rpinv  = one / (alpha_coul_eff * lfac_coul[i] * sigma_pow[i] + rp);
-            r_coul = sixthRoot(rpinv);
-
-            /* Electrostatics table lookup data */
-            rtab = r_coul * tabscale;
-            ntab = static_cast<int>(rtab);
-            eps  = rtab - ntab;
-            eps2 = eps * eps;
-            ntab = static_cast<int>(tableStride * ntab);
-            /* Electrostatics */
-            Y             = vftab[ntab];
-            F             = vftab[ntab + 1];
-            Geps          = eps * vftab[ntab + 2];
-            Heps2         = eps2 * vftab[ntab + 3];
-            Fp            = F + Geps + Heps2;
-            VV            = Y + eps * Fp;
-            FF            = Fp + Geps + two * Heps2;
-            velec[i]      = qq[i] * VV;
-            fscal_elec[i] = -qq[i] * FF * r_coul * rpinv * tabscale;
+            if (softcoreType == SoftcoreType::Beutler)
+            {
+                rpinv  = one / (alpha_coul_eff * lfac_coul[i] * sigma_pow[i] + rp);
+                r_coul = sixthRoot(rpinv);
+            }
+            else
+            {
+                rpinv  = one / rp;
+                r_coul = r;
+            }
+
+            if (softcoreType == SoftcoreType::Gapsys)
+            {
+                rQ = gmx::sixthroot(1. - LFC[i]) * (1. + std::fabs(qq[i] / facel));
+                rQ *= alpha_coul_eff;
+                scaleDvdlRCoul = 1.0;
+                if (rQ > rCoulCutoff)
+                {
+                    rQ             = rCoulCutoff;
+                    scaleDvdlRCoul = 0.0;
+                }
+            }
+
+            if ((softcoreType == SoftcoreType::Gapsys) && (r < rQ))
+            {
+                real rInvQ    = 1.0 / rQ;
+                real constFac = qq[i] * rInvQ;
+                real linFac   = constFac * r * rInvQ;
+                real quadrFac = linFac * r * rInvQ;
+
+                /* Computing Coulomb force and potential energy */
+                fscal_elec[i] = 2. * quadrFac - 3. * linFac;
+                fscal_elec[i] *= rpinv;
+
+                velec[i] = quadrFac - 3. * (linFac - constFac);
+
+                dvdl_elec[i] += scaleDvdlRCoul * DLF[i] * 0.5 * (LFC[i] / (1. - LFC[i]))
+                                * (quadrFac - 2. * linFac + constFac);
+            }
+            else // Beutler, resp. hardcore
+            {
+                /* Electrostatics table lookup data */
+                rtab = r_coul * tabscale;
+                ntab = static_cast<int>(rtab);
+                eps  = rtab - ntab;
+                eps2 = eps * eps;
+                ntab = static_cast<int>(tableStride * ntab);
+                /* Electrostatics */
+                Y             = vftab[ntab];
+                F             = vftab[ntab + 1];
+                Geps          = eps * vftab[ntab + 2];
+                Heps2         = eps2 * vftab[ntab + 3];
+                Fp            = F + Geps + Heps2;
+                VV            = Y + eps * Fp;
+                FF            = Fp + Geps + two * Heps2;
+                velec[i]      = qq[i] * VV;
+                fscal_elec[i] = -qq[i] * FF * r_coul * rpinv * tabscale;
+            }
 
             /* Vdw */
-            rpinv = one / (alpha_vdw_eff * lfac_vdw[i] * sigma_pow[i] + rp);
-            r_vdw = sixthRoot(rpinv);
-            /* Vdw table lookup data */
-            rtab = r_vdw * tabscale;
-            ntab = static_cast<int>(rtab);
-            eps  = rtab - ntab;
-            eps2 = eps * eps;
-            ntab = 12 * ntab;
-            /* Dispersion */
-            Y            = vftab[ntab + 4];
-            F            = vftab[ntab + 5];
-            Geps         = eps * vftab[ntab + 6];
-            Heps2        = eps2 * vftab[ntab + 7];
-            Fp           = F + Geps + Heps2;
-            VV           = Y + eps * Fp;
-            FF           = Fp + Geps + two * Heps2;
-            vvdw[i]      = c6[i] * VV;
-            fscal_vdw[i] = -c6[i] * FF;
-
-            /* Repulsion */
-            Y     = vftab[ntab + 8];
-            F     = vftab[ntab + 9];
-            Geps  = eps * vftab[ntab + 10];
-            Heps2 = eps2 * vftab[ntab + 11];
-            Fp    = F + Geps + Heps2;
-            VV    = Y + eps * Fp;
-            FF    = Fp + Geps + two * Heps2;
-            vvdw[i] += c12[i] * VV;
-            fscal_vdw[i] -= c12[i] * FF;
-            fscal_vdw[i] *= r_vdw * rpinv * tabscale;
+            if (softcoreType == SoftcoreType::Beutler)
+            {
+                rpinv = one / (alpha_vdw_eff * lfac_vdw[i] * sigma_pow[i] + rp);
+                r_vdw = sixthRoot(rpinv);
+            }
+            else
+            {
+                rpinv = one / rp;
+                r_vdw = r;
+            }
+
+            if (softcoreType == SoftcoreType::Gapsys)
+            {
+                constexpr real c_twentySixSeventh = 26.0 / 7.0;
+
+                rLJ = gmx::sixthroot(c_twentySixSeventh * sigma6[i] * (1. - LFV[i]));
+                rLJ *= alpha_vdw_eff;
+            }
+
+            if ((softcoreType == SoftcoreType::Gapsys) && (r < rLJ))
+            {
+                // scaled values for c6 and c12
+                real c6s, c12s;
+                c6s  = c6[i] / 6.0;
+                c12s = c12[i] / 12.0;
+
+                /* Temporary variables for inverted values */
+                real rInvLJ = 1.0 / rLJ;
+                real rInv14, rInv13, rInv12;
+                real rInv8, rInv7, rInv6;
+                rInv6 = rInvLJ * rInvLJ * rInvLJ;
+                rInv6 *= rInv6;
+                rInv7  = rInv6 * rInvLJ;
+                rInv8  = rInv7 * rInvLJ;
+                rInv14 = c12s * rInv7 * rInv7 * r2;
+                rInv13 = c12s * rInv7 * rInv6 * r;
+                rInv12 = c12s * rInv6 * rInv6;
+                rInv8 *= c6s * r2;
+                rInv7 *= c6s * r;
+                rInv6 *= c6s;
+
+                /* Temporary variables for A and B */
+                real quadrFac, linearFac, constFac;
+                quadrFac  = 156. * rInv14 - 42. * rInv8;
+                linearFac = 168. * rInv13 - 48. * rInv7;
+                constFac  = 91. * rInv12 - 28. * rInv6;
+
+                /* Computing LJ force and potential energy*/
+                fscal_vdw[i] = quadrFac - linearFac;
+                fscal_vdw[i] *= rpinv;
+
+                vvdw[i] = 0.5 * quadrFac - linearFac + constFac;
+
+                dvdl_vdw[i] += DLF[i] * 28. * (LFV[i] / (1. - LFV[i]))
+                               * ((6.5 * rInv14 - rInv8) - (13. * rInv13 - 2. * rInv7)
+                                  + (6.5 * rInv12 - rInv6));
+            }
+            else // Beutler, resp. hardcore
+            {
+                /* Vdw table lookup data */
+                rtab = r_vdw * tabscale;
+                ntab = static_cast<int>(rtab);
+                eps  = rtab - ntab;
+                eps2 = eps * eps;
+                ntab = 12 * ntab;
+                /* Dispersion */
+                Y            = vftab[ntab + 4];
+                F            = vftab[ntab + 5];
+                Geps         = eps * vftab[ntab + 6];
+                Heps2        = eps2 * vftab[ntab + 7];
+                Fp           = F + Geps + Heps2;
+                VV           = Y + eps * Fp;
+                FF           = Fp + Geps + two * Heps2;
+                vvdw[i]      = c6[i] * VV;
+                fscal_vdw[i] = -c6[i] * FF;
+
+                /* Repulsion */
+                Y     = vftab[ntab + 8];
+                F     = vftab[ntab + 9];
+                Geps  = eps * vftab[ntab + 10];
+                Heps2 = eps2 * vftab[ntab + 11];
+                Fp    = F + Geps + Heps2;
+                VV    = Y + eps * Fp;
+                FF    = Fp + Geps + two * Heps2;
+                vvdw[i] += c12[i] * VV;
+                fscal_vdw[i] -= c12[i] * FF;
+                fscal_vdw[i] *= r_vdw * rpinv * tabscale;
+            }
         }
     }
     /* Now we have velec[i], vvdw[i], and fscal[i] for both states */
     /* Assemble A and B states */
-    velecsum  = 0;
-    vvdwsum   = 0;
-    dvdl_coul = 0;
-    dvdl_vdw  = 0;
-    fscal     = 0;
+    velecsum      = 0;
+    vvdwsum       = 0;
+    dvdl_coul_sum = 0;
+    dvdl_vdw_sum  = 0;
+    fscal         = 0;
     for (i = 0; i < 2; i++)
     {
         velecsum += LFC[i] * velec[i];
@@ -324,14 +446,22 @@ static real free_energy_evaluate_single(real
 
         fscal += (LFC[i] * fscal_elec[i] + LFV[i] * fscal_vdw[i]) * rpm2;
 
-        dvdl_coul += velec[i] * DLF[i]
-                     + LFC[i] * alpha_coul_eff * dlfac_coul[i] * fscal_elec[i] * sigma_pow[i];
-        dvdl_vdw += vvdw[i] * DLF[i]
-                    + LFV[i] * alpha_vdw_eff * dlfac_vdw[i] * fscal_vdw[i] * sigma_pow[i];
+        if (softcoreType == SoftcoreType::Gapsys)
+        {
+            dvdl_coul_sum += dvdl_elec[i];
+            dvdl_vdw_sum += dvdl_vdw[i];
+        }
+        dvdl_coul_sum += velec[i] * DLF[i];
+        dvdl_vdw_sum += vvdw[i] * DLF[i];
+        if (softcoreType == SoftcoreType::Beutler)
+        {
+            dvdl_coul_sum += LFC[i] * alpha_coul_eff * dlfac_coul[i] * fscal_elec[i] * sigma_pow[i];
+            dvdl_vdw_sum += LFV[i] * alpha_vdw_eff * dlfac_vdw[i] * fscal_vdw[i] * sigma_pow[i];
+        }
     }
 
-    dvdl[static_cast<int>(FreeEnergyPerturbationCouplingType::Coul)] += dvdl_coul;
-    dvdl[static_cast<int>(FreeEnergyPerturbationCouplingType::Vdw)] += dvdl_vdw;
+    dvdl[static_cast<int>(FreeEnergyPerturbationCouplingType::Coul)] += dvdl_coul_sum;
+    dvdl[static_cast<int>(FreeEnergyPerturbationCouplingType::Vdw)] += dvdl_vdw_sum;
 
     *velectot = velecsum;
     *vvdwtot  = vvdwsum;
@@ -507,27 +637,84 @@ static real do_pairs_general(int                           ftype,
             c6B  = iparams[itype].lj14.c6B * 6.0;
             c12B = iparams[itype].lj14.c12B * 12.0;
 
-            fscal = free_energy_evaluate_single(r2,
-                                                *fr->ic->softCoreParameters,
-                                                fr->pairsTable->scale,
-                                                fr->pairsTable->data.data(),
-                                                fr->pairsTable->stride,
-                                                qq,
-                                                c6,
-                                                c12,
-                                                qqB,
-                                                c6B,
-                                                c12B,
-                                                LFC,
-                                                LFV,
-                                                DLF,
-                                                lfac_coul,
-                                                lfac_vdw,
-                                                dlfac_coul,
-                                                dlfac_vdw,
-                                                &velec,
-                                                &vvdw,
-                                                dvdl);
+            if (fr->ic->softCoreParameters->softcoreType == SoftcoreType::Gapsys)
+            {
+                fscal = free_energy_evaluate_single<SoftcoreType::Gapsys>(r2,
+                                                                          fr->ic->rcoulomb,
+                                                                          *fr->ic->softCoreParameters,
+                                                                          fr->pairsTable->scale,
+                                                                          fr->pairsTable->data.data(),
+                                                                          fr->pairsTable->stride,
+                                                                          qq,
+                                                                          c6,
+                                                                          c12,
+                                                                          qqB,
+                                                                          c6B,
+                                                                          c12B,
+                                                                          epsfac,
+                                                                          LFC,
+                                                                          LFV,
+                                                                          DLF,
+                                                                          lfac_coul,
+                                                                          lfac_vdw,
+                                                                          dlfac_coul,
+                                                                          dlfac_vdw,
+                                                                          &velec,
+                                                                          &vvdw,
+                                                                          dvdl);
+            }
+            else if (fr->ic->softCoreParameters->softcoreType == SoftcoreType::Beutler)
+            {
+                fscal = free_energy_evaluate_single<SoftcoreType::Beutler>(r2,
+                                                                           fr->ic->rcoulomb,
+                                                                           *fr->ic->softCoreParameters,
+                                                                           fr->pairsTable->scale,
+                                                                           fr->pairsTable->data.data(),
+                                                                           fr->pairsTable->stride,
+                                                                           qq,
+                                                                           c6,
+                                                                           c12,
+                                                                           qqB,
+                                                                           c6B,
+                                                                           c12B,
+                                                                           epsfac,
+                                                                           LFC,
+                                                                           LFV,
+                                                                           DLF,
+                                                                           lfac_coul,
+                                                                           lfac_vdw,
+                                                                           dlfac_coul,
+                                                                           dlfac_vdw,
+                                                                           &velec,
+                                                                           &vvdw,
+                                                                           dvdl);
+            }
+            else
+            {
+                fscal = free_energy_evaluate_single<SoftcoreType::None>(r2,
+                                                                        fr->ic->rcoulomb,
+                                                                        *fr->ic->softCoreParameters,
+                                                                        fr->pairsTable->scale,
+                                                                        fr->pairsTable->data.data(),
+                                                                        fr->pairsTable->stride,
+                                                                        qq,
+                                                                        c6,
+                                                                        c12,
+                                                                        qqB,
+                                                                        c6B,
+                                                                        c12B,
+                                                                        epsfac,
+                                                                        LFC,
+                                                                        LFV,
+                                                                        DLF,
+                                                                        lfac_coul,
+                                                                        lfac_vdw,
+                                                                        dlfac_coul,
+                                                                        dlfac_vdw,
+                                                                        &velec,
+                                                                        &vvdw,
+                                                                        dvdl);
+            }
         }
         else
         {
index 000aa958f9602931729bc0d90c039c24d561ee3e..c3a9416e9074d0d3766dc0fc5f5b15744663f21d 100644 (file)
@@ -163,12 +163,13 @@ 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;
+        fepVals_.sc_alpha         = 0.3;
+        fepVals_.sc_power         = 1;
+        fepVals_.sc_r_power       = 6.0;
+        fepVals_.sc_sigma         = 0.85;
+        fepVals_.sc_sigma_min     = 0.3;
+        fepVals_.bScCoul          = true;
+        fepVals_.softcoreFunction = SoftcoreType::Beutler;
 
         fr_.ic = std::make_unique<interaction_const_t>();
         // set data in ic
@@ -314,7 +315,7 @@ protected:
         checker_.setDefaultTolerance(tolerance);
     }
 
-    void testOneIfunc(TestReferenceChecker* checker, const real lambda)
+    void testOneIfunc(TestReferenceChecker* checker, const real lambda, const SoftcoreType softcoreType)
     {
         SCOPED_TRACE(std::string("Testing PBC type: ") + c_pbcTypeNames[pbcType_]);
 
@@ -338,6 +339,7 @@ protected:
 
         t_forcerec* fr = frHelper.get();
         fr->efep = input_.fep ? FreeEnergyPerturbationType::Yes : FreeEnergyPerturbationType::No;
+        fr->ic->softCoreParameters->softcoreType = softcoreType;
         if (pbcType_ != PbcType::No)
         {
             fr->bMolPBC = true;
@@ -418,14 +420,18 @@ protected:
             const int numLambdas = 3;
             for (int i = 0; i < numLambdas; ++i)
             {
-                const real lambda        = i / (numLambdas - 1.0);
-                auto       lambdaChecker = thisChecker.checkCompound("Lambda", toString(lambda));
-                testOneIfunc(&lambdaChecker, lambda);
+                const real lambda = i / (numLambdas - 1.0);
+                for (SoftcoreType c : EnumerationWrapper<SoftcoreType>{})
+                {
+                    auto lambdaChecker = thisChecker.checkCompound("Lambda", toString(lambda));
+                    auto softcoreChecker = lambdaChecker.checkCompound("Sofcore", enumValueToString(c));
+                    testOneIfunc(&softcoreChecker, lambda, c);
+                }
             }
         }
         else
         {
-            testOneIfunc(&thisChecker, 0.0);
+            testOneIfunc(&thisChecker, 0.0, SoftcoreType::None);
         }
     }
 };
index 9e4ad670349a2e7362483985234f78311f01c420..c2b302ff504d5cc7628b3dfb480b274e04432b34 100644 (file)
   <FunctionType Name="LJ14">
     <FEP Name="Yes">
       <Lambda Name="0">
-        <Real Name="Epot Coulomb14">0.21407271220614837</Real>
-        <Real Name="Epot LJ14">-0.39771349695163671</Real>
-        <Real Name="dVdlCoul ">-0.21851037383566912</Real>
-        <Real Name="dVdlVdw ">0.41875860652489377</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0.030442842705220918</Real>
-            <Real Name="Y">0.033210373860240998</Real>
-            <Real Name="Z">0.035977905015261082</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.89301764058624677</Real>
-            <Real Name="Y">1.7860352811724916</Real>
-            <Real Name="Z">2.6790529217587382</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-0.92346048329146768</Real>
-            <Real Name="Y">-1.8192456550327325</Real>
-            <Real Name="Z">-2.7150308267739991</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0.21407271220614837</Real>
+          <Real Name="Epot LJ14">-0.39771349695163671</Real>
+          <Real Name="dVdlCoul ">-0.21851037383566912</Real>
+          <Real Name="dVdlVdw ">0.41875860652489377</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.030442842705220918</Real>
+              <Real Name="Y">0.033210373860240998</Real>
+              <Real Name="Z">0.035977905015261082</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.92346048329146768</Real>
+              <Real Name="Y">-1.8192456550327325</Real>
+              <Real Name="Z">-2.7150308267739991</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0.21407271220614837</Real>
+          <Real Name="Epot LJ14">-0.39771349695163671</Real>
+          <Real Name="dVdlCoul ">-0.21407271220614837</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.030442842705220918</Real>
+              <Real Name="Y">0.033210373860240998</Real>
+              <Real Name="Z">0.035977905015261082</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.92346048329146768</Real>
+              <Real Name="Y">-1.8192456550327325</Real>
+              <Real Name="Z">-2.7150308267739991</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0.21407271220614837</Real>
+          <Real Name="Epot LJ14">-0.39771349695163671</Real>
+          <Real Name="dVdlCoul ">-0.21407271220614837</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.030442842705220918</Real>
+              <Real Name="Y">0.033210373860240998</Real>
+              <Real Name="Z">0.035977905015261082</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.92346048329146768</Real>
+              <Real Name="Y">-1.8192456550327325</Real>
+              <Real Name="Z">-2.7150308267739991</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="0.5">
-        <Real Name="Epot Coulomb14">0.10595201107466379</Real>
-        <Real Name="Epot LJ14">-0.19369895958475428</Real>
-        <Real Name="dVdlCoul ">-0.21402396676422034</Real>
-        <Real Name="dVdlVdw ">0.39750692921973912</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0.015221397582715825</Real>
-            <Real Name="Y">0.016605160999326352</Real>
-            <Real Name="Z">0.017988924415936882</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.42958890996342458</Real>
-            <Real Name="Y">0.85917781992684816</Real>
-            <Real Name="Z">1.2887667298902727</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-0.44481030754614043</Real>
-            <Real Name="Y">-0.87578298092617457</Real>
-            <Real Name="Z">-1.3067556543062095</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0.10595201107466379</Real>
+          <Real Name="Epot LJ14">-0.19369895958475428</Real>
+          <Real Name="dVdlCoul ">-0.21402396676422034</Real>
+          <Real Name="dVdlVdw ">0.39750692921973912</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.015221397582715825</Real>
+              <Real Name="Y">0.016605160999326352</Real>
+              <Real Name="Z">0.017988924415936882</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.42958890996342458</Real>
+              <Real Name="Y">0.85917781992684816</Real>
+              <Real Name="Z">1.2887667298902727</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.44481030754614043</Real>
+              <Real Name="Y">-0.87578298092617457</Real>
+              <Real Name="Z">-1.3067556543062095</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0.07757616630348213</Real>
+          <Real Name="Epot LJ14">-0.19885674847581836</Real>
+          <Real Name="dVdlCoul ">-0.17822475864411241</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.015221421352610459</Real>
+              <Real Name="Y">0.016605186930120499</Real>
+              <Real Name="Z">0.017988952507630541</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.61465102353521561</Real>
+              <Real Name="Y">1.2293020470704299</Real>
+              <Real Name="Z">1.8439530706056453</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.62987244488782612</Real>
+              <Real Name="Y">-1.2459072340005504</Real>
+              <Real Name="Z">-1.8619420231132757</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0.10703635610307419</Real>
+          <Real Name="Epot LJ14">-0.19885674847581836</Real>
+          <Real Name="dVdlCoul ">-0.21407271220614837</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.015221421352610459</Real>
+              <Real Name="Y">0.016605186930120499</Real>
+              <Real Name="Z">0.017988952507630541</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.44650882029312339</Real>
+              <Real Name="Y">0.89301764058624578</Real>
+              <Real Name="Z">1.3395264608793691</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.46173024164573384</Real>
+              <Real Name="Y">-0.90962282751636625</Real>
+              <Real Name="Z">-1.3575154133869995</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="1">
-        <Real Name="Epot Coulomb14">0</Real>
-        <Real Name="Epot LJ14">0</Real>
-        <Real Name="dVdlCoul ">-0.20983019696952224</Real>
-        <Real Name="dVdlVdw ">0.37749364747323017</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.20983019696952224</Real>
+          <Real Name="dVdlVdw ">0.37749364747323017</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.13872167738255298</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.21407271220614837</Real>
+          <Real Name="dVdlVdw ">0.39771349695163671</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
     </FEP>
   </FunctionType>
index 1af29241e3a3102c6c5aa9fc186a4ef679393ccd..7ebc7e1a9eb9b63a24d55c89f02cee986a57e661 100644 (file)
   <FunctionType Name="LJ14">
     <FEP Name="Yes">
       <Lambda Name="0">
-        <Real Name="Epot Coulomb14">0.1445520414957524</Real>
-        <Real Name="Epot LJ14">-0.3979723893321509</Real>
-        <Real Name="dVdlCoul ">-0.14898844529427274</Real>
-        <Real Name="dVdlVdw ">0.41901751034443802</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0.010987624164811038</Real>
-            <Real Name="Y">0.021975248329622051</Real>
-            <Real Name="Z">0.14283911414254338</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.89301764058624677</Real>
-            <Real Name="Y">1.7860352811724916</Real>
-            <Real Name="Z">2.6790529217587382</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-0.9040052647510578</Real>
-            <Real Name="Y">-1.8080105295021136</Real>
-            <Real Name="Z">-2.8218920359012816</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">-0.010987624164811038</Real>
-            <Real Name="Y">-0.021975248329622051</Real>
-            <Real Name="Z">-0.14283911414254338</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0.1445520414957524</Real>
+          <Real Name="Epot LJ14">-0.3979723893321509</Real>
+          <Real Name="dVdlCoul ">-0.14898844529427274</Real>
+          <Real Name="dVdlVdw ">0.41901751034443802</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.010987624164811038</Real>
+              <Real Name="Y">0.021975248329622051</Real>
+              <Real Name="Z">0.14283911414254338</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.9040052647510578</Real>
+              <Real Name="Y">-1.8080105295021136</Real>
+              <Real Name="Z">-2.8218920359012816</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.010987624164811038</Real>
+              <Real Name="Y">-0.021975248329622051</Real>
+              <Real Name="Z">-0.14283911414254338</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0.1445520414957524</Real>
+          <Real Name="Epot LJ14">-0.3979723893321509</Real>
+          <Real Name="dVdlCoul ">-0.1445520414957524</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.010987624164811038</Real>
+              <Real Name="Y">0.021975248329622051</Real>
+              <Real Name="Z">0.14283911414254338</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.9040052647510578</Real>
+              <Real Name="Y">-1.8080105295021136</Real>
+              <Real Name="Z">-2.8218920359012816</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.010987624164811038</Real>
+              <Real Name="Y">-0.021975248329622051</Real>
+              <Real Name="Z">-0.14283911414254338</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0.1445520414957524</Real>
+          <Real Name="Epot LJ14">-0.3979723893321509</Real>
+          <Real Name="dVdlCoul ">-0.1445520414957524</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.010987624164811038</Real>
+              <Real Name="Y">0.021975248329622051</Real>
+              <Real Name="Z">0.14283911414254338</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.9040052647510578</Real>
+              <Real Name="Y">-1.8080105295021136</Real>
+              <Real Name="Z">-2.8218920359012816</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.010987624164811038</Real>
+              <Real Name="Y">-0.021975248329622051</Real>
+              <Real Name="Z">-0.14283911414254338</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="0.5">
-        <Real Name="Epot Coulomb14">0.071191990173256878</Real>
-        <Real Name="Epot LJ14">-0.19382840291531345</Real>
-        <Real Name="dVdlCoul ">-0.14450329606174245</Real>
-        <Real Name="dVdlVdw ">0.39776582160013413</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0.0054936782176173184</Real>
-            <Real Name="Y">0.010987356435234625</Real>
-            <Real Name="Z">0.07141781682902508</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.42958890996342458</Real>
-            <Real Name="Y">0.85917781992684816</Real>
-            <Real Name="Z">1.2887667298902727</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-0.4350825881810419</Real>
-            <Real Name="Y">-0.87016517636208279</Real>
-            <Real Name="Z">-1.3601845467192979</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">-0.0054936782176173184</Real>
-            <Real Name="Y">-0.010987356435234625</Real>
-            <Real Name="Z">-0.07141781682902508</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0.071191990173256878</Real>
+          <Real Name="Epot LJ14">-0.19382840291531345</Real>
+          <Real Name="dVdlCoul ">-0.14450329606174245</Real>
+          <Real Name="dVdlVdw ">0.39776582160013413</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.0054936782176173184</Real>
+              <Real Name="Y">0.010987356435234625</Real>
+              <Real Name="Z">0.07141781682902508</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.42958890996342458</Real>
+              <Real Name="Y">0.85917781992684816</Real>
+              <Real Name="Z">1.2887667298902727</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.4350825881810419</Real>
+              <Real Name="Y">-0.87016517636208279</Real>
+              <Real Name="Z">-1.3601845467192979</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.0054936782176173184</Real>
+              <Real Name="Y">-0.010987356435234625</Real>
+              <Real Name="Z">-0.07141781682902508</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0.042815830948284145</Real>
+          <Real Name="Epot LJ14">-0.19898619466607545</Real>
+          <Real Name="dVdlCoul ">-0.10870408793371644</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.0054938120824055189</Real>
+              <Real Name="Y">0.010987624164811026</Real>
+              <Real Name="Z">0.071419557071271692</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.61465102353521561</Real>
+              <Real Name="Y">1.2293020470704299</Real>
+              <Real Name="Z">1.8439530706056453</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.62014483561762113</Real>
+              <Real Name="Y">-1.2402896712352409</Real>
+              <Real Name="Z">-1.915372627676917</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.0054938120824055189</Real>
+              <Real Name="Y">-0.010987624164811026</Real>
+              <Real Name="Z">-0.071419557071271692</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0.072276020747876202</Real>
+          <Real Name="Epot LJ14">-0.19898619466607545</Real>
+          <Real Name="dVdlCoul ">-0.1445520414957524</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.0054938120824055189</Real>
+              <Real Name="Y">0.010987624164811026</Real>
+              <Real Name="Z">0.071419557071271692</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.44650882029312339</Real>
+              <Real Name="Y">0.89301764058624578</Real>
+              <Real Name="Z">1.3395264608793691</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-0.4520026323755289</Real>
+              <Real Name="Y">-0.9040052647510568</Real>
+              <Real Name="Z">-1.4109460179506408</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.0054938120824055189</Real>
+              <Real Name="Y">-0.010987624164811026</Real>
+              <Real Name="Z">-0.071419557071271692</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="1">
-        <Real Name="Epot Coulomb14">0</Real>
-        <Real Name="Epot LJ14">0</Real>
-        <Real Name="dVdlCoul ">-0.14031078405845462</Real>
-        <Real Name="dVdlVdw ">0.37775252841519097</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.14031078405845462</Real>
+          <Real Name="dVdlVdw ">0.37775252841519097</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.069201006672157006</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">-0.1445520414957524</Real>
+          <Real Name="dVdlVdw ">0.3979723893321509</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
     </FEP>
   </FunctionType>
index c55987fc818bedd82b8714f33e79e34b7f250445..a5e1fff1ad662de7dfa85a2929b67d8b24a1aa12 100644 (file)
   <FunctionType Name="LJ14">
     <FEP Name="Yes">
       <Lambda Name="0">
-        <Real Name="Epot Coulomb14">-0.33407655239047818</Real>
-        <Real Name="Epot LJ14">-0.79539132295421022</Real>
-        <Real Name="dVdlCoul ">0.3385142675285866</Real>
-        <Real Name="dVdlVdw ">0.83748154200529312</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">1.6088959673922179</Real>
-            <Real Name="Y">3.2177919347844322</Real>
-            <Real Name="Z">4.8266879021766504</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.89301764058624677</Real>
-            <Real Name="Y">1.7860352811724916</Real>
-            <Real Name="Z">2.6790529217587382</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-2.5019136079784645</Real>
-            <Real Name="Y">-5.0038272159569237</Real>
-            <Real Name="Z">-7.5057408239353887</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">-1.6088959673922179</Real>
-            <Real Name="Y">-3.2177919347844322</Real>
-            <Real Name="Z">-4.8266879021766504</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">-0.33407655239047818</Real>
+          <Real Name="Epot LJ14">-0.79539132295421022</Real>
+          <Real Name="dVdlCoul ">0.3385142675285866</Real>
+          <Real Name="dVdlVdw ">0.83748154200529312</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">1.6088959673922179</Real>
+              <Real Name="Y">3.2177919347844322</Real>
+              <Real Name="Z">4.8266879021766504</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-2.5019136079784645</Real>
+              <Real Name="Y">-5.0038272159569237</Real>
+              <Real Name="Z">-7.5057408239353887</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-1.6088959673922179</Real>
+              <Real Name="Y">-3.2177919347844322</Real>
+              <Real Name="Z">-4.8266879021766504</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">-0.33407655239047818</Real>
+          <Real Name="Epot LJ14">-0.79539132295421022</Real>
+          <Real Name="dVdlCoul ">0.33407655239047818</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">1.6088959673922179</Real>
+              <Real Name="Y">3.2177919347844322</Real>
+              <Real Name="Z">4.8266879021766504</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-2.5019136079784645</Real>
+              <Real Name="Y">-5.0038272159569237</Real>
+              <Real Name="Z">-7.5057408239353887</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-1.6088959673922179</Real>
+              <Real Name="Y">-3.2177919347844322</Real>
+              <Real Name="Z">-4.8266879021766504</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">-0.33407655239047818</Real>
+          <Real Name="Epot LJ14">-0.79539132295421022</Real>
+          <Real Name="dVdlCoul ">0.33407655239047818</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">1.6088959673922179</Real>
+              <Real Name="Y">3.2177919347844322</Real>
+              <Real Name="Z">4.8266879021766504</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.89301764058624677</Real>
+              <Real Name="Y">1.7860352811724916</Real>
+              <Real Name="Z">2.6790529217587382</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-2.5019136079784645</Real>
+              <Real Name="Y">-5.0038272159569237</Real>
+              <Real Name="Z">-7.5057408239353887</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-1.6088959673922179</Real>
+              <Real Name="Y">-3.2177919347844322</Real>
+              <Real Name="Z">-4.8266879021766504</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="0.5">
-        <Real Name="Epot Coulomb14">-0.16595391778969223</Real>
-        <Real Name="Epot LJ14">-0.38738008371883476</Real>
-        <Real Name="dVdlCoul ">0.33402780694852929</Real>
-        <Real Name="dVdlVdw ">0.79497818749041516</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0.77157606087074149</Real>
-            <Real Name="Y">1.5431521217414814</Real>
-            <Real Name="Z">2.3147281826122228</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0.42958890996342458</Real>
-            <Real Name="Y">0.85917781992684816</Real>
-            <Real Name="Z">1.2887667298902727</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">-1.2011649708341661</Real>
-            <Real Name="Y">-2.4023299416683295</Real>
-            <Real Name="Z">-3.6034949125024953</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">-0.77157606087074149</Real>
-            <Real Name="Y">-1.5431521217414814</Real>
-            <Real Name="Z">-2.3147281826122228</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">-0.16595391778969223</Real>
+          <Real Name="Epot LJ14">-0.38738008371883476</Real>
+          <Real Name="dVdlCoul ">0.33402780694852929</Real>
+          <Real Name="dVdlVdw ">0.79497818749041516</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.77157606087074149</Real>
+              <Real Name="Y">1.5431521217414814</Real>
+              <Real Name="Z">2.3147281826122228</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.42958890996342458</Real>
+              <Real Name="Y">0.85917781992684816</Real>
+              <Real Name="Z">1.2887667298902727</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-1.2011649708341661</Real>
+              <Real Name="Y">-2.4023299416683295</Real>
+              <Real Name="Z">-3.6034949125024953</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.77157606087074149</Real>
+              <Real Name="Y">-1.5431521217414814</Real>
+              <Real Name="Z">-2.3147281826122228</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">-0.12262214526217577</Real>
+          <Real Name="Epot LJ14">-0.39769566147710511</Real>
+          <Real Name="dVdlCoul ">0.27046205463933159</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.48344354533118644</Real>
+              <Real Name="Y">0.96688709066237177</Real>
+              <Real Name="Z">1.4503306359935582</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.61465102353521561</Real>
+              <Real Name="Y">1.2293020470704299</Real>
+              <Real Name="Z">1.8439530706056453</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-1.0980945688664021</Real>
+              <Real Name="Y">-2.1961891377328016</Real>
+              <Real Name="Z">-3.2942837065992032</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.48344354533118644</Real>
+              <Real Name="Y">-0.96688709066237177</Real>
+              <Real Name="Z">-1.4503306359935582</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">-0.16703827619523909</Real>
+          <Real Name="Epot LJ14">-0.39769566147710511</Real>
+          <Real Name="dVdlCoul ">0.33407655239047818</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0.80444798369610893</Real>
+              <Real Name="Y">1.6088959673922161</Real>
+              <Real Name="Z">2.4133439510883252</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0.44650882029312339</Real>
+              <Real Name="Y">0.89301764058624578</Real>
+              <Real Name="Z">1.3395264608793691</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">-1.2509568039892323</Real>
+              <Real Name="Y">-2.5019136079784619</Real>
+              <Real Name="Z">-3.7528704119676943</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">-0.80444798369610893</Real>
+              <Real Name="Y">-1.6088959673922161</Real>
+              <Real Name="Z">-2.4133439510883252</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
       <Lambda Name="1">
-        <Real Name="Epot Coulomb14">0</Real>
-        <Real Name="Epot LJ14">0</Real>
-        <Real Name="dVdlCoul ">0.32983398364534788</Real>
-        <Real Name="dVdlVdw ">0.75495162409282812</Real>
-        <Sequence Name="Forces">
-          <Int Name="Length">3</Int>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-          <Vector>
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Sequence>
-        <Shift-Forces Name="Shift-forces">
-          <Vector Name="Central">
-            <Real Name="X">0</Real>
-            <Real Name="Y">0</Real>
-            <Real Name="Z">0</Real>
-          </Vector>
-        </Shift-Forces>
+        <Sofcore Name="beutler">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">0.32983398364534788</Real>
+          <Real Name="dVdlVdw ">0.75495162409282812</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="gapsys">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">0.24565017842507153</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
+        <Sofcore Name="none">
+          <Real Name="Epot Coulomb14">0</Real>
+          <Real Name="Epot LJ14">0</Real>
+          <Real Name="dVdlCoul ">0.33407655239047818</Real>
+          <Real Name="dVdlVdw ">0.79539132295421022</Real>
+          <Sequence Name="Forces">
+            <Int Name="Length">3</Int>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+            <Vector>
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Sequence>
+          <Shift-Forces Name="Shift-forces">
+            <Vector Name="Central">
+              <Real Name="X">0</Real>
+              <Real Name="Y">0</Real>
+              <Real Name="Z">0</Real>
+            </Vector>
+          </Shift-Forces>
+        </Sofcore>
       </Lambda>
     </FEP>
   </FunctionType>
index fa8a7804fa705da8a0d902871d4dd1ce175ed9bb..87f03085e8cc40df25e5676eea0ead8b902972d5 100644 (file)
@@ -600,6 +600,7 @@ static void pr_fepvals(FILE* fp, int indent, const t_lambda* fep, gmx_bool bMDPf
     PD("dh-hist-spacing", fep->dh_hist_spacing);
     PS("separate-dhdl-file", enumValueToString(fep->separate_dhdl_file));
     PS("dhdl-derivatives", enumValueToString(fep->dhdl_derivatives));
+    PS("sc-function", enumValueToString(fep->softcoreFunction));
 };
 
 static void pr_pull(FILE* fp, int indent, const pull_params_t& pull)
@@ -1346,6 +1347,7 @@ static void cmp_fepvals(FILE* fp, const t_lambda* fep1, const t_lambda* fep2, re
     cmp_bool(fp, "inputrec->fepvals->bScCoul", -1, fep1->bScCoul, fep1->bScCoul);
     cmpEnum(fp, "inputrec->separate_dhdl_file", fep1->separate_dhdl_file, fep2->separate_dhdl_file);
     cmpEnum(fp, "inputrec->dhdl_derivatives", fep1->dhdl_derivatives, fep2->dhdl_derivatives);
+    cmpEnum(fp, "inputrec->softcoreFunction", fep1->softcoreFunction, fep2->softcoreFunction);
     cmp_int(fp, "inputrec->dh_hist_size", -1, fep1->dh_hist_size, fep2->dh_hist_size);
     cmp_double(fp, "inputrec->dh_hist_spacing", -1, fep1->dh_hist_spacing, fep2->dh_hist_spacing, ftol, abstol);
 }
index dd05d1395215bd0945c8be11bb4ab8e9a2dbd793..aa40d516f0845866e82303c5193238e30a1ddaca 100644 (file)
@@ -143,6 +143,8 @@ struct t_lambda
     real sc_sigma_min = 0;
     //! Use softcore for the coulomb portion as well (default FALSE)
     bool bScCoul = false;
+    //! The specific soft-core function to use
+    SoftcoreType softcoreFunction = SoftcoreType::Beutler;
     //! Whether to print the dvdl term associated with this term; if it is not specified as separate, it is lumped with the FEP term
     gmx::EnumerationArray<FreeEnergyPerturbationCouplingType, bool> separate_dvdl;
     //! Whether to write a separate dhdl.xvg file note: NOT a gmx_bool, but an enum
index 9353a24047aa105f840968e450cd0f975652f118..7463d3222bb130c2ecd74e053f23dab2dac9aea1 100644 (file)
@@ -53,7 +53,8 @@ interaction_const_t::SoftCoreParameters::SoftCoreParameters(const t_lambda& fepv
     alphaCoulomb(fepvals.bScCoul ? fepvals.sc_alpha : 0),
     lambdaPower(fepvals.sc_power),
     sigma6WithInvalidSigma(gmx::power6(fepvals.sc_sigma)),
-    sigma6Minimum(fepvals.bScCoul ? gmx::power6(fepvals.sc_sigma_min) : 0)
+    sigma6Minimum(fepvals.bScCoul ? gmx::power6(fepvals.sc_sigma_min) : 0),
+    softcoreType(fepvals.softcoreFunction)
 {
     // This is checked during tpr reading, so we can assert here
     GMX_RELEASE_ASSERT(fepvals.sc_r_power == 6.0, "We only support soft-core r-power 6");
index 0f377eb347a790a3c3a356712576efc7fbd753bc..29c32550111184bc98247f3478c4e9c952531c4a 100644 (file)
@@ -127,6 +127,8 @@ struct interaction_const_t
         real sigma6WithInvalidSigma;
         // Minimum value for sigma^6, used when soft-core is applied to Coulomb interactions
         real sigma6Minimum;
+        // soft-core function
+        SoftcoreType softcoreType;
     };
 
     /* VdW */
index 38647e60b029d7f1d1286f1e1a360faabd991b69..0c40e538576c790347f251ab7d425f396047a4f6 100644 (file)
@@ -288,6 +288,14 @@ const char* enumValueToString(SeparateDhdlFile enumValue)
     return separateDhdlFileNames[enumValue];
 }
 
+const char* enumValueToString(SoftcoreType enumValue)
+{
+    static constexpr gmx::EnumerationArray<SoftcoreType, const char*> softcoreTypeNames = {
+        "beutler", "gapsys", "none"
+    };
+    return softcoreTypeNames[enumValue];
+}
+
 const char* enumValueToString(DhDlDerivativeCalculation enumValue)
 {
     static constexpr gmx::EnumerationArray<DhDlDerivativeCalculation, const char*> dhdlDerivativeCalculationNames = {
index a8ab709c5e892f6cd14cceeeb0e1e7504d64d0d8..0bfb497cc4cd9e4bb0b8de354549fe8dd41d5947 100644 (file)
@@ -605,6 +605,21 @@ enum class DhDlDerivativeCalculation : int
 //! String for DHDL derivatives
 const char* enumValueToString(DhDlDerivativeCalculation enumValue);
 
+/*! \brief soft-core function \
+ *
+ * Distinguishes between soft-core functions.
+ */
+enum class SoftcoreType : int
+{
+    Beutler,
+    Gapsys,
+    None,
+    Count,
+    Default = Beutler
+};
+//! Strings for softcore function names
+const char* enumValueToString(SoftcoreType enumValue);
+
 /*! \brief Solvent model
  *
  * Distinguishes classical water types with 3 or 4 particles