Chaste Commit::1fd4e48e3990e67db148bc1bc4cf6991a0049d0c
GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <GeneralisedLinearSpringForce.hpp>

+ Inheritance diagram for GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 GeneralisedLinearSpringForce ()
 
virtual ~GeneralisedLinearSpringForce ()
 
virtual double VariableSpringConstantMultiplicationFactor (unsigned nodeAGlobalIndex, unsigned nodeBGlobalIndex, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation, bool isCloserThanRestLength)
 
c_vector< double, SPACE_DIM > CalculateForceBetweenNodes (unsigned nodeAGlobalIndex, unsigned nodeBGlobalIndex, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)
 
double GetMeinekeSpringStiffness ()
 
double GetMeinekeDivisionRestingSpringLength ()
 
double GetMeinekeSpringGrowthDuration ()
 
void SetMeinekeSpringStiffness (double springStiffness)
 
void SetMeinekeDivisionRestingSpringLength (double divisionRestingSpringLength)
 
void SetMeinekeSpringGrowthDuration (double springGrowthDuration)
 
virtual void OutputForceParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >
 AbstractTwoBodyInteractionForce ()
 
bool GetUseCutOffLength ()
 
void SetCutOffLength (double cutOffLength)
 
double GetCutOffLength ()
 
void AddForceContribution (AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)
 
virtual void WriteDataToVisualizerSetupFile (out_stream &pVizSetupFile)
 
- Public Member Functions inherited from AbstractForce< ELEMENT_DIM, SPACE_DIM >
 AbstractForce ()
 
virtual ~AbstractForce ()
 
void OutputForceInfo (out_stream &rParamsFile)
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Protected Attributes

double mMeinekeSpringStiffness
 
double mMeinekeDivisionRestingSpringLength
 
double mMeinekeSpringGrowthDuration
 
- Protected Attributes inherited from AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >
bool mUseCutOffLength
 
double mMechanicsCutOffLength
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Friends

class TestForces
 
class boost::serialization::access
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >

A force law employed by Meineke et al (2001) in their off-lattice model of the intestinal crypt (doi:10.1046/j.0960-7722.2001.00216.x).

Each pair of neighbouring nodes are assumed to be connected by a linear spring. The force of node $i$ is given by

\[
\mathbf{F}_{i}(t) = \sum_{j} \mu_{i,j} ( || \mathbf{r}_{i,j} || - s_{i,j}(t) ) \hat{\mathbf{r}}_{i,j}.
\]

Here $\mu_{i,j}$ is the spring constant for the spring between nodes $i$ and $j$, $s_{i,j}(t)$ is its natural length at time $t$, $\mathbf{r}_{i,j}$ is their relative displacement and a hat ( $\hat{}$) denotes a unit vector.

Length is scaled by natural length. Time is in hours.

Definition at line 65 of file GeneralisedLinearSpringForce.hpp.

Constructor & Destructor Documentation

◆ GeneralisedLinearSpringForce()

◆ ~GeneralisedLinearSpringForce()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::~GeneralisedLinearSpringForce ( )
virtual

Destructor.

Definition at line 61 of file GeneralisedLinearSpringForce.cpp.

Member Function Documentation

◆ CalculateForceBetweenNodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::CalculateForceBetweenNodes ( unsigned  nodeAGlobalIndex,
unsigned  nodeBGlobalIndex,
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &  rCellPopulation 
)
virtual

Overridden CalculateForceBetweenNodes() method.

Calculates the force between two nodes.

Note that this assumes they are connected and is called by AddForceContribution()

Parameters
nodeAGlobalIndexindex of one neighbouring node
nodeBGlobalIndexindex of the other neighbouring node
rCellPopulationthe cell population
Returns
The force exerted on Node A by Node B.

Implements AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Definition at line 66 of file GeneralisedLinearSpringForce.cpp.

References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNode(), Node< SPACE_DIM >::GetRadius(), Node< SPACE_DIM >::rGetLocation(), and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::rGetMesh().

◆ GetMeinekeDivisionRestingSpringLength()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::GetMeinekeDivisionRestingSpringLength ( )
Returns
mMeinekeDivisionRestingSpringLength

Definition at line 237 of file GeneralisedLinearSpringForce.cpp.

◆ GetMeinekeSpringGrowthDuration()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::GetMeinekeSpringGrowthDuration ( )
Returns
mMeinekeSpringGrowthDuration

Definition at line 243 of file GeneralisedLinearSpringForce.cpp.

◆ GetMeinekeSpringStiffness()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::GetMeinekeSpringStiffness ( )
Returns
mMeinekeSpringStiffness

Definition at line 231 of file GeneralisedLinearSpringForce.cpp.

◆ OutputForceParameters()

◆ serialize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

◆ SetMeinekeDivisionRestingSpringLength()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::SetMeinekeDivisionRestingSpringLength ( double  divisionRestingSpringLength)

Set mMeinekeDivisionRestingSpringLength.

Parameters
divisionRestingSpringLengththe new value of mMeinekeDivisionRestingSpringLength

Definition at line 256 of file GeneralisedLinearSpringForce.cpp.

◆ SetMeinekeSpringGrowthDuration()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::SetMeinekeSpringGrowthDuration ( double  springGrowthDuration)

Set mMeinekeSpringGrowthDuration.

Parameters
springGrowthDurationthe new value of mMeinekeSpringGrowthDuration

Definition at line 265 of file GeneralisedLinearSpringForce.cpp.

◆ SetMeinekeSpringStiffness()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::SetMeinekeSpringStiffness ( double  springStiffness)

Set mMeinekeSpringStiffness.

Parameters
springStiffnessthe new value of mMeinekeSpringStiffness

Definition at line 249 of file GeneralisedLinearSpringForce.cpp.

◆ VariableSpringConstantMultiplicationFactor()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::VariableSpringConstantMultiplicationFactor ( unsigned  nodeAGlobalIndex,
unsigned  nodeBGlobalIndex,
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &  rCellPopulation,
bool  isCloserThanRestLength 
)
virtual

Return a multiplication factor for the spring constant, which returns a default value of 1.

This method may be overridden in subclasses.

Parameters
nodeAGlobalIndexindex of one neighbouring node
nodeBGlobalIndexindex of the other neighbouring node
rCellPopulationthe cell population
isCloserThanRestLengthwhether the neighbouring nodes lie closer than the rest length of their connecting spring
Returns
the multiplication factor.

Reimplemented in DifferentialAdhesionGeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >.

Definition at line 52 of file GeneralisedLinearSpringForce.cpp.

Referenced by LinearSpringWithVariableSpringConstantsForce< DIM >::VariableSpringConstantMultiplicationFactor().

Friends And Related Symbol Documentation

◆ boost::serialization::access

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 72 of file GeneralisedLinearSpringForce.hpp.

◆ TestForces

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
friend class TestForces
friend

Definition at line 67 of file GeneralisedLinearSpringForce.hpp.

Member Data Documentation

◆ mMeinekeDivisionRestingSpringLength

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeDivisionRestingSpringLength
protected

Initial resting spring length after cell division. Has units of cell size at equilibrium rest length

The value of this parameter should be larger than mDivisionSeparation, because of pressure from neighbouring springs.

Definition at line 106 of file GeneralisedLinearSpringForce.hpp.

Referenced by GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::serialize().

◆ mMeinekeSpringGrowthDuration

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringGrowthDuration
protected

The time it takes for the springs rest length to increase from mMeinekeDivisionRestingSpringLength to its natural length.

The value of this parameter is usually the same as the M Phase of the cell cycle and defaults to 1.

Definition at line 114 of file GeneralisedLinearSpringForce.hpp.

Referenced by GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::serialize().

◆ mMeinekeSpringStiffness

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
double GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringStiffness
protected

Spring stiffness.

Represented by the parameter mu in the model by Meineke et al (2001) in their off-lattice model of the intestinal crypt (doi:10.1046/j.0960-7722.2001.00216.x).

Definition at line 97 of file GeneralisedLinearSpringForce.hpp.

Referenced by GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::GeneralisedLinearSpringForce(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::serialize().


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