OpenMPCD
|
Base class for MPC solutes. More...
#include <Base.hpp>
Public Member Functions | |
virtual | ~Base () |
The destructor. More... | |
virtual void | performMDTimestep ()=0 |
Performs, on the Device, an MD timestep of size getMDTimeStepSize() . More... | |
virtual std::size_t | getParticleCount () const =0 |
Returns the number of MPC solute particles. More... | |
virtual std::size_t | getNumberOfLogicalEntities () const =0 |
Returns the number of logical entities in the solute. More... | |
void | fetchFromDevice () const |
Copies the MPC solute particles from the CUDA Device to the Host. More... | |
const RemotelyStoredVector< const PositionCoordinate > | getPosition (const std::size_t particleID) const |
Returns a MPC solute particle's position vector. More... | |
const RemotelyStoredVector< const VelocityCoordinate > | getVelocity (const std::size_t particleID) const |
Returns a MPC solute particle's velocity vector. More... | |
const PositionCoordinate * | getDevicePositions () const |
Returns a const pointer to the MPC solute positions on the Device. More... | |
PositionCoordinate * | getDevicePositions () |
Returns a pointer to the MPC solute positions on the Device. More... | |
PositionCoordinate * | getHostPositions () |
Returns a pointer to the MPC solute positions on the Host. More... | |
const VelocityCoordinate * | getDeviceVelocities () const |
Returns a const pointer to the MPC solute velocities on the Device. More... | |
VelocityCoordinate * | getDeviceVelocities () |
Returns a pointer to the MPC solute velocities on the Device. More... | |
VelocityCoordinate * | getHostVelocities () |
Returns a pointer to the MPC solute velocities on the Host. More... | |
FP | getMDTimeStepSize () const |
Returns the number of time units advanced per MD step. More... | |
bool | hasInstrumentation () const |
Returns whether the solute has instrumentation configured. More... | |
Instrumentation::Base & | getInstrumentation () const |
Returns the solute instrumentation. More... | |
virtual FP | getParticleMass () const =0 |
Returns the mass of a particle, which is assumed to be equal for all particles in this instance. More... | |
Protected Member Functions | |
Base () | |
The constructor. More... | |
void | pushToDevice () |
Copies the MPC solute particles from the Host to the CUDA Device. More... | |
Protected Attributes | |
DeviceMemoryManager | deviceMemoryManager |
The Device memory manager. More... | |
FP | mdTimeStepSize |
The number of time units to advance per MD step. More... | |
Instrumentation::Base * | instrumentation |
The solute instrumentation. More... | |
boost::scoped_array< PositionCoordinate > | h_positions |
Host buffer for particle positions. More... | |
boost::scoped_array< VelocityCoordinate > | h_velocities |
Host buffer for particle velocities. More... | |
PositionCoordinate * | d_positions |
Particle positions on the Device. More... | |
VelocityCoordinate * | d_velocities |
Particle velocities on the Device. More... | |
Base class for MPC solutes.
PositionCoordinate | The type to store position coordinates. |
VelocityCoordinate | The type to store velocity coordinates. |
Definition at line 35 of file CUDA/MPCSolute/Base.hpp.
|
protected |
The constructor.
|
virtual |
The destructor.
void OpenMPCD::CUDA::MPCSolute::Base< PositionCoordinate, VelocityCoordinate >::fetchFromDevice | ( | ) | const |
|
inline |
Returns a pointer to the MPC solute positions on the Device.
Definition at line 116 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns a const pointer to the MPC solute positions on the Device.
Definition at line 108 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns a pointer to the MPC solute velocities on the Device.
Definition at line 140 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns a const pointer to the MPC solute velocities on the Device.
Definition at line 132 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns a pointer to the MPC solute positions on the Host.
Definition at line 124 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns a pointer to the MPC solute velocities on the Host.
Definition at line 148 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns the solute instrumentation.
OpenMPCD::NULLPointerException | If OPENMPCD_DEBUG is defined, throws if !hasInstrumentation() . |
Definition at line 175 of file CUDA/MPCSolute/Base.hpp.
|
inline |
Returns the number of time units advanced per MD step.
Definition at line 156 of file CUDA/MPCSolute/Base.hpp.
|
pure virtual |
Returns the number of logical entities in the solute.
|
pure virtual |
Returns the number of MPC solute particles.
|
pure virtual |
Returns the mass of a particle, which is assumed to be equal for all particles in this instance.
const RemotelyStoredVector<const PositionCoordinate> OpenMPCD::CUDA::MPCSolute::Base< PositionCoordinate, VelocityCoordinate >::getPosition | ( | const std::size_t | particleID | ) | const |
Returns a MPC solute particle's position vector.
fetchFromDevice
was called.OpenMPCD::OutOfBoundsException | If OPENMPCD_DEBUG is defined, throws if particleID >= getParticleCount() . |
[in] | particleID | The particle ID. |
const RemotelyStoredVector<const VelocityCoordinate> OpenMPCD::CUDA::MPCSolute::Base< PositionCoordinate, VelocityCoordinate >::getVelocity | ( | const std::size_t | particleID | ) | const |
Returns a MPC solute particle's velocity vector.
fetchFromDevice
was called.OpenMPCD::OutOfBoundsException | If OPENMPCD_DEBUG is defined, throws if particleID >= getParticleCount() . |
[in] | particleID | The particle ID. |
|
inline |
Returns whether the solute has instrumentation configured.
Definition at line 164 of file CUDA/MPCSolute/Base.hpp.
|
pure virtual |
Performs, on the Device, an MD timestep of size getMDTimeStepSize()
.
Implemented in OpenMPCD::CUDA::MPCSolute::StarPolymers< PositionCoordinate, VelocityCoordinate >.
|
protected |
|
protected |
Particle positions on the Device.
Definition at line 210 of file CUDA/MPCSolute/Base.hpp.
|
protected |
Particle velocities on the Device.
Definition at line 211 of file CUDA/MPCSolute/Base.hpp.
|
protected |
The Device memory manager.
Definition at line 199 of file CUDA/MPCSolute/Base.hpp.
|
mutableprotected |
Host buffer for particle positions.
Definition at line 205 of file CUDA/MPCSolute/Base.hpp.
|
mutableprotected |
Host buffer for particle velocities.
Definition at line 207 of file CUDA/MPCSolute/Base.hpp.
|
protected |
The solute instrumentation.
Definition at line 203 of file CUDA/MPCSolute/Base.hpp.
|
protected |
The number of time units to advance per MD step.
Definition at line 201 of file CUDA/MPCSolute/Base.hpp.