Go to the documentation of this file.
6 #ifndef OPENMPCD_CUDA_MPCSOLUTE_STARPOLYMERS_HPP
7 #define OPENMPCD_CUDA_MPCSOLUTE_STARPOLYMERS_HPP
16 #include <OpenMPCD/PairPotentials/FENE.hpp>
18 #include <OpenMPCD/PairPotentials/WeeksChandlerAndersen_DistanceOffset.hpp>
21 #include <boost/scoped_array.hpp>
287 bool isValidParticleID(
const std::size_t particleID)
const;
299 getParticleType(
const std::size_t particleID)
const;
321 std::size_t getParticleID(
322 const std::size_t star,
const std::size_t arm,
323 const std::size_t particleInArm)
const;
340 std::size_t getParticleID(
341 const std::size_t star,
const std::size_t arm)
const;
354 std::size_t getParticleID(
const std::size_t star)
const;
360 void initializePositionsOnHost();
365 void initializeVelocitiesOnHost();
368 std::size_t starCount;
369 std::size_t armCountPerStar;
370 std::size_t armParticlesPerArm;
371 bool hasMagneticParticles_;
383 MagneticDipoleDipoleInteraction_ConstantIdenticalDipoles<
405 #endif //OPENMPCD_CUDA_MPCSOLUTE_STARPOLYMERS_HPP
std::size_t getParticleCountPerArmIncludingMagneticParticles() const
Returns the number of particles per arm, including magnetic particles.
PositionCoordinate ForceCoordinate
The type to store force coordinates.
StarPolymers(const Configuration::Setting &settings, const BoundaryCondition::Base *const boundaryCondition)
The constructor.
Holds the enumeration of particle types for star polymers.
std::size_t getStarCount() const
Returns the total number of polymer stars in this instance.
std::size_t getArmCountPerStar() const
Returns the number of arms per star.
void writeStateToSnapshot(VTFSnapshotFile *const snapshot) const
Writes the particle positions and velocities to the given snapshot file.
FP MPCParticlePositionType
The data type for the positions of MPC particles.
Enum
Enumerates particle types.
virtual FP getParticleMass() const
Returns the mass of a particle, which is assumed to be equal for all particles in this instance.
Base class for MPC solutes.
virtual ~StarPolymers()
The destructor.
void performMDTimestep()
Performs, on the Device, an MD timestep of size getMDTimeStepSize().
void writeStructureToSnapshot(VTFSnapshotFile *const snapshot) const
Writes structure information to the given snapshot file.
bool hasMagneticParticles() const
Returns whether arms have an additional magnetic particle attached.
double FP
Default floating point type.
FP MPCParticleVelocityType
The data type for the velocities of MPC particles.
std::size_t getNumberOfLogicalEntities() const
Returns the number of logical entities in the solute.
std::size_t getParticleCount() const
Returns the total number of individual particles in all stars.
std::size_t getParticleCountPerArm() const
Returns the number of particles per arm.
Represents a setting in the configuration.
Representation of a simulation snapshot file in the VTF format.
std::size_t getParticleCountPerStar() const
Returns the total number of individual particles per star.
Class representing star polymers.
ImplementationDetails::StarPolymers::ParticleType ParticleType
Holds the enumeration of particle types.
Base class for boundary condition.
bool snapshotStructureIsCompatible(const VTFSnapshotFile &snapshot) const
Returns whether the given snapshot file is compatible with the star polymer architecture,...
void readStateFromSnapshot(VTFSnapshotFile *const snapshot)
Reads the next timestep block from the given snapshot file, and uses it as the current state.