CellModules
MecaCell::ContactSurfaceBody< Cell > Class Template Reference

#include <contactsurfacebody.hpp>

Inheritance diagram for MecaCell::ContactSurfaceBody< Cell >:
MecaCell::OrientedParticle MecaCell::Movable MecaCell::Orientable

Public Types

using embedded_plugin_t = GenericConnectionBodyPlugin< Cell, ContactSurface >
 

Public Member Functions

 ContactSurfaceBody (Cell *c, Vector3D pos=Vector3D::zero())
 
void updateInternals (double dt)
 
void setVolumeConservationEnabled (bool v)
 
void setRestVolume (double v)
 
void setRadius (double r)
 
double getDynamicRadius () const
 
double getBoundingBoxRadius () const
 
std::tuple< Cell *, double > getConnectedCellAndMembraneDistance (const Vec &d) const
 
void computeCurrentAreaAndVolume ()
 
void updateDynamicRadius (double dt)
 
template<typename Integrator = Euler>
void updatePositionsAndOrientations (double dt)
 uses More...
 
void solidifyAdhesions ()
 
void releaseAdhesions ()
 
CellgetConnectedCell (const Vec &d) const
 
double getPreciseMembraneDistance (const Vec &d) const
 
double getRestArea () const
 
void computeRestVolume ()
 
double getRestMomentOfInertia () const
 
double getMomentOfInertia () const
 
double getVolumeVariation () const
 
double getVolume () const
 
void setIncompressibility (double i)
 
void setStiffness (double k)
 
void setDynamicRadius (double r)
 
double getPressure () const
 
double getRadius (void) const
 
void moveTo (Vector3D newpos)
 
bool isMovementEnabled ()
 
void disableMovement ()
 
void enableMovement ()
 
Vec getPosition () const
 
Vec getPrevposition () const
 
Vec getVelocity () const
 
Vec getForce () const
 
double getMass () const
 
void setPosition (const Vec &p)
 
void setPrevposition (const Vec &p)
 
void setVelocity (const Vec &v)
 
void setForce (const Vec &f)
 
void setMass (const double m)
 
void receiveForce (const double &intensity, const Vec &direction, const bool &compressive)
 
void receiveForce (const Vec &f)
 
void resetVelocity ()
 
void resetForce ()
 
Vec getAngularVelocity () const
 
Vec getTorque () const
 
Basis< VecgetOrientation () const
 
Rotation< VecgetOrientationRotation () const
 
void setAngularVelocity (const Vec &v)
 
void setTorque (const Vec &t)
 
void setOrientationRotation (const Rotation< Vec > &r)
 
void receiveTorque (const Vec &t)
 
void updateCurrentOrientation ()
 
void resetTorque ()
 
void resetAngularVelocity ()
 

Protected Attributes

Vec position = Vec::zero()
 
Vec prevposition = Vec::zero()
 
Vec velocity = Vec::zero()
 
Vec force = Vec::zero()
 
bool movementEnabled = true
 
double mass = Config::DEFAULT_CELL_MASS
 
double totalForce = 0
 
Vec angularVelocity = Vec::zero()
 
Vec torque = Vec::zero()
 
Basis< Vecorientation
 
Rotation< VecorientationRotation
 

Private Attributes

Cellcell = nullptr
 
std::vector< ContactSurface< Cell > * > cellConnections
 
double incompressibility = 0.01
 
double membraneStiffness = 0.5
 
double restRadius = 40
 
double dynamicRadius = restRadius
 radiius of the cell when at rest More...
 
double prevDynamicRadius = dynamicRadius
 
double currentArea = 4.0 * M_PI * restRadius * restRadius
 
double restVolume = (4.0 * M_PI / 3.0) * restRadius * restRadius
 
double currentVolume = restVolume
 
double pressure = 0
 
bool volumeConservationEnabled = true
 

Static Private Attributes

static constexpr double MAX_DYN_RADIUS_RATIO = 2.0
 

Friends

struct GenericConnectionBodyPlugin< Cell, ContactSurface >
 

Detailed Description

template<typename Cell>
class MecaCell::ContactSurfaceBody< Cell >

Definition at line 16 of file contactsurfacebody.hpp.

Member Typedef Documentation

◆ embedded_plugin_t

Constructor & Destructor Documentation

◆ ContactSurfaceBody()

template<typename Cell >
MecaCell::ContactSurfaceBody< Cell >::ContactSurfaceBody ( Cell c,
Vector3D  pos = Vector3D::zero() 
)
inline

Definition at line 40 of file contactsurfacebody.hpp.

Member Function Documentation

◆ computeCurrentAreaAndVolume()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::computeCurrentAreaAndVolume ( )
inline

Definition at line 72 of file contactsurfacebody.hpp.

◆ computeRestVolume()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::computeRestVolume ( )
inline

Definition at line 139 of file contactsurfacebody.hpp.

◆ disableMovement()

void MecaCell::Movable::disableMovement ( )
inlineinherited

Definition at line 24 of file movable.h.

◆ enableMovement()

void MecaCell::Movable::enableMovement ( )
inlineinherited

Definition at line 25 of file movable.h.

◆ getAngularVelocity()

Vec MecaCell::Orientable::getAngularVelocity ( ) const
inlineinherited

Definition at line 21 of file orientable.h.

◆ getBoundingBoxRadius()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getBoundingBoxRadius ( ) const
inline

Definition at line 51 of file contactsurfacebody.hpp.

◆ getConnectedCell()

template<typename Cell >
Cell * MecaCell::ContactSurfaceBody< Cell >::getConnectedCell ( const Vec d) const
inline

Definition at line 132 of file contactsurfacebody.hpp.

◆ getConnectedCellAndMembraneDistance()

template<typename Cell >
std::tuple< Cell *, double > MecaCell::ContactSurfaceBody< Cell >::getConnectedCellAndMembraneDistance ( const Vec d) const
inline

Definition at line 52 of file contactsurfacebody.hpp.

◆ getDynamicRadius()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getDynamicRadius ( ) const
inline

Definition at line 50 of file contactsurfacebody.hpp.

◆ getForce()

Vec MecaCell::Movable::getForce ( ) const
inlineinherited

Definition at line 29 of file movable.h.

◆ getMass()

double MecaCell::Movable::getMass ( ) const
inlineinherited

Definition at line 30 of file movable.h.

◆ getMomentOfInertia()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getMomentOfInertia ( ) const
inline

Definition at line 146 of file contactsurfacebody.hpp.

◆ getOrientation()

Basis< Vec > MecaCell::Orientable::getOrientation ( ) const
inlineinherited

Definition at line 23 of file orientable.h.

◆ getOrientationRotation()

Rotation< Vec > MecaCell::Orientable::getOrientationRotation ( ) const
inlineinherited

Definition at line 24 of file orientable.h.

◆ getPosition()

Vec MecaCell::Movable::getPosition ( ) const
inlineinherited

Definition at line 26 of file movable.h.

◆ getPreciseMembraneDistance()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getPreciseMembraneDistance ( const Vec d) const
inline

Definition at line 135 of file contactsurfacebody.hpp.

◆ getPressure()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getPressure ( ) const
inline

Definition at line 154 of file contactsurfacebody.hpp.

◆ getPrevposition()

Vec MecaCell::Movable::getPrevposition ( ) const
inlineinherited

Definition at line 27 of file movable.h.

◆ getRadius()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getRadius ( void  ) const
inline

Definition at line 155 of file contactsurfacebody.hpp.

◆ getRestArea()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getRestArea ( ) const
inline

Definition at line 138 of file contactsurfacebody.hpp.

◆ getRestMomentOfInertia()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getRestMomentOfInertia ( ) const
inline

Definition at line 142 of file contactsurfacebody.hpp.

◆ getTorque()

Vec MecaCell::Orientable::getTorque ( ) const
inlineinherited

Definition at line 22 of file orientable.h.

◆ getVelocity()

Vec MecaCell::Movable::getVelocity ( ) const
inlineinherited

Definition at line 28 of file movable.h.

◆ getVolume()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getVolume ( ) const
inline

Definition at line 149 of file contactsurfacebody.hpp.

◆ getVolumeVariation()

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::getVolumeVariation ( ) const
inline

Definition at line 147 of file contactsurfacebody.hpp.

◆ isMovementEnabled()

bool MecaCell::Movable::isMovementEnabled ( )
inlineinherited

Definition at line 23 of file movable.h.

◆ moveTo()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::moveTo ( Vector3D  newpos)
inline

Definition at line 156 of file contactsurfacebody.hpp.

◆ receiveForce() [1/2]

void MecaCell::Movable::receiveForce ( const double &  intensity,
const Vec direction,
const bool &  compressive 
)
inlineinherited

Definition at line 39 of file movable.h.

◆ receiveForce() [2/2]

void MecaCell::Movable::receiveForce ( const Vec f)
inlineinherited

Definition at line 44 of file movable.h.

◆ receiveTorque()

void MecaCell::Orientable::receiveTorque ( const Vec t)
inlineinherited

Definition at line 32 of file orientable.h.

◆ releaseAdhesions()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::releaseAdhesions ( )
inline

Definition at line 128 of file contactsurfacebody.hpp.

◆ resetAngularVelocity()

void MecaCell::Orientable::resetAngularVelocity ( )
inlineinherited

Definition at line 35 of file orientable.h.

◆ resetForce()

void MecaCell::Movable::resetForce ( )
inlineinherited

Definition at line 46 of file movable.h.

◆ resetTorque()

void MecaCell::Orientable::resetTorque ( )
inlineinherited

Definition at line 34 of file orientable.h.

◆ resetVelocity()

void MecaCell::Movable::resetVelocity ( )
inlineinherited

Definition at line 45 of file movable.h.

◆ setAngularVelocity()

void MecaCell::Orientable::setAngularVelocity ( const Vec v)
inlineinherited

Definition at line 25 of file orientable.h.

◆ setDynamicRadius()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setDynamicRadius ( double  r)
inline

Definition at line 153 of file contactsurfacebody.hpp.

◆ setForce()

void MecaCell::Movable::setForce ( const Vec f)
inlineinherited

Definition at line 34 of file movable.h.

◆ setIncompressibility()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setIncompressibility ( double  i)
inline

Definition at line 151 of file contactsurfacebody.hpp.

◆ setMass()

void MecaCell::Movable::setMass ( const double  m)
inlineinherited

Definition at line 35 of file movable.h.

◆ setOrientationRotation()

void MecaCell::Orientable::setOrientationRotation ( const Rotation< Vec > &  r)
inlineinherited

Definition at line 27 of file orientable.h.

◆ setPosition()

void MecaCell::Movable::setPosition ( const Vec p)
inlineinherited

Definition at line 31 of file movable.h.

◆ setPrevposition()

void MecaCell::Movable::setPrevposition ( const Vec p)
inlineinherited

Definition at line 32 of file movable.h.

◆ setRadius()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setRadius ( double  r)
inline

Definition at line 49 of file contactsurfacebody.hpp.

◆ setRestVolume()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setRestVolume ( double  v)
inline

Definition at line 48 of file contactsurfacebody.hpp.

◆ setStiffness()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setStiffness ( double  k)
inline

Definition at line 152 of file contactsurfacebody.hpp.

◆ setTorque()

void MecaCell::Orientable::setTorque ( const Vec t)
inlineinherited

Definition at line 26 of file orientable.h.

◆ setVelocity()

void MecaCell::Movable::setVelocity ( const Vec v)
inlineinherited

Definition at line 33 of file movable.h.

◆ setVolumeConservationEnabled()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::setVolumeConservationEnabled ( bool  v)
inline

Definition at line 47 of file contactsurfacebody.hpp.

◆ solidifyAdhesions()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::solidifyAdhesions ( )
inline

Definition at line 125 of file contactsurfacebody.hpp.

◆ updateCurrentOrientation()

void MecaCell::Orientable::updateCurrentOrientation ( )
inlineinherited

Definition at line 33 of file orientable.h.

◆ updateDynamicRadius()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::updateDynamicRadius ( double  dt)
inline

Definition at line 96 of file contactsurfacebody.hpp.

◆ updateInternals()

template<typename Cell >
void MecaCell::ContactSurfaceBody< Cell >::updateInternals ( double  dt)
inline

Definition at line 43 of file contactsurfacebody.hpp.

◆ updatePositionsAndOrientations()

template<typename Cell >
template<typename Integrator = Euler>
void MecaCell::ContactSurfaceBody< Cell >::updatePositionsAndOrientations ( double  dt)
inline

uses

Template Parameters
Integrator
Parameters
dt

Definition at line 120 of file contactsurfacebody.hpp.

Friends And Related Function Documentation

◆ GenericConnectionBodyPlugin< Cell, ContactSurface >

template<typename Cell >
friend struct GenericConnectionBodyPlugin< Cell, ContactSurface >
friend

Definition at line 1 of file contactsurfacebody.hpp.

Member Data Documentation

◆ angularVelocity

Vec MecaCell::Orientable::angularVelocity = Vec::zero()
protectedinherited

Definition at line 7 of file orientable.h.

◆ cell

template<typename Cell >
Cell* MecaCell::ContactSurfaceBody< Cell >::cell = nullptr
private

Definition at line 19 of file contactsurfacebody.hpp.

◆ cellConnections

template<typename Cell >
std::vector<ContactSurface<Cell> *> MecaCell::ContactSurfaceBody< Cell >::cellConnections
private

Definition at line 20 of file contactsurfacebody.hpp.

◆ currentArea

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::currentArea = 4.0 * M_PI * restRadius * restRadius
private

Definition at line 31 of file contactsurfacebody.hpp.

◆ currentVolume

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::currentVolume = restVolume
private

Definition at line 33 of file contactsurfacebody.hpp.

◆ dynamicRadius

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::dynamicRadius = restRadius
private

radiius of the cell when at rest

Definition at line 28 of file contactsurfacebody.hpp.

◆ force

Vec MecaCell::Movable::force = Vec::zero()
protectedinherited

Definition at line 11 of file movable.h.

◆ incompressibility

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::incompressibility = 0.01
private

Definition at line 23 of file contactsurfacebody.hpp.

◆ mass

double MecaCell::Movable::mass = Config::DEFAULT_CELL_MASS
protectedinherited

Definition at line 13 of file movable.h.

◆ MAX_DYN_RADIUS_RATIO

template<typename Cell >
constexpr double MecaCell::ContactSurfaceBody< Cell >::MAX_DYN_RADIUS_RATIO = 2.0
staticconstexprprivate

Definition at line 30 of file contactsurfacebody.hpp.

◆ membraneStiffness

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::membraneStiffness = 0.5
private

Definition at line 24 of file contactsurfacebody.hpp.

◆ movementEnabled

bool MecaCell::Movable::movementEnabled = true
protectedinherited

Definition at line 12 of file movable.h.

◆ orientation

Basis<Vec> MecaCell::Orientable::orientation
protectedinherited

Definition at line 9 of file orientable.h.

◆ orientationRotation

Rotation<Vec> MecaCell::Orientable::orientationRotation
protectedinherited

Definition at line 10 of file orientable.h.

◆ position

Vec MecaCell::Movable::position = Vec::zero()
protectedinherited

Definition at line 8 of file movable.h.

◆ pressure

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::pressure = 0
private

Definition at line 34 of file contactsurfacebody.hpp.

◆ prevDynamicRadius

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::prevDynamicRadius = dynamicRadius
private

Definition at line 29 of file contactsurfacebody.hpp.

◆ prevposition

Vec MecaCell::Movable::prevposition = Vec::zero()
protectedinherited

Definition at line 9 of file movable.h.

◆ restRadius

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::restRadius = 40
private

Definition at line 26 of file contactsurfacebody.hpp.

◆ restVolume

template<typename Cell >
double MecaCell::ContactSurfaceBody< Cell >::restVolume = (4.0 * M_PI / 3.0) * restRadius * restRadius
private

Definition at line 32 of file contactsurfacebody.hpp.

◆ torque

Vec MecaCell::Orientable::torque = Vec::zero()
protectedinherited

Definition at line 8 of file orientable.h.

◆ totalForce

double MecaCell::Movable::totalForce = 0
protectedinherited

Definition at line 14 of file movable.h.

◆ velocity

Vec MecaCell::Movable::velocity = Vec::zero()
protectedinherited

Definition at line 10 of file movable.h.

◆ volumeConservationEnabled

template<typename Cell >
bool MecaCell::ContactSurfaceBody< Cell >::volumeConservationEnabled = true
private

Definition at line 35 of file contactsurfacebody.hpp.


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