tensor virialScaled,
const PbcAiuc& pbcAiuc)
{
- GMX_ASSERT(GMX_GPU_CUDA, "LINCS GPU is only implemented in CUDA.");
-
// Early exit if no constraints
if (kernelParams_.numConstraintsThreads == 0)
{
const DeviceStream& deviceStream) :
deviceContext_(deviceContext), deviceStream_(deviceStream)
{
- GMX_RELEASE_ASSERT(GMX_GPU_CUDA, "LINCS GPU is only implemented in CUDA.");
+ GMX_RELEASE_ASSERT(bool(GMX_GPU_CUDA) || bool(GMX_GPU_SYCL),
+ "LINCS GPU is only implemented in CUDA and SYCL.");
kernelParams_.numIterations = numIterations;
kernelParams_.expansionOrder = expansionOrder;
void LincsGpu::set(const InteractionDefinitions& idef, const int numAtoms, const real* invmass)
{
- GMX_RELEASE_ASSERT(GMX_GPU_CUDA, "LINCS GPU is only implemented in CUDA.");
+ GMX_RELEASE_ASSERT(bool(GMX_GPU_CUDA) || bool(GMX_GPU_SYCL),
+ "LINCS GPU is only implemented in CUDA and SYCL.");
// List of constrained atoms (CPU memory)
std::vector<AtomPair> constraintsHost;
// Equilibrium distances for the constraints (CPU)
}
}
+ kernelParams_.haveCoupledConstraints = (maxCoupledConstraints > 0);
+
coupledConstraintsCountsHost.resize(kernelParams_.numConstraintsThreads, 0);
coupledConstraintsIndicesHost.resize(maxCoupledConstraints * kernelParams_.numConstraintsThreads, -1);
massFactorsHost.resize(maxCoupledConstraints * kernelParams_.numConstraintsThreads, -1);