22 #ifdef CONTACT_LIST_HGRID
177 void read(std::istream& is)
override;
183 virtual void oldRead(std::istream& is);
188 void write(std::ostream& os)
const override;
236 #ifdef CONTACT_LIST_HGRID
466 #ifdef CONTACT_LIST_HGRID
606 virtual std::vector<Mdouble>
getFieldVTK(
unsigned i)
const;
661 #ifdef CONTACT_LIST_HGRID
int i
Definition: BiCGSTAB_step_by_step.cpp:9
double Mdouble
Definition: GeneralDefine.h:13
#define MERCURYDPM_DEPRECATED
Definition: GeneralDefine.h:16
float * p
Definition: Tutorial_Map_using.cpp:9
Defines the basic properties that a interactable object can have.
Definition: BaseInteractable.h:34
virtual const Vec3D & getVelocity() const
Returns the velocity of this interactable.
Definition: BaseInteractable.cc:307
const ParticleSpecies * getSpecies() const
Returns a pointer to the species of this BaseInteractable.
Definition: BaseInteractable.h:87
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:39
Definition: BaseParticle.h:33
void setInverseInertia(MatrixSymmetric3D inverseInertia)
Sets the particle's inertia_ (and adjusts invInertia_ accordingly)
Definition: BaseParticle.cc:514
void write(std::ostream &os) const override
Particle print function, which accepts an std::ostream as input.
Definition: BaseParticle.cc:319
bool isPeriodicGhostParticle() const
Indicates if this particle is a ghost in the periodic boundary.
Definition: BaseParticle.cc:280
bool isMaserParticle_
Indicates the periodic complexity at current time step. Used to update periodic status.
Definition: BaseParticle.h:688
Vec3D getMomentum() const
Definition: BaseParticle.h:311
void setPreviousPosition(const Vec3D &pos)
Sets the particle's position in the previous time step.
Definition: BaseParticle.cc:600
virtual Mdouble getInfo() const
Returns some user-defined information about this object (by default, species ID).
Definition: BaseParticle.cc:342
bool isFixed() const override
Is fixed Particle function. It returns whether a Particle is fixed or not, by checking its inverse Ma...
Definition: BaseParticle.h:72
bool isClump_
The particle is pebble.
Definition: BaseParticle.h:717
Mdouble getInteractionDistance(const BaseInteractable *i) const
Returns the interactionDistance_ of the mixed species of this particle and the particle or wall i.
Definition: BaseParticle.h:352
Mdouble getGravitationalEnergy() const
Calculates the particle's gravitational energy.
virtual std::string getTypeVTK(unsigned i) const
Definition: BaseParticle.cc:821
virtual void oldRead(std::istream &is)
Definition: BaseParticle.cc:381
virtual void setAxes(const Vec3D &axes)
Only ustilised in case of superquadric particles.
Definition: BaseParticle.h:502
unsigned int getParticleDimensions() const
Returns the particle's dimensions (either 2 or 3).
Definition: BaseParticle.cc:764
BaseParticle * periodicFromParticle_
Pointer to the previous Particle in the same HGrid cell.
Definition: BaseParticle.h:676
void setPeriodicComplexity(std::vector< int > complexity)
Set the periodic communication complexity of the particle.
Definition: BaseParticle.cc:189
virtual void setExponents(const Mdouble &eps1, const Mdouble &eps2)
Only ustilised in case of superquadric particles.
Definition: BaseParticle.h:507
const std::vector< int > & getPreviousPeriodicComplexity() const
Sets the previous periodic communication complexity of the particle.
Definition: BaseParticle.cc:254
virtual unsigned getNumberOfFieldsVTK() const
Definition: BaseParticle.cc:816
BaseInteraction * getInteractionWith(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 t...
Definition: BaseParticle.cc:667
void setPeriodicFromParticle(BaseParticle *p)
Assigns the pointer to the 'original' particle this one's a periodic copy of (used in periodic bounda...
Definition: BaseParticle.h:416
virtual bool isInContactWith(const BaseParticle *P) const
Get whether or not this particle is in contact with the given particle.
Definition: BaseParticle.cc:845
virtual void setInfo(Mdouble info)
Sets some user-defined information about this object (by default, species ID).
Definition: BaseParticle.cc:337
unsigned timeStamp_
Definition: BaseParticle.h:703
void printHGrid(std::ostream &os) const
Adds particle's HGrid level and cell coordinates to an ostream.
Definition: BaseParticle.cc:422
bool isInMPIDomain()
Indicates if the particle is in the communication zone of the mpi domain.
Definition: BaseParticle.cc:259
void setInPeriodicDomain(bool flag)
Flags the status of the particle whether it is in the periodic communication zone or not.
Definition: BaseParticle.cc:275
BaseParticle * getHGridPrevObject() const
Returns pointer to previous object in particle's HGrid level & cell.
Definition: BaseParticle.h:233
virtual Mdouble getKineticEnergy() const
Calculates the particle's translational kinetic energy.
Definition: BaseParticle.cc:446
Vec3D previousPosition_
Indicates if this particle belongs to the maser boundary or is released into the wide open world.
Definition: BaseParticle.h:690
MatrixSymmetric3D getInvInertia() const
Returns the inverse of the particle's inertia tensor.
Definition: BaseParticle.h:269
Mdouble getRadius() const
Returns the particle's radius.
Definition: BaseParticle.h:331
virtual Mdouble getExponentEps2() const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function ...
Definition: BaseParticle.cc:842
bool isInPeriodicDomain_
Definition: BaseParticle.h:684
MERCURYDPM_DEPRECATED void setMass(Mdouble mass)
Sets the particle's mass.
Definition: BaseParticle.cc:563
void movePrevious(const Vec3D &posMove)
Adds a vector to the particle's previousPosition_.
Definition: BaseParticle.cc:610
Mdouble getWallInteractionRadius(const BaseWall *wall) const
returns the radius plus the interactionDistance
Definition: BaseParticle.h:369
void setInfiniteInertia()
Sets the particle's inertia_ to 'infinite' (1e20) and its invInertia_ to 0.
Definition: BaseParticle.cc:523
BaseParticle * hGridPrevObject_
Pointer to the next Particle in the same HGrid cell.
Definition: BaseParticle.h:673
std::vector< int > periodicComplexity_
Indicates the periodic complexity at previous time step.
Definition: BaseParticle.h:687
MatrixSymmetric3D getInertia() const
Definition: BaseParticle.h:314
virtual Mdouble getVolume() const
Get Particle volume function, which required a reference to the Species vector. It returns the volume...
Definition: BaseParticle.cc:126
bool isPebble() const
Checks if particle is a pebble (belongs to a clump)
Definition: BaseParticle.h:639
bool isMPIParticle() const
Indicates if this particle is a ghost in the MPI domain.
Definition: BaseParticle.cc:164
unsigned communicationComplexity_
returns true if it flagged as being in MPI domain
Definition: BaseParticle.h:681
void setHGridNextObject(BaseParticle *p)
Sets the pointer to the next object in the particle's HGrid cell & level.
Definition: BaseParticle.h:455
void fixParticle()
Fix Particle function. It fixes a Particle by setting its inverse mass and inertia and velocities to ...
Definition: BaseParticle.cc:150
const HGridCell & getHGridCell() const
Definition: BaseParticle.h:617
virtual std::vector< Mdouble > getFieldVTK(unsigned i) const
Definition: BaseParticle.cc:831
void setInMPIDomain(bool flag)
Flags the status of the particle if wether it is in the communication zone or not.
Definition: BaseParticle.cc:264
Mdouble radius_
Definition: BaseParticle.h:650
Vec3D getAngularMomentum() const
Definition: BaseParticle.cc:574
unsigned int getHGridLevel() const
Returns particle's HGrid level.
Definition: BaseParticle.h:217
virtual Mdouble getSurfaceArea() const
Definition: BaseParticle.h:308
virtual Mdouble getExponentEps1() const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function ...
Definition: BaseParticle.cc:839
BaseParticle * getHGridNextObject() const
Returns pointer to next object in particle's HGrid level & cell.
Definition: BaseParticle.h:225
bool isInPeriodicDomain() const
Indicates if the particle is in the periodic boundary communication zone.
Definition: BaseParticle.cc:270
std::vector< int > previousPeriodicComplexity_
Indicates if the particle is a ghost particle of a periodic particle.
Definition: BaseParticle.h:686
ParticleHandler * getHandler() const
Returns pointer to the particle's ParticleHandler.
Definition: BaseParticle.cc:650
void setHGridZ(const int z)
Sets the particle's HGrid cell Z-coordinate.
Definition: BaseParticle.h:440
virtual std::string getNameVTK(unsigned i) const
Definition: BaseParticle.cc:826
bool isMaserParticle() const
Indicates if this particle belongs to the maser boundary.
Definition: BaseParticle.cc:290
const Vec3D getDisplacement2(Mdouble xmin, Mdouble xmax, Mdouble ymin, Mdouble ymax, Mdouble zmin, Mdouble zmax, Mdouble t) const
Definition: BaseParticle.cc:468
Mdouble getMass() const
Returns the particle's mass.
Definition: BaseParticle.h:305
virtual void integrateBeforeForceComputation(double time, double timeStep)
First step of Velocity Verlet integration.
Definition: BaseParticle.cc:700
void setHGridLevel(const unsigned int level)
Sets the particle's HGrid level.
Definition: BaseParticle.h:447
virtual Vec3D getCenterOfMass()
Definition: BaseParticle.h:644
void setMPIParticle(bool flag)
Flags the mpi particle status.
Definition: BaseParticle.cc:174
bool isPebble_
pointer to a clump particle (for a pebble)
Definition: BaseParticle.h:715
void setPreviousPeriodicComplexity(std::vector< int > complexity)
Set the previous periodic communication complexity of the paritcle.
Definition: BaseParticle.cc:249
virtual void integrateAfterForceComputation(double time, double timeStep)
Second step of Velocity Verlet integration.
Definition: BaseParticle.cc:742
void setCommunicationComplexity(unsigned complexity)
Set the communication complexity of the particle.
Definition: BaseParticle.cc:179
BaseParticle * clumpParticle_
Function that updates necessary quantities of a clump particle after adding a pebble.
Definition: BaseParticle.h:713
virtual void actionsBeforeTimeStep()
Definition: BaseParticle.h:598
bool isClump() const
Checks if particle is a clump (container)
Definition: BaseParticle.h:630
void unfix()
Unfix Particle function, which required a reference to the Species vector. It unfixes a Particle by c...
Definition: BaseParticle.cc:305
virtual Mdouble getRotationalEnergy() const
Calculates the particle's rotational kinetic energy.
Definition: BaseParticle.cc:455
const Vec3D & getPreviousPosition() const
Returns the particle's position in the previous time step.
Definition: BaseParticle.h:378
void setHandler(ParticleHandler *handler)
Sets the pointer to the particle's ParticleHandler.
Definition: BaseParticle.cc:640
Mdouble getSumOfInteractionRadii(const BaseParticle *particle) const
returns the sum of the radii plus the interactionDistance
Definition: BaseParticle.h:362
void angularAccelerate(const Vec3D &angVel)
Increases the particle's angularVelocity_ by the given vector.
Definition: BaseParticle.cc:630
Mdouble getMaxInteractionRadius() const
Returns the particle's interaction radius, which might be different from radius_ (e....
Definition: BaseParticle.h:345
virtual BaseParticle * copy() const =0
Particle copy method. It calls to copy constructor of this Particle, useful for polymorphism.
MatrixSymmetric3D invInertia_
Inverse Particle mass (for computation optimization)
Definition: BaseParticle.h:652
void setHGridX(const int x)
Sets the particle's HGrid cell X-coordinate.
Definition: BaseParticle.h:424
void setPeriodicGhostParticle(bool flag)
Flags the status of the particle to be a ghost in periodic boundary or not.
Definition: BaseParticle.cc:285
Mdouble invMass_
Particle radius_.
Definition: BaseParticle.h:651
void setMaserParticle(bool flag)
Flags the status of the particle if it belongs to the maser boundary or not.
Definition: BaseParticle.cc:295
bool isMPIParticle_
Pointer to originating Particle.
Definition: BaseParticle.h:679
Mdouble info_
Definition: BaseParticle.h:698
BaseParticle * getClump() const
Definition: BaseParticle.h:622
BaseParticle * hGridNextObject_
Definition: BaseParticle.h:672
void setTimeStamp(unsigned timeStamp)
Definition: BaseParticle.cc:350
virtual void setRadius(Mdouble radius)
Sets the particle's radius_ (and adjusts the mass_ accordingly, based on the particle's species)
Definition: BaseParticle.cc:548
int getHGridY() const
Returns particle's HGrid cell Y-coordinate.
Definition: BaseParticle.h:255
HGridCell hGridCell
Definition: BaseParticle.h:670
~BaseParticle() override
Particle destructor, needs to be implemented and checked if it removes tangential spring information.
Definition: BaseParticle.cc:108
virtual void actionsAfterAddObject()
Definition: BaseParticle.h:711
BaseParticle * getPeriodicFromParticle() const
Returns the 'original' particle this one's a periodic copy of.
Definition: BaseParticle.h:324
void accelerate(const Vec3D &vel)
Increases the particle's velocity_ by the given vector.
Definition: BaseParticle.cc:620
bool isPeriodicGhostParticle_
bool that indicates if a particle is in the periodic domain of any boundary
Definition: BaseParticle.h:685
void read(std::istream &is) override
Particle read function, which accepts an std::istream as input.
Definition: BaseParticle.cc:368
Mdouble getCurvature(const Vec3D &labFixedCoordinates) const override
Definition: BaseParticle.h:279
virtual void setSpecies(const ParticleSpecies *species)
Definition: BaseParticle.cc:798
void setHGridPrevObject(BaseParticle *p)
Sets the pointer to the previous object in the particle's HGrid cell & level.
Definition: BaseParticle.h:463
ParticleHandler * handler_
Inverse Particle inverse inertia (for computation optimization)
Definition: BaseParticle.h:659
unsigned getCommunicationComplexity()
Obtains the communication complexity of the particle.
Definition: BaseParticle.cc:184
virtual void actionsAfterTimeStep()
Definition: BaseParticle.h:608
unsigned getTimeStamp() const
Definition: BaseParticle.cc:355
void setMassForP3Statistics(Mdouble mass)
Sets the particle's mass This function should not be used, but is necessary to extend the CG toolbox ...
Definition: BaseParticle.cc:584
MERCURYDPM_DEPRECATED void setIndSpecies(unsigned int indSpecies) override
Definition: BaseParticle.cc:774
virtual bool isSphericalParticle() const =0
BaseParticle()
Basic Particle constructor, creates an Particle at (0,0,0) with radius, mass and inertia equal to 1.
Definition: BaseParticle.cc:11
std::string getName() const override
Returns the name of the object.
Definition: BaseParticle.cc:332
virtual void setInertia()
Definition: BaseParticle.cc:500
void setHGridY(const int y)
Sets the particle's HGrid cell Y-coordinate.
Definition: BaseParticle.h:432
const std::vector< int > & getPeriodicComplexity()
Obtains the periodic communication complexity of the particle.
Definition: BaseParticle.cc:214
int getHGridX() const
Returns particle's HGrid cell X-coordinate.
Definition: BaseParticle.h:248
bool isInMPIDomain_
returns true if the particle acts as an MPI particle instead of a real particle
Definition: BaseParticle.h:680
Mdouble getInvMass() const override
Returns the inverse of the particle's mass.
Definition: BaseParticle.h:276
int getHGridZ() const
Returns particle's HGrid cell Z-coordinate.
Definition: BaseParticle.h:262
virtual void computeMass(const ParticleSpecies &s)
Computes the particle's (inverse) mass and inertia.
Definition: BaseParticle.cc:856
virtual Vec3D getAxes() const
Only ustilised in case of superquadric particles. Had to create a virtual function to allow function ...
Definition: BaseParticle.cc:836
Mdouble getInteractionDistance() const
returns the largest separation distance at which adhesive short-range forces can occur.
Definition: BaseSpecies.h:125
Basic class for walls.
Definition: BaseWall.h:28
Definition: HGridCell.h:12
unsigned int getHGridLevel() const
Definition: HGridCell.h:65
void setHGridZ(int HGridZ)
Definition: HGridCell.h:60
int getHGridX() const
Definition: HGridCell.h:35
void setHGridX(int HGridX)
Definition: HGridCell.h:40
int getHGridZ() const
Definition: HGridCell.h:55
void setHGridY(int HGridY)
Definition: HGridCell.h:50
void setHGridLevel(unsigned int HGridLevel)
Definition: HGridCell.h:70
int getHGridY() const
Definition: HGridCell.h:45
In the HGrid class, here all information about the HGrid is stored.
Definition: HGrid.h:22
Container to store Interaction objects.
Definition: InteractionHandler.h:25
Implementation of a 3D symmetric matrix.
Definition: MatrixSymmetric.h:16
static MatrixSymmetric3D inverse(const MatrixSymmetric3D &A)
Computes the inverse of a matrix; exits if the inverse doesn't exist.
Definition: MatrixSymmetric.cc:267
Container to store pointers to all particles.
Definition: ParticleHandler.h:28
Definition: ParticleSpecies.h:16
const BaseSpecies * getMixedSpecies(const ParticleSpecies *s) const
Definition: ParticleSpecies.cc:218
void computeMass(BaseParticle *p) const
Compute Particle mass function, which required a reference to the Species vector. It computes the Par...
Definition: ParticleSpecies.cc:147
Mdouble getMaxInteractionDistance() const
returns the largest separation distance at which adhesive short-range forces can occur.
Definition: ParticleSpecies.h:92
Container to store all ParticleSpecies.
Definition: SpeciesHandler.h:15
Definition: Kernel/Math/Vector.h:30
Scalar * y
Definition: level1_cplx_impl.h:128
RealScalar s
Definition: level1_cplx_impl.h:130
int info
Definition: level2_cplx_impl.h:39
squared absolute value
Definition: GlobalFunctions.h:87
double zmax
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:71
double zmin
Definition: time_harmonic_fourier_decomposed_linear_elasticity/cylinder/cylinder.cc:69
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
const Mdouble pi
Definition: ExtendedMath.h:23
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36