MercuryDPM  Trunk
SphericalParticle Class Referencefinal

A basic particle. More...

#include <SphericalParticle.h>

Inheritance diagram for SphericalParticle:

## Public Member Functions

SphericalParticle ()=default
Particle constructor. More...

SphericalParticle (const ParticleSpecies *s)
Particle constructor, setting the species. This is useful to create e.g. template particles for the InsertionBoundaries. It is marked explicit because you dont want to use it with the assignment operator, particle = species;. More...

SphericalParticle (const SphericalParticle &p)=default
Particle constructor. More...

~SphericalParticle () override=default

SphericalParticlecopy () const override
Particle copy method. Calls copy constructor of this class (useful for polymorphism) More...

std::string getName () const override
Returns the name of the object. More...

bool isSphericalParticle () const override

Public Member Functions inherited from BaseParticle
BaseParticle ()
Basic Particle constructor, creates an Particle at (0,0,0) with radius, mass and inertia equal to 1. More...

BaseParticle (const BaseParticle &p)
Particle copy constructor, which accepts as input a reference to a Particle. It creates a copy of this Particle and all it's information. Usually it is better to use the copy() function for polymorfism. More...

BaseParticle (const ParticleSpecies *s)

~BaseParticle () override
Particle destructor, needs to be implemented and checked if it removes tangential spring information. More...

virtual Mdouble getVolume () const
Get Particle volume function, which required a reference to the Species vector. It returns the volume of the Particle. More...

void fixParticle ()
Fix Particle function. It fixes a Particle by setting its inverse mass and inertia and velocities to zero. More...

bool isFixed () const override
Is fixed Particle function. It returns whether a Particle is fixed or not, by checking its inverse Mass. More...

bool isMPIParticle () const
Indicates if this particle is a ghost in the MPI domain. More...

void setMPIParticle (bool flag)
Flags the mpi particle status. More...

bool isInMPIDomain ()
Indicates if the particle is in the communication zone of the mpi domain. More...

void setInMPIDomain (bool flag)
Flags the status of the particle if wether it is in the communication zone or not. More...

bool isInPeriodicDomain () const
Indicates if the particle is in the periodic boundary communication zone. More...

void setInPeriodicDomain (bool flag)
Flags the status of the particle wether it is in the periodic communication zone or not. More...

bool isPeriodicGhostParticle () const
Indicates if this particle is a ghost in the periodic boundary. More...

void setPeriodicGhostParticle (bool flag)
Flags the status of the particle to be a ghost in periodic boundary or not. More...

bool isMaserParticle () const
Indicates if this particle belongs to the maser boundary. More...

void setMaserParticle (bool flag)
Flags the status of the particle if it belongs to the maser boundary or not. More...

void setCommunicationComplexity (unsigned complexity)
Set the communication complexity of the particle. More...

unsigned getCommunicationComplexity ()
Obtains the communication complexity of the particle. More...

void setPeriodicComplexity (std::vector< int > complexity)
Set the periodic communication complexity of the particle. More...

void setPeriodicComplexity (int index, int value)
Set the periodic communication complexity of the particle. More...

const std::vector< int > & getPeriodicComplexity ()
Obtains the periodic communication complexity of the particle. More...

void setPreviousPeriodicComplexity (std::vector< int > complexity)
Set the previous periodic communication complexity of the paritcle. More...

const std::vector< int > & getPreviousPeriodicComplexity () const
Sets the previous periodic communication complexity of the particle. More...

int getPeriodicComplexity (int index)
Gets the periodic communication complexity of a certain boundary. More...

void unfix ()
Unfix Particle function, which required a reference to the Species vector. It unfixes a Particle by computing the Particles mass and inertia. More...

Particle read function, which accepts an std::istream as input. More...

void write (std::ostream &os) const override
Particle print function, which accepts an std::ostream as input. More...

virtual void setInfo (Mdouble info)

virtual Mdouble getInfo () const

void printHGrid (std::ostream &os) const
Adds particle's HGrid level and cell coordinates to an ostream. More...

unsigned int getHGridLevel () const
Returns particle's HGrid level. More...

BaseParticlegetHGridNextObject () const
Returns pointer to next object in particle's HGrid level & cell. More...

BaseParticlegetHGridPrevObject () const
Returns pointer to previous object in particle's HGrid level & cell. More...

int getHGridX () const
Returns particle's HGrid cell X-coordinate. More...

int getHGridY () const
Returns particle's HGrid cell Y-coordinate. More...

int getHGridZ () const
Returns particle's HGrid cell Z-coordinate. More...

MatrixSymmetric3D getInvInertia () const
Returns the inverse of the particle's inertia tensor. More...

Mdouble getInvMass () const override
Returns the inverse of the particle's mass. More...

Mdouble getCurvature (const Vec3D &labFixedCoordinates) const override

Mdouble getKineticEnergy () const
Calculates the particle's translational kinetic energy. More...

Mdouble getRotationalEnergy () const
Calculates the particle's rotational kinetic energy. More...

Mdouble getGravitationalEnergy () const
Calculates the particle's gravitational energy. More...

Mdouble getMass () const
Returns the particle's mass. More...

Vec3D getMomentum () const

MatrixSymmetric3D getInertia () const

Vec3D getAngularMomentum () const

BaseParticlegetPeriodicFromParticle () const
Returns the 'original' particle this one's a periodic copy of. More...

Returns the particle's interaction radius, which might be different from radius_ (e.g., when dealing with wet particles) More...

Mdouble getInteractionDistance (const BaseInteractable *i) const
Returns the interactionDistance_ of the mixed species of this particle and the particle or wall i. More...

Mdouble getSumOfInteractionRadii (const BaseParticle *particle) const
returns the sum of the radii plus the interactionDistance More...

Mdouble getWallInteractionRadius (const BaseWall *wall) const
returns the radius plus the interactionDistance More...

const Vec3DgetDisplacement () const
Returns the particle's displacement relative to the previous time step. More...

const Vec3DgetPreviousPosition () const
Returns the particle's position in the previous time step. More...

const Vec3D getDisplacement2 (Mdouble xmin, Mdouble xmax, Mdouble ymin, Mdouble ymax, Mdouble zmin, Mdouble zmax, Mdouble t) const

virtual void setInertia ()

void setInertia (MatrixSymmetric3D inertia)
Sets the particle's inertia_ (and adjusts invInertia_ accordingly) More...

void setInverseInertia (MatrixSymmetric3D inverseInertia)
Sets the particle's inertia_ (and adjusts invInertia_ accordingly) More...

void setInfiniteInertia ()
Sets the particle's inertia_ to 'infinite' (1e20) and its invInertia_ to 0. More...

void setPeriodicFromParticle (BaseParticle *p)
Assigns the pointer to the 'original' particle this one's a periodic copy of (used in periodic boundary condition implementations). More...

void setHGridX (const int x)
Sets the particle's HGrid cell X-coordinate. More...

void setHGridY (const int y)
Sets the particle's HGrid cell Y-coordinate. More...

void setHGridZ (const int z)
Sets the particle's HGrid cell Z-coordinate. More...

void setHGridLevel (const unsigned int level)
Sets the particle's HGrid level. More...

void setHGridNextObject (BaseParticle *p)
Sets the pointer to the next object in the particle's HGrid cell & level. More...

void setHGridPrevObject (BaseParticle *p)
Sets the pointer to the previous object in the particle's HGrid cell & level. More...

Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species) More...

virtual Vec3D getAxes () const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function access in writeVTK function in the particle handler. More...

virtual Mdouble getExponentEps1 () const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function access in writeVTK function in the particle handler. More...

virtual Mdouble getExponentEps2 () const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function access in writeVTK function in the particle handler. More...

virtual void setAxes (const Vec3D &axes)
Only ustilised in case of superquadric particles. More...

virtual void setExponents (const Mdouble &eps1, const Mdouble &eps2)
Only ustilised in case of superquadric particles. More...

MERCURY_DEPRECATED void setMass (Mdouble mass)
Sets the particle's mass. More...

void setMassForP3Statistics (Mdouble mass)
Sets the particle's mass This function should not be used, but is necessary to extend the CG toolbox to non-spherical particles. More...

void setDisplacement (const Vec3D &disp)
Sets the particle's displacement (= difference between current position and that of the previous time step) More...

void setPreviousPosition (const Vec3D &pos)
Sets the particle's position in the previous time step. More...

void movePrevious (const Vec3D &posMove)
Adds a vector to the particle's previousPosition_. More...

void accelerate (const Vec3D &vel)
Increases the particle's velocity_ by the given vector. More...

void angularAccelerate (const Vec3D &angVel)
Increases the particle's angularVelocity_ by the given vector. More...

Adds a vector to the particle's displacement_. More...

void setHandler (ParticleHandler *handler)
Sets the pointer to the particle's ParticleHandler. More...

ParticleHandlergetHandler () const
Returns pointer to the particle's ParticleHandler. More...

BaseInteractiongetInteractionWith (BaseParticle *P, unsigned timeStamp, InteractionHandler *interactionHandler) override
Checks if particle is in interaction with given particle P, and if so, returns vector of pointer to the associated BaseInteraction object (else returns empty vector). More...

virtual bool isInContactWith (const BaseParticle *P) const
Get whether or not this particle is in contact with the given particle. More...

void integrateBeforeForceComputation (double time, double timeStep)
First step of Velocity Verlet integration. More...

void integrateAfterForceComputation (double time, double timeStep)
Second step of Velocity Verlet integration. More...

unsigned int getParticleDimensions () const
Returns the particle's dimensions (either 2 or 3). More...

MERCURY_DEPRECATED void setIndSpecies (unsigned int indSpecies) override

void setSpecies (const ParticleSpecies *species)

virtual unsigned getNumberOfFieldsVTK () const

virtual std::string getTypeVTK (unsigned i) const

virtual std::string getNameVTK (unsigned i) const

virtual std::vector< MdoublegetFieldVTK (unsigned i) const

virtual void actionsAfterTimeStep ()

const HGridCellgetHGridCell () const

virtual void computeMass (const ParticleSpecies &s)
Computes the particle's (inverse) mass and inertia. More...

Public Member Functions inherited from BaseInteractable
BaseInteractable ()
Default BaseInteractable constructor. More...

BaseInteractable (const BaseInteractable &p)
Copy constructor. More...

~BaseInteractable () override
Destructor, it simply destructs the BaseInteractable and all the objects it contains. More...

unsigned int getIndSpecies () const
Returns the index of the species associated with the interactable object. More...

const ParticleSpeciesgetSpecies () const
Returns a pointer to the species of this BaseInteractable. More...

void setSpecies (const ParticleSpecies *species)
Sets the species of this BaseInteractable. More...

const Vec3DgetForce () const
Returns the force on this BaseInteractable. More...

const Vec3DgetTorque () const
Returns the torque on this BaseInteractable. More...

void setForce (const Vec3D &force)
Sets the force on this BaseInteractable. More...

void setTorque (const Vec3D &torque)
Sets the torque on this BaseInteractable. More...

Adds an amount to the force on this BaseInteractable. More...

Adds an amount to the torque on this BaseInteractable. More...

void sumForceTorqueOMP ()

const Vec3DgetPosition () const
Returns the position of this BaseInteractable. More...

const QuaterniongetOrientation () const
Returns the orientation of this BaseInteractable. More...

void setPosition (const Vec3D &position)
Sets the position of this BaseInteractable. More...

void setOrientationViaNormal (Vec3D normal)
Sets the orientation of this BaseInteractable by defining the vector that results from the rotation of the (1,0,0) vector. More...

void setOrientationViaEuler (Vec3D eulerAngle)
Sets the orientation of this BaseInteractable by defining the euler angles. More...

void setOrientation (const Quaternion &orientation)
Sets the orientation of this BaseInteractable. More...

virtual void move (const Vec3D &move)
Moves this BaseInteractable by adding an amount to the position. More...

virtual void rotate (const Vec3D &angularVelocityDt)
Rotates this BaseInteractable. More...

const std::vector
< BaseInteraction * > &
getInteractions () const
Returns a list of interactions which belong to this interactable. More...

Adds an interaction to this BaseInteractable. More...

bool removeInteraction (BaseInteraction *I)
Removes an interaction from this BaseInteractable. More...

void copyInteractionsForPeriodicParticles (const BaseInteractable &p)
Copies interactions to this BaseInteractable whenever a periodic copy made. More...

void setVelocity (const Vec3D &velocity)
set the velocity of the BaseInteractable. More...

void setAngularVelocity (const Vec3D &angularVelocity)
set the angular velocity of the BaseInteractble. More...

adds an increment to the velocity. More...

add an increment to the angular velocity. More...

virtual const Vec3DgetVelocity () const
Returns the velocity of this interactable. More...

virtual const Vec3DgetAngularVelocity () const
Returns the angular velocity of this interactable. More...

void setPrescribedPosition (const std::function< Vec3D(double)> &prescribedPosition)
Allows the position of an infinite mass interactable to be prescribed. More...

void applyPrescribedPosition (double time)
Computes the position from the user defined prescribed position function. More...

void setPrescribedVelocity (const std::function< Vec3D(double)> &prescribedVelocity)
Allows the velocity of an infinite mass interactable to be prescribed. More...

void applyPrescribedVelocity (double time)
Computes the velocity from the user defined prescribed velocity function. More...

void setPrescribedOrientation (const std::function< Quaternion(double)> &prescribedOrientation)
Allows the orientation of the infinite mass interactbale to be prescribed. More...

void applyPrescribedOrientation (double time)
Computes the orientation from the user defined prescribed orientation function. More...

void setPrescribedAngularVelocity (const std::function< Vec3D(double)> &prescribedAngularVelocity)
Allows the angular velocity of the infinite mass interactable to be prescribed. More...

void applyPrescribedAngularVelocity (double time)
Computes the angular velocity from the user defined prescribed angular velocity. More...

virtual const Vec3D getVelocityAtContact (const Vec3D &contact) const
Returns the velocity at the contact point, use by many force laws. More...

void integrateBeforeForceComputation (double time, double timeStep)
This is part of integrate routine for objects with infinite mass. More...

void integrateAfterForceComputation (double time, double timeStep)
This is part of the integration routine for objects with infinite mass. More...

Public Member Functions inherited from BaseObject
BaseObject ()=default
Default constructor. More...

BaseObject (const BaseObject &p)=default
Copy constructor, copies all the objects BaseObject contains. More...

virtual ~BaseObject ()=default
virtual destructor More...

virtual void moveInHandler (unsigned int index)
Except that it is virtual, it does the same thing as setIndex() does. More...

void setIndex (unsigned int index)
Allows one to assign an index to an object in the handler/container. More...

void setId (unsigned long id)
Assigns a unique identifier to each object in the handler (container) which remains constant even after the object is deleted from the container/handler. More...

unsigned int getIndex () const
Returns the index of the object in the handler. More...

unsigned int getId () const
Returns the unique identifier of any particular object. More...

void setGroupId (unsigned groupId)

unsigned getGroupId () const

Protected Attributes inherited from BaseParticle

Mdouble invMass_

MatrixSymmetric3D invInertia_
Inverse Particle mass (for computation optimization) More...

## Detailed Description

A basic particle.

Before r3648, this SphericalParticle class was known as BaseParticle.

Definition at line 36 of file SphericalParticle.h.

## Constructor & Destructor Documentation

 SphericalParticle::SphericalParticle ( )
default

Particle constructor.

Referenced by copy().

 SphericalParticle::SphericalParticle ( const ParticleSpecies * s )
inlineexplicit

Particle constructor, setting the species. This is useful to create e.g. template particles for the InsertionBoundaries. It is marked explicit because you dont want to use it with the assignment operator, particle = species;.

Definition at line 50 of file SphericalParticle.h.

50  : BaseParticle(s) {
51
52  };
BaseParticle()
Basic Particle constructor, creates an Particle at (0,0,0) with radius, mass and inertia equal to 1...
Definition: BaseParticle.cc:33
 SphericalParticle::SphericalParticle ( const SphericalParticle & p )
default

Particle constructor.

 SphericalParticle::~SphericalParticle ( )
overridedefault

## Member Function Documentation

 SphericalParticle* SphericalParticle::copy ( ) const
inlineoverridevirtual

Particle copy method. Calls copy constructor of this class (useful for polymorphism)

Implements BaseParticle.

Definition at line 64 of file SphericalParticle.h.

References SphericalParticle().

64  {
65  return new SphericalParticle(*this);
66  }
SphericalParticle()=default
Particle constructor.
 std::string SphericalParticle::getName ( ) const
inlineoverridevirtual

Returns the name of the object.

Reimplemented from BaseParticle.

Definition at line 71 of file SphericalParticle.h.

71  {
72  return "BaseParticle";
73  }
 bool SphericalParticle::isSphericalParticle ( ) const
inlineoverridevirtual

Reimplemented from BaseParticle.

Definition at line 75 of file SphericalParticle.h.

75 {return true;}

The documentation for this class was generated from the following file: