Chaste Release::3.1
|
#include <AbstractCentreBasedCellPopulation.hpp>
Public Member Functions | |
AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >()) | |
c_vector< double, SPACE_DIM > | GetLocationOfCellCentre (CellPtr pCell) |
Node< SPACE_DIM > * | GetNodeCorrespondingToCell (CellPtr pCell) |
CellPtr | AddCell (CellPtr pNewCell, const c_vector< double, SPACE_DIM > &rCellDivisionVector, CellPtr pParentCell=CellPtr()) |
std::pair< CellPtr, CellPtr > | CreateCellPair (CellPtr pCell1, CellPtr pCell2) |
bool | IsMarkedSpring (const std::pair< CellPtr, CellPtr > &rCellPair) |
void | MarkSpring (std::pair< CellPtr, CellPtr > &rCellPair) |
void | UnmarkSpring (std::pair< CellPtr, CellPtr > &rCellPair) |
bool | IsCellAssociatedWithADeletedLocation (CellPtr pCell) |
virtual void | UpdateNodeLocations (const std::vector< c_vector< double, SPACE_DIM > > &rNodeForces, double dt) |
virtual double | GetDampingConstant (unsigned nodeIndex) |
virtual void | GenerateCellResultsAndWriteToFiles () |
virtual void | WriteTimeAndNodeResultsToFiles () |
virtual bool | IsGhostNode (unsigned index) |
virtual bool | IsParticle (unsigned index) |
virtual std::set< std::pair < Node< SPACE_DIM > *, Node < SPACE_DIM > * > > & | rGetNodePairs ()=0 |
double | GetMeinekeDivisionSeparation () |
void | SetMeinekeDivisionSeparation (double divisionSeparation) |
virtual void | OutputCellPopulationParameters (out_stream &rParamsFile) |
Protected Member Functions | |
AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh) | |
virtual void | WriteVtkResultsToFile ()=0 |
Protected Attributes | |
double | mMeinekeDivisionSeparation |
std::set< std::pair< CellPtr, CellPtr > > | mMarkedSprings |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | boost::serialization::access |
An abstract facade class encapsulating a centre-based cell population, in which each cell corresponds to a Node.
Definition at line 49 of file AbstractCentreBasedCellPopulation.hpp.
AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AbstractCentreBasedCellPopulation | ( | AbstractMesh< ELEMENT_DIM, SPACE_DIM > & | rMesh | ) | [protected] |
Constructor that just takes in a mesh.
rMesh | the mesh for the cell population. |
Definition at line 48 of file AbstractCentreBasedCellPopulation.cpp.
AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AbstractCentreBasedCellPopulation | ( | AbstractMesh< ELEMENT_DIM, SPACE_DIM > & | rMesh, |
std::vector< CellPtr > & | rCells, | ||
const std::vector< unsigned > | locationIndices = std::vector<unsigned>() |
||
) |
Default constructor.
rMesh | a refernce to the mesh underlying the cell population |
rCells | a vector of cells |
locationIndices | an optional vector of location indices that correspond to real cells |
Definition at line 39 of file AbstractCentreBasedCellPopulation.cpp.
CellPtr AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCell | ( | CellPtr | pNewCell, |
const c_vector< double, SPACE_DIM > & | rCellDivisionVector, | ||
CellPtr | pParentCell = CellPtr() |
||
) | [virtual] |
Add a new cell to the cell population.
pNewCell | the cell to add |
rCellDivisionVector | the position in space at which to put it |
pParentCell | pointer to a parent cell (if required) |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 69 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AddCell(), NodeBasedCellPopulation< DIM >::AddCell(), and MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCell().
std::pair< CellPtr, CellPtr > AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CreateCellPair | ( | CellPtr | pCell1, |
CellPtr | pCell2 | ||
) |
Helper method that returns a set of pointers to two given Cells. Used by the spring marking routines. Elements in the returned pair are ordered by cell ID number - the cell in the pair will have a smaller ID.
Definition at line 86 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::CalculateForceBetweenNodes().
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GenerateCellResultsAndWriteToFiles | ( | ) | [virtual] |
Overridden GenerateCellResultsAndWriteToFiles() method.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 203 of file AbstractCentreBasedCellPopulation.cpp.
double AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetDampingConstant | ( | unsigned | nodeIndex | ) | [virtual] |
Overridden GetDampingConstant() method.
Get the damping constant for the cell associated with this node, i.e. d in drdt = F/d.
If the cell is wild-type, then the normal damping constant is returned. If the cell has a mutation, then the mutant damping constant is returned.
Note that by default, the normal and mutant damping constants are the same. To alter the damping constant for mutant cells, call the method SetDampingConstantMutant() on the CellPopulation.
nodeIndex | the global index of this node |
Implements AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
Definition at line 177 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetDampingConstant().
c_vector< double, SPACE_DIM > AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationOfCellCentre | ( | CellPtr | pCell | ) | [virtual] |
Overridden GetLocationOfCellCentre() method. Find where a given cell is in space.
pCell | the cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 56 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by CryptSimulation1d::CalculateCellDivisionVector(), CryptStatistics::GetCryptSection(), and CryptProjectionStatistics::GetCryptSection().
double AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetMeinekeDivisionSeparation | ( | ) |
Definition at line 316 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by CryptSimulation1d::CalculateCellDivisionVector(), and OffLatticeSimulation< ELEMENT_DIM, SPACE_DIM >::CalculateCellDivisionVector().
Node< SPACE_DIM > * AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNodeCorrespondingToCell | ( | CellPtr | pCell | ) |
Get a pointer to the node corresponding to a given cell.
pCell | the cell |
Definition at line 62 of file AbstractCentreBasedCellPopulation.cpp.
bool AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsCellAssociatedWithADeletedLocation | ( | CellPtr | pCell | ) | [virtual] |
Overridden IsCellAssociatedWithADeletedLocation() method.
pCell | the cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 134 of file AbstractCentreBasedCellPopulation.cpp.
bool AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsGhostNode | ( | unsigned | index | ) | [virtual] |
Find if a given node is a ghost node. The method always returns false but is overridden in MeshBasedCellPopulationWithGhostNodes.
index | the global index of a specified node |
Reimplemented in MeshBasedCellPopulationWithGhostNodes< DIM >.
Definition at line 191 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::SpringIterator::operator++(), CellwiseDataGradient< DIM >::SetupGradients(), and OffLatticeSimulation< ELEMENT_DIM, SPACE_DIM >::UpdateNodePositions().
bool AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsMarkedSpring | ( | const std::pair< CellPtr, CellPtr > & | rCellPair | ) |
rCellPair | a set of pointers to Cells |
Definition at line 107 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::CalculateForceBetweenNodes().
bool AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsParticle | ( | unsigned | index | ) | [virtual] |
Find if a given node is a particle. The method always returns false but is overridden in NodeBasedCellPopulationWithParticles.
index | the global index of a specified node |
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >.
Definition at line 197 of file AbstractCentreBasedCellPopulation.cpp.
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::MarkSpring | ( | std::pair< CellPtr, CellPtr > & | rCellPair | ) |
Mark the spring between the given cells.
rCellPair | a set of pointers to Cells |
Definition at line 116 of file AbstractCentreBasedCellPopulation.cpp.
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationParameters | ( | out_stream & | rParamsFile | ) | [virtual] |
Overridden OutputCellPopulationParameters() method.
rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulationWithGhostNodes< DIM >, NodeBasedCellPopulation< DIM >, NodeBasedCellPopulationWithBuskeUpdate< DIM >, NodeBasedCellPopulationWithParticles< DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
Definition at line 330 of file AbstractCentreBasedCellPopulation.cpp.
References AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationParameters().
Referenced by NodeBasedCellPopulation< DIM >::OutputCellPopulationParameters().
virtual std::set< std::pair<Node<SPACE_DIM>*, Node<SPACE_DIM>* > >& AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::rGetNodePairs | ( | ) | [pure virtual] |
Method to return the connected nodes in a centre based simulation.
Overridden in sub classes to have correct functionality.
Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, NodeBasedCellPopulation< DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
Referenced by AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::AddForceContribution().
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::serialize | ( | Archive & | archive, |
const unsigned int | version | ||
) | [inline, private] |
Serialize the object and its member variables.
archive | the archive |
version | the current version of this class |
Reimplemented from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulationWithGhostNodes< DIM >, NodeBasedCellPopulation< DIM >, NodeBasedCellPopulationWithBuskeUpdate< DIM >, NodeBasedCellPopulationWithParticles< DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
Definition at line 61 of file AbstractCentreBasedCellPopulation.hpp.
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetMeinekeDivisionSeparation | ( | double | divisionSeparation | ) |
Set mMeinekeDivisionSeparation.
divisionSeparation | the new value of mMeinekeDivisionSeparation |
Definition at line 322 of file AbstractCentreBasedCellPopulation.cpp.
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::UnmarkSpring | ( | std::pair< CellPtr, CellPtr > & | rCellPair | ) |
Stop marking the spring between the given cells.
rCellPair | a set of pointers to Cells |
Definition at line 125 of file AbstractCentreBasedCellPopulation.cpp.
Referenced by CryptProjectionForce::CalculateForceBetweenNodes(), and GeneralisedLinearSpringForce< ELEMENT_DIM, SPACE_DIM >::CalculateForceBetweenNodes().
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::UpdateNodeLocations | ( | const std::vector< c_vector< double, SPACE_DIM > > & | rNodeForces, |
double | dt | ||
) | [virtual] |
Overridden UpdateNodeLocations() method.
rNodeForces | a vector containing the force on each node in the cell population |
dt | the time step |
Implements AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 140 of file AbstractCentreBasedCellPopulation.cpp.
References EXCEPTION.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::UpdateNodeLocations(), and MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateNodeLocations().
void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::WriteTimeAndNodeResultsToFiles | ( | ) | [virtual] |
Overridden WriteTimeAndNodeResultsToFiles() method.
Reimplemented from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 253 of file AbstractCentreBasedCellPopulation.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::BeginRoundRobin(), PetscTools::EndRoundRobin(), SimulationTime::GetTime(), SimulationTime::Instance(), and OutputFileHandler::OpenOutputFile().
virtual void AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::WriteVtkResultsToFile | ( | ) | [protected, pure virtual] |
Write the current results to mpVtkMetaFile.
As this method is pure virtual, it must be overridden in subclasses.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulationWithGhostNodes< DIM >, NodeBasedCellPopulation< DIM >, NodeBasedCellPopulationWithParticles< DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulationWithGhostNodes< DIM >, NodeBasedCellPopulation< DIM >, NodeBasedCellPopulationWithBuskeUpdate< DIM >, NodeBasedCellPopulationWithParticles< DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, and MeshBasedCellPopulation< 2 >.
Definition at line 53 of file AbstractCentreBasedCellPopulation.hpp.
std::set<std::pair<CellPtr,CellPtr> > AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::mMarkedSprings [protected] |
Special springs that we want to keep track of for some reason. Currently used to track cells in the process of dividing (which are represented as two cells joined by a shorter spring).
Definition at line 80 of file AbstractCentreBasedCellPopulation.hpp.
Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CheckCellPointers(), and AbstractCentreBasedCellPopulation< ELEMENT_DIM, ELEMENT_DIM >::serialize().
double AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::mMeinekeDivisionSeparation [protected] |
Initial separation placement of mother/daughter cells at birth. Has units of cell size at equilibrium rest length
Definition at line 73 of file AbstractCentreBasedCellPopulation.hpp.
Referenced by AbstractCentreBasedCellPopulation< ELEMENT_DIM, ELEMENT_DIM >::serialize().