Chaste Release::3.1
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 >:

List of all members.

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)

Protected Attributes

double mMeinekeSpringStiffness
double mMeinekeDivisionRestingSpringLength
double mMeinekeSpringGrowthDuration

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::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

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 rCalculateVelocitiesOfEachNode()

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 AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CreateCellPair(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellUsingLocationIndex(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNode(), SimulationTime::GetTimeStep(), SimulationTime::Instance(), AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsMarkedSpring(), and AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::UnmarkSpring().

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

Definition at line 241 of file GeneralisedLinearSpringForce.cpp.

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

Definition at line 246 of file GeneralisedLinearSpringForce.cpp.

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

Definition at line 236 of file GeneralisedLinearSpringForce.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters ( out_stream &  rParamsFile) [virtual]
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 
) [inline, private]

Archive the object and its member variables.

Parameters:
archivethe archive
versionthe current version of this class

Reimplemented from AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Reimplemented in RepulsionForce< DIM >, CryptProjectionForce, and LinearSpringWithVariableSpringConstantsForce< DIM >.

Definition at line 80 of file GeneralisedLinearSpringForce.hpp.

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 259 of file GeneralisedLinearSpringForce.cpp.

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 268 of file GeneralisedLinearSpringForce.cpp.

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 252 of file GeneralisedLinearSpringForce.cpp.

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 is overridden in a subclass.

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.

Definition at line 52 of file GeneralisedLinearSpringForce.cpp.

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


Friends And Related Function Documentation

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

Member Data Documentation

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< 2 >::serialize().

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< 2 >::serialize().

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< 2 >::serialize().


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