Chaste Commit::f841a6fa79bd6f7a205054452b95ddf6d10aae23
PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <PathmanathanInteractionForce.hpp>

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

Public Member Functions

 PathmanathanInteractionForce ()
 
virtual ~PathmanathanInteractionForce ()
 
double GetAlpha ()
 
void SetAlpha (double alpha)
 
virtual void OutputForceParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >
 AbstractVariableSizeTwoBodyInteractionForce ()
 
virtual ~AbstractVariableSizeTwoBodyInteractionForce ()
 
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 GetSpringStiffness ()
 
double GetDivisionRestingSpringLength ()
 
double GetSpringGrowthDuration ()
 
void SetSpringStiffness (double springStiffness)
 
void SetDivisionRestingSpringLength (double divisionRestingSpringLength)
 
void SetSpringGrowthDuration (double springGrowthDuration)
 
- 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 Member Functions

c_vector< double, SPACE_DIM > CalculateLinkInteraction (double overlap, double restLength, const c_vector< double, SPACE_DIM > &rUnitDifference, double multiplicationFactor)
 

Protected Attributes

double mAlpha
 
- Protected Attributes inherited from AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >
double mSpringStiffness
 
double mDivisionRestingSpringLength
 
double mSpringGrowthDuration
 
- 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 PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >

A two-body force law implementing the model from Pathmanathan et al (2009) (doi:10.1088/1478-3975/6/3/036001), also described in Osborne et al (2017) (doi:10.1242/dev.126359).

For two cells whose separation is less than the sum of their radii (i.e. overlap < 0, cells are compressed), a logarithmic repulsion force is used:

\[
\mathbf{F} = \mu \hat{\mathbf{r}} s \ln\!\left(1 + \frac{d - s}{s}\right)
\]

For two cells whose separation is greater than the sum of their radii (i.e. overlap > 0, cells are stretched), an exponential attraction force is used:

\[
\mathbf{F} = \mu \hat{\mathbf{r}} (d - s) e^{-\alpha(d-s)/s}
\]

Here $\mu$ is the spring stiffness, $s$ is the rest length (sum of cell radii), $d$ is the distance between cell centres, and $\alpha$ controls the range of attraction.

This force supports both mesh-based and node-based cell populations.

Definition at line 68 of file PathmanathanInteractionForce.hpp.

Constructor & Destructor Documentation

◆ PathmanathanInteractionForce()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::PathmanathanInteractionForce ( )

Constructor.

Definition at line 39 of file PathmanathanInteractionForce.cpp.

◆ ~PathmanathanInteractionForce()

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

Destructor.

Definition at line 45 of file PathmanathanInteractionForce.cpp.

Member Function Documentation

◆ CalculateLinkInteraction()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::CalculateLinkInteraction ( double  overlap,
double  restLength,
const c_vector< double, SPACE_DIM > &  rUnitDifference,
double  multiplicationFactor 
)
protectedvirtual

Overridden CalculateLinkInteraction() method.

Calculates the Pathmanathan force law expression after shared rest-length mechanics have been computed by AbstractVariableSizeTwoBodyInteractionForce.

Parameters
overlapthe amount by which the distance between nodes is less than the rest length
restLengththe rest length of the spring between the nodes
rUnitDifferencethe unit vector pointing from one node to the other
multiplicationFactora multiplication factor for the spring constant
Returns
the force vector between the two nodes

Implements AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Definition at line 50 of file PathmanathanInteractionForce.cpp.

◆ GetAlpha()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetAlpha ( )
Returns
mAlpha

Definition at line 68 of file PathmanathanInteractionForce.cpp.

◆ OutputForceParameters()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters ( out_stream &  rParamsFile)
virtual

◆ serialize()

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

Archive the object and its member variables.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 83 of file PathmanathanInteractionForce.hpp.

References PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::mAlpha.

◆ SetAlpha()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetAlpha ( double  alpha)

Set mAlpha.

Parameters
alphathe new value of mAlpha

Definition at line 74 of file PathmanathanInteractionForce.cpp.

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 75 of file PathmanathanInteractionForce.hpp.

◆ TestForces

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

Definition at line 70 of file PathmanathanInteractionForce.hpp.

Member Data Documentation

◆ mAlpha

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
double PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::mAlpha
protected

Parameter controlling the range of attraction between cells. A larger value makes the attractive force decay more rapidly with distance. Defaults to 5.0.

Definition at line 96 of file PathmanathanInteractionForce.hpp.

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


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