11 const unsigned int simBoxX,
const unsigned int simBoxY,
const unsigned int simBoxZ,
14 const FP relativeLayerVelocity = shearRate * simBoxY;
15 const FP layerDisplacement = relativeLayerVelocity * mpcTime;
21 const double layerY = floor(y / simBoxY);
24 const double layerZ = floor(z / simBoxZ);
26 x -= layerY * layerDisplacement;
28 const double layerX = floor(x / simBoxX);
30 x -= layerX * simBoxX;
31 y -= layerY * simBoxY;
32 z -= layerZ * simBoxZ;
35 if(velocityCorrection == NULL)
39 *velocityCorrection = - layerY * relativeLayerVelocity;
OPENMPCD_CUDA_HOST_AND_DEVICE T getZ() const
Returns the z coordinate.
#define OPENMPCD_THROW(ExceptionType, message)
Throws the given ExceptionType, passing the given message along with file and line number information...
OPENMPCD_CUDA_HOST_AND_DEVICE T getX() const
Returns the x coordinate.
#define OPENMPCD_DEBUG_ASSERT(assertion)
Asserts that the given expression evaluates to true, but only if OPENMPCD_DEBUG is defined.
OPENMPCD_CUDA_HOST_AND_DEVICE T getY() const
Returns the y coordinate.
double FP
Default floating point type.
FP MPCParticleVelocityType
The data type for the velocities of MPC particles.
const __device__ Vector3D< MPCParticlePositionType > getImageUnderLeesEdwardsBoundaryConditions(const FP mpcTime, const Vector3D< MPCParticlePositionType > &position, MPCParticleVelocityType &velocityCorrection)
Returns the image of the given particle position under Lees-Edwards boundary conditions.