OpenMPCD
|
Go to the source code of this file.
Namespaces | |
OpenMPCD::CUDA | |
Namespace for simulations using CUDA. | |
OpenMPCD::CUDA::DeviceCode | |
Contains CUDA Device code. | |
Functions | |
__device__ bool | OpenMPCD::CUDA::DeviceCode::isInPrimarySimulationVolume (const Vector3D< MPCParticlePositionType > &position) |
Returns whether the given position lies within the primary simulation volume. More... | |
__device__ unsigned int | OpenMPCD::CUDA::DeviceCode::getCollisionCellIndex (const Vector3D< MPCParticlePositionType > &position) |
Returns the collision cell index for the given position. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::sortParticlesIntoCollisionCellsLeesEdwards (const unsigned int workUnitOffset, const unsigned int particleCount, const MPCParticlePositionType *const gridShift_, const FP mpcTime, const MPCParticlePositionType *const positions, MPCParticleVelocityType *const velocities, MPCParticleVelocityType *const velocityCorrections, unsigned int *const collisionCellIndices) |
Sorts the MPC particles into the collision cells, temporarily applying Lees-Edwards boundary conditions. More... | |
__device__ void | OpenMPCD::CUDA::DeviceCode::sortIntoCollisionCellsLeesEdwards (const unsigned int particleID, const MPCParticlePositionType *const gridShift_, const FP mpcTime, const MPCParticlePositionType *const positions, MPCParticleVelocityType *const velocities, MPCParticleVelocityType *const velocityCorrections, unsigned int *const collisionCellIndices) |
Sorts the given particle into the collision cells, temporarily applying Lees-Edwards boundary conditions. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::collisionCellContributions (const unsigned int workUnitOffset, const unsigned int particleCount, const MPCParticleVelocityType *const velocities, const unsigned int *const collisionCellIndices, MPCParticleVelocityType *const collisionCellMomenta, FP *const collisionCellMasses, const FP particleMass) |
Computes the collision cell mass and momentum contributions by the given particles. More... | |
__device__ Vector3D< MPCParticleVelocityType > | OpenMPCD::CUDA::DeviceCode::getCollisionCellCenterOfMassVelocity (const unsigned int collisionCellIndex, const MPCParticleVelocityType *const collisionCellMomenta, const FP *const collisionCellMasses) |
Returns the center-of-mass velocity of a collision cell. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::resetCollisionCellData (const unsigned int workUnitOffset, const unsigned int collisionCellCount, unsigned int *const collisionCellParticleCounts, MPCParticleVelocityType *const collisionCellMomenta, FP *const collisionCellFrameInternalKineticEnergies, FP *const collisionCellMasses) |
Resets the collision cell data buffers. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::generateGridShiftVector (MPCParticlePositionType *const gridShift, const FP gridShiftScale, GPURNG *const rngs) |
Generates a new random grid shift vector. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::generateCollisionCellRotationAxes (const unsigned int workUnitOffset, const unsigned int collisionCellCount, FP *const collisionCellRotationAxes, GPURNG *const rngs) |
Generates new rotation axes for the collision cells. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::collisionCellStochasticRotationStep1 (const unsigned int workUnitOffset, const unsigned int particleCount, MPCParticleVelocityType *const velocities, const FP particleMass, const unsigned int *const collisionCellIndices, const MPCParticleVelocityType *const collisionCellMomenta, const FP *const collisionCellMasses, const MPCParticlePositionType *const collisionCellRotationAxes, FP *const collisionCellFrameInternalKineticEnergies, unsigned int *const collisionCellParticleCounts) |
Applies the first step of the SRD rotation to the given particles. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::generateCollisionCellMBSFactors (const unsigned int workUnitOffset, const unsigned int collisionCellCount, const FP *const collisionCellFrameInternalKineticEnergies, unsigned int *const collisionCellParticleCounts, FP *const collisionCellRelativeVelocityScalings, const FP bulkThermostatTargetkT, GPURNG *const rngs) |
Generates Maxwell-Boltzmann-Scaling factors for the collision cells. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::collisionCellStochasticRotationStep2 (const unsigned int workUnitOffset, const unsigned int particleCount, MPCParticleVelocityType *const velocities, const unsigned int *const collisionCellIndices, const MPCParticleVelocityType *const collisionCellMomenta, const FP *const collisionCellMasses, const FP *const collisionCellVelocityScalings) |
Applies the second step of the SRD rotation to the given particles. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::undoLeesEdwardsVelocityCorrections (const unsigned int workUnitOffset, const unsigned int particleCount, MPCParticleVelocityType *const velocities, const MPCParticleVelocityType *const velocityCorrections) |
Undoes the velocity corrections applied by sortIntoCollisionCellsLeesEdwards . More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::constructGPURNGs (const std::size_t count, GPURNG *const location, const unsigned long long seed) |
Sets up instances of GPURNG in the specified memory location. More... | |
__global__ void | OpenMPCD::CUDA::DeviceCode::destroyGPURNGs (const std::size_t count, GPURNG *const location) |
Destroys instances of GPURNG in the specified memory location. More... | |
Defines CUDA Device code for OpenMPCD::CUDA::Simulation
Definition in file CUDA/DeviceCode/Simulation.hpp.