![]() |
Chaste Commit::f841a6fa79bd6f7a205054452b95ddf6d10aae23
|
#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 |
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.
| AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::AbstractVariableSizeTwoBodyInteractionForce | ( | ) |
Constructor.
Definition at line 43 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
References AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mSpringStiffness.
|
virtual |
Destructor.
Definition at line 56 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
|
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().
| nodeAGlobalIndex | index of one neighbouring node |
| nodeBGlobalIndex | index of the other neighbouring node |
| rCellPopulation | the cell population |
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().
|
pure virtual |
Calculate the force between two linked nodes after overlap/rest length have been computed.
| overlap | the amount by which the distance between nodes is less than the rest length |
| restLength | the rest length of the spring between the nodes |
| rUnitDifference | the unit vector pointing from one node to the other |
| multiplicationFactor | a multiplication factor for the spring constant |
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 >.
| double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetDivisionRestingSpringLength | ( | ) |
Definition at line 223 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
| double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetSpringGrowthDuration | ( | ) |
Definition at line 229 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
| double AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::GetSpringStiffness | ( | ) |
Definition at line 217 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes().
|
virtual |
Overridden OutputForceParameters() method.
| rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in DifferentialAdhesionLinearSpringForce< ELEMENT_DIM, SPACE_DIM >, DifferentialAdhesionPathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >, LinearSpringForce< ELEMENT_DIM, SPACE_DIM >, LinearSpringForce< 2 >, LinearSpringForce< DIM >, LinearSpringForce< ELEMENT_DIM, ELEMENT_DIM >, PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >, PathmanathanInteractionForce< ELEMENT_DIM, ELEMENT_DIM >, CryptProjectionForce, and LinearSpringWithVariableSpringConstantsForce< DIM >.
Definition at line 259 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
References AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters().
Referenced by LinearSpringForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters(), and PathmanathanInteractionForce< ELEMENT_DIM, SPACE_DIM >::OutputForceParameters().
|
inlineprivate |
Archive the object and its member variables.
| archive | the archive |
| version | the current version of this class |
Definition at line 70 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.
References AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mDivisionRestingSpringLength, AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mSpringGrowthDuration, and AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::mSpringStiffness.
| void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetDivisionRestingSpringLength | ( | double | divisionRestingSpringLength | ) |
Set mDivisionRestingSpringLength.
| divisionRestingSpringLength | the new value of mDivisionRestingSpringLength |
Definition at line 242 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
| void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetSpringGrowthDuration | ( | double | springGrowthDuration | ) |
Set mSpringGrowthDuration.
| springGrowthDuration | the new value of mSpringGrowthDuration |
Definition at line 251 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
| void AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::SetSpringStiffness | ( | double | springStiffness | ) |
Set mSpringStiffness.
| springStiffness | the new value of mSpringStiffness |
Definition at line 235 of file AbstractVariableSizeTwoBodyInteractionForce.cpp.
|
virtual |
Return a multiplication factor for the spring constant.
Subclasses may override this method.
| nodeAGlobalIndex | index of one neighbouring node |
| nodeBGlobalIndex | index of the other neighbouring node |
| rCellPopulation | the cell population |
| isCloserThanRestLength | whether the nodes are currently closer than the rest length |
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().
Needed for serialization.
Definition at line 62 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.
|
protected |
Initial resting spring length after cell division.
Definition at line 84 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::serialize().
|
protected |
Time taken for spring rest length to regrow after division.
Definition at line 87 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::serialize().
|
protected |
Spring stiffness.
Definition at line 81 of file AbstractVariableSizeTwoBodyInteractionForce.hpp.
Referenced by AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::AbstractVariableSizeTwoBodyInteractionForce(), and AbstractVariableSizeTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::serialize().