Multiple //!< Multiple T-scaling values, need to use T-group indices
};
+/*! \brief Different variants of the Parrinello-Rahman velocity scaling
+ *
+ * This is needed to template the kernel
+ * \todo Unify with similar enum in CPU update module
+ */
+enum class VelocityScalingType
+{
+ None, //!< Do not apply velocity scaling (not a PR-coupling run or step)
+ Diagonal, //!< Apply velocity scaling using a diagonal matrix
+ Full //!< Apply velocity scaling using a full matrix
+};
+
/*! \brief Main kernel for Leap-Frog integrator.
*
* Each GPU thread works with a single particle. Empty declaration is needed to
* \todo Check if the force should be set to zero here.
* \todo This kernel can also accumulate incidental temperatures for each atom.
*
- * \tparam numTempScaleValues The number of different T-couple values
- * \param[in] numAtoms Total number of atoms.
- * \param[in] gm_x Coordinates before the timestep
- * \param[out] gm_xp Coordinates after the timestep.
- * \param[in,out] gm_v Velocities to update.
- * \param[in] gm_f Atomic forces.
- * \param[in] gm_inverseMasses Reciprocal masses.
- * \param[in] dt Timestep.
- * \param[in] gm_lambdas Temperature scaling factors (one per group)
- * \param[in] gm_tempScaleGroups Mapping of atoms into groups.
+ * \tparam numTempScaleValues The number of different T-couple values.
+ * \tparam velocityScaling Type of the Parrinello-Rahman velocity rescaling.
+ * \param[in] numAtoms Total number of atoms.
+ * \param[in] gm_x Coordinates before the timestep
+ * \param[out] gm_xp Coordinates after the timestep.
+ * \param[in,out] gm_v Velocities to update.
+ * \param[in] gm_f Atomic forces.
+ * \param[in] gm_inverseMasses Reciprocal masses.
+ * \param[in] dt Timestep.
+ * \param[in] gm_lambdas Temperature scaling factors (one per group)
+ * \param[in] gm_tempScaleGroups Mapping of atoms into groups.
+ * \param[in] dtPressureCouple Time step for pressure coupling
+ * \param[in] velocityScalingMatrixDiagonal Diagonal elements of Parrinello-Rahman velocity scaling matrix
*/
-template<NumTempScaleValues numTempScaleValues>
+template<NumTempScaleValues numTempScaleValues, VelocityScalingType velocityScaling>
__launch_bounds__(c_maxThreadsPerBlock)
__global__ void leapfrog_kernel(const int numAtoms,
const float3* __restrict__ gm_x,
const float* __restrict__ gm_inverseMasses,
const float dt,
const float* __restrict__ gm_lambdas,
- const unsigned short* __restrict__ gm_tempScaleGroups);
+ const unsigned short* __restrict__ gm_tempScaleGroups,
+ const float3 velocityScalingMatrixDiagonal);
-template<NumTempScaleValues numTempScaleValues>
+template<NumTempScaleValues numTempScaleValues, VelocityScalingType velocityScaling>
__launch_bounds__(c_maxThreadsPerBlock)
__global__ void leapfrog_kernel(const int numAtoms,
const float3* __restrict__ gm_x,
const float* __restrict__ gm_inverseMasses,
const float dt,
const float* __restrict__ gm_lambdas,
- const unsigned short* __restrict__ gm_tempScaleGroups)
+ const unsigned short* __restrict__ gm_tempScaleGroups,
+ const float3 velocityScalingMatrixDiagonal)
{
int threadIndex = blockIdx.x*blockDim.x + threadIdx.x;
if (threadIndex < numAtoms)
{
- float3 xi = gm_x[threadIndex];
- float3 vi = gm_v[threadIndex];
- float3 fi = gm_f[threadIndex];
- float imi = gm_inverseMasses[threadIndex];
- float imidt = imi*dt;
+ float3 x = gm_x[threadIndex];
+ float3 v = gm_v[threadIndex];
+ float3 f = gm_f[threadIndex];
+ float im = gm_inverseMasses[threadIndex];
+ float imdt = im*dt;
- if (numTempScaleValues != NumTempScaleValues::None)
+ if (numTempScaleValues != NumTempScaleValues::None || velocityScaling != VelocityScalingType::None)
{
- float lambda = 1.0F;
- if (numTempScaleValues == NumTempScaleValues::Single)
+ float3 vp = v;
+
+ if (numTempScaleValues != NumTempScaleValues::None)
{
- lambda = gm_lambdas[0];
+ float lambda = 1.0F;
+ if (numTempScaleValues == NumTempScaleValues::Single)
+ {
+ lambda = gm_lambdas[0];
+ }
+ else if (numTempScaleValues == NumTempScaleValues::Multiple)
+ {
+ int tempScaleGroup = gm_tempScaleGroups[threadIndex];
+ lambda = gm_lambdas[tempScaleGroup];
+ }
+ vp *= lambda;
}
- if (numTempScaleValues == NumTempScaleValues::Multiple)
+
+ if (velocityScaling == VelocityScalingType::Diagonal)
{
- int tempScaleGroup = gm_tempScaleGroups[threadIndex];
- lambda = gm_lambdas[tempScaleGroup];
+ vp.x -= velocityScalingMatrixDiagonal.x*v.x;
+ vp.y -= velocityScalingMatrixDiagonal.y*v.y;
+ vp.z -= velocityScalingMatrixDiagonal.z*v.z;
}
- vi *= lambda;
+
+ v = vp;
}
- vi += fi*imidt;
- xi += vi*dt;
- gm_v[threadIndex] = vi;
- gm_xp[threadIndex] = xi;
+
+ v += f*imdt;
+
+ x += v*dt;
+ gm_v[threadIndex] = v;
+ gm_xp[threadIndex] = x;
}
return;
}
* If zero is passed as an argument, it is assumed that no temperature coupling groups are used.
*
* \param[in] numTempScaleValues Numer of temperature coupling groups in the system
+ * \param[in] velocityScaling Type of the Parrinello-Rahman velocity scaling
*
* \retrun Pointer to CUDA kernel
*/
-inline auto selectLeapFrogKernelPtr(int numTempScaleValues)
+inline auto selectLeapFrogKernelPtr(int numTempScaleValues, VelocityScalingType velocityScaling)
{
- auto kernelPtr = leapfrog_kernel<NumTempScaleValues::None>;
+ auto kernelPtr = leapfrog_kernel<NumTempScaleValues::None, VelocityScalingType::None>;
- if (numTempScaleValues == 0)
- {
- kernelPtr = leapfrog_kernel<NumTempScaleValues::None>;
- }
- else if (numTempScaleValues == 1)
+ if (velocityScaling == VelocityScalingType::None)
{
- kernelPtr = leapfrog_kernel<NumTempScaleValues::Single>;
+ if (numTempScaleValues == 0)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::None, VelocityScalingType::None>;
+ }
+ else if (numTempScaleValues == 1)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::Single, VelocityScalingType::None>;
+ }
+ else if (numTempScaleValues > 1)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::Multiple, VelocityScalingType::None>;
+ }
+ else
+ {
+ GMX_RELEASE_ASSERT(false, "Number of temperature coupling groups should be greater than zero (zero for no coupling).");
+ }
}
- else if (numTempScaleValues > 1)
+ else
+ if (velocityScaling == VelocityScalingType::Diagonal)
{
- kernelPtr = leapfrog_kernel<NumTempScaleValues::Multiple>;
+ if (numTempScaleValues == 0)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::None, VelocityScalingType::Diagonal>;
+ }
+ else if (numTempScaleValues == 1)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::Single, VelocityScalingType::Diagonal>;
+ }
+ else if (numTempScaleValues > 1)
+ {
+ kernelPtr = leapfrog_kernel<NumTempScaleValues::Multiple, VelocityScalingType::Diagonal>;
+ }
+ else
+ {
+ GMX_RELEASE_ASSERT(false, "Number of temperature coupling groups should be greater than zero (zero for no coupling).");
+ }
}
else
{
- GMX_RELEASE_ASSERT(false, "Number of temperature coupling groups should be greater than zero or zero for no coupling.");
+ GMX_RELEASE_ASSERT(false, "Only isotropic Parrinello-Rahman pressure coupling is supported.");
}
return kernelPtr;
}
const float3 *d_f,
const real dt,
const bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat)
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ const bool doPressureCouple,
+ const float dtPressureCouple,
+ const matrix velocityScalingMatrix)
{
ensureNoPendingCudaError("In CUDA version of Leap-Frog integrator");
- auto kernelPtr = leapfrog_kernel<NumTempScaleValues::None>;
-
- if (doTempCouple)
+ auto kernelPtr = leapfrog_kernel<NumTempScaleValues::None, VelocityScalingType::None>;
+ if (doTempCouple || doPressureCouple)
{
- GMX_ASSERT(numTempScaleValues_ == ssize(h_lambdas_), "Number of temperature scaling factors changed since it was set for the last time.");
- for (int i = 0; i < numTempScaleValues_; i++)
+ if (doTempCouple)
+ {
+ GMX_ASSERT(numTempScaleValues_ == ssize(h_lambdas_), "Number of temperature scaling factors changed since it was set for the last time.");
+ for (int i = 0; i < numTempScaleValues_; i++)
+ {
+ h_lambdas_[i] = tcstat[i].lambda;
+ }
+ copyToDeviceBuffer(&d_lambdas_, h_lambdas_.data(),
+ 0, numTempScaleValues_, stream_, GpuApiCallBehavior::Async, nullptr);
+ }
+ VelocityScalingType velocityScaling = VelocityScalingType::None;
+ if (doPressureCouple)
{
- h_lambdas_[i] = tcstat[i].lambda;
+ velocityScaling = VelocityScalingType::Diagonal;
+ GMX_ASSERT(velocityScalingMatrix[YY][XX] == 0 && velocityScalingMatrix[ZZ][XX] == 0 && velocityScalingMatrix[ZZ][YY] == 0 &&
+ velocityScalingMatrix[XX][YY] == 0 && velocityScalingMatrix[XX][ZZ] == 0 && velocityScalingMatrix[YY][ZZ] == 0,
+ "Fully anisotropic Parrinello-Rahman pressure coupling is not yet supported in GPU version of Leap-Frog integrator.");
+ velocityScalingMatrixDiagonal_ = make_float3(dtPressureCouple*velocityScalingMatrix[XX][XX],
+ dtPressureCouple*velocityScalingMatrix[YY][YY],
+ dtPressureCouple*velocityScalingMatrix[ZZ][ZZ]);
}
- copyToDeviceBuffer(&d_lambdas_, h_lambdas_.data(),
- 0, numTempScaleValues_, stream_, GpuApiCallBehavior::Async, nullptr);
- kernelPtr = selectLeapFrogKernelPtr(numTempScaleValues_);
+ kernelPtr = selectLeapFrogKernelPtr(numTempScaleValues_, velocityScaling);
}
const auto kernelArgs = prepareGpuKernelArguments(kernelPtr, kernelLaunchConfig_,
&d_v,
&d_f,
&d_inverseMasses_, &dt,
- &d_lambdas_, &d_tempScaleGroups_);
+ &d_lambdas_, &d_tempScaleGroups_,
+ &velocityScalingMatrixDiagonal_);
launchGpuKernel(kernelPtr, kernelLaunchConfig_, nullptr, "leapfrog_kernel", kernelArgs);
return;
* Integrates the equation of motion using Leap-Frog algorithm.
* Updates coordinates and velocities on the GPU.
*
- * \param[in] d_x Initial coordinates.
- * \param[out] d_xp Place to save the resulting coordinates to.
- * \param[in,out] d_v Velocities (will be updated).
- * \param[in] d_f Forces.
- * \param[in] dt Timestep.
- * \param[in] doTempCouple If the temperature coupling should be applied.
- * \param[in] tcstat Temperature coupling data.
+ * \param[in] d_x Initial coordinates.
+ * \param[out] d_xp Place to save the resulting coordinates to.
+ * \param[in,out] d_v Velocities (will be updated).
+ * \param[in] d_f Forces.
+ * \param[in] dt Timestep.
+ * \param[in] doTempCouple If the temperature coupling should be applied.
+ * \param[in] tcstat Temperature coupling data.
+ * \param[in] doPressureCouple If the temperature coupling should be applied.
+ * \param[in] dtPressureCouple Period between pressure coupling steps
+ * \param[in] velocityScalingMatrix Parrinello-Rahman velocity scaling matrix
*/
void integrate(const float3 *d_x,
float3 *d_xp,
const float3 *d_f,
const real dt,
const bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat);
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ const bool doPressureCouple,
+ const float dtPressureCouple,
+ const matrix velocityScalingMatrix);
/*! \brief Set the integrator
*
//! Maximum size of the temperature coupling groups array
int numTempScaleGroupsAlloc_ = -1;
+ //! Vector with diagonal elements of the pressure coupling velocity rescale factors
+ float3 velocityScalingMatrixDiagonal_;
+
};
} //namespace gmx
rvec f;
//! Number of temperature coupling group (zero for no temperature coupling)
int numTCoupleGroups;
+ //! Number of steps between pressure coupling steps (zero for no pressure coupling).
+ int nstpcouple;
};
//! The set of parameters combinations to run the test on
-const LeapFrogTestParameters parametersSets[] = {{ 1, 0.001, 1, {0.0, 0.0, 0.0}, {0.0, 0.0, 0.0}, 0}, // Zero velocity and force
- { 1, 0.001, 1, {0.0, 0.0, 0.0}, {-3.0, 2.0, -1.0}, 0}, // Zero velocity
- { 1, 0.001, 1, {1.0, -2.0, 3.0}, {0.0, 0.0, 0.0}, 0}, // Zero force
- { 1, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 1 particle
- { 10, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 10 particles
- {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 100 particles
- {300, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 300 particles
- { 1, 0.0005, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 0.0005 ps timestep
- { 1, 0.001, 10, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 10 step
- { 1, 0.001, 100, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0}, // 100 steps
- {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 1}, // 1 temperature couple group
- {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 2}, // 2 temperature couple groups
- {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 10}}; // 10 temperature couple groups
+const LeapFrogTestParameters parametersSets[] = {{ 1, 0.001, 1, {0.0, 0.0, 0.0}, { 0.0, 0.0, 0.0}, 0, 0}, // Zero velocity and force
+ { 1, 0.001, 1, {0.0, 0.0, 0.0}, {-3.0, 2.0, -1.0}, 0, 0}, // Zero velocity
+ { 1, 0.001, 1, {1.0, -2.0, 3.0}, { 0.0, 0.0, 0.0}, 0, 0}, // Zero force
+ { 1, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 1 particle
+ { 10, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 10 particles
+ {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 100 particles
+ {300, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 300 particles
+ { 1, 0.0005, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 0.0005 ps timestep
+ { 1, 0.001, 10, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 10 step
+ { 1, 0.001, 100, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 0}, // 100 steps
+ {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 1, 0}, // 1 temperature couple group
+ {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 2, 0}, // 2 temperature couple groups
+ {100, 0.001, 1, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 10, 0}, // 10 temperature couple groups
+ {100, 0.001, 10, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 1}, // With pressure coupling
+ {100, 0.001, 10, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 2, 1}, // With both temperature and pressure coupling
+ {100, 0.001, 10, {1.0, -2.0, 3.0}, {-3.0, 2.0, -1.0}, 0, 3}}; // Do pressure coupling not on every step
+
/*! \brief Test fixture for LeapFrog integrator.
LeapFrogTestParameters parameters = GetParam();
- std::string testDescription = formatString("Testing %s with %d atoms for %d timesteps with %d temperature coupling groups (dt = %f, v0=(%f, %f, %f), f0=(%f, %f, %f))",
+ std::string testDescription = formatString("Testing %s with %d atoms for %d timesteps with %d temperature coupling groups and %s pressure coupling (dt = %f, v0=(%f, %f, %f), f0=(%f, %f, %f), nstpcouple = %d)",
runnerName.c_str(),
- parameters.numAtoms, parameters.numSteps, parameters.numTCoupleGroups, parameters.timestep,
+ parameters.numAtoms, parameters.numSteps, parameters.numTCoupleGroups,
+ parameters.nstpcouple == 0 ? "without" : "with",
+ parameters.timestep,
parameters.v[XX], parameters.v[YY], parameters.v[ZZ],
- parameters.f[XX], parameters.f[YY], parameters.f[ZZ]);
+ parameters.f[XX], parameters.f[YY], parameters.f[ZZ],
+ parameters.nstpcouple);
SCOPED_TRACE(testDescription);
std::unique_ptr<LeapFrogTestData> testData =
- std::make_unique<LeapFrogTestData>(parameters.numAtoms, parameters.timestep, parameters.v, parameters.f, parameters.numTCoupleGroups);
+ std::make_unique<LeapFrogTestData>(parameters.numAtoms, parameters.timestep,
+ parameters.v, parameters.f,
+ parameters.numTCoupleGroups,
+ parameters.nstpcouple);
runner.second(testData.get(), parameters.numSteps);
FloatingPointTolerance tolerance = absoluteTolerance(parameters.numSteps*0.000005);
// Test against the analytical solution (without temperature coupling)
- if (parameters.numTCoupleGroups == 0)
+ if (parameters.numTCoupleGroups == 0 && parameters.nstpcouple == 0)
{
testAgainstAnalyticalSolution(tolerance, *testData, totalTime);
}
namespace test
{
-LeapFrogTestData::LeapFrogTestData(int numAtoms, real timestep, const rvec v0, const rvec f0, int numTCoupleGroups) :
+LeapFrogTestData::LeapFrogTestData(int numAtoms, real timestep, const rvec v0, const rvec f0, int numTCoupleGroups, int nstpcouple) :
numAtoms_(numAtoms),
timestep_(timestep),
x0_(numAtoms),
}
}
- // Data needed for current CPU-based implementation
inputRecord_.eI = eiMD;
inputRecord_.delta_t = timestep_;
- inputRecord_.epc = epcNO;
state_.flags = 0;
mdAtoms_.havePartiallyFrozenAtoms = false;
mdAtoms_.cFREEZE = nullptr;
- prVScalingMatrix_[XX][XX] = 1.0;
- prVScalingMatrix_[XX][YY] = 0.0;
- prVScalingMatrix_[XX][ZZ] = 0.0;
+ update_ = std::make_unique<Update>(&inputRecord_, nullptr);
+ update_->setNumAtoms(numAtoms);
+
+ doPressureCouple_ = (nstpcouple != 0);
- prVScalingMatrix_[YY][XX] = 0.0;
- prVScalingMatrix_[YY][YY] = 1.0;
- prVScalingMatrix_[YY][ZZ] = 0.0;
+ if (doPressureCouple_)
+ {
+ inputRecord_.epc = epcPARRINELLORAHMAN;
+ inputRecord_.nstpcouple = nstpcouple;
+ dtPressureCouple_ = inputRecord_.nstpcouple*inputRecord_.delta_t;
- prVScalingMatrix_[ZZ][XX] = 0.0;
- prVScalingMatrix_[ZZ][YY] = 0.0;
- prVScalingMatrix_[ZZ][ZZ] = 1.0;
+ velocityScalingMatrix_[XX][XX] = 1.2;
+ velocityScalingMatrix_[XX][YY] = 0.0;
+ velocityScalingMatrix_[XX][ZZ] = 0.0;
+
+ velocityScalingMatrix_[YY][XX] = 0.0;
+ velocityScalingMatrix_[YY][YY] = 0.8;
+ velocityScalingMatrix_[YY][ZZ] = 0.0;
+
+ velocityScalingMatrix_[ZZ][XX] = 0.0;
+ velocityScalingMatrix_[ZZ][YY] = 0.0;
+ velocityScalingMatrix_[ZZ][ZZ] = 0.9;
+ }
+ else
+ {
+ inputRecord_.epc = epcNO;
+ velocityScalingMatrix_[XX][XX] = 1.0;
+ velocityScalingMatrix_[XX][YY] = 0.0;
+ velocityScalingMatrix_[XX][ZZ] = 0.0;
+
+ velocityScalingMatrix_[YY][XX] = 0.0;
+ velocityScalingMatrix_[YY][YY] = 1.0;
+ velocityScalingMatrix_[YY][ZZ] = 0.0;
+
+ velocityScalingMatrix_[ZZ][XX] = 0.0;
+ velocityScalingMatrix_[ZZ][YY] = 0.0;
+ velocityScalingMatrix_[ZZ][ZZ] = 1.0;
+ }
- update_ = std::make_unique<Update>(&inputRecord_, nullptr);
- update_->setNumAtoms(numAtoms);
}
LeapFrogTestData::~LeapFrogTestData()
/*! \internal \file
* \brief Tests for the Leap-Frog integrator
*
- * \todo Prepare for temperature and pressure controlled integrators.
+ * \todo Add anisotropic Parrinello-Rahman and other pressure coupling schemes
* \todo Add PBC handling test.
* \todo Reference values tests.
*
t_fcdata forceCalculationData_;
//! Kinetic energy data (to disable non-equilibrium MD integration)
gmx_ekindata_t kineticEnergyData_;
- //! Parrinnello-Rahman velocity rescalling matrix
- matrix prVScalingMatrix_;
//! Update data
std::unique_ptr<Update> update_;
//! Number of temperature coupling groups
int numTCoupleGroups_;
+ //! If the pressure coupling is enabled
+ bool doPressureCouple_;
+ //! Period between pressure coupling steps
+ float dtPressureCouple_;
+ //! Matrix for Parrinello-Rahman velocity scaling
+ matrix velocityScalingMatrix_;
/*! \brief Constructor.
*
* \param[in] v0 Initial velocity (same for all particles)
* \param[in] f0 External constant force, acting on all particles
* \param[in] numTCoupleGroups Number of temperature coupling groups (zero for no temperature coupling)
+ * \param[in] nstpcouple Number of steps between pressure coupling steps (zero for no pressure coupling)
*/
- LeapFrogTestData(int numAtoms, real timestep, const rvec v0, const rvec f0, int numTCoupleGroups);
+ LeapFrogTestData(int numAtoms, real timestep, const rvec v0, const rvec f0,
+ int numTCoupleGroups, int nstpcouple);
~LeapFrogTestData();
};
testData->f_,
&testData->forceCalculationData_,
&testData->kineticEnergyData_,
- testData->prVScalingMatrix_,
+ testData->velocityScalingMatrix_,
testData->update_.get(),
etrtNONE,
nullptr,
#include "gromacs/gpu_utils/gpu_utils.h"
#include "gromacs/math/vec.h"
#include "gromacs/mdlib/leapfrog_cuda.cuh"
+#include "gromacs/mdlib/stat.h"
#include "gromacs/mdtypes/group.h"
namespace gmx
bool doTempCouple = testData->numTCoupleGroups_ > 0;
for (int step = 0; step < numSteps; step++)
{
-
- integrator->integrate(d_x, d_xp, d_v, d_f, testData->timestep_, doTempCouple, testData->kineticEnergyData_.tcstat);
+ // This follows the logic of the CPU-based implementation
+ bool doPressureCouple = testData->doPressureCouple_ && do_per_step(step + testData->inputRecord_.nstpcouple - 1, testData->inputRecord_.nstpcouple);
+ integrator->integrate(d_x, d_xp, d_v, d_f, testData->timestep_,
+ doTempCouple, testData->kineticEnergyData_.tcstat,
+ doPressureCouple, testData->dtPressureCouple_, testData->velocityScalingMatrix_);
copyFromDeviceBuffer(h_xp, &d_xp, 0, numAtoms, nullptr, GpuApiCallBehavior::Sync, nullptr);
copyToDeviceBuffer(&d_x, h_xp, 0, numAtoms, nullptr, GpuApiCallBehavior::Sync, nullptr);
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Sequence Name="FinalPositions">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.0097698296075089917</Real>
+ <Real Name="YY">6.4801975255594693</Real>
+ <Real Name="ZZ">0.029797048462235041</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.009852033319113</Real>
+ <Real Name="YY">5.480142657348507</Real>
+ <Real Name="ZZ">0.029824474345716775</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0098794345563151</Real>
+ <Real Name="YY">4.4801243679448515</Real>
+ <Real Name="ZZ">0.029833616306877371</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0098931351749147</Real>
+ <Real Name="YY">3.4801152232430232</Real>
+ <Real Name="ZZ">0.029838187287457671</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099013555460754</Real>
+ <Real Name="YY">2.480109736421928</Real>
+ <Real Name="ZZ">0.029840929875805843</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099068357935153</Real>
+ <Real Name="YY">1.4801060785411964</Real>
+ <Real Name="ZZ">0.029842758268037943</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099107502559717</Real>
+ <Real Name="YY">0.48010346576924573</Real>
+ <Real Name="ZZ">0.029844064262489478</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099136861028146</Real>
+ <Real Name="YY">-0.5198984938097172</Real>
+ <Real Name="ZZ">0.029845043758328086</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099159695392483</Real>
+ <Real Name="YY">-1.5199000179266884</Real>
+ <Real Name="ZZ">0.029845805588424822</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099177962883985</Real>
+ <Real Name="YY">-2.5199012372202652</Real>
+ <Real Name="ZZ">0.029846415052502174</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009919290901335</Real>
+ <Real Name="YY">-3.5199022348241016</Real>
+ <Real Name="ZZ">0.029846913704929142</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009920536412116</Real>
+ <Real Name="YY">-4.5199030661606319</Real>
+ <Real Name="ZZ">0.029847329248618246</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009921590305852</Real>
+ <Real Name="YY">-5.5199037695992308</Real>
+ <Real Name="ZZ">0.029847680862509048</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009922493643344</Real>
+ <Real Name="YY">6.4800956274533936</Real>
+ <Real Name="ZZ">0.029847982245843997</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009923276535838</Real>
+ <Real Name="YY">5.4800951048990045</Real>
+ <Real Name="ZZ">0.029848243444734305</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009923961566765</Real>
+ <Real Name="YY">4.4800946476639121</Real>
+ <Real Name="ZZ">0.029848471993763327</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009924566005825</Real>
+ <Real Name="YY">3.4800942442211844</Real>
+ <Real Name="ZZ">0.029848673654671264</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009925103284978</Real>
+ <Real Name="YY">2.4800938856054273</Real>
+ <Real Name="ZZ">0.029848852908811681</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009925584008442</Real>
+ <Real Name="YY">1.4800935647386955</Real>
+ <Real Name="ZZ">0.029849013294095183</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009926016659556</Real>
+ <Real Name="YY">0.48009327595863815</Real>
+ <Real Name="ZZ">0.029849157640850367</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009926408105802</Real>
+ <Real Name="YY">-0.51990698531855695</Real>
+ <Real Name="ZZ">0.029849288240295525</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099267639660255893</Real>
+ <Real Name="YY">-1.5199072228432795</Real>
+ <Real Name="ZZ">0.029849406967063823</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099270888818817</Real>
+ <Real Name="YY">-2.5199074397136791</Real>
+ <Real Name="ZZ">0.02984951536976535</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099273867214169</Real>
+ <Real Name="YY">-3.5199076385115453</Real>
+ <Real Name="ZZ">0.029849614738908389</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099276607337888</Real>
+ <Real Name="YY">-4.5199078214055834</Real>
+ <Real Name="ZZ">0.029849706158520003</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099279136682853</Real>
+ <Real Name="YY">-5.5199079902308457</Real>
+ <Real Name="ZZ">0.029849790545853783</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099281478668951</Real>
+ <Real Name="YY">6.4800918534494647</Real>
+ <Real Name="ZZ">0.029849868682273972</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099283653370312</Real>
+ <Real Name="YY">5.4800917082954674</Real>
+ <Real Name="ZZ">0.029849941237521275</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099285678092258</Real>
+ <Real Name="YY">4.4800915731520909</Real>
+ <Real Name="ZZ">0.029850008788958427</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099287567832764</Real>
+ <Real Name="YY">3.4800914470182733</Real>
+ <Real Name="ZZ">0.029850071836966405</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099289335654511</Real>
+ <Real Name="YY">2.48009132902212</Real>
+ <Real Name="ZZ">0.029850130817361008</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.00992909929874</Real>
+ <Real Name="YY">1.4800912184007273</Real>
+ <Real Name="ZZ">0.029850186111480926</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009929254987588</Real>
+ <Real Name="YY">0.48009111448366087</Real>
+ <Real Name="ZZ">0.029850238054442077</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009929401518265</Real>
+ <Real Name="YY">-0.51990898332063684</Real>
+ <Real Name="ZZ">0.029850286941934905</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009929539675769</Real>
+ <Real Name="YY">-1.5199090755361171</Real>
+ <Real Name="ZZ">0.029850333035856724</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009929670157849</Real>
+ <Real Name="YY">-2.5199091626285162</Real>
+ <Real Name="ZZ">0.029850376569005087</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009929793586844</Real>
+ <Real Name="YY">-3.519909245013217</Real>
+ <Real Name="ZZ">0.02985041774901033</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009929910519578</Real>
+ <Real Name="YY">-4.5199093230618823</Real>
+ <Real Name="ZZ">0.029850456761646861</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009930021455762</Real>
+ <Real Name="YY">-5.5199093971080497</Real>
+ <Real Name="ZZ">0.029850493773635373</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009930126845131</Real>
+ <Real Name="YY">6.4800905325480898</Real>
+ <Real Name="ZZ">0.029850528935024455</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009930227093559</Real>
+ <Real Name="YY">5.4800904656356364</Real>
+ <Real Name="ZZ">0.029850562381223824</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009930322568263</Real>
+ <Real Name="YY">4.4800904019094929</Real>
+ <Real Name="ZZ">0.029850594234747028</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099304136022701581</Real>
+ <Real Name="YY">3.480090341147354</Real>
+ <Real Name="ZZ">0.029850624606711007</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099305004983714</Real>
+ <Real Name="YY">2.4800902831471303</Real>
+ <Real Name="ZZ">0.029850653598131181</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.009930583532423</Real>
+ <Real Name="YY">1.4800902277246957</Real>
+ <Real Name="ZZ">0.029850681301043781</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099306629562985</Real>
+ <Real Name="YY">0.48009017471193155</Real>
+ <Real Name="ZZ">0.029850707799481933</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.009930739000434</Real>
+ <Real Name="YY">-0.51990987604497041</Real>
+ <Real Name="ZZ">0.029850733170326965</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099308118760675</Real>
+ <Real Name="YY">-1.5199099246870016</Real>
+ <Real Name="ZZ">0.029850757484053487</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099308817771817</Real>
+ <Real Name="YY">-2.519909971343643</Real>
+ <Real Name="ZZ">0.029850780805382966</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099309488822525</Real>
+ <Real Name="YY">-3.5199100161340198</Real>
+ <Real Name="ZZ">0.029850803193859268</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099310133557502</Real>
+ <Real Name="YY">-4.5199100591679109</Real>
+ <Real Name="ZZ">0.029850824704356124</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099310753495025</Real>
+ <Real Name="YY">-5.5199101005466513</Real>
+ <Real Name="ZZ">0.029850845387526154</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009931135003864</Real>
+ <Real Name="YY">6.4800898596360677</Real>
+ <Real Name="ZZ">0.029850865290199233</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009931192448803</Real>
+ <Real Name="YY">5.480089821293503</Real>
+ <Real Name="ZZ">0.029850884455736242</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009931247804838</Real>
+ <Real Name="YY">4.4800897843452123</Real>
+ <Real Name="ZZ">0.029850902924344662</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009931301183874</Real>
+ <Real Name="YY">3.4800897487165043</Real>
+ <Real Name="ZZ">0.029850920733359893</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009931352689959</Real>
+ <Real Name="YY">2.4800897143379266</Real>
+ <Real Name="ZZ">0.02985093791749743</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009931402419971</Real>
+ <Real Name="YY">1.480089681144817</Real>
+ <Real Name="ZZ">0.029850954509078469</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009931450464222</Real>
+ <Real Name="YY">0.48008964907689655</Real>
+ <Real Name="ZZ">0.029850970538233049</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009931496906997</Real>
+ <Real Name="YY">-0.5199103819220926</Real>
+ <Real Name="ZZ">0.02985098603308247</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009931541827058</Real>
+ <Real Name="YY">-1.5199104119047215</Real>
+ <Real Name="ZZ">0.029851001019904053</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.00993158529808</Real>
+ <Real Name="YY">-2.5199104409201691</Real>
+ <Real Name="ZZ">0.029851015523279765</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009931627389079</Real>
+ <Real Name="YY">-3.5199104690144911</Real>
+ <Real Name="ZZ">0.029851029566230879</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099316681647292314</Real>
+ <Real Name="YY">-4.5199104962308656</Real>
+ <Real Name="ZZ">0.029851043170339736</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099317076857446</Real>
+ <Real Name="YY">-5.5199105226098135</Real>
+ <Real Name="ZZ">0.02985105635586063</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099317460091535</Real>
+ <Real Name="YY">6.4800894518106009</Real>
+ <Real Name="ZZ">0.029851069141820306</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099317831885797</Real>
+ <Real Name="YY">5.480089426994585</Real>
+ <Real Name="ZZ">0.029851081546109538</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099318192744944</Real>
+ <Real Name="YY">4.4800894029084519</Real>
+ <Real Name="ZZ">0.029851093585566733</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099318543144395</Real>
+ <Real Name="YY">3.4800893795204684</Real>
+ <Real Name="ZZ">0.029851105276054148</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099318883532407</Real>
+ <Real Name="YY">2.4800893568007125</Real>
+ <Real Name="ZZ">0.029851116632527628</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099319214332079</Real>
+ <Real Name="YY">1.4800893347209494</Real>
+ <Real Name="ZZ">0.02985112766910045</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099319535942826</Real>
+ <Real Name="YY">0.48008931325451309</Real>
+ <Real Name="ZZ">0.029851138399101831</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099319848742354</Real>
+ <Real Name="YY">-0.51991070762380165</Real>
+ <Real Name="ZZ">0.029851148835130549</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009932015308781</Real>
+ <Real Name="YY">-1.5199107279378374</Real>
+ <Real Name="ZZ">0.02985115898910444</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009932044931739</Real>
+ <Real Name="YY">-2.5199107477101661</Real>
+ <Real Name="ZZ">0.029851168872305683</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009932073775147</Real>
+ <Real Name="YY">-3.5199107669621701</Real>
+ <Real Name="ZZ">0.029851178495422705</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009932101869376</Real>
+ <Real Name="YY">-4.5199107857141216</Real>
+ <Real Name="ZZ">0.029851187868588636</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009932129243241</Real>
+ <Real Name="YY">-5.5199108039852538</Real>
+ <Real Name="ZZ">0.029851197001416949</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009932155924094</Real>
+ <Real Name="YY">6.4800891782061738</Real>
+ <Real Name="ZZ">0.029851205903034445</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009932181937931</Real>
+ <Real Name="YY">5.4800891608428159</Real>
+ <Real Name="ZZ">0.029851214582111492</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009932207309443</Real>
+ <Real Name="YY">4.4800891439081836</Real>
+ <Real Name="ZZ">0.029851223046890342</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009932232062138</Real>
+ <Real Name="YY">3.4800891273865897</Real>
+ <Real Name="ZZ">0.029851231305211164</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009932256218388</Real>
+ <Real Name="YY">2.4800891112631076</Real>
+ <Real Name="ZZ">0.02985123936453633</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009932279799489</Real>
+ <Real Name="YY">1.4800890955235173</Real>
+ <Real Name="ZZ">0.029851247231972786</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099323028257379421</Real>
+ <Real Name="YY">0.48008908015427026</Real>
+ <Real Name="ZZ">0.029851254914293079</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099323253164934</Real>
+ <Real Name="YY">-0.51991093485755202</Real>
+ <Real Name="ZZ">0.029851262417954771</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099323472902202</Real>
+ <Real Name="YY">-1.5199109495242751</Real>
+ <Real Name="ZZ">0.029851269749118503</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099323687645443</Real>
+ <Real Name="YY">-2.5199109638576629</Real>
+ <Real Name="ZZ">0.029851276913664876</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099323897562993</Real>
+ <Real Name="YY">-3.5199109778689537</Real>
+ <Real Name="ZZ">0.029851283917210179</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099324102815697</Real>
+ <Real Name="YY">-4.5199109915688807</Real>
+ <Real Name="ZZ">0.029851290765121156</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099324303557378</Real>
+ <Real Name="YY">-5.5199110049677103</Real>
+ <Real Name="ZZ">0.029851297462528605</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099324499935092</Real>
+ <Real Name="YY">6.4800889819247374</Real>
+ <Real Name="ZZ">0.029851304014340246</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099324692089624</Real>
+ <Real Name="YY">5.4800889690990671</Real>
+ <Real Name="ZZ">0.029851310425252704</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099324880155756</Real>
+ <Real Name="YY">4.480088956546286</Real>
+ <Real Name="ZZ">0.029851316699762757</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009932506426262</Real>
+ <Real Name="YY">3.4800889442577732</Real>
+ <Real Name="ZZ">0.029851322842177855</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009932524453392</Real>
+ <Real Name="YY">2.480088932225271</Real>
+ <Real Name="ZZ">0.029851328856626006</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009932542108828</Real>
+ <Real Name="YY">1.4800889204408607</Real>
+ <Real Name="ZZ">0.029851334747064889</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.00993255940395</Real>
+ <Real Name="YY">0.48008890889694922</Real>
+ <Real Name="ZZ">0.029851340517290749</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009932576349676</Real>
+ <Real Name="YY">-0.51991110241375182</Real>
+ <Real Name="ZZ">0.029851346170946393</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009932592956485</Real>
+ <Real Name="YY">-1.519911113498239</Real>
+ <Real Name="ZZ">0.029851351711528893</Real>
+ </Atom>
+ </Sequence>
+ <Sequence Name="FinalVelocities">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.95822607576190366</Real>
+ <Real Name="YY">-1.9641293239067006</Real>
+ <Real Name="ZZ">2.9631494909258231</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.97314533441836704</Real>
+ <Real Name="YY">-1.9740934005992847</Real>
+ <Real Name="ZZ">2.9681292894493581</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.97811842063718746</Real>
+ <Real Name="YY">-1.9774147594968121</Real>
+ <Real Name="ZZ">2.9697892222905393</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98060496374659767</Real>
+ <Real Name="YY">-1.9790754389455758</Real>
+ <Real Name="ZZ">2.9706191887111291</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98209688961224395</Real>
+ <Real Name="YY">-1.9800718466148342</Real>
+ <Real Name="ZZ">2.9711171685634827</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98309150685600899</Real>
+ <Real Name="YY">-1.9807361183943397</Real>
+ <Real Name="ZZ">2.9714491551317161</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98380194774441132</Real>
+ <Real Name="YY">-1.9812105982368438</Real>
+ <Real Name="ZZ">2.971686288394745</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98433477841071371</Real>
+ <Real Name="YY">-1.9815664581187205</Real>
+ <Real Name="ZZ">2.9718641383420108</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98474920226228269</Real>
+ <Real Name="YY">-1.9818432380268491</Real>
+ <Real Name="ZZ">2.9720024660787798</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98508074134353718</Real>
+ <Real Name="YY">-1.9820646619533508</Real>
+ <Real Name="ZZ">2.9721131282681879</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98535200059183592</Real>
+ <Real Name="YY">-1.9822458269841234</Real>
+ <Real Name="ZZ">2.9722036700595287</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98557804996541931</Real>
+ <Real Name="YY">-1.9823967978431032</Real>
+ <Real Name="ZZ">2.9722791215523063</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98576932251229665</Real>
+ <Real Name="YY">-1.9825245424160847</Real>
+ <Real Name="ZZ">2.9723429651231239</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98593327040962053</Real>
+ <Real Name="YY">-1.9826340377643541</Real>
+ <Real Name="ZZ">2.9723976881838188</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98607535858730133</Real>
+ <Real Name="YY">-1.9827289337328557</Real>
+ <Real Name="ZZ">2.9724451148364253</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98619968574277161</Real>
+ <Real Name="YY">-1.9828119677052949</Real>
+ <Real Name="ZZ">2.9724866131574563</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98630938617406894</Real>
+ <Real Name="YY">-1.9828852329750919</Real>
+ <Real Name="ZZ">2.9725232293230675</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98640689766855616</Real>
+ <Real Name="YY">-1.9829503576593575</Real>
+ <Real Name="ZZ">2.9725557770258386</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98649414479520159</Real>
+ <Real Name="YY">-1.9830086271136995</Real>
+ <Real Name="ZZ">2.9725848986546279</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98657266720918346</Real>
+ <Real Name="YY">-1.9830610696226085</Real>
+ <Real Name="ZZ">2.9726111081205442</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98664371129802375</Real>
+ <Real Name="YY">-1.9831085176068584</Real>
+ <Real Name="ZZ">2.9726348214468481</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98670829683333328</Real>
+ <Real Name="YY">-1.9831516521379953</Real>
+ <Real Name="ZZ">2.9726563790162102</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98676726623513755</Real>
+ <Real Name="YY">-1.9831910358403373</Real>
+ <Real Name="ZZ">2.9726760620143304</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98682132152012403</Real>
+ <Real Name="YY">-1.9832271375674841</Real>
+ <Real Name="ZZ">2.9726941047626014</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98687105238231221</Real>
+ <Real Name="YY">-1.9832603511564595</Real>
+ <Real Name="ZZ">2.972710704091015</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98691695779356303</Real>
+ <Real Name="YY">-1.9832910098539758</Real>
+ <Real Name="ZZ">2.972726026548008</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98695946280398095</Real>
+ <Real Name="YY">-1.9833193975368604</Real>
+ <Real Name="ZZ">2.9727402140081924</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98699893174222497</Real>
+ <Real Name="YY">-1.9833457575281117</Real>
+ <Real Name="ZZ">2.9727533880783601</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98703567868472875</Real>
+ <Real Name="YY">-1.9833702995889295</Real>
+ <Real Name="ZZ">2.9727656535919653</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98706997583106548</Real>
+ <Real Name="YY">-1.9833932055123613</Real>
+ <Real Name="ZZ">2.9727771014046578</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98710206025828384</Real>
+ <Real Name="YY">-1.9834146336342811</Real>
+ <Real Name="ZZ">2.9727878106487986</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98713213940880074</Real>
+ <Real Name="YY">-1.98343472249858</Real>
+ <Real Name="ZZ">2.9727978505651746</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98716039558049806</Real>
+ <Real Name="YY">-1.9834535938559525</Real>
+ <Real Name="ZZ">2.9728072820017757</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98718698962444962</Real>
+ <Real Name="YY">-1.9834713551334804</Real>
+ <Real Name="ZZ">2.9728161586479827</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98721206400874617</Real>
+ <Real Name="YY">-1.983488101480863</Real>
+ <Real Name="ZZ">2.9728245280572656</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98723574537169279</Real>
+ <Real Name="YY">-1.9835039174756131</Real>
+ <Real Name="ZZ">2.9728324324993647</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98725814666096678</Real>
+ <Real Name="YY">-1.9835188785517266</Real>
+ <Real Name="ZZ">2.972839909674327</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98727936893501556</Real>
+ <Real Name="YY">-1.9835330522027843</Real>
+ <Real Name="ZZ">2.9728469933137629</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98729950288731849</Real>
+ <Real Name="YY">-1.9835464989999385</Real>
+ <Real Name="ZZ">2.9728537136896396</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98731863014200594</Real>
+ <Real Name="YY">-1.9835592734572367</Real>
+ <Real Name="ZZ">2.9728600980467208</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98733682435988024</Real>
+ <Real Name="YY">-1.9835714247702776</Real>
+ <Real Name="ZZ">2.9728661709717499</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98735415218642619</Real>
+ <Real Name="YY">-1.9835829974493628</Real>
+ <Real Name="ZZ">2.9728719547098725</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98737067406755197</Real>
+ <Real Name="YY">-1.9835940318643053</Real>
+ <Real Name="ZZ">2.9728774694369169</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98738644495408145</Real>
+ <Real Name="YY">-1.9836045647149323</Real>
+ <Real Name="ZZ">2.9728827334945542</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9874015149123202</Real>
+ <Real Name="YY">-1.9836146294388621</Real>
+ <Real Name="ZZ">2.9728877635940711</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98741592965498304</Real>
+ <Real Name="YY">-1.9836242565661024</Real>
+ <Real Name="ZZ">2.9728925749936121</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98742973100434139</Real>
+ <Real Name="YY">-1.9836334740283528</Real>
+ <Real Name="ZZ">2.9728971816527445</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98744295729747722</Real>
+ <Real Name="YY">-1.9836423074296752</Real>
+ <Real Name="ZZ">2.9729015963677523</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9874556437419123</Real>
+ <Real Name="YY">-1.9836507802840062</Real>
+ <Real Name="ZZ">2.9729058308903054</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9874678227285717</Real>
+ <Real Name="YY">-1.9836589142241632</Real>
+ <Real Name="ZZ">2.9729098960319549</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98747952410790929</Real>
+ <Real Name="YY">-1.9836667291862753</Real>
+ <Real Name="ZZ">2.9729138017562891</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98749077543419694</Real>
+ <Real Name="YY">-1.9836742435729222</Real>
+ <Real Name="ZZ">2.9729175572604518</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98750160218213345</Real>
+ <Real Name="YY">-1.9836814743978068</Real>
+ <Real Name="ZZ">2.9729211710474823</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98751202793940474</Real>
+ <Real Name="YY">-1.9836884374143637</Real>
+ <Real Name="ZZ">2.9729246509905427</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98752207457823127</Real>
+ <Real Name="YY">-1.9836951472303186</Real>
+ <Real Name="ZZ">2.9729280043902238</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98753176240852725</Real>
+ <Real Name="YY">-1.9837016174099882</Real>
+ <Real Name="ZZ">2.9729312380256263</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98754111031495317</Real>
+ <Real Name="YY">-1.9837078605658109</Real>
+ <Real Name="ZZ">2.9729343582001424</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98755013587977869</Real>
+ <Real Name="YY">-1.983713888440398</Real>
+ <Real Name="ZZ">2.9729373707824287</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98755885549325506</Real>
+ <Real Name="YY">-1.9837197119802543</Real>
+ <Real Name="ZZ">2.9729402812432855</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9875672844529475</Real>
+ <Real Name="YY">-1.9837253414021143</Real>
+ <Real Name="ZZ">2.972943094688778</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98757543705330653</Real>
+ <Real Name="YY">-1.9837307862527662</Real>
+ <Real Name="ZZ">2.9729458158901578</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98758332666655624</Real>
+ <Real Name="YY">-1.9837360554630727</Real>
+ <Real Name="ZZ">2.9729484493108465</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9875909658158939</Real>
+ <Real Name="YY">-1.9837411573968644</Real>
+ <Real Name="ZZ">2.972950999130882</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98759836624181496</Real>
+ <Real Name="YY">-1.9837460998952248</Real>
+ <Real Name="ZZ">2.9729534692690369</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98760553896232339</Real>
+ <Real Name="YY">-1.98375089031671</Real>
+ <Real Name="ZZ">2.9729558634029414</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98761249432766374</Real>
+ <Real Name="YY">-1.9837555355739096</Real>
+ <Real Name="ZZ">2.9729581849873363</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98761924207015883</Real>
+ <Real Name="YY">-1.9837600421667161</Real>
+ <Real Name="ZZ">2.9729604372707024</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98762579134963968</Real>
+ <Real Name="YY">-1.9837644162126729</Real>
+ <Real Name="ZZ">2.9729626233104423</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98763215079493183</Real>
+ <Real Name="YY">-1.9837686634746905</Real>
+ <Real Name="ZZ">2.972964745986709</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98763832854178801</Real>
+ <Real Name="YY">-1.9837727893863637</Real>
+ <Real Name="ZZ">2.9729668080150815</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9876443322676054</Real>
+ <Real Name="YY">-1.9837767990751753</Real>
+ <Real Name="ZZ">2.9729688119581481</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98765016922326065</Real>
+ <Real Name="YY">-1.9837806973837402</Real>
+ <Real Name="ZZ">2.9729707602361333</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98765584626232328</Real>
+ <Real Name="YY">-1.9837844888893301</Real>
+ <Real Name="ZZ">2.9729726551366364</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98766136986789765</Real>
+ <Real Name="YY">-1.9837881779217965</Real>
+ <Real Name="ZZ">2.9729744988236124</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98766674617732353</Real>
+ <Real Name="YY">-1.983791768580065</Real>
+ <Real Name="ZZ">2.9729762933456017</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98767198100492259</Real>
+ <Real Name="YY">-1.9837952647473247</Real>
+ <Real Name="ZZ">2.9729780406433308</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98767707986297304</Real>
+ <Real Name="YY">-1.9837986701050463</Real>
+ <Real Name="ZZ">2.9729797425567037</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98768204798107417</Real>
+ <Real Name="YY">-1.9838019881459041</Real>
+ <Real Name="ZZ">2.9729814008312663</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98768689032403356</Real>
+ <Real Name="YY">-1.9838052221857252</Real>
+ <Real Name="ZZ">2.9729830171242</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98769161160841767</Real>
+ <Real Name="YY">-1.983808375374553</Real>
+ <Real Name="ZZ">2.9729845930098082</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98769621631787974</Real>
+ <Real Name="YY">-1.9838114507068654</Real>
+ <Real Name="ZZ">2.9729861299846609</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98770070871735538</Real>
+ <Real Name="YY">-1.9838144510310738</Real>
+ <Real Name="ZZ">2.9729876294723216</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9877050928662402</Real>
+ <Real Name="YY">-1.9838173790583102</Real>
+ <Real Name="ZZ">2.9729890928277523</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98770937263062841</Real>
+ <Real Name="YY">-1.9838202373706157</Real>
+ <Real Name="ZZ">2.972990521341385</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.987713551694678</Real>
+ <Real Name="YY">-1.9838230284285112</Real>
+ <Real Name="ZZ">2.9729919162429308</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98771763357119124</Real>
+ <Real Name="YY">-1.9838257545780857</Real>
+ <Real Name="ZZ">2.9729932787049074</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98772162161146226</Real>
+ <Real Name="YY">-1.9838284180575536</Real>
+ <Real Name="ZZ">2.9729946098459199</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98772551901445549</Real>
+ <Real Name="YY">-1.9838310210033985</Real>
+ <Real Name="ZZ">2.9729959107337276</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98772932883535847</Real>
+ <Real Name="YY">-1.9838335654560793</Real>
+ <Real Name="ZZ">2.9729971823880983</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98773305399357469</Real>
+ <Real Name="YY">-1.9838360533653658</Real>
+ <Real Name="ZZ">2.9729984257834832</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98773669728018154</Real>
+ <Real Name="YY">-1.9838384865953256</Real>
+ <Real Name="ZZ">2.9729996418514992</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98774026136490678</Real>
+ <Real Name="YY">-1.9838408669289858</Real>
+ <Real Name="ZZ">2.9730008314832568</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98774374880264781</Real>
+ <Real Name="YY">-1.9838431960726708</Real>
+ <Real Name="ZZ">2.9730019955315328</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98774716203958612</Real>
+ <Real Name="YY">-1.9838454756601109</Real>
+ <Real Name="ZZ">2.9730031348128212</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98775050341890447</Real>
+ <Real Name="YY">-1.9838477072562335</Real>
+ <Real Name="ZZ">2.9730042501092413</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98775377518615293</Real>
+ <Real Name="YY">-1.9838498923607712</Real>
+ <Real Name="ZZ">2.9730053421703242</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98775697949428398</Real>
+ <Real Name="YY">-1.9838520324116071</Real>
+ <Real Name="ZZ">2.9730064117146795</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98776011840837097</Real>
+ <Real Name="YY">-1.9838541287879363</Real>
+ <Real Name="ZZ">2.9730074594316016</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9877631939100523</Real>
+ <Real Name="YY">-1.9838561828132291</Real>
+ <Real Name="ZZ">2.9730084859825245</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98776620790170055</Real>
+ <Real Name="YY">-1.9838581957580159</Real>
+ <Real Name="ZZ">2.9730094920024248</Real>
+ </Atom>
+ </Sequence>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Sequence Name="FinalPositions">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.0057019616063928294</Real>
+ <Real Name="YY">6.4884071048988634</Real>
+ <Real Name="ZZ">0.017462904521775045</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0035021509164852</Real>
+ <Real Name="YY">5.4929181342160858</Real>
+ <Real Name="ZZ">0.010649829479888484</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0057844575448498</Real>
+ <Real Name="YY">4.4883520485472008</Real>
+ <Real Name="ZZ">0.017490425310883208</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0035261932786588</Real>
+ <Real Name="YY">3.4929020908303219</Real>
+ <Real Name="ZZ">0.010657849278678317</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0058009567325419</Real>
+ <Real Name="YY">2.4883410372768688</Real>
+ <Real Name="ZZ">0.017495929468704846</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0035342073993831</Real>
+ <Real Name="YY">1.4928967430350684</Real>
+ <Real Name="ZZ">0.010660522544941599</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0058080278129813</Real>
+ <Real Name="YY">0.48833631816101164</Real>
+ <Real Name="ZZ">0.017498288393485537</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0035382144597458</Real>
+ <Real Name="YY">-0.50710593086255873</Real>
+ <Real Name="ZZ">0.010661859178073238</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0058119561909997</Real>
+ <Real Name="YY">-1.5116663035700197</Real>
+ <Real Name="ZZ">0.017499598907252594</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.003540618695963</Real>
+ <Real Name="YY">-2.5071075352011349</Real>
+ <Real Name="ZZ">0.010662661157952225</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.005814456067927</Real>
+ <Real Name="YY">-3.5116679719443131</Real>
+ <Real Name="ZZ">0.017500432870558903</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.003542221520108</Real>
+ <Real Name="YY">-4.5071086047601847</Real>
+ <Real Name="ZZ">0.010663195811204878</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.005816186751947</Real>
+ <Real Name="YY">-5.5116691269726701</Real>
+ <Real Name="ZZ">0.01750101022977096</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.003543366394496</Real>
+ <Real Name="YY">6.4928906312690637</Real>
+ <Real Name="ZZ">0.010663577706385345</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.005817455920232</Real>
+ <Real Name="YY">5.4883300260065377</Real>
+ <Real Name="ZZ">0.017501433626526477</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.003544225050288</Real>
+ <Real Name="YY">4.4928900582910005</Real>
+ <Real Name="ZZ">0.010663864127770695</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.005818426460682</Real>
+ <Real Name="YY">3.4883293782847518</Real>
+ <Real Name="ZZ">0.017501757400515985</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.003544892893679</Real>
+ <Real Name="YY">2.4928896126413962</Real>
+ <Real Name="ZZ">0.010664086899959303</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.005819192676825</Real>
+ <Real Name="YY">1.4883288669254482</Real>
+ <Real Name="ZZ">0.017502013011560329</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.003545427168397</Real>
+ <Real Name="YY">0.49288925612171247</Real>
+ <Real Name="ZZ">0.010664265117710188</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.005819812947053</Real>
+ <Real Name="YY">-0.51167154703208295</Real>
+ <Real Name="ZZ">0.017502219934786702</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.003545864302256022</Real>
+ <Real Name="YY">-1.5071110355762105</Real>
+ <Real Name="ZZ">0.010664410932233642</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0058203253441789</Real>
+ <Real Name="YY">-2.5116718889969998</Real>
+ <Real Name="ZZ">0.017502390871365018</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.003546228580471</Real>
+ <Real Name="YY">-3.5071112786578134</Real>
+ <Real Name="ZZ">0.010664532444336518</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.005820755757771</Real>
+ <Real Name="YY">-4.5116721762475311</Real>
+ <Real Name="ZZ">0.017502534458090798</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0035465368158833</Real>
+ <Real Name="YY">-5.5071114843422455</Real>
+ <Real Name="ZZ">0.01066463526226972</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0058211224063855</Real>
+ <Real Name="YY">6.4883275790575725</Real>
+ <Real Name="ZZ">0.017502656772709058</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0035468010176647</Real>
+ <Real Name="YY">5.4928883393568126</Real>
+ <Real Name="ZZ">0.010664723391926749</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0058214384827782</Real>
+ <Real Name="YY">4.4883273681136968</Real>
+ <Real Name="ZZ">0.017502762216345492</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0035470299925429</Real>
+ <Real Name="YY">3.492888186562662</Real>
+ <Real Name="ZZ">0.010664799770962845</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0058217137751182</Real>
+ <Real Name="YY">2.4883271843883863</Real>
+ <Real Name="ZZ">0.017502854054351411</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.003547230345561</Real>
+ <Real Name="YY">1.4928880528677804</Real>
+ <Real Name="ZZ">0.010664866602619425</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.005821955698694</Real>
+ <Real Name="YY">0.48832702293280889</Real>
+ <Real Name="ZZ">0.017502934760477831</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.003547407127636</Real>
+ <Real Name="YY">-0.50711206509829143</Real>
+ <Real Name="ZZ">0.010664925571728176</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.005822169973859</Real>
+ <Real Name="YY">-1.5116731200707019</Real>
+ <Real Name="ZZ">0.017503006243046938</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.003547564267258</Real>
+ <Real Name="YY">-2.5071121699570211</Real>
+ <Real Name="ZZ">0.010664977988713732</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.005822361084141</Real>
+ <Real Name="YY">-3.5116732476143739</Real>
+ <Real Name="ZZ">0.017503069997770741</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.00354770486587</Real>
+ <Real Name="YY">-4.5071122637779908</Real>
+ <Real Name="ZZ">0.010665024888121856</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.005822532593371</Real>
+ <Real Name="YY">-5.5116733620766425</Real>
+ <Real Name="ZZ">0.017503127213548512</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.003547831404614</Real>
+ <Real Name="YY">6.4928876517831355</Real>
+ <Real Name="ZZ">0.01066506709758917</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.005822687369992</Real>
+ <Real Name="YY">5.488326534628138</Real>
+ <Real Name="ZZ">0.017503178847299183</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.003547945892056</Real>
+ <Real Name="YY">4.4928875753860602</Real>
+ <Real Name="ZZ">0.010665105287107218</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0058228277487832446</Real>
+ <Real Name="YY">3.4883264409417762</Real>
+ <Real Name="ZZ">0.01750322567791026</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.003548049971545</Real>
+ <Real Name="YY">2.4928875059341746</Real>
+ <Real Name="ZZ">0.010665140004850899</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0058229556494633</Real>
+ <Real Name="YY">1.4883263555830917</Real>
+ <Real Name="ZZ">0.017503268345800349</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0035481450006443</Real>
+ <Real Name="YY">0.4928874425215829</Real>
+ <Real Name="ZZ">0.010665171703660345</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0058230726649784</Real>
+ <Real Name="YY">-0.51167372251102394</Real>
+ <Real Name="ZZ">0.017503307382380644</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.003548232110651</Real>
+ <Real Name="YY">-1.5071126156066263</Real>
+ <Real Name="ZZ">0.010665200760902337</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0058231801282069</Real>
+ <Real Name="YY">-2.5116737942301097</Real>
+ <Real Name="ZZ">0.017503343232301325</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0035483122518585</Real>
+ <Real Name="YY">-3.5071126690845786</Real>
+ <Real Name="ZZ">0.010665227493564968</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0058232791629447</Real>
+ <Real Name="YY">-4.5116738603241693</Real>
+ <Real Name="ZZ">0.017503376270463524</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0035483862283581</Real>
+ <Real Name="YY">-5.507112718448842</Real>
+ <Real Name="ZZ">0.010665252169868937</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.005823370723366</Real>
+ <Real Name="YY">6.4883260785700001</Real>
+ <Real Name="ZZ">0.01750340681517951</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.003548454725118</Real>
+ <Real Name="YY">5.492887235843507</Real>
+ <Real Name="ZZ">0.010665275018298535</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.005823455624846</Real>
+ <Real Name="YY">4.4883260219082333</Real>
+ <Real Name="ZZ">0.017503435138461608</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.00354851832925</Real>
+ <Real Name="YY">3.4928871934006858</Real>
+ <Real Name="ZZ">0.010665296234697455</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.005823534568329</Real>
+ <Real Name="YY">2.4883259692227289</Real>
+ <Real Name="ZZ">0.017503461474144971</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.003548577546891</Real>
+ <Real Name="YY">1.4928871538849573</Real>
+ <Real Name="ZZ">0.01066531598789644</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.005823608159705</Real>
+ <Real Name="YY">0.48832592010912385</Real>
+ <Real Name="ZZ">0.017503486024358268</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.003548632816688</Real>
+ <Real Name="YY">-0.50711288299638924</Real>
+ <Real Name="ZZ">0.0106653344242155</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.005823676925424</Real>
+ <Real Name="YY">-1.511674125783917</Real>
+ <Real Name="ZZ">0.017503508964721519</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.003548684520698</Real>
+ <Real Name="YY">-2.5071129174982936</Real>
+ <Real Name="ZZ">0.010665351671094616</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.00582374132507</Real>
+ <Real Name="YY">-3.5116741687631143</Real>
+ <Real Name="ZZ">0.01750353044855376</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0035487329931972178</Real>
+ <Real Name="YY">-4.5071129498438296</Real>
+ <Real Name="ZZ">0.01066536784004379</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0058238017616521</Real>
+ <Real Name="YY">-5.5116742090974391</Real>
+ <Real Name="ZZ">0.017503550610304026</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0035487785279744</Real>
+ <Real Name="YY">6.4928870197709703</Real>
+ <Real Name="ZZ">0.010665383029056648</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0058238585900825</Real>
+ <Real Name="YY">5.4883257529762579</Real>
+ <Real Name="ZZ">0.017503569568367704</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0035488213842347</Real>
+ <Real Name="YY">4.4928869911731342</Real>
+ <Real Name="ZZ">0.010665397324598168</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0058239121241108</Real>
+ <Real Name="YY">3.4883257172485798</Real>
+ <Real Name="ZZ">0.017503587427413196</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0035488617915664</Real>
+ <Real Name="YY">2.4928869642094607</Real>
+ <Real Name="ZZ">0.010665410803251594</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0058239626421388</Real>
+ <Real Name="YY">1.4883256835337288</Real>
+ <Real Name="ZZ">0.017503604280315284</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0035488999540476</Real>
+ <Real Name="YY">0.49288693874376904</Real>
+ <Real Name="ZZ">0.010665423533090941</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0058240103920557</Real>
+ <Real Name="YY">-0.51167434833373315</Real>
+ <Real Name="ZZ">0.017503620209770684</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.00354893605369</Real>
+ <Real Name="YY">-1.5071130853453987</Real>
+ <Real Name="ZZ">0.010665435574830868</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.005824055595308</Real>
+ <Real Name="YY">-2.5116743785015969</Real>
+ <Real Name="ZZ">0.017503635289655133</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.003548970253348</Real>
+ <Real Name="YY">-3.507113108166716</Real>
+ <Real Name="ZZ">0.010665446982795005</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.005824098450342</Real>
+ <Real Name="YY">-4.5116744071022987</Real>
+ <Real Name="ZZ">0.017503649586168946</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.003549002699183</Real>
+ <Real Name="YY">-5.507113129817709</Real>
+ <Real Name="ZZ">0.010665457805735339</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.005824139135502</Real>
+ <Real Name="YY">6.488325565745134</Real>
+ <Real Name="ZZ">0.017503663158808656</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.003549033522724</Real>
+ <Real Name="YY">5.4928868496138481</Real>
+ <Real Name="ZZ">0.010665468087528662</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.005824177811512</Real>
+ <Real Name="YY">4.4883255399334381</Real>
+ <Real Name="ZZ">0.017503676061194545</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.00354906284268</Real>
+ <Real Name="YY">3.4928868300487435</Real>
+ <Real Name="ZZ">0.010665477867771091</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.005824214623626</Real>
+ <Real Name="YY">2.4883255153656774</Real>
+ <Real Name="ZZ">0.017503688341778709</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.003549090766452</Real>
+ <Real Name="YY">1.4928868114153104</Real>
+ <Real Name="ZZ">0.010665487182287684</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0058242497033996034</Real>
+ <Real Name="YY">0.48832549195404612</Real>
+ <Real Name="ZZ">0.017503700044453032</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0035491173914302</Real>
+ <Real Name="YY">-0.5071132063514513</Real>
+ <Real Name="ZZ">0.010665496063570954</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0058242831703121</Real>
+ <Real Name="YY">-1.5116745303811876</Real>
+ <Real Name="ZZ">0.017503711209073358</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0035491428061887</Real>
+ <Real Name="YY">-2.5071132233106326</Real>
+ <Real Name="ZZ">0.010665504541159524</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0058243151330917</Real>
+ <Real Name="YY">-3.5116745517125914</Real>
+ <Real Name="ZZ">0.017503721871912993</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0035491670914043</Real>
+ <Real Name="YY">-4.5071132395160731</Real>
+ <Real Name="ZZ">0.010665512641966385</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0058243456909173</Real>
+ <Real Name="YY">-5.51167457210635</Real>
+ <Real Name="ZZ">0.017503732066056384</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0035491903207383</Real>
+ <Real Name="YY">6.4928867449830721</Real>
+ <Real Name="ZZ">0.010665520390564249</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0058243749344236</Real>
+ <Real Name="YY">5.4883254083770412</Real>
+ <Real Name="ZZ">0.017503741821741997</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.003549212561591</Real>
+ <Real Name="YY">4.4928867301418265</Real>
+ <Real Name="ZZ">0.010665527809434546</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.005824402946629</Real>
+ <Real Name="YY">3.4883253896821858</Real>
+ <Real Name="ZZ">0.017503751166661898</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.003549233875745</Real>
+ <Real Name="YY">2.4928867159189667</Real>
+ <Real Name="ZZ">0.010665534919185243</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.005824429803692</Real>
+ <Real Name="YY">1.4883253717582512</Real>
+ <Real Name="ZZ">0.017503760126224278</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.003549254319926</Real>
+ <Real Name="YY">0.49288670227663189</Real>
+ <Real Name="ZZ">0.010665541738742039</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.005824455575617</Real>
+ <Real Name="YY">-0.51167464544148389</Real>
+ <Real Name="ZZ">0.017503768723784133</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.003549273946343</Real>
+ <Real Name="YY">-1.5071133108200094</Real>
+ <Real Name="ZZ">0.010665548285516562</Real>
+ </Atom>
+ </Sequence>
+ <Sequence Name="FinalVelocities">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.32461224458505333</Real>
+ <Real Name="YY">-0.67819859186547571</Real>
+ <Real Name="ZZ">1.029132392117561</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.099107706063012557</Real>
+ <Real Name="YY">-0.20815984808548729</Real>
+ <Real Name="ZZ">0.31629240081392035</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.33757554123409256</Real>
+ <Real Name="YY">-0.68685478969215896</Real>
+ <Real Name="ZZ">1.0334587396269068</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10244105199519188</Real>
+ <Real Name="YY">-0.21038518359457126</Real>
+ <Real Name="ZZ">0.31740468015708434</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34016820056390046</Real>
+ <Real Name="YY">-0.68858602925749546</Real>
+ <Real Name="ZZ">1.034324009128776</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10355216730591829</Real>
+ <Real Name="YY">-0.21112696209759929</Real>
+ <Real Name="ZZ">0.317775439938139</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34127934027667522</Real>
+ <Real Name="YY">-0.68932798907121129</Real>
+ <Real Name="ZZ">1.034694838915291</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10410772496128151</Real>
+ <Real Name="YY">-0.21149785134911336</Real>
+ <Real Name="ZZ">0.31796081982866631</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34189664011710563</Real>
+ <Real Name="YY">-0.68974018896772027</Real>
+ <Real Name="ZZ">1.0349008554633548</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10444105955449941</Real>
+ <Real Name="YY">-0.21172038490002176</Real>
+ <Real Name="ZZ">0.31807204776298292</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.3422894672882888</Real>
+ <Real Name="YY">-0.69000249799277091</Real>
+ <Real Name="ZZ">1.0350319569030322</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10466328261664469</Real>
+ <Real Name="YY">-0.21186874060062735</Real>
+ <Real Name="ZZ">0.31814619971919372</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34256142456064609</Real>
+ <Real Name="YY">-0.6901840965485756</Real>
+ <Real Name="ZZ">1.0351227194381933</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10482201337531996</Real>
+ <Real Name="YY">-0.21197470895820283</Real>
+ <Real Name="ZZ">0.31819916540220156</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.3427608598937083</Real>
+ <Real Name="YY">-0.69031726882283218</Real>
+ <Real Name="ZZ">1.0351892786306451</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10494106144432637</Real>
+ <Real Name="YY">-0.21205418522638442</Real>
+ <Real Name="ZZ">0.31823888966445735</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34291336926604993</Real>
+ <Real Name="YY">-0.69041910644432258</Real>
+ <Real Name="ZZ">1.0352401768366373</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10503365438688685</Real>
+ <Real Name="YY">-0.21211600010163678</Real>
+ <Real Name="ZZ">0.31826978631287861</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.343033771402109</Real>
+ <Real Name="YY">-0.69049950456655174</Real>
+ <Real Name="ZZ">1.0352803596308413</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10510772874093527</Real>
+ <Real Name="YY">-0.21216545200183862</Real>
+ <Real Name="ZZ">0.31829450363161549</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34313123979796645</Real>
+ <Real Name="YY">-0.69056458876073745</Real>
+ <Real Name="ZZ">1.0353128885594829</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10516833503061128</Real>
+ <Real Name="YY">-0.21220591264745828</Real>
+ <Real Name="ZZ">0.31831472689240031</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34321175716845753</Real>
+ <Real Name="YY">-0.69061835396462967</Real>
+ <Real Name="ZZ">1.0353397602831438</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10521884027200792</Real>
+ <Real Name="YY">-0.21223962985214137</Real>
+ <Real Name="ZZ">0.31833157960972103</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34327939175966987</Real>
+ <Real Name="YY">-0.69066351673589954</Real>
+ <Real Name="ZZ">1.0353623325310186</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10526157547626665</Real>
+ <Real Name="YY">-0.21226815979456559</Real>
+ <Real Name="ZZ">0.31834583960130003</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34333700641144344</Real>
+ <Real Name="YY">-0.69070198872624022</Real>
+ <Real Name="ZZ">1.035381560742171</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10529820565134553</Real>
+ <Real Name="YY">-0.21229261403092922</Real>
+ <Real Name="ZZ">0.31835806245122494</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34338667421469632</Real>
+ <Real Name="YY">-0.69073515423515486</Real>
+ <Real Name="ZZ">1.0353981367862684</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10532995180308061</Real>
+ <Real Name="YY">-0.21231380770244426</Real>
+ <Real Name="ZZ">0.31836865558782657</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34342993326914256</Real>
+ <Real Name="YY">-0.69076404032356409</Real>
+ <Real Name="ZZ">1.0354125739859656</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10535772968584874</Real>
+ <Real Name="YY">-0.21233235216501992</Real>
+ <Real Name="ZZ">0.31837792458235276</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34346794880183773</Real>
+ <Real Name="YY">-0.69078942506792407</Real>
+ <Real Name="ZZ">1.035425261222064</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10538223958240887</Real>
+ <Real Name="YY">-0.21234871492611604</Real>
+ <Real Name="ZZ">0.31838610310693494</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34350161970222487</Real>
+ <Real Name="YY">-0.69081190869864262</Real>
+ <Real Name="ZZ">1.0354364984883215</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10540402615712896</Real>
+ <Real Name="YY">-0.2123632596026461</Real>
+ <Real Name="ZZ">0.3183933729065635</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34353165050527268</Real>
+ <Real Name="YY">-0.6908319616665809</Real>
+ <Real Name="ZZ">1.0354465209149841</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10542351940819443</Real>
+ <Real Name="YY">-0.21237627326059394</Real>
+ <Real Name="ZZ">0.31839987746412585</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34355860122595688</Real>
+ <Real Name="YY">-0.69084995791985881</Real>
+ <Real Name="ZZ">1.0354555154004506</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10544106333415322</Real>
+ <Real Name="YY">-0.21238798555274702</Real>
+ <Real Name="ZZ">0.31840573156593199</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34358292260803769</Real>
+ <Real Name="YY">-0.69086619844110986</Real>
+ <Real Name="ZZ">1.0354636323751398</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10545693641002074</Real>
+ <Real Name="YY">-0.21239858238850454</Real>
+ <Real Name="ZZ">0.31841102813423267</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34360498153597124</Real>
+ <Real Name="YY">-0.69088092821619762</Real>
+ <Real Name="ZZ">1.0354709942824163</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10547136647899123</Real>
+ <Real Name="YY">-0.21240821587555692</Real>
+ <Real Name="ZZ">0.31841584319632443</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34362507967031086</Real>
+ <Real Name="YY">-0.69089434867794419</Real>
+ <Real Name="ZZ">1.035477701797934</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10548454175935554</Real>
+ <Real Name="YY">-0.21241701166808274</Real>
+ <Real Name="ZZ">0.31842023955736448</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34364346732513223</Real>
+ <Real Name="YY">-0.69090662697273397</Real>
+ <Real Name="ZZ">1.0354838384610685</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10549661909968956</Real>
+ <Real Name="YY">-0.21242507447789841</Real>
+ <Real Name="ZZ">0.31842426955498465</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.3436603539469068</Real>
+ <Real Name="YY">-0.69091790295774491</Real>
+ <Real Name="ZZ">1.0354894741721097</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10550773025279678</Real>
+ <Real Name="YY">-0.21243249226292868</Real>
+ <Real Name="ZZ">0.31842797715279508</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34367591612775805</Real>
+ <Real Name="YY">-0.69092829455177474</Real>
+ <Real Name="ZZ">1.0354946678665986</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10551798670181889</Real>
+ <Real Name="YY">-0.21243933944911053</Real>
+ <Real Name="ZZ">0.31843139955077426</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34369030380439419</Real>
+ <Real Name="YY">-0.69093790187455661</Real>
+ <Real Name="ZZ">1.0354994695841446</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10552748341387638</Real>
+ <Real Name="YY">-0.21244567943631595</Real>
+ <Real Name="ZZ">0.31843456843779178</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34370364510454754</Real>
+ <Real Name="YY">-0.6909468104829547</Real>
+ <Real Name="ZZ">1.0355039220858697</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10553630178935831</Real>
+ <Real Name="YY">-0.21245156656729222</Real>
+ <Real Name="ZZ">0.31843751097573664</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34371605017311113</Real>
+ <Real Name="YY">-0.69095509392585086</Real>
+ <Real Name="ZZ">1.0355080621313333</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10554451200101396</Real>
+ <Real Name="YY">-0.21245704768923587</Real>
+ <Real Name="ZZ">0.31844025058003012</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34372761422007725</Real>
+ <Real Name="YY">-0.69096281577939844</Real>
+ <Real Name="ZZ">1.0355119214957484</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10555217486522583</Real>
+ <Real Name="YY">-0.21246216340304983</Real>
+ <Real Name="ZZ">0.31844280754403748</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34373841996888171</Real>
+ <Real Name="YY">-0.6909700312818936</Real>
+ <Real Name="ZZ">1.0355155277870878</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10555934335110158</Real>
+ <Real Name="YY">-0.21246694907081129</Real>
+ <Real Name="ZZ">0.31844519954262485</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34374853963839691</Real>
+ <Real Name="YY">-0.69097678865724599</Real>
+ <Real Name="ZZ">1.0355189051075473</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10556606380660995</Real>
+ <Real Name="YY">-0.21247143563433776</Real>
+ <Real Name="ZZ">0.3184474420413006</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34375803655901893</Real>
+ <Real Name="YY">-0.6909831301941155</Real>
+ <Real Name="ZZ">1.0355220745929024</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10557237696178452</Real>
+ <Real Name="YY">-0.21247565028492307</Real>
+ <Real Name="ZZ">0.31844954863096564</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34376696649930538</Real>
+ <Real Name="YY">-0.69098909313176893</Real>
+ <Real Name="ZZ">1.0355250548552506</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10557831875488999</Real>
+ <Real Name="YY">-0.21247961701488574</Real>
+ <Real Name="ZZ">0.31845153130359166</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34377537876189401</Real>
+ <Real Name="YY">-0.69099471039187677</Real>
+ <Real Name="ZZ">1.0355278623487671</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10558392101696092</Real>
+ <Real Name="YY">-0.21248335707456492</Real>
+ <Real Name="ZZ">0.31845340068063882</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34378331709419596</Real>
+ <Real Name="YY">-0.69100001118662713</Real>
+ <Real Name="ZZ">1.0355305116736353</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10558921204225009</Real>
+ <Real Name="YY">-0.2124868893531508</Real>
+ <Real Name="ZZ">0.31845516620340586</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34379082044938541</Real>
+ <Real Name="YY">-0.69100502152686993</Real>
+ <Real Name="ZZ">1.0355330158300173</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10559421706617222</Real>
+ <Real Name="YY">-0.21249023069775902</Real>
+ <Real Name="ZZ">0.31845683629250982</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.3437979236256315</Real>
+ <Real Name="YY">-0.69100976464896691</Real>
+ <Real Name="ZZ">1.0355353864313928</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10559895866778278</Real>
+ <Real Name="YY">-0.21249339618212465</Real>
+ <Real Name="ZZ">0.31845841848218714</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34380465780570885</Real>
+ <Real Name="YY">-0.69101426137511057</Real>
+ <Real Name="ZZ">1.035537633884644</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10560345711033631</Real>
+ <Real Name="YY">-0.21249639933395886</Real>
+ <Real Name="ZZ">0.31845991953393221</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34381105101464315</Real>
+ <Real Name="YY">-0.69101853041891781</Real>
+ <Real Name="ZZ">1.0355397675427944</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10560773063076218</Real>
+ <Real Name="YY">-0.21249925232820124</Real>
+ <Real Name="ZZ">0.31846134553309013</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34381712850955581</Real>
+ <Real Name="YY">-0.69102258864574717</Real>
+ <Real Name="ZZ">1.0355417958351099</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10561179568677703</Real>
+ <Real Name="YY">-0.21250196615199282</Real>
+ <Real Name="ZZ">0.31846270197131354</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34382291311314761</Real>
+ <Real Name="YY">-0.69102645129537954</Real>
+ <Real Name="ZZ">1.0355437263783984</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10561566716869596</Real>
+ <Real Name="YY">-0.21250455074608002</Real>
+ <Real Name="ZZ">0.3184639938172405</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34382842550009962</Real>
+ <Real Name="YY">-0.69103013217326481</Real>
+ <Real Name="ZZ">1.035545566072591</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10561935858168837</Real>
+ <Real Name="YY">-0.21250701512648867</Real>
+ <Real Name="ZZ">0.31846522557731044</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34383368444397372</Real>
+ <Real Name="YY">-0.69103364381538523</Real>
+ <Real Name="ZZ">1.0355473211831425</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10562288220318121</Real>
+ <Real Name="YY">-0.21250936748960619</Real>
+ <Real Name="ZZ">0.31846640134828635</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34383870703081926</Real>
+ <Real Name="YY">-0.69103699763089343</Real>
+ <Real Name="ZZ">1.0355489974123209</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.1056262492192743</Real>
+ <Real Name="YY">-0.21251161530325169</Real>
+ <Real Name="ZZ">0.31846752486277441</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.3438435088446169</Real>
+ <Real Name="YY">-0.6910402040259398</Real>
+ <Real Name="ZZ">1.0355505999610959</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10562946984336337</Real>
+ <Real Name="YY">-0.21251376538586914</Real>
+ <Real Name="ZZ">0.31846859952880641</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34384810412878897</Real>
+ <Real Name="YY">-0.69104327251152131</Real>
+ <Real Name="ZZ">1.0355521335830415</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10563255341961887</Real>
+ <Real Name="YY">-0.21251582397560939</Real>
+ <Real Name="ZZ">0.31846962846436905</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34385250592731154</Real>
+ <Real Name="YY">-0.69104621179771086</Real>
+ <Real Name="ZZ">1.0355536026314318</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10563550851353033</Real>
+ <Real Name="YY">-0.21251779679077695</Real>
+ <Real Name="ZZ">0.31847061452761644</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34385672620836932</Real>
+ <Real Name="YY">-0.69104902987622197</Real>
+ <Real Name="ZZ">1.0355550111005072</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10563834299136383</Real>
+ <Real Name="YY">-0.21251968908287652</Real>
+ <Real Name="ZZ">0.31847156034338453</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.34386077597302078</Real>
+ <Real Name="YY">-0.69105173409297516</Real>
+ <Real Name="ZZ">1.0355563626617408</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.10564106409008397</Real>
+ <Real Name="YY">-0.21252150568329203</Real>
+ <Real Name="ZZ">0.31847246832652182</Real>
+ </Atom>
+ </Sequence>
+</ReferenceData>
--- /dev/null
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="referencedata.xsl"?>
+<ReferenceData>
+ <Sequence Name="FinalPositions">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.0097709377639719052</Real>
+ <Real Name="YY">6.4801960028847807</Real>
+ <Real Name="ZZ">0.02979960790982205</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0098531465720018</Real>
+ <Real Name="YY">5.4801411323638627</Real>
+ <Real Name="ZZ">0.029827035086337512</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0098805495080123</Real>
+ <Real Name="YY">4.4801228421902231</Real>
+ <Real Name="ZZ">0.029836177478509356</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0098942509760169</Real>
+ <Real Name="YY">3.4801136971034032</Real>
+ <Real Name="ZZ">0.029840748674595269</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099024718568197</Real>
+ <Real Name="YY">2.480108210051311</Real>
+ <Real Name="ZZ">0.029843491392246811</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099079524440224</Real>
+ <Real Name="YY">1.4801045520165834</Real>
+ <Real Name="ZZ">0.029845319870681165</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099118671491674</Real>
+ <Real Name="YY">0.48010193913463506</Real>
+ <Real Name="ZZ">0.029846625926705728</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099148031780247</Real>
+ <Real Name="YY">-0.51990002052682627</Real>
+ <Real Name="ZZ">0.029847605468724128</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099170867560261</Real>
+ <Real Name="YY">-1.5199015447079631</Real>
+ <Real Name="ZZ">0.029848367334738463</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099189136184261</Real>
+ <Real Name="YY">-2.5199027640528726</Real>
+ <Real Name="ZZ">0.029848976827549899</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009920408324026</Real>
+ <Real Name="YY">-3.5199037616987083</Real>
+ <Real Name="ZZ">0.029849475503486558</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009921653912027</Real>
+ <Real Name="YY">-4.519904593070236</Real>
+ <Real Name="ZZ">0.029849891066767088</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009922707871105</Real>
+ <Real Name="YY">-5.5199052965384539</Real>
+ <Real Name="ZZ">0.029850242697235248</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009923611264599</Real>
+ <Real Name="YY">6.48009410048879</Real>
+ <Real Name="ZZ">0.029850544094779354</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.00992439420563</Real>
+ <Real Name="YY">5.4800935779123989</Real>
+ <Real Name="ZZ">0.029850805305984267</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009925079279029</Real>
+ <Real Name="YY">4.4800931206580588</Real>
+ <Real Name="ZZ">0.029851033865788572</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009925683755558</Real>
+ <Real Name="YY">3.4800927171983451</Real>
+ <Real Name="ZZ">0.029851235536204109</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009926221068028</Real>
+ <Real Name="YY">2.4800923585674908</Real>
+ <Real Name="ZZ">0.029851414798795727</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009926701821293</Real>
+ <Real Name="YY">1.4800920376872515</Real>
+ <Real Name="ZZ">0.029851575191640837</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009927134499225</Real>
+ <Real Name="YY">0.48009174889503592</Real>
+ <Real Name="ZZ">0.029851719545201459</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009927525969744</Real>
+ <Real Name="YY">-0.51990851239315916</Real>
+ <Real Name="ZZ">0.029851850150803917</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099278818520292696</Real>
+ <Real Name="YY">-1.5199087499278816</Real>
+ <Real Name="ZZ">0.02985196888316977</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099282067880293</Real>
+ <Real Name="YY">-2.5199089668074111</Real>
+ <Real Name="ZZ">0.029852077290982101</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099285046460293</Real>
+ <Real Name="YY">-3.5199091656136461</Real>
+ <Real Name="ZZ">0.029852176664810041</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099287786753899</Real>
+ <Real Name="YY">-4.519909348515383</Real>
+ <Real Name="ZZ">0.029852268088731773</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099290316255685</Real>
+ <Real Name="YY">-5.519909517347755</Real>
+ <Real Name="ZZ">0.029852352480044107</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099292658386965</Real>
+ <Real Name="YY">6.4800903263259766</Real>
+ <Real Name="ZZ">0.029852430620148161</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099294833223169</Real>
+ <Real Name="YY">5.4800901811658669</Real>
+ <Real Name="ZZ">0.029852503178816193</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099296858070632</Real>
+ <Real Name="YY">4.4800900460168007</Real>
+ <Real Name="ZZ">0.029852570733438152</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099298747928298</Real>
+ <Real Name="YY">3.4800899198776718</Real>
+ <Real Name="ZZ">0.029852633784418624</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099300515859646</Real>
+ <Real Name="YY">2.4800898018765518</Real>
+ <Real Name="ZZ">0.029852692767593943</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009930217329526</Real>
+ <Real Name="YY">1.4800896912505015</Real>
+ <Real Name="ZZ">0.02985274806432078</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009930373028029</Real>
+ <Real Name="YY">0.48008958732906026</Real>
+ <Real Name="ZZ">0.029852800009730857</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009930519567796</Real>
+ <Real Name="YY">-0.51991051047935499</Real>
+ <Real Name="ZZ">0.029852848899528554</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009930657733859</Real>
+ <Real Name="YY">-1.5199106026987179</Real>
+ <Real Name="ZZ">0.02985289499562354</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009930788224031</Real>
+ <Real Name="YY">-2.5199106897947825</Real>
+ <Real Name="ZZ">0.029852938530824352</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009930911660677</Real>
+ <Real Name="YY">-3.5199107721829526</Real>
+ <Real Name="ZZ">0.02985297971277108</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009931028600661</Real>
+ <Real Name="YY">-4.5199108502349024</Real>
+ <Real Name="ZZ">0.029853018727246917</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009931139543724</Real>
+ <Real Name="YY">-5.5199109242841882</Real>
+ <Real Name="ZZ">0.029853055740980416</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009931244939629</Real>
+ <Real Name="YY">6.4800890053689901</Real>
+ <Real Name="ZZ">0.02985309090402723</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009931345194275</Real>
+ <Real Name="YY">5.4800889384537204</Real>
+ <Real Name="ZZ">0.02985312435180347</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009931440674887</Real>
+ <Real Name="YY">4.4800888747248919</Real>
+ <Real Name="ZZ">0.029853156206828459</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099315317145422313</Real>
+ <Real Name="YY">3.4800888139601964</Real>
+ <Real Name="ZZ">0.029853186580224362</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099316186160305</Real>
+ <Real Name="YY">2.4800887559575306</Real>
+ <Real Name="ZZ">0.029853215573011384</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099317016552312</Real>
+ <Real Name="YY">1.4800887005327623</Real>
+ <Real Name="ZZ">0.029853243277230084</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099317810840307</Real>
+ <Real Name="YY">0.48008864751776659</Real>
+ <Real Name="ZZ">0.029853269776917539</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099318571328801</Real>
+ <Real Name="YY">-0.51991140324127216</Real>
+ <Real Name="ZZ">0.029853295148958719</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099319300130309</Real>
+ <Real Name="YY">-1.5199114518853516</Real>
+ <Real Name="ZZ">0.029853319463831535</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099319999184795</Real>
+ <Real Name="YY">-2.5199114985439572</Real>
+ <Real Name="ZZ">0.029853342786260541</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099320670277114</Real>
+ <Real Name="YY">-3.5199115433362187</Real>
+ <Real Name="ZZ">0.029853365175792373</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099321315052077</Real>
+ <Real Name="YY">-4.5199115863719221</Real>
+ <Real Name="ZZ">0.02985338668730338</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099321935028023</Real>
+ <Real Name="YY">-5.5199116277524052</Real>
+ <Real Name="ZZ">0.029853407371448558</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009932253160864</Real>
+ <Real Name="YY">6.4800883324286378</Real>
+ <Real Name="ZZ">0.029853427275059984</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009932310609365</Real>
+ <Real Name="YY">5.4800882940844593</Real>
+ <Real Name="ZZ">0.029853446441500571</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009932365968831</Real>
+ <Real Name="YY">4.4800882571346143</Real>
+ <Real Name="ZZ">0.029853464910979718</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009932419351173</Real>
+ <Real Name="YY">3.4800882215044053</Real>
+ <Real Name="ZZ">0.029853482720834584</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009932470860452</Real>
+ <Real Name="YY">2.4800881871243798</Real>
+ <Real Name="ZZ">0.029853499905782288</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009932520593544</Real>
+ <Real Name="YY">1.4800881539298718</Real>
+ <Real Name="ZZ">0.029853516498145563</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.009932568640782</Real>
+ <Real Name="YY">0.48008812186060235</Real>
+ <Real Name="ZZ">0.029853532528055868</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009932615086427</Real>
+ <Real Name="YY">-0.5199119091396921</Real>
+ <Real Name="ZZ">0.029853548023635816</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009932660009277</Real>
+ <Real Name="YY">-1.5199119391235834</Real>
+ <Real Name="ZZ">0.029853563011163969</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009932703482999</Real>
+ <Real Name="YY">-2.519911968140252</Real>
+ <Real Name="ZZ">0.02985357751522346</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009932745576602</Real>
+ <Real Name="YY">-3.5199119962357566</Real>
+ <Real Name="ZZ">0.029853591558836649</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099327863547810629</Real>
+ <Real Name="YY">-4.5199120234532781</Real>
+ <Real Name="ZZ">0.029853605163586889</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099328258782463</Real>
+ <Real Name="YY">-5.5199120498333363</Real>
+ <Real Name="ZZ">0.029853618349729442</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099328642040311</Real>
+ <Real Name="YY">6.4800879245860017</Real>
+ <Real Name="ZZ">0.029853631136291928</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099329013857625</Real>
+ <Real Name="YY">5.4800878997689413</Real>
+ <Real Name="ZZ">0.029853643541165972</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099329374739137</Real>
+ <Real Name="YY">4.4800878756817957</Real>
+ <Real Name="ZZ">0.02985365558119079</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.0099329725160313</Real>
+ <Real Name="YY">3.4800878522928258</Real>
+ <Real Name="ZZ">0.029853667272229375</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099330065569445</Real>
+ <Real Name="YY">2.4800878295721134</Real>
+ <Real Name="ZZ">0.029853678629238278</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099330396389608</Real>
+ <Real Name="YY">1.4800878074914205</Real>
+ <Real Name="ZZ">0.029853689666331427</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.0099330718020276</Real>
+ <Real Name="YY">0.48008778602408064</Real>
+ <Real Name="ZZ">0.029853700396838691</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.009933103083922</Real>
+ <Real Name="YY">-0.51991223485511306</Real>
+ <Real Name="ZZ">0.029853710833359425</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009933133520356</Real>
+ <Real Name="YY">-1.5199122551700042</Real>
+ <Real Name="ZZ">0.029853720987812041</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009933163145151</Real>
+ <Real Name="YY">-2.5199122749431653</Real>
+ <Real Name="ZZ">0.029853730871479248</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009933191990347</Real>
+ <Real Name="YY">-3.5199122941959788</Real>
+ <Real Name="ZZ">0.029853740495049963</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009933220086316</Real>
+ <Real Name="YY">-4.5199123129487218</Real>
+ <Real Name="ZZ">0.029853749868657808</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009933247461877</Real>
+ <Real Name="YY">-5.5199123312206222</Real>
+ <Real Name="ZZ">0.0298537590019167</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009933274144387</Real>
+ <Real Name="YY">6.4800876509700576</Real>
+ <Real Name="ZZ">0.029853767903953873</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">16.00993330015983</Real>
+ <Real Name="YY">5.480087633605967</Real>
+ <Real Name="ZZ">0.029853776583440118</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">17.009933325532916</Real>
+ <Real Name="YY">4.4800876166706205</Real>
+ <Real Name="ZZ">0.029853785048618048</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">18.009933350287152</Real>
+ <Real Name="YY">3.4800876001483321</Real>
+ <Real Name="ZZ">0.029853793307328225</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">19.009933374444895</Real>
+ <Real Name="YY">2.4800875840241714</Real>
+ <Real Name="ZZ">0.029853801367033358</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">20.009933398027464</Real>
+ <Real Name="YY">1.4800875682839185</Real>
+ <Real Name="ZZ">0.029853809234840732</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.0099334210551371774</Real>
+ <Real Name="YY">0.48008755291402444</Real>
+ <Real Name="ZZ">0.029853816917523222</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">1.0099334435472873</Real>
+ <Real Name="YY">-0.5199124620984299</Real>
+ <Real Name="ZZ">0.029853824421538683</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">2.0099334655223764</Real>
+ <Real Name="YY">-1.5199124767657699</Real>
+ <Real Name="ZZ">0.029853831753048048</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">3.0099334869980314</Real>
+ <Real Name="YY">-2.5199124910997623</Real>
+ <Real Name="ZZ">0.029853838917932203</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">4.0099335079910867</Real>
+ <Real Name="YY">-3.5199125051116416</Real>
+ <Real Name="ZZ">0.02985384592180771</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">5.009933528517629</Real>
+ <Real Name="YY">-4.5199125188121485</Real>
+ <Real Name="ZZ">0.029853852770041545</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">6.0099335485930423</Real>
+ <Real Name="YY">-5.5199125322115403</Real>
+ <Real Name="ZZ">0.02985385946776474</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">7.0099335682320314</Real>
+ <Real Name="YY">6.4800874546803557</Real>
+ <Real Name="ZZ">0.029853866019885277</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">8.009933587448673</Real>
+ <Real Name="YY">5.4800874418541472</Real>
+ <Real Name="ZZ">0.029853872431099989</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">9.0099336062564603</Real>
+ <Real Name="YY">4.4800874293008359</Real>
+ <Real Name="ZZ">0.029853878705905858</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">10.009933624668289</Real>
+ <Real Name="YY">3.4800874170118057</Real>
+ <Real Name="ZZ">0.029853884848610561</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">11.009933642696529</Real>
+ <Real Name="YY">2.4800874049787969</Real>
+ <Real Name="ZZ">0.029853890863342267</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">12.009933660353061</Real>
+ <Real Name="YY">1.4800873931938907</Real>
+ <Real Name="ZZ">0.029853896754058865</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">13.009933677649256</Real>
+ <Real Name="YY">0.48008738164949327</Real>
+ <Real Name="ZZ">0.029853902524556771</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">14.009933694596034</Real>
+ <Real Name="YY">-0.51991262966168394</Real>
+ <Real Name="ZZ">0.029853908178478966</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">15.009933711203871</Real>
+ <Real Name="YY">-1.5199126407466375</Real>
+ <Real Name="ZZ">0.029853913719322688</Real>
+ </Atom>
+ </Sequence>
+ <Sequence Name="FinalVelocities">
+ <Int Name="Length">100</Int>
+ <Atom>
+ <Real Name="XX">0.95936820020396807</Real>
+ <Real Name="YY">-1.965692063259648</Real>
+ <Real Name="ZZ">2.9657979072306837</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.97430351677398452</Real>
+ <Real Name="YY">-1.9756632978058251</Real>
+ <Real Name="ZZ">2.9707817290908398</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.97928195563065601</Real>
+ <Real Name="YY">-1.9789870426545502</Real>
+ <Real Name="ZZ">2.9724430030442281</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9817711750589917</Real>
+ <Real Name="YY">-1.9806489150789124</Real>
+ <Real Name="ZZ">2.9732736400209223</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98326470671599309</Real>
+ <Real Name="YY">-1.9816460385335299</Real>
+ <Real Name="ZZ">2.9737720222069366</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9842603944873286</Real>
+ <Real Name="YY">-1.9823107875032751</Real>
+ <Real Name="ZZ">2.974104276997612</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98497160003828099</Real>
+ <Real Name="YY">-1.9827856081959503</Real>
+ <Real Name="ZZ">2.9743416018480988</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98550500420149578</Real>
+ <Real Name="YY">-1.9831417237154552</Real>
+ <Real Name="ZZ">2.9745195954859591</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98591987410621906</Real>
+ <Real Name="YY">-1.9834187024528507</Real>
+ <Real Name="ZZ">2.9746580349820775</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9862517700299972</Real>
+ <Real Name="YY">-1.983640285442765</Real>
+ <Real Name="ZZ">2.9747687865789665</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98652332124036035</Real>
+ <Real Name="YY">-1.9838215806163306</Real>
+ <Real Name="ZZ">2.9748594015218819</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98674961391566429</Real>
+ <Real Name="YY">-1.9839726599276375</Real>
+ <Real Name="ZZ">2.9749349139743062</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98694109233322802</Real>
+ <Real Name="YY">-1.9841004962679727</Real>
+ <Real Name="ZZ">2.9749988091263622</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98710521669114049</Real>
+ <Real Name="YY">-1.984210070273974</Real>
+ <Real Name="ZZ">2.9750535763995476</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98724745780133139</Real>
+ <Real Name="YY">-1.9843050344125099</Real>
+ <Real Name="ZZ">2.9751010413696455</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98737191877274788</Real>
+ <Real Name="YY">-1.9843881280337288</Real>
+ <Real Name="ZZ">2.9751425732184815</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98748173727693878</Real>
+ <Real Name="YY">-1.9844614459348027</Real>
+ <Real Name="ZZ">2.9751792189674506</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98757935372510952</Real>
+ <Real Name="YY">-1.9845266174024243</Real>
+ <Real Name="ZZ">2.9752117929665389</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98766669475768221</Real>
+ <Real Name="YY">-1.9845849287155595</Real>
+ <Real Name="ZZ">2.9752409381236133</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98774530168699859</Real>
+ <Real Name="YY">-1.9846374088973826</Real>
+ <Real Name="ZZ">2.9752671687649852</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98781642224209409</Real>
+ <Real Name="YY">-1.9846848909666492</Real>
+ <Real Name="ZZ">2.9752909012500344</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98788107729218066</Real>
+ <Real Name="YY">-1.9847280564841654</Real>
+ <Real Name="ZZ">2.9753124762364389</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98794011016399907</Real>
+ <Real Name="YY">-1.9847674684784189</Real>
+ <Real Name="ZZ">2.9753321751370754</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98799422362983158</Real>
+ <Real Name="YY">-1.9848035961398176</Real>
+ <Real Name="ZZ">2.9753502324626533</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98804400801839865</Real>
+ <Real Name="YY">-1.9848368335883051</Real>
+ <Real Name="ZZ">2.9753668452021889</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98808996283861406</Real>
+ <Real Name="YY">-1.9848675143099863</Real>
+ <Real Name="ZZ">2.9753821800386788</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98813251359807341</Real>
+ <Real Name="YY">-1.9848959223856162</Real>
+ <Real Name="ZZ">2.9753963789613604</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98817202501757029</Real>
+ <Real Name="YY">-1.9849223013129882</Real>
+ <Real Name="ZZ">2.9754095636752758</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98820881151158524</Real>
+ <Real Name="YY">-1.9849468610039871</Real>
+ <Real Name="ZZ">2.9754218390985772</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98824314557266568</Real>
+ <Real Name="YY">-1.984969783382255</Real>
+ <Real Name="ZZ">2.9754332961603205</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98827526453303138</Real>
+ <Real Name="YY">-1.9849912268974081</Real>
+ <Real Name="ZZ">2.975444014056797</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98830537605837399</Real>
+ <Real Name="YY">-1.9850113301928631</Real>
+ <Real Name="ZZ">2.9754540620847387</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98833366264278644</Real>
+ <Real Name="YY">-1.9850302151067767</Real>
+ <Real Name="ZZ">2.9754635011412955</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98836028531047004</Real>
+ <Real Name="YY">-1.9850479891434025</Real>
+ <Real Name="ZZ">2.9754723849592248</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98838538668285669</Real>
+ <Real Name="YY">-1.985064747520791</Real>
+ <Real Name="ZZ">2.9754807611304188</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98840909353455475</Real>
+ <Real Name="YY">-1.9850805748772131</Real>
+ <Real Name="ZZ">2.9754886719587672</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98843151893481007</Real>
+ <Real Name="YY">-1.9850955467008546</Real>
+ <Real Name="ZZ">2.9754961551747745</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98845276405084104</Real>
+ <Real Name="YY">-1.9851097305337808</Real>
+ <Real Name="ZZ">2.9755032445373066</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98847291967374273</Real>
+ <Real Name="YY">-1.9851231869906572</Real>
+ <Real Name="ZZ">2.9755099703427872</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98849206751549867</Real>
+ <Real Name="YY">-1.98513597062469</Real>
+ <Real Name="ZZ">2.9755163598579926</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98851028131619434</Real>
+ <Real Name="YY">-1.9851481306668208</Real>
+ <Real Name="ZZ">2.9755224376895302</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98852762779304648</Real>
+ <Real Name="YY">-1.9851597116593247</Real>
+ <Real Name="ZZ">2.9755282261005171</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98854416745702234</Real>
+ <Real Name="YY">-1.9851707540010155</Real>
+ <Real Name="ZZ">2.9755337452830837</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98855995531809038</Real>
+ <Real Name="YY">-1.9851812944180838</Real>
+ <Real Name="ZZ">2.975539013593719</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98857504149644382</Real>
+ <Real Name="YY">-1.9851913663721692</Real>
+ <Real Name="ZZ">2.9755440477572139</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98858947175399892</Real>
+ <Real Name="YY">-1.9852010004152094</Real>
+ <Real Name="ZZ">2.9755488630440352</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98860328795804164</Real>
+ <Real Name="YY">-1.9852102244989709</Real>
+ <Real Name="ZZ">2.9755534734250344</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98861652848691639</Real>
+ <Real Name="YY">-1.9852190642459087</Real>
+ <Real Name="ZZ">2.9755578917068286</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98862922858603985</Real>
+ <Real Name="YY">-1.9852275431868498</Real>
+ <Real Name="ZZ">2.9755621296505876</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98864142068119987</Real>
+ <Real Name="YY">-1.9852356829701525</Real>
+ <Real Name="ZZ">2.9755661980765922</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98865313465497962</Real>
+ <Real Name="YY">-1.9852435035462674</Real>
+ <Real Name="ZZ">2.9755701069564853</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98866439809130757</Real>
+ <Real Name="YY">-1.9852510233309941</Real>
+ <Real Name="ZZ">2.9755738654948396</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98867523649230193</Real>
+ <Real Name="YY">-1.9852582593502572</Real>
+ <Real Name="ZZ">2.9755774822015626</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98868567347103609</Real>
+ <Real Name="YY">-1.9852652273688081</Real>
+ <Real Name="ZZ">2.9755809649561784</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98869573092327256</Real>
+ <Real Name="YY">-1.9852719420048668</Real>
+ <Real Name="ZZ">2.9755843210651771</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98870542918078519</Real>
+ <Real Name="YY">-1.9852784168324931</Real>
+ <Real Name="ZZ">2.9755875573131356</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98871478714856043</Real>
+ <Real Name="YY">-1.9852846644731865</Real>
+ <Real Name="ZZ">2.9755906800085392</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.988723822427792</Real>
+ <Real Name="YY">-1.9852906966779935</Real>
+ <Real Name="ZZ">2.9755936950247865</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98873255142637273</Real>
+ <Real Name="YY">-1.9852965244012826</Real>
+ <Real Name="ZZ">2.9755966078370966</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98874098945833278</Real>
+ <Real Name="YY">-1.9853021578671277</Real>
+ <Real Name="ZZ">2.9755994235556606</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98874915083350801</Real>
+ <Real Name="YY">-1.9853076066291748</Real>
+ <Real Name="ZZ">2.9756021469555853</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98875704893851524</Real>
+ <Real Name="YY">-1.9853128796247028</Real>
+ <Real Name="ZZ">2.9756047825038965</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98876469631003094</Real>
+ <Real Name="YY">-1.9853179852235499</Real>
+ <Real Name="ZZ">2.975607334384013</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98877210470118704</Real>
+ <Real Name="YY">-1.9853229312724328</Real>
+ <Real Name="ZZ">2.9756098065178693</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9887792851418461</Real>
+ <Real Name="YY">-1.9853277251351942</Real>
+ <Real Name="ZZ">2.9756122025860705</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98878624799339321</Real>
+ <Real Name="YY">-1.9853323737293884</Real>
+ <Real Name="ZZ">2.9756145260461477</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98879300299862616</Real>
+ <Real Name="YY">-1.9853368835595773</Real>
+ <Real Name="ZZ">2.9756167801492044</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98879955932723496</Real>
+ <Real Name="YY">-1.9853412607477001</Real>
+ <Real Name="ZZ">2.975618967955115</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9888059256173326</Real>
+ <Real Name="YY">-1.9853455110608065</Real>
+ <Real Name="ZZ">2.9756210923463597</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98881211001342828</Real>
+ <Real Name="YY">-1.9853496399363946</Real>
+ <Real Name="ZZ">2.9756231560407094</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98881812020118276</Real>
+ <Real Name="YY">-1.9853536525056297</Real>
+ <Real Name="ZZ">2.9756251616028244</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98882396343927681</Real>
+ <Real Name="YY">-1.9853575536146069</Real>
+ <Real Name="ZZ">2.975627111454886</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98882964658865657</Real>
+ <Real Name="YY">-1.9853613478438852</Real>
+ <Real Name="ZZ">2.9756290078863388</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98883517613940453</Real>
+ <Real Name="YY">-1.9853650395264273</Real>
+ <Real Name="ZZ">2.9756308530628877</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98884055823546591</Real>
+ <Real Name="YY">-1.9853686327641025</Real>
+ <Real Name="ZZ">2.9756326490347282</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98884579869742062</Real>
+ <Real Name="YY">-1.9853721314428894</Real>
+ <Real Name="ZZ">2.9756343977441535</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98885090304347989</Real>
+ <Real Name="YY">-1.9853755392469041</Real>
+ <Real Name="ZZ">2.9756361010325567</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.9888558765088713</Real>
+ <Real Name="YY">-1.9853788596713295</Real>
+ <Real Name="ZZ">2.9756377606468916</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98886072406374681</Real>
+ <Real Name="YY">-1.9853820960343749</Real>
+ <Real Name="ZZ">2.9756393782456789</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98886545042974938</Real>
+ <Real Name="YY">-1.9853852514883461</Real>
+ <Real Name="ZZ">2.9756409554044962</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98887006009535749</Real>
+ <Real Name="YY">-1.9853883290298731</Real>
+ <Real Name="ZZ">2.9756424936211188</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98887455733009777</Real>
+ <Real Name="YY">-1.9853913315094114</Real>
+ <Real Name="ZZ">2.9756439943202628</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98887894619773453</Real>
+ <Real Name="YY">-1.9853942616400433</Real>
+ <Real Name="ZZ">2.975645458857985</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98888323056852379</Real>
+ <Real Name="YY">-1.9853971220056634</Real>
+ <Real Name="ZZ">2.9756468885257585</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98888741413058823</Real>
+ <Real Name="YY">-1.9853999150685602</Real>
+ <Real Name="ZZ">2.97564828455429</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98889150040051166</Real>
+ <Real Name="YY">-1.9854026431765079</Real>
+ <Real Name="ZZ">2.9756496481170416</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98889549273319466</Real>
+ <Real Name="YY">-1.9854053085693284</Real>
+ <Real Name="ZZ">2.9756509803335254</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98889939433104512</Real>
+ <Real Name="YY">-1.9854079133850406</Real>
+ <Real Name="ZZ">2.9756522822723621</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98890320825253886</Real>
+ <Real Name="YY">-1.9854104596655699</Real>
+ <Real Name="ZZ">2.975653554954143</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98890693742022184</Real>
+ <Real Name="YY">-1.9854129493620858</Real>
+ <Real Name="ZZ">2.9756547993541069</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98891058462817516</Real>
+ <Real Name="YY">-1.9854153843399951</Real>
+ <Real Name="ZZ">2.9756560164046215</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98891415254899995</Real>
+ <Real Name="YY">-1.9854177663836059</Real>
+ <Real Name="ZZ">2.97565720699752</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98891764374034385</Real>
+ <Real Name="YY">-1.9854200972004687</Real>
+ <Real Name="ZZ">2.9756583719862673</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98892106065102126</Real>
+ <Real Name="YY">-1.9854223784254865</Real>
+ <Real Name="ZZ">2.9756595121880176</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98892440562673689</Real>
+ <Real Name="YY">-1.9854246116247125</Real>
+ <Real Name="ZZ">2.9756606283855214</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98892768091545769</Real>
+ <Real Name="YY">-1.9854267982989544</Real>
+ <Real Name="ZZ">2.9756617213289145</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98893088867245338</Real>
+ <Real Name="YY">-1.9854289398871297</Real>
+ <Real Name="ZZ">2.9756627917373879</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98893403096501986</Real>
+ <Real Name="YY">-1.9854310377694246</Real>
+ <Real Name="ZZ">2.9756638403007938</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98893710977692872</Real>
+ <Real Name="YY">-1.9854330932702589</Real>
+ <Real Name="ZZ">2.9756648676810999</Real>
+ </Atom>
+ <Atom>
+ <Real Name="XX">0.98894012701259992</Real>
+ <Real Name="YY">-1.9854351076610774</Real>
+ <Real Name="ZZ">2.9756658745137958</Real>
+ </Atom>
+ </Sequence>
+</ReferenceData>
* This will extract temperature scaling factors from tcstat, transform them into the plain
* array and call the normal integrate method.
*
- * \param[in] dt Timestep
- * \param[in] updateVelocities If the velocities should be constrained.
- * \param[in] computeVirial If virial should be updated.
- * \param[out] virial Place to save virial tensor.
- * \param[in] doTempCouple If the temperature coupling should be performed.
- * \param[in] tcstat Temperature coupling data.
+ * \param[in] dt Timestep
+ * \param[in] updateVelocities If the velocities should be constrained.
+ * \param[in] computeVirial If virial should be updated.
+ * \param[out] virial Place to save virial tensor.
+ * \param[in] doTempCouple If the temperature coupling should be performed.
+ * \param[in] tcstat Temperature coupling data.
+ * \param[in] doPressureCouple If the temperature coupling should be applied.
+ * \param[in] dtPressureCouple Period between pressure coupling steps
+ * \param[in] velocityScalingMatrix Parrinello-Rahman velocity scaling matrix
*/
void integrate(real dt,
bool updateVelocities,
bool computeVirial,
tensor virial,
bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat);
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ bool doPressureCouple,
+ float dtPressureCouple,
+ const matrix velocityScalingMatrix);
/*! \brief
* Update data-structures (e.g. after NB search step).
gmx_unused const bool computeVirial,
gmx_unused tensor virialScaled,
gmx_unused const bool doTempCouple,
- gmx_unused gmx::ArrayRef<const t_grp_tcstat> tcstat)
+ gmx_unused gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ gmx_unused const bool doPressureCouple,
+ gmx_unused const float dtPressureCouple,
+ gmx_unused const matrix velocityScalingMatrix)
{
GMX_ASSERT(false, "A CPU stub for UpdateConstrain was called insted of the correct implementation.");
}
const bool computeVirial,
tensor virial,
const bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat)
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ const bool doPressureCouple,
+ const float dtPressureCouple,
+ const matrix velocityScalingMatrix)
{
// Clearing virial matrix
// TODO There is no point in having separate virial matrix for constraints
clear_mat(virial);
- integrator_->integrate(d_x_, d_xp_, d_v_, d_f_, dt, doTempCouple, tcstat);
+ integrator_->integrate(d_x_, d_xp_, d_v_, d_f_, dt,
+ doTempCouple, tcstat,
+ doPressureCouple, dtPressureCouple, velocityScalingMatrix);
lincsCuda_->apply(d_x_, d_xp_,
updateVelocities, d_v_, 1.0/dt,
computeVirial, virial);
const bool computeVirial,
tensor virialScaled,
const bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat)
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ const bool doPressureCouple,
+ const float dtPressureCouple,
+ const matrix pRVScalingMatrix)
{
- impl_->integrate(dt, updateVelocities, computeVirial, virialScaled, doTempCouple, tcstat);
+ impl_->integrate(dt, updateVelocities, computeVirial, virialScaled,
+ doTempCouple, tcstat,
+ doPressureCouple, dtPressureCouple, pRVScalingMatrix);
}
void UpdateConstrainCuda::set(const t_idef &idef,
* 2. This is the temperature coupling step.
* Parameters virial/lambdas can be nullptr if computeVirial/doTempCouple are false.
*
- * \param[in] dt Timestep
- * \param[in] updateVelocities If the velocities should be constrained.
- * \param[in] computeVirial If virial should be updated.
- * \param[out] virial Place to save virial tensor.
- * \param[in] doTempCouple If the temperature coupling should be performed.
- * \param[in] tcstat Temperature coupling data.
+ * \param[in] dt Timestep
+ * \param[in] updateVelocities If the velocities should be constrained.
+ * \param[in] computeVirial If virial should be updated.
+ * \param[out] virial Place to save virial tensor.
+ * \param[in] doTempCouple If the temperature coupling should be performed.
+ * \param[in] tcstat Temperature coupling data.
+ * \param[in] doPressureCouple If the temperature coupling should be applied.
+ * \param[in] dtPressureCouple Period between pressure coupling steps
+ * \param[in] velocityScalingMatrix Parrinello-Rahman velocity scaling matrix
*/
void integrate(const real dt,
const bool updateVelocities,
const bool computeVirial,
tensor virial,
const bool doTempCouple,
- gmx::ArrayRef<const t_grp_tcstat> tcstat);
+ gmx::ArrayRef<const t_grp_tcstat> tcstat,
+ const bool doPressureCouple,
+ const float dtPressureCouple,
+ const matrix velocityScalingMatrix);
/*! \brief
* Update data-structures (e.g. after NB search step).
{
GMX_RELEASE_ASSERT(ir->eI == eiMD, "Only md integrator is supported on the GPU.");
GMX_RELEASE_ASSERT(ir->etc != etcNOSEHOOVER, "Nose Hoover temperature coupling is not supported on the GPU.");
- GMX_RELEASE_ASSERT(ir->epc == epcNO, "Pressure coupling is not supported on the GPU.");
+ GMX_RELEASE_ASSERT(ir->epc == epcNO || ir->epc == epcPARRINELLORAHMAN, "Only Parrinello Rahman pressure control is supported on the GPU.");
GMX_RELEASE_ASSERT(!mdatoms->haveVsites, "Virtual sites are not supported on the GPU");
GMX_RELEASE_ASSERT(ed == nullptr, "Essential dynamics is not supported with GPU-based update constraints.");
GMX_LOG(mdlog.info).asParagraph().
integrator->copyVelocitiesToGpu(state->v.rvec_array());
integrator->copyForcesToGpu(as_rvec_array(f.data()));
- // This applies Leap-Frog, LINCS and SETTLE in a succession
- bool doTempCouple = (ir->etc != etcNO && do_per_step(step + ir->nsttcouple - 1, ir->nsttcouple));
+ bool doTempCouple = (ir->etc != etcNO && do_per_step(step + ir->nsttcouple - 1, ir->nsttcouple));
+ bool doPressureCouple = (ir->epc == epcPARRINELLORAHMAN && do_per_step(step + ir->nstpcouple - 1, ir->nstpcouple));
- integrator->integrate(ir->delta_t, true, bCalcVir, shake_vir, doTempCouple, ekind->tcstat);
+ // This applies Leap-Frog, LINCS and SETTLE in succession
+ integrator->integrate(ir->delta_t, true, bCalcVir, shake_vir,
+ doTempCouple, ekind->tcstat,
+ doPressureCouple, ir->nstpcouple*ir->delta_t, M);
integrator->copyCoordinatesFromGpu(state->x.rvec_array());
integrator->copyVelocitiesFromGpu(state->v.rvec_array());