Chaste Commit::f841a6fa79bd6f7a205054452b95ddf6d10aae23
AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM > Class Template Referenceabstract

#include <AbstractVariableSizeTwoBodyInteractionForce.hpp>

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

Public Member Functions

 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)
 
virtual c_vector< double, SPACE_DIM > CalculateLinkInteraction (double overlap, double restLength, const c_vector< double, SPACE_DIM > &rUnitDifference, double multiplicationFactor)=0
 
double GetSpringStiffness ()
 
double GetDivisionRestingSpringLength ()
 
double GetSpringGrowthDuration ()
 
void SetSpringStiffness (double springStiffness)
 
void SetDivisionRestingSpringLength (double divisionRestingSpringLength)
 
void SetSpringGrowthDuration (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 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 boost::serialization::access
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >

An abstract two-body interaction force law for variable-size cells.

This class contains common mechanics used by spring-like interactions where the rest length can vary with node radii, spring marking after cell division, and apoptosis. Concrete subclasses define the final force law via CalculateLinkInteraction().

Definition at line 57 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.

Constructor & Destructor Documentation

◆ AbstractVariableSizeTwoBodyInteractionForce()

◆ ~AbstractVariableSizeTwoBodyInteractionForce()

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

Destructor.

Definition at line 56 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

Member Function Documentation

◆ CalculateForceBetweenNodes()

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

Overridden CalculateForceBetweenNodes() method.

This computes the geometry/rest length logic shared by variable-size interactions and then delegates the final force-law expression to CalculateLinkInteraction().

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 71 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

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

◆ CalculateLinkInteraction()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual c_vector< double, SPACE_DIM > AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::CalculateLinkInteraction ( double  overlap,
double  restLength,
const c_vector< double, SPACE_DIM > &  rUnitDifference,
double  multiplicationFactor 
)
pure virtual

Calculate the force between two linked nodes after overlap/rest length have been computed.

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

As this method is pure virtual, it must be overridden in subclasses.

Implemented in LinearSpringForce< 2 >, LinearSpringForce< DIM >, LinearSpringForce< ELEMENT_DIM, SPACE_DIM >, LinearSpringForce< ELEMENT_DIM, ELEMENT_DIM >, PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >, and PathmanathanInteractionForce< ELEMENT_DIM, ELEMENT_DIM >.

◆ GetDivisionRestingSpringLength()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetDivisionRestingSpringLength ( )
Returns
mDivisionRestingSpringLength

Definition at line 223 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

◆ GetSpringGrowthDuration()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetSpringGrowthDuration ( )
Returns
mSpringGrowthDuration

Definition at line 229 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

◆ GetSpringStiffness()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetSpringStiffness ( )
Returns
mSpringStiffness

Definition at line 217 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

Referenced by CryptProjectionForce::CalculateForceBetweenNodes().

◆ OutputForceParameters()

◆ serialize()

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

◆ SetDivisionRestingSpringLength()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetDivisionRestingSpringLength ( double  divisionRestingSpringLength)

Set mDivisionRestingSpringLength.

Parameters
divisionRestingSpringLengththe new value of mDivisionRestingSpringLength

Definition at line 242 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

◆ SetSpringGrowthDuration()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetSpringGrowthDuration ( double  springGrowthDuration)

Set mSpringGrowthDuration.

Parameters
springGrowthDurationthe new value of mSpringGrowthDuration

Definition at line 251 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

◆ SetSpringStiffness()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetSpringStiffness ( double  springStiffness)

Set mSpringStiffness.

Parameters
springStiffnessthe new value of mSpringStiffness

Definition at line 235 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

◆ VariableSpringConstantMultiplicationFactor()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< 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.

Subclasses may override this method.

Parameters
nodeAGlobalIndexindex of one neighbouring node
nodeBGlobalIndexindex of the other neighbouring node
rCellPopulationthe cell population
isCloserThanRestLengthwhether the nodes are currently closer than the rest length
Returns
the multiplication factor for the spring constant

Reimplemented in DifferentialAdhesionLinearSpringForce< ELEMENT_DIM, SPACE_DIM >, and DifferentialAdhesionPathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >.

Definition at line 61 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.

Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and LinearSpringWithVariableSpringConstantsForce< DIM >::VariableSpringConstantMultiplicationFactor().

Friends And Related Symbol Documentation

◆ boost::serialization::access

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

Needed for serialization.

Definition at line 62 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.

Member Data Documentation

◆ mDivisionRestingSpringLength

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mDivisionRestingSpringLength
protected

◆ mSpringGrowthDuration

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mSpringGrowthDuration
protected

◆ mSpringStiffness


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