CellModules
MecaCell::VolumeMembrane< Cell > Class Template Reference

#include <volumebody.hpp>

Classes

struct  SFINAE
 

Public Types

using CCCM = CellCellConnectionManager_map< Cell, ContactSurface< Cell > >
 
using CellCellConnectionType = typename CCCM::ConnectionType
 
using CellCellConnectionContainer = typename CCCM::CellCellConnectionContainer
 

Public Member Functions

 VolumeMembrane (Cell *c)
 
 VolumeMembrane (Cell *c, const VolumeMembrane &sm)
 
CellgetCell ()
 
CCCMgetCellCellConnectionManager ()
 
double getStiffness () const
 
double getRestRadius () const
 
double getBaseRadius () const
 
double getDeducedRadius () const
 
double getDynamicRadius () const
 
double getBoundingBoxRadius () const
 
double getPressure () const
 
double getSqRestRadius () const
 
double getCurrentVolume () const
 
double getRestVolume () const
 
double getCurrentArea () const
 
void division ()
 
pair< Cell *, double > getConnectedCellAndMembraneDistance (const Vec &d) const
 
CellgetConnectedCell (const Vec &d) const
 
double getPreciseMembraneDistance (const Vec &d) const
 
double getRestArea () const
 
void computeRestVolume ()
 
double getBaseVolume () const
 
double getRestMomentOfInertia () const
 
double getMomentOfInertia () const
 
double getVolumeVariation () const
 
void computeCurrentVolume ()
 
double getVolume () const
 
void computeAreaAndDeduceRadius ()
 
void setIncompressibility (double i)
 
void setStiffness (double k)
 
void setRadius (double r)
 
void setBaseRadius (double r)
 
void setRadiusRatio (double r)
 
void setVolume (double v)
 
template<typename Integrator >
void updatePositionsAndOrientations (double dt)
 
void resetForces ()
 
void updateStats ()
 

Static Public Member Functions

template<typename C = Cell, typename... T>
static double getAdhesion (T &&... t)
 
template<typename SpacePartition >
static void checkForCellCellConnections (vector< Cell * > &cells, CellCellConnectionContainer &cellCellConnections, SpacePartition &grid)
 
static void updateCellCellConnections (CellCellConnectionContainer &concon, double dt)
 
static void disconnectAndDeleteAllConnections (Cell *c0, CellCellConnectionContainer &con)
 

Public Attributes

friend CCCM
 

Static Public Attributes

static const bool forcesOnMembrane
 

Protected Attributes

Cellcell
 
CCCM cccm
 
double incompressibility = 0.003
 
double membraneStiffness = 3
 
double baseRadius = Config::DEFAULT_CELL_RADIUS
 
double restRadius = Config::DEFAULT_CELL_RADIUS
 
double dynamicRadius = Config::DEFAULT_CELL_RADIUS
 
double prevDynamicRadius = Config::DEFAULT_CELL_RADIUS
 
double deducedRadius = restRadius
 
double currentArea = 4.0 * M_PI * restRadius * restRadius
 
double restVolume = FOUR_THIRD_PI * restRadius * restRadius
 
double currentVolume = restVolume
 
double pressure = 0
 

Static Protected Attributes

static constexpr double MAX_DYN_RADIUS_RATIO = 2.0
 

Private Member Functions

 CREATE_METHOD_CHECKS (getAdhesionWith)
 

Friends

struct ContactSurface< Cell >
 

Detailed Description

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

Definition at line 16 of file volumebody.hpp.

Member Typedef Documentation

◆ CCCM

template<typename Cell >
using MecaCell::VolumeMembrane< Cell >::CCCM = CellCellConnectionManager_map<Cell, ContactSurface<Cell> >

Definition at line 55 of file volumebody.hpp.

◆ CellCellConnectionContainer

template<typename Cell >
using MecaCell::VolumeMembrane< Cell >::CellCellConnectionContainer = typename CCCM::CellCellConnectionContainer

Definition at line 59 of file volumebody.hpp.

◆ CellCellConnectionType

template<typename Cell >
using MecaCell::VolumeMembrane< Cell >::CellCellConnectionType = typename CCCM::ConnectionType

Definition at line 58 of file volumebody.hpp.

Constructor & Destructor Documentation

◆ VolumeMembrane() [1/2]

template<typename Cell >
MecaCell::VolumeMembrane< Cell >::VolumeMembrane ( Cell c)
inline

Definition at line 86 of file volumebody.hpp.

◆ VolumeMembrane() [2/2]

template<typename Cell >
MecaCell::VolumeMembrane< Cell >::VolumeMembrane ( Cell c,
const VolumeMembrane< Cell > &  sm 
)
inline

Definition at line 87 of file volumebody.hpp.

Member Function Documentation

◆ checkForCellCellConnections()

template<typename Cell >
template<typename SpacePartition >
static void MecaCell::VolumeMembrane< Cell >::checkForCellCellConnections ( vector< Cell * > &  cells,
CellCellConnectionContainer cellCellConnections,
SpacePartition &  grid 
)
inlinestatic

Definition at line 255 of file volumebody.hpp.

◆ computeAreaAndDeduceRadius()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::computeAreaAndDeduceRadius ( )
inline

Definition at line 183 of file volumebody.hpp.

◆ computeCurrentVolume()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::computeCurrentVolume ( )
inline

Definition at line 164 of file volumebody.hpp.

◆ computeRestVolume()

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

Definition at line 152 of file volumebody.hpp.

◆ CREATE_METHOD_CHECKS()

template<typename Cell >
MecaCell::VolumeMembrane< Cell >::CREATE_METHOD_CHECKS ( getAdhesionWith  )
private

◆ disconnectAndDeleteAllConnections()

template<typename Cell >
static void MecaCell::VolumeMembrane< Cell >::disconnectAndDeleteAllConnections ( Cell c0,
CellCellConnectionContainer con 
)
inlinestatic

Definition at line 309 of file volumebody.hpp.

◆ division()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::division ( )
inline

Definition at line 119 of file volumebody.hpp.

◆ getAdhesion()

template<typename Cell >
template<typename C = Cell, typename... T>
static double MecaCell::VolumeMembrane< Cell >::getAdhesion ( T &&...  t)
inlinestatic

Definition at line 250 of file volumebody.hpp.

◆ getBaseRadius()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getBaseRadius ( ) const
inline

Definition at line 108 of file volumebody.hpp.

◆ getBaseVolume()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getBaseVolume ( ) const
inline

Definition at line 155 of file volumebody.hpp.

◆ getBoundingBoxRadius()

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

Definition at line 111 of file volumebody.hpp.

◆ getCell()

template<typename Cell >
Cell * MecaCell::VolumeMembrane< Cell >::getCell ( )
inline

Definition at line 104 of file volumebody.hpp.

◆ getCellCellConnectionManager()

template<typename Cell >
CCCM & MecaCell::VolumeMembrane< Cell >::getCellCellConnectionManager ( )
inline

Definition at line 105 of file volumebody.hpp.

◆ getConnectedCell()

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

Definition at line 145 of file volumebody.hpp.

◆ getConnectedCellAndMembraneDistance()

template<typename Cell >
pair< Cell *, double > MecaCell::VolumeMembrane< Cell >::getConnectedCellAndMembraneDistance ( const Vec d) const
inline

Definition at line 124 of file volumebody.hpp.

◆ getCurrentArea()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getCurrentArea ( ) const
inline

Definition at line 116 of file volumebody.hpp.

◆ getCurrentVolume()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getCurrentVolume ( ) const
inline

Definition at line 114 of file volumebody.hpp.

◆ getDeducedRadius()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getDeducedRadius ( ) const
inline

Definition at line 109 of file volumebody.hpp.

◆ getDynamicRadius()

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

Definition at line 110 of file volumebody.hpp.

◆ getMomentOfInertia()

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

Definition at line 161 of file volumebody.hpp.

◆ getPreciseMembraneDistance()

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

Definition at line 148 of file volumebody.hpp.

◆ getPressure()

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

Definition at line 112 of file volumebody.hpp.

◆ getRestArea()

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

Definition at line 151 of file volumebody.hpp.

◆ getRestMomentOfInertia()

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

Definition at line 158 of file volumebody.hpp.

◆ getRestRadius()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getRestRadius ( ) const
inline

Definition at line 107 of file volumebody.hpp.

◆ getRestVolume()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getRestVolume ( ) const
inline

Definition at line 115 of file volumebody.hpp.

◆ getSqRestRadius()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getSqRestRadius ( ) const
inline

Definition at line 113 of file volumebody.hpp.

◆ getStiffness()

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::getStiffness ( ) const
inline

Definition at line 106 of file volumebody.hpp.

◆ getVolume()

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

Definition at line 181 of file volumebody.hpp.

◆ getVolumeVariation()

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

Definition at line 162 of file volumebody.hpp.

◆ resetForces()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::resetForces ( )
inline

Definition at line 234 of file volumebody.hpp.

◆ setBaseRadius()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::setBaseRadius ( double  r)
inline

Definition at line 206 of file volumebody.hpp.

◆ setIncompressibility()

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

Definition at line 203 of file volumebody.hpp.

◆ setRadius()

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

Definition at line 205 of file volumebody.hpp.

◆ setRadiusRatio()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::setRadiusRatio ( double  r)
inline

Definition at line 207 of file volumebody.hpp.

◆ setStiffness()

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

Definition at line 204 of file volumebody.hpp.

◆ setVolume()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::setVolume ( double  v)
inline

Definition at line 208 of file volumebody.hpp.

◆ updateCellCellConnections()

template<typename Cell >
static void MecaCell::VolumeMembrane< Cell >::updateCellCellConnections ( CellCellConnectionContainer concon,
double  dt 
)
inlinestatic

Definition at line 293 of file volumebody.hpp.

◆ updatePositionsAndOrientations()

template<typename Cell >
template<typename Integrator >
void MecaCell::VolumeMembrane< Cell >::updatePositionsAndOrientations ( double  dt)
inline

Definition at line 213 of file volumebody.hpp.

◆ updateStats()

template<typename Cell >
void MecaCell::VolumeMembrane< Cell >::updateStats ( )
inline

Definition at line 239 of file volumebody.hpp.

Friends And Related Function Documentation

◆ ContactSurface< Cell >

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

Definition at line 56 of file volumebody.hpp.

Member Data Documentation

◆ baseRadius

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::baseRadius = Config::DEFAULT_CELL_RADIUS
protected

Definition at line 72 of file volumebody.hpp.

◆ CCCM

template<typename Cell >
friend MecaCell::VolumeMembrane< Cell >::CCCM

Definition at line 56 of file volumebody.hpp.

◆ cccm

template<typename Cell >
CCCM MecaCell::VolumeMembrane< Cell >::cccm
protected

Definition at line 65 of file volumebody.hpp.

◆ cell

template<typename Cell >
Cell* MecaCell::VolumeMembrane< Cell >::cell
protected

Definition at line 64 of file volumebody.hpp.

◆ currentArea

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::currentArea = 4.0 * M_PI * restRadius * restRadius
protected

Definition at line 80 of file volumebody.hpp.

◆ currentVolume

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::currentVolume = restVolume
protected

Definition at line 82 of file volumebody.hpp.

◆ deducedRadius

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::deducedRadius = restRadius
protected

Definition at line 79 of file volumebody.hpp.

◆ dynamicRadius

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::dynamicRadius = Config::DEFAULT_CELL_RADIUS
protected

Definition at line 75 of file volumebody.hpp.

◆ forcesOnMembrane

template<typename Cell >
const bool MecaCell::VolumeMembrane< Cell >::forcesOnMembrane
static
Initial value:
=
false

Definition at line 60 of file volumebody.hpp.

◆ incompressibility

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::incompressibility = 0.003
protected

Definition at line 68 of file volumebody.hpp.

◆ MAX_DYN_RADIUS_RATIO

template<typename Cell >
constexpr double MecaCell::VolumeMembrane< Cell >::MAX_DYN_RADIUS_RATIO = 2.0
staticconstexprprotected

Definition at line 77 of file volumebody.hpp.

◆ membraneStiffness

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::membraneStiffness = 3
protected

Definition at line 69 of file volumebody.hpp.

◆ pressure

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::pressure = 0
protected

Definition at line 83 of file volumebody.hpp.

◆ prevDynamicRadius

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::prevDynamicRadius = Config::DEFAULT_CELL_RADIUS
protected

Definition at line 76 of file volumebody.hpp.

◆ restRadius

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::restRadius = Config::DEFAULT_CELL_RADIUS
protected

Definition at line 73 of file volumebody.hpp.

◆ restVolume

template<typename Cell >
double MecaCell::VolumeMembrane< Cell >::restVolume = FOUR_THIRD_PI * restRadius * restRadius
protected

Definition at line 81 of file volumebody.hpp.


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