BaseParticle.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef BASEPARTICLE_H
6 #define BASEPARTICLE_H
7 
8 #include <vector>
9 #include "Math/Vector.h"
10 #include "BaseInteractable.h"
11 #include "HGridCell.h"
13 
14 class ParticleHandler;
15 
16 class SpeciesHandler;
17 
18 class HGrid;
19 
20 class BaseInteraction;
21 
22 #ifdef CONTACT_LIST_HGRID
23 class PossibleContact;
24 #endif
25 
33 {
34 public:
38  BaseParticle();
39 
43  BaseParticle(const BaseParticle& p);
44 
45  explicit BaseParticle(const ParticleSpecies* s);
46 
50  ~BaseParticle() override;
51 
55  virtual BaseParticle* copy() const = 0;
56 
60  virtual Mdouble getVolume() const;
61 
65  void fixParticle();
66 
72  bool isFixed() const override
73  { return (invMass_ == 0.0); }
74 
78  bool isMPIParticle() const;
79 
83  void setMPIParticle(bool flag);
84 
88  bool isInMPIDomain();
89 
93  void setInMPIDomain(bool flag);
94 
98  bool isInPeriodicDomain() const;
99 
103  void setInPeriodicDomain(bool flag);
104 
108  bool isPeriodicGhostParticle() const;
109 
113  void setPeriodicGhostParticle(bool flag);
114 
118  bool isMaserParticle() const;
119 
123  void setMaserParticle(bool flag);
124 
128  void setCommunicationComplexity(unsigned complexity);
129 
133  unsigned getCommunicationComplexity();
134 
138  void setPeriodicComplexity(std::vector<int> complexity);
139 
143  void setPeriodicComplexity(int index, int value);
144 
148  const std::vector<int>& getPeriodicComplexity();
149 
153  void setPreviousPeriodicComplexity(std::vector<int> complexity);
154 
158  const std::vector<int>& getPreviousPeriodicComplexity() const;
159 
163  int getPeriodicComplexity(int index);
164 
165  //void setCurrentPeriodicPosition(Vec3D position);
166 
167  //Vec3D getCurrentPeriodicPosition();
168 
172  void unfix();
173 
177  void read(std::istream& is) override;
178 
183  virtual void oldRead(std::istream& is);
184 
188  void write(std::ostream& os) const override;
189 
193  std::string getName() const override;
194 
198  virtual void setInfo(Mdouble info);
199 
203  virtual Mdouble getInfo() const;
204 
205  void setTimeStamp(unsigned timeStamp);
206 
207  unsigned getTimeStamp() const;
208 
212  void printHGrid(std::ostream& os) const;
213 
217  unsigned int getHGridLevel() const
218  { return hGridCell.getHGridLevel(); }
219 
226  { return hGridNextObject_; }
227 
234  { return hGridPrevObject_; }
235 
236 #ifdef CONTACT_LIST_HGRID
237 
241  PossibleContact* getFirstPossibleContact() const;
242 #endif
243 
248  int getHGridX() const
249  { return hGridCell.getHGridX(); }
250 
255  int getHGridY() const
256  { return hGridCell.getHGridY(); }
257 
262  int getHGridZ() const
263  { return hGridCell.getHGridZ(); }
264 
270  { return invInertia_; }
271 
276  Mdouble getInvMass() const override
277  { return invMass_; }
278 
279  Mdouble getCurvature(const Vec3D& labFixedCoordinates) const override
280  { return 1.0/radius_; }
281 
286  virtual Mdouble getKineticEnergy() const;
287 
292  virtual Mdouble getRotationalEnergy() const;
293 
300 
305  Mdouble getMass() const
306  { return 1.0 / invMass_; }
307 
308  virtual Mdouble getSurfaceArea() const
309  { return 4.0*constants::pi*getRadius()*getRadius(); }
310 
312  { return getVelocity() / invMass_; }
313 
315  { return invInertia_.inverse(); }
316 
317  Vec3D getAngularMomentum() const;
318 
325  { return periodicFromParticle_; }
326 
332  { return radius_; }
333 
346  return getRadius() + getSpecies()->getMaxInteractionDistance() * 0.5;
347  }
348 
353  {
354  //const auto mixedSpecies = getSpecies()->getHandler()->getMixedObject(getSpecies(),particle->getSpecies());
355  //return mixedSpecies->getInteractionDistance();
356  return getSpecies()->getMixedSpecies(i->getSpecies())->getInteractionDistance();
357  }
358 
363  return getRadius() + particle->getRadius() + getInteractionDistance((const BaseInteractable*)particle);
364  }
365 
370  return getRadius() + getInteractionDistance((const BaseInteractable*)wall);
371  }
372 
378  const Vec3D& getPreviousPosition() const
379  { return previousPosition_; }
380 
386  const Vec3D getDisplacement2(Mdouble xmin, Mdouble xmax, Mdouble ymin, Mdouble ymax, Mdouble zmin, Mdouble zmax,
387  Mdouble t) const;
388 
392  virtual void setInertia();
393 
397  void setInertia(MatrixSymmetric3D inertia);
398 
402  void setInverseInertia(MatrixSymmetric3D inverseInertia);
403 
408  void setInfiniteInertia();
409 
417  { periodicFromParticle_ = p; };
418 
424  void setHGridX(const int x)
425  { hGridCell.setHGridX(x); }
426 
432  void setHGridY(const int y)
433  { hGridCell.setHGridY(y); }
434 
440  void setHGridZ(const int z)
441  { hGridCell.setHGridZ(z); }
442 
447  void setHGridLevel(const unsigned int level)
448  { hGridCell.setHGridLevel(level); }
449 
456  { hGridNextObject_ = p; }
457 
464  { hGridPrevObject_ = p; }
465 
466 #ifdef CONTACT_LIST_HGRID
470  void setFirstPossibleContact(PossibleContact* PC);
471 #endif
472 
477  virtual void setRadius(Mdouble radius);
478 
479  /*
480  * The below 6 functions had to be declared virtual here in order to allow access of these functions in ParticleHandler class in the function writeVTK.
481  */
482 
486  virtual Vec3D getAxes() const;
487 
491  virtual Mdouble getExponentEps1() const;
492 
496  virtual Mdouble getExponentEps2() const;
497 
498 
502  virtual void setAxes(const Vec3D& axes){ }
503 
507  virtual void setExponents(const Mdouble& eps1, const Mdouble& eps2){}
508 
509  //
516  void setMass(Mdouble mass);
517 
523  void setMassForP3Statistics(Mdouble mass);
524 
528  void setPreviousPosition(const Vec3D& pos);
529 
533  void movePrevious(const Vec3D& posMove);
534 
538  void accelerate(const Vec3D& vel);
539 
543  void angularAccelerate(const Vec3D& angVel);
544 
548  void setHandler(ParticleHandler* handler);
549 
553  ParticleHandler* getHandler() const;
554 
559  BaseInteraction* getInteractionWith(BaseParticle* P, unsigned timeStamp, InteractionHandler* interactionHandler) override;
560 
564  virtual bool isInContactWith(const BaseParticle* P) const;
565 
571  virtual void integrateBeforeForceComputation(double time, double timeStep);
572 
577  virtual void integrateAfterForceComputation(double time, double timeStep);
578 
582  unsigned int getParticleDimensions() const;
583 
589  void setIndSpecies(unsigned int indSpecies) override;
590 
596  virtual void setSpecies(const ParticleSpecies* species);
597 
598  virtual void actionsBeforeTimeStep() {}
599 
600  virtual unsigned getNumberOfFieldsVTK() const;
601 
602  virtual std::string getTypeVTK(unsigned i) const;
603 
604  virtual std::string getNameVTK(unsigned i) const;
605 
606  virtual std::vector<Mdouble> getFieldVTK(unsigned i) const;
607 
608  virtual void actionsAfterTimeStep() {}
609 
614  virtual bool isSphericalParticle() const = 0;
615 
616  //const HGridCell& getHGridCell() const;
617  const HGridCell& getHGridCell() const
618  { return hGridCell; }
619 
620  virtual void computeMass(const ParticleSpecies& s);
621 
623  {
624  return clumpParticle_;
625  }
626 
630  bool isClump() const
631  {
632  return isClump_;
633  }
634 
639  bool isPebble() const
640  {
641  return isPebble_;
642  }
643 
644  virtual Vec3D getCenterOfMass() {return Vec3D(0,0,0);}
645  //+++++++++++++++++++++++++++++
646 
647 
648 public:
649 
653 
654 private:
655 
660 
661 #ifdef CONTACT_LIST_HGRID
665  PossibleContact* firstPossibleContact;
666 #endif
667 
671 
674 
677 
678  //MPI particle attributes
681  unsigned communicationComplexity_; //Determins if the particle in the corner of a domain, rib, side or not at all
682 
683  //Periodic boundary particle attributes
686  std::vector<int> previousPeriodicComplexity_;
687  std::vector<int> periodicComplexity_;
689 
691 
697 
698  Mdouble info_; // by default, the species ID (if a species is set)
699 
703  unsigned timeStamp_;
704 
705 public:
706 
711  virtual void actionsAfterAddObject() {}
712 
714 
715  bool isPebble_;
716 
717  bool isClump_;
718 };
719 
720 #endif
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
Class that describes a possible contact between two BaseParticle.
Definition: PossibleContact.h:21
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
radius
Definition: UniformPSDSelfTest.py:15
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