1#ifndef BODYMASSSPRINGDAMPER_HPP
2#define BODYMASSSPRINGDAMPER_HPP
15#include "../../../../src/core/BaseBody.hpp"
32 template<
typename cell_t,
class plugin_t>
54 double R = 1.0 / (2.0 /
radius);
56 (3.0 * M_PI * M_PI * R * R);
159 this->targetOverlap = _targetOverlap;
Defines the PluginHertzianPhysics class for Delaunay triangulation and Hertzian physics.
Class for managing Delaunay triangulation and mass-spring-based physics.
double getAdhesion() const
Gets the adhesion coefficient.
void setDensity(double d)
Sets the density.
void divTensor(double div)
Divides the stress tensor.
void growth(double delta)
Increases the radius so that the volume is multiplied by 1 + delta.
void setYoungModulus(double ym)
Sets the Young's modulus.
void computeAdhesion()
Computes the adhesion coefficient based on the different parameters.
void setStressTensor(Tensor st)
Sets the stress tensor.
void setRadius(double rad)
Sets the radius.
BodyHertzianPhysics()
Constructor.
bool getComputed() const
Gets the computed flag.
void setGammaCoef(double g)
Sets the gamma coefficient.
void setBaseRadius(double _baseRadius)
Sets the base radius.
Tensor getStressTensor()
Gets the stress tensor.
double getPressure() const
Gets the internal pressure.
MecaCell::Vec purposeVelocity
double getPoissonNumber() const
Gets the Poisson's ratio.
void moveTo(const MecaCell::Vec &v)
Moves a cell to position v.
double getBaseRadius() const
Gets the base radius.
void setComputed(bool c)
Sets the computed flag.
double getGamma() const
Gets the gamma value.
double getRadius() const
Gets the radius.
void setPoissonNumber(double pn)
Sets the Poisson's ratio.
double getVolume() const
Gets the volume.
double getBoundingBoxRadius() const
Gets the bounding box radius.
void setTargetOverlap(double _targetOverlap)
Sets the target overlap.
void addStress(Tensor st)
Adds stress to the stress tensor.
double getYoungModulus() const
Gets the Young's modulus.
MecaCell::Vec getPurposeVelocity() const
Gets the purpose velocity.
void setPurposeVelocity(MecaCell::Vec pf)
Sets the purpose velocity.
void setPosition(const Vec &p)
void setMass(const double m)
general purpose 3D vector/point class.
static Vector3D zero()
constructs a zero vector
Namespace for Hertzian physics-related classes and functions.
int abs(int x)
Computes the absolute value of an integer.
double cbrt(double x)
Computes the cube root of a number.
double sqrt(double x)
Computes the square root of a number.
double pow(double base, double exponent)
Computes the power of a number.
Represents a 3x3 tensor for stress calculations.
double get(int i, int j) const
Gets the value at the specified position in the tensor.