#include <CryptSimulation1d.hpp>
Inherits TissueSimulation< 1 >.
Public Member Functions | |
CryptSimulation1d (AbstractTissue< 1 > &rTissue, std::vector< AbstractForce< 1 > * > forceCollection, bool deleteTissueAndForceCollection=false, bool initialiseCells=true) | |
void | ApplyTissueBoundaryConditions (const std::vector< c_vector< double, 1 > > &rOldLocations) |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
c_vector< double, 1 > | CalculateCellDivisionVector (TissueCell &rParentCell) |
Private Attributes | |
MeshBasedTissue< 1 > * | mpStaticCastTissue |
Friends | |
class | TestCryptSimulation1d |
class | boost::serialization::access |
A 1D crypt simulation object. The model is a simplified version of a 2D crypt model developed by Meineke et al (doi:10.1046/j.0960-7722.2001.00216.x).
Definition at line 45 of file CryptSimulation1d.hpp.
CryptSimulation1d::CryptSimulation1d | ( | AbstractTissue< 1 > & | rTissue, | |
std::vector< AbstractForce< 1 > * > | forceCollection, | |||
bool | deleteTissueAndForceCollection = false , |
|||
bool | initialiseCells = true | |||
) |
Constructor.
rTissue | A tissue facade class (contains a mesh and cells) | |
forceCollection | The mechanics to use in the simulation | |
deleteTissueAndForceCollection | Whether to delete the tissue and force collection on destruction to free up memory | |
initialiseCells | whether to initialise cells (set to false when loading from an archive) |
Definition at line 33 of file CryptSimulation1d.cpp.
References TissueConfig::Instance(), mpStaticCastTissue, TissueSimulation< 1 >::mrTissue, and TissueConfig::SetSpringStiffness().
void CryptSimulation1d::ApplyTissueBoundaryConditions | ( | const std::vector< c_vector< double, 1 > > & | rOldLocations | ) |
Overridden ApplyTissueBoundaryConditions() method.
If an instance of WntConcentration is not set up, then stem cells at the bottom of the crypt are pinned. Any cell that has moved below the bottom of the crypt is moved back up.
rOldLocations | the node locations at the previous time step |
If WntConcentration is not set up then stem cells must be pinned, so we reset the location of each stem cell.
Definition at line 102 of file CryptSimulation1d.cpp.
References AbstractTissue< DIM >::GetLocationIndexUsingCell(), AbstractCellCentreBasedTissue< DIM >::GetNodeCorrespondingToCell(), mpStaticCastTissue, TissueSimulation< 1 >::mrTissue, Node< SPACE_DIM >::rGetLocation(), and Node< SPACE_DIM >::rGetModifiableLocation().
c_vector< double, 1 > CryptSimulation1d::CalculateCellDivisionVector | ( | TissueCell & | rParentCell | ) | [private, virtual] |
Calculates the new locations of a dividing cell's cell centres. Moves the dividing node a bit and returns co-ordinates for the new node. It does this by picking a random direction (0->2PI) and placing the parent and daughter in opposing directions on this axis.
rParentCell | the parent cell |
Reimplemented from TissueSimulation< 1 >.
Definition at line 47 of file CryptSimulation1d.cpp.
References TissueConfig::GetDivisionSeparation(), AbstractTissue< DIM >::GetLocationIndexUsingCell(), AbstractCellCentreBasedTissue< DIM >::GetLocationOfCellCentre(), RandomNumberGenerator::Instance(), TissueConfig::Instance(), mpStaticCastTissue, TissueSimulation< 1 >::mrTissue, and RandomNumberGenerator::ranf().
void CryptSimulation1d::serialize | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Archive the simulation and member variables.
archive | the archive | |
version | the current version of this class |
Reimplemented from TissueSimulation< 1 >.
Definition at line 61 of file CryptSimulation1d.hpp.
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from TissueSimulation< 1 >.
Definition at line 53 of file CryptSimulation1d.hpp.
MeshBasedTissue<1>* CryptSimulation1d::mpStaticCastTissue [private] |
Helper member that is a static cast of the tissue.
Definition at line 69 of file CryptSimulation1d.hpp.
Referenced by ApplyTissueBoundaryConditions(), CalculateCellDivisionVector(), and CryptSimulation1d().