GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <GeneralisedLinearSpringForce.hpp>

Inherits AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Collaboration diagram for GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >:
Collaboration graph
[legend]

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 (  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::~GeneralisedLinearSpringForce (  )  [inline, virtual]

Destructor.

Definition at line 62 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 
) [inline, virtual]

Overridden CalculateForceBetweenNodes() method.

Calculates the force between two nodes.

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

Parameters:
nodeAGlobalIndex index of one neighbouring node
nodeBGlobalIndex index of the other neighbouring node
rCellPopulation the cell population
Returns:
The force exerted on Node A by Node B.

Implements AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Definition at line 67 of file GeneralisedLinearSpringForce.cpp.

References AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CreateCellPair(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellUsingLocationIndex(), AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetCutOffLength(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNode(), Node< SPACE_DIM >::GetRadius(), SimulationTime::GetTimeStep(), SimulationTime::Instance(), AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsMarkedSpring(), GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeDivisionRestingSpringLength, GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringGrowthDuration, GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringStiffness, AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mUseCutOffLength, Node< SPACE_DIM >::rGetLocation(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::rGetMesh(), AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::UnmarkSpring(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::VariableSpringConstantMultiplicationFactor().

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

Definition at line 238 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeDivisionRestingSpringLength.

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

Definition at line 243 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringGrowthDuration.

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

Definition at line 233 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringStiffness.

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

Set mMeinekeDivisionRestingSpringLength.

Parameters:
divisionRestingSpringLength the new value of mMeinekeDivisionRestingSpringLength

Definition at line 256 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeDivisionRestingSpringLength.

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

Set mMeinekeSpringGrowthDuration.

Parameters:
springGrowthDuration the new value of mMeinekeSpringGrowthDuration

Definition at line 265 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringGrowthDuration.

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

Set mMeinekeSpringStiffness.

Parameters:
springStiffness the new value of mMeinekeSpringStiffness

Definition at line 249 of file GeneralisedLinearSpringForce.cpp.

References GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::mMeinekeSpringStiffness.

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 
) [inline, virtual]

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

This method is overridden in a subclass.

Parameters:
nodeAGlobalIndex index of one neighbouring node
nodeBGlobalIndex index of the other neighbouring node
rCellPopulation the cell population
isCloserThanRestLength whether the neighbouring nodes lie closer than the rest length of their connecting spring
Returns:
the multiplication factor.

Definition at line 53 of file GeneralisedLinearSpringForce.cpp.

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


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]
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 >::CalculateForceBetweenNodes(), GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::GetMeinekeSpringGrowthDuration(), GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters(), GeneralisedLinearSpringForce< 2 >::serialize(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::SetMeinekeSpringGrowthDuration().

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

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

Generated by  doxygen 1.6.2