Chaste  Release::3.4
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > Class Template Referenceabstract

#include <AbstractCellPopulation.hpp>

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

Classes

class  Iterator
 

Public Member Functions

 AbstractCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >())
 
virtual ~AbstractCellPopulation ()
 
void InitialiseCells ()
 
void SetDataOnAllCells (const std::string &rDataName, double dataValue)
 
AbstractMesh< ELEMENT_DIM,
SPACE_DIM > & 
rGetMesh ()
 
std::list< CellPtr > & rGetCells ()
 
virtual unsigned GetNumNodes ()=0
 
virtual c_vector< double,
SPACE_DIM > 
GetLocationOfCellCentre (CellPtr pCell)=0
 
virtual Node< SPACE_DIM > * GetNode (unsigned index)=0
 
virtual void SetNode (unsigned nodeIndex, ChastePoint< SPACE_DIM > &rNewLocation)=0
 
virtual bool IsCellAssociatedWithADeletedLocation (CellPtr pCell)=0
 
virtual CellPtr AddCell (CellPtr pNewCell, const c_vector< double, SPACE_DIM > &rCellDivisionVector, CellPtr pParentCell=CellPtr())=0
 
virtual unsigned RemoveDeadCells ()=0
 
virtual void Update (bool hasHadBirthsOrDeaths=true)=0
 
std::vector< unsignedGetCellMutationStateCount ()
 
std::vector< unsignedGetCellProliferativeTypeCount ()
 
std::vector< unsignedGetCellCyclePhaseCount ()
 
unsigned GetNumRealCells ()
 
unsigned GetNumAllCells ()
 
void SetCellAncestorsToLocationIndices ()
 
std::set< unsignedGetCellAncestors ()
 
virtual CellPtr GetCellUsingLocationIndex (unsigned index)
 
std::set< CellPtr > GetCellsUsingLocationIndex (unsigned index)
 
bool IsCellAttachedToLocationIndex (unsigned index)
 
void SetCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
virtual void AddCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
virtual void RemoveCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
void MoveCellInLocationMap (CellPtr pCell, unsigned old_index, unsigned new_index)
 
unsigned GetLocationIndexUsingCell (CellPtr pCell)
 
boost::shared_ptr
< CellPropertyRegistry
GetCellPropertyRegistry ()
 
void SetDefaultCellMutationStateAndProliferativeTypeOrdering ()
 
virtual double GetWidth (const unsigned &rDimension)=0
 
virtual double GetVolumeOfCell (CellPtr pCell)=0
 
virtual std::set< unsignedGetNeighbouringNodeIndices (unsigned index)=0
 
virtual std::set< unsignedGetNeighbouringLocationIndices (CellPtr pCell)=0
 
c_vector< double, SPACE_DIM > GetCentroidOfCellPopulation ()
 
virtual void UpdateCellProcessLocation ()
 
virtual void OpenWritersFiles (OutputFileHandler &rOutputFileHandler)
 
void CloseWritersFiles ()
 
virtual void WriteResultsToFiles (const std::string &rDirectory)
 
virtual void AcceptPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationWriter)=0
 
virtual void AcceptPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationCountWriter)=0
 
virtual void AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > > pCellWriter, CellPtr pCell)=0
 
void OutputCellPopulationInfo (out_stream &rParamsFile)
 
virtual void OutputCellPopulationParameters (out_stream &rParamsFile)=0
 
bool GetOutputResultsForChasteVisualizer ()
 
template<template< unsigned, unsigned > class T>
void AddPopulationWriter ()
 
template<template< unsigned, unsigned > class T>
void AddCellWriter ()
 
template<template< unsigned, unsigned > class T>
void AddCellPopulationCountWriter ()
 
void AddPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationWriter)
 
void AddCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > > pCellWriter)
 
void AddCellPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > > pCellPopulationCountWriter)
 
template<template< unsigned, unsigned > class T>
bool HasWriter () const
 
void SetOutputResultsForChasteVisualizer (bool outputResultsForChasteVisualizer)
 
c_vector< double, SPACE_DIM > GetSizeOfCellPopulation ()
 
virtual bool IsRoomToDivide (CellPtr pCell)
 
std::pair< unsigned, unsignedCreateOrderedPair (unsigned index1, unsigned index2)
 
Iterator Begin ()
 
Iterator End ()
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Protected Member Functions

virtual void Validate ()=0
 
virtual void WriteVtkResultsToFile (const std::string &rDirectory)=0
 
 AbstractCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
 
virtual void AcceptCellWritersAcrossPopulation ()
 

Protected Attributes

std::map< unsigned, std::set
< CellPtr > > 
mLocationCellMap
 
std::map< Cell *, unsignedmCellLocationMap
 
AbstractMesh< ELEMENT_DIM,
SPACE_DIM > & 
mrMesh
 
std::list< CellPtr > mCells
 
c_vector< double, SPACE_DIM > mCentroid
 
out_stream mpVtkMetaFile
 
boost::shared_ptr
< CellPropertyRegistry
mpCellPropertyRegistry
 
bool mOutputResultsForChasteVisualizer
 
std::vector< boost::shared_ptr
< AbstractCellWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellWriters
 
std::vector< boost::shared_ptr
< AbstractCellPopulationWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellPopulationWriters
 
std::vector< boost::shared_ptr
< AbstractCellPopulationCountWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellPopulationCountWriters
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 
void OpenRoundRobinWritersFilesForAppend (OutputFileHandler &rOutputFileHandler)
 
void CloseRoundRobinWritersFiles ()
 

Friends

class boost::serialization::access
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
class AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >

An abstract facade class encapsulating a cell population.

Contains a group of cells and associated methods.

Definition at line 83 of file AbstractCellPopulation.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AbstractCellPopulation ( AbstractMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh)
protected

Constructor that just takes in a mesh.

Parameters
rMeshthe mesh for the population.

Definition at line 97 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AbstractCellPopulation ( AbstractMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh,
std::vector< CellPtr > &  rCells,
const std::vector< unsigned locationIndices = std::vector<unsigned>() 
)

AbstractCellPopulation Constructor.

Note
Warning: the passed-in vector of cells will be emptied, even if the constructor throws an exception!
Parameters
rMesha reference to the mesh underlying the cell population
rCellsa vector of cells. Copies of the cells will be stored in the cell population, and the passed-in vector cleared.
locationIndicesan optional vector of location indices that correspond to real cells

Definition at line 59 of file AbstractCellPopulation.cpp.

References EXCEPTION, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellLocationMap, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mLocationCellMap, and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mpCellPropertyRegistry.

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

Base class with virtual methods needs a virtual destructor.

Definition at line 103 of file AbstractCellPopulation.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AcceptCellWriter ( boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > >  pCellWriter,
CellPtr  pCell 
)
pure virtual

A virtual method to accept a cell writer so it can write data from this object to file.

Parameters
pCellWriterthe population writer.
pCellthe cell whose data are being written.

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AcceptCellWritersAcrossPopulation ( )
protectedvirtual

Call AcceptCellWriter across the whole population.

By default the implementation here iterates over the cell population, but this is overridden in some classes that need to go over nodes.

Reimplemented in MeshBasedCellPopulationWithGhostNodes< DIM >, AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, AbstractCentreBasedCellPopulation< DIM >, and NodeBasedCellPopulationWithParticles< DIM >.

Definition at line 633 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AcceptPopulationCountWriter ( boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > >  pPopulationCountWriter)
pure virtual

A virtual method to accept a cell population count writer so it can write data from this object to file.

Parameters
pPopulationCountWriterthe population count writer.

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AcceptPopulationWriter ( boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > >  pPopulationWriter)
pure virtual

A virtual method to accept a cell population writer so it can write data from this object to file.

Parameters
pPopulationWriterthe population writer.

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual CellPtr AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCell ( CellPtr  pNewCell,
const c_vector< double, SPACE_DIM > &  rCellDivisionVector,
CellPtr  pParentCell = CellPtr() 
)
pure virtual

Add a new cell to the cell population.

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

Parameters
pNewCellthe cell to add
rCellDivisionVectora vector providing information regarding how the cell division should occur (for cell-centre cell populations, this vector is the position of the daughter cell; for vertex cell populations it can be used by any subclass of CellBasedSimulation to as a means of dictating the axis along which the parent cell divides)
pParentCellpointer to a parent cell (if required)
Returns
address of cell as it appears in the cell list (internal of this method uses a copy constructor along the way).

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, and AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<template< unsigned, unsigned > class T>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellPopulationCountWriter ( )
inline

Add a cell population count writer based on its type. Template parameters are inferred from the population. The implementation of this function must be available in the header file.

Returns
This method returns void

Definition at line 647 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellPopulationCountWriter ( boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > >  pCellPopulationCountWriter)
inline

Add a cell population count writer through an input argument. This alternative to the templated AddCellPopulationCountWriter() method allows the user to, for example, add a writer with a non-default value for its member mFileName.

Parameters
pCellPopulationCountWritershared pointer to a cell population count writer
Returns
This method returns void

Definition at line 689 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellUsingLocationIndex ( unsigned  index,
CellPtr  pCell 
)
virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<template< unsigned, unsigned > class T>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellWriter ( )
inline

Add a cell writer based on its type. Template parameters are inferred from the population. The implementation of this function must be available in the header file.

Returns
This method returns void

Definition at line 635 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellWriter ( boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > >  pCellWriter)
inline

Add a cell writer through an input argument. This alternative to the templated AddCellWriter() method allows the user to, for example, add a writer with a non-default value for its member mFileName.

Parameters
pCellWritershared pointer to a cell writer
Returns
This method returns void

Definition at line 675 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<template< unsigned, unsigned > class T>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddPopulationWriter ( )
inline

Add a cell population writer based on its type. Template parameters are inferred from the population. The implementation of this function must be available in the header file.

Returns
This method returns void

Definition at line 623 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddPopulationWriter ( boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > >  pPopulationWriter)
inline

Add a cell population writer through an input argument. This alternative to the templated AddPopulationWriter() method allows the user to, for example, add a writer with a non-default value for its member mFileName.

Parameters
pPopulationWritershared pointer to a cell population writer
Returns
This method returns void

Definition at line 661 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Iterator AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin ( )
Returns
iterator pointing to the first cell in the cell population

Definition at line 916 of file AbstractCellPopulation.hpp.

References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells.

Referenced by ChemotacticForce< DIM >::AddForceContribution(), BuskeCompressionForce< DIM >::AddForceContribution(), CryptProjectionForce::AddForceContribution(), ApoptoticCellKiller< SPACE_DIM >::CheckAndLabelCellsForApoptosisOrDeath(), IsolatedLabelledCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), RadialSloughingCellKiller::CheckAndLabelCellsForApoptosisOrDeath(), PlaneBasedCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), RandomCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), SloughingCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), CellBasedPdeHandler< DIM >::ConstructBoundaryConditionsContainer(), CryptProjectionStatistics::GetCryptSection(), CryptStatistics::GetCryptSection(), CryptSimulationBoundaryCondition< DIM >::ImposeBoundaryCondition(), SphereGeometryBoundaryCondition< DIM >::ImposeBoundaryCondition(), CellBasedPdeHandler< DIM >::InitialiseCellPdeElementMap(), AbstractCryptStatistics::LabelAllCellsAsHealthy(), AbstractCryptStatistics::LabelSPhaseCells(), CellwiseDataGradient< DIM >::SetupGradients(), VolumeDependentAveragedSourcePde< DIM >::SetupSourceTerms(), AveragedSourcePde< DIM >::SetupSourceTerms(), CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile(), VolumeTrackingModifier< DIM >::UpdateCellData(), DeltaNotchTrackingModifier< DIM >::UpdateCellData(), CellBasedPdeHandler< DIM >::UpdateCellPdeElementMap(), CryptProjectionForce::UpdateNode3dLocationMap(), CryptSimulationBoundaryCondition< DIM >::VerifyBoundaryCondition(), SphereGeometryBoundaryCondition< DIM >::VerifyBoundaryCondition(), HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation(), CellBasedPdeHandler< DIM >::WriteAverageRadialPdeSolution(), and CellBasedPdeHandler< DIM >::WritePdeSolution().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::CloseRoundRobinWritersFiles ( )
private

Close all files in mCellPopulationWriters and mCellWriters.

Files in mCellPopulationCountWriters are NOT closed in this call since they are not written in a round-robin fashion

Definition at line 439 of file AbstractCellPopulation.cpp.

References AbstractCellBasedWriter< ELEMENT_DIM, SPACE_DIM >::CloseFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::CloseWritersFiles ( )

Close output files associated with any writers in the members mCellPopulationCountWriters, mCellPopulationWriters and mCellWriters.

The method also closes the .pvd output file if VTK is available.

Definition at line 455 of file AbstractCellPopulation.cpp.

References AbstractCellBasedWriter< ELEMENT_DIM, SPACE_DIM >::CloseFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::pair< unsigned, unsigned > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::CreateOrderedPair ( unsigned  index1,
unsigned  index2 
)
Returns
a pair of indices ordered by node index. Used by the rest length routines.
Parameters
index1a node index
index2a node index

Definition at line 775 of file AbstractCellPopulation.cpp.

Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CalculateRestLengths(), MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetRestLength(), and MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetRestLength().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::set< unsigned > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellAncestors ( )

Loops over cells and makes a list of the ancestors that are part of the cell population.

Returns
remaining_ancestors The size of this set tells you how many clonal populations remain.

Definition at line 172 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< unsigned > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellCyclePhaseCount ( )

Find out how many cells in each cell cycle phase there are.

Returns
The number of cells of each phase (evaluated at each visualizer output) [0] = G_ZERO_PHASE [1] = G_ONE_PHASE [2] = S_PHASE [3] = G_TWO_PHASE [4] = M_PHASE

Definition at line 252 of file AbstractCellPopulation.cpp.

References PetscTools::GetWorld(), PetscTools::IsParallel(), and NEVER_REACHED.

Referenced by CellProliferativePhasesCountWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and CellProliferativePhasesCountWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< unsigned > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellMutationStateCount ( )

Find out how many cells of each mutation state there are

Returns
The number of cells of each mutation state (evaluated at each visualizer output), with default ordering [0] = healthy count [1] = APC one hit [2] = APC two hit [3] = beta catenin one hit

Definition at line 183 of file AbstractCellPopulation.cpp.

References PetscTools::GetWorld(), and PetscTools::IsParallel().

Referenced by CellMutationStatesCountWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and CellMutationStatesCountWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< unsigned > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellProliferativeTypeCount ( )

Find out how many cells of each type there are.

Returns
The number of cells of each type (evaluated at each visualizer output), with default ordering [0] = STEM [1] = TRANSIT [2] = DIFFERENTIATED [3] = DEFAULT

Definition at line 217 of file AbstractCellPopulation.cpp.

References PetscTools::GetWorld(), and PetscTools::IsParallel().

Referenced by CellProliferativeTypesCountWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and CellProliferativeTypesCountWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
boost::shared_ptr< CellPropertyRegistry > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellPropertyRegistry ( )
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::set< CellPtr > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellsUsingLocationIndex ( unsigned  index)

Get the set of cells corresponding to a given location index.

Note that the set may be empty.

Parameters
indexthe location index
Returns
the set of cells.

Definition at line 320 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
CellPtr AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellUsingLocationIndex ( unsigned  index)
virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfCellPopulation ( )
Returns
the centroid of the cell population.

Definition at line 419 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell ( CellPtr  pCell)

Get the location index corresponding to a given cell.

Assumes there is one location index for each cell and an assertion fails if not.

Parameters
pCellthe cell
Returns
the location index.

Definition at line 384 of file AbstractCellPopulation.cpp.

Referenced by ChemotacticForce< DIM >::AddForceContribution(), BuskeCompressionForce< DIM >::AddForceContribution(), CryptProjectionForce::AddForceContribution(), CryptSimulation1d::CalculateCellDivisionVector(), MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::CheckCellPointers(), CellRadiusWriter< ELEMENT_DIM, SPACE_DIM >::GetCellDataForVtkOutput(), CellwiseDataGradient< DIM >::SetupGradients(), CryptProjectionForce::UpdateNode3dLocationMap(), HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation(), CellBetaCateninWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellLabelWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellLocationIndexWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellVolumesWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellIdWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellAgesWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellRosetteRankWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellRadiusWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), CellCycleModelProteinConcentrationsWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell(), and CellDeltaNotchWriter< ELEMENT_DIM, SPACE_DIM >::VisitCell().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual std::set<unsigned> AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringLocationIndices ( CellPtr  pCell)
pure virtual

Given a cell, returns the set of location indices corresponding to neighbouring cells.

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

Parameters
pCella cell
Returns
the set of neighbouring location indices.

Implemented in VertexBasedCellPopulation< SPACE_DIM >, CaBasedCellPopulation< DIM >, PottsBasedCellPopulation< DIM >, AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, AbstractCentreBasedCellPopulation< DIM >, and MeshBasedCellPopulationWithGhostNodes< DIM >.

Referenced by DeltaNotchTrackingModifier< DIM >::UpdateCellData(), and CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual std::set<unsigned> AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices ( unsigned  index)
pure virtual

Given a node index, returns the set of neighbouring node indices.

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

Parameters
indexthe node index
Returns
the set of neighbouring node indices.

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, MeshBasedCellPopulation< 2 >, NodeBasedCellPopulation< DIM >, VertexBasedCellPopulation< SPACE_DIM >, and AbstractOnLatticeCellPopulation< DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNumAllCells ( )

This returns the number of cells that are present in the internal mCells vector. It also includes dead cells and cells that are associated with a deleted location in the mesh.

Returns
the number of real cells.

Definition at line 156 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual unsigned AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNumNodes ( )
pure virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetNumRealCells ( )

This counts the number of cells that the cell iterator covers. It does not include dead cells or cells that are associated with a deleted location in the mesh.

Returns
the number of real cells.

Definition at line 143 of file AbstractCellPopulation.cpp.

Referenced by CellBasedPdeHandler< DIM >::CellBasedPdeHandler(), CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetOutputResultsForChasteVisualizer ( )
Returns
mOutputResultsForChasteVisualizer

Definition at line 727 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetSizeOfCellPopulation ( )
Returns
The width (maximum distance to centroid) of the cell population in each dimension

Definition at line 745 of file AbstractCellPopulation.cpp.

Referenced by NodeBasedCellPopulation< DIM >::GetSizeOfCellPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual double AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfCell ( CellPtr  pCell)
pure virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual double AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetWidth ( const unsigned rDimension)
pure virtual

Calculate the 'width' of any dimension of the cell population.

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

Parameters
rDimensiona dimension (0,1 or 2)
Returns
The maximum distance between any nodes in this dimension.

Implemented in VertexBasedCellPopulation< SPACE_DIM >, MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, MeshBasedCellPopulation< 2 >, NodeBasedCellPopulation< DIM >, CaBasedCellPopulation< DIM >, and PottsBasedCellPopulation< DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<template< unsigned, unsigned > class T>
bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::HasWriter ( ) const
inline

Get whether the population has a writer of the specified type.

Returns
whether the population has this writer

Definition at line 700 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::InitialiseCells ( )

Initialise each cell's cell-cycle model.

Definition at line 108 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsCellAssociatedWithADeletedLocation ( CellPtr  pCell)
pure virtual

Helper method for establishing if a cell is real.

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

Parameters
pCellthe cell
Returns
whether a given cell is associated with a deleted node (cell-centre models) or element (vertex models).

Implemented in CaBasedCellPopulation< DIM >, VertexBasedCellPopulation< SPACE_DIM >, PottsBasedCellPopulation< DIM >, AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, and AbstractCentreBasedCellPopulation< DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsCellAttachedToLocationIndex ( unsigned  index)

Returns whether or not a cell is associated with a location index

Parameters
indexthe location index
Returns
whether there is a cell attached.

Definition at line 327 of file AbstractCellPopulation.cpp.

Referenced by CellPopulationElementWriter< ELEMENT_DIM, SPACE_DIM >::Visit().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::IsRoomToDivide ( CellPtr  pCell)
virtual
Returns
whether there is room into which a given cell may divide. Returns true by default, but may be overridden in subclasses.
Parameters
pCellpointer to a cell

Reimplemented in CaBasedCellPopulation< DIM >.

Definition at line 739 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::MoveCellInLocationMap ( CellPtr  pCell,
unsigned  old_index,
unsigned  new_index 
)

Change the location index of a cell in mLocationCellMap and mCellLocationMap

Parameters
pCellthe cell to move
old_indexthe old location index
new_indexthe new location index

Definition at line 374 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::OpenRoundRobinWritersFilesForAppend ( OutputFileHandler rOutputFileHandler)
private

Open all files in mCellPopulationWriters and mCellWriters in append mode for writing.

Files in mCellPopulationCountWriters are NOT opened in this call since they are not written in a round-robin fashion.

Parameters
rOutputFileHandlerhandler for the directory in which to open this file.

Definition at line 527 of file AbstractCellPopulation.cpp.

References AbstractCellBasedWriter< ELEMENT_DIM, SPACE_DIM >::OpenOutputFileForAppend().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::OpenWritersFiles ( OutputFileHandler rOutputFileHandler)
virtual

Open output files (and, if required, write headers) for any writers in the members mCellPopulationCountWriters, mCellPopulationWriters and mCellWriters.

The method also writes the header for the .pvd output file if VTK is available.

Before doing this, the method also creates appropriate writer objects if mOutputResultsForChasteVisualizer is set to true.

This method is public because it is called by the simulation class at the start of the Solve() call.

Parameters
rOutputFileHandlerhandler for the directory in which to open this file.

Reimplemented in VertexBasedCellPopulation< SPACE_DIM >, CaBasedCellPopulation< DIM >, PottsBasedCellPopulation< DIM >, MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, MeshBasedCellPopulation< 2 >, and MeshBasedCellPopulationWithGhostNodes< DIM >.

Definition at line 477 of file AbstractCellPopulation.cpp.

References AbstractCellBasedWriter< ELEMENT_DIM, SPACE_DIM >::OpenOutputFile(), and OutputFileHandler::OpenOutputFile().

Referenced by MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::OpenWritersFiles(), PottsBasedCellPopulation< DIM >::OpenWritersFiles(), CaBasedCellPopulation< DIM >::OpenWritersFiles(), and VertexBasedCellPopulation< SPACE_DIM >::OpenWritersFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationInfo ( out_stream &  rParamsFile)

Outputs CellPopulation used in the simulation to file and then calls OutputCellPopulationParameters to output all relevant parameters.

Parameters
rParamsFilethe file stream to which the parameters are output

Loop over cells and generate a set of cell-cycle model classes that are present in the population.

Todo:
this currently ignores different parameter regimes (#1453)

Loop over cells and generate a set of SRN model classes that are present in the population.

Todo:
this currently ignores different parameter regimes (#1453)

Definition at line 649 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::RemoveCellUsingLocationIndex ( unsigned  index,
CellPtr  pCell 
)
virtual

Removes a cell from a given location index.

Parameters
indexthe location index
pCellthe cell.

Reimplemented in CaBasedCellPopulation< DIM >.

Definition at line 358 of file AbstractCellPopulation.cpp.

References EXCEPTION.

Referenced by CaBasedCellPopulation< DIM >::RemoveCellUsingLocationIndex().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual unsigned AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::RemoveDeadCells ( )
pure virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::list< CellPtr > & AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::rGetCells ( )
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM > & AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::rGetMesh ( )
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
template<class Archive >
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Serialize the object and its member variables.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 97 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetCellAncestorsToLocationIndices ( )

Sets the Ancestor index of all the cells at this time to be the same as their location index, can be used to trace clonal populations.

Definition at line 162 of file AbstractCellPopulation.cpp.

References MAKE_PTR_ARGS.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetCellUsingLocationIndex ( unsigned  index,
CellPtr  pCell 
)

Set the cell corresponding to a given location index.

Assumes there is one cell for each location index and replaces any existing cell attached to the location index. If you wish to attach an additional cell to a location index use AddCellUsingLocaitonIndex as SetCellUsingLocation Index will overwrite cells attached to this index.

Parameters
indexthe location index
pCellthe cell.

Definition at line 337 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetDataOnAllCells ( const std::string &  rDataName,
double  dataValue 
)

Add an item of cell data to every cell in the population

Parameters
rDataNameis the name associated with the data
dataValueis the value of the data, initially the same for each cell

Definition at line 120 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetDefaultCellMutationStateAndProliferativeTypeOrdering ( )

Set a default ordering on cell mutation states and cell proliferative types, so that existing tests don't need to specify the old ordering explicitly.

Definition at line 399 of file AbstractCellPopulation.cpp.

Referenced by CellMutationStatesCountWriter< ELEMENT_DIM, SPACE_DIM >::WriteHeader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetNode ( unsigned  nodeIndex,
ChastePoint< SPACE_DIM > &  rNewLocation 
)
pure virtual

Move the node with a given index to a new point in space.

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

Parameters
nodeIndexthe index of the node to be moved
rNewLocationthe new target location of the node

Implemented in MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >, and AbstractOffLatticeCellPopulation< ELEMENT_DIM, ELEMENT_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetOutputResultsForChasteVisualizer ( bool  outputResultsForChasteVisualizer)

Set mOutputResultsForChasteVisualizer.

Parameters
outputResultsForChasteVisualizerthe new value of mOutputResultsForChasteVisualizer

Definition at line 733 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Update ( bool  hasHadBirthsOrDeaths = true)
pure virtual

Remove the Nodes (for cell-centre) or VertexElements (for cell-vertex) which have been marked as deleted and update the correspondence with Cells.

Parameters
hasHadBirthsOrDeaths- a bool saying whether cell population has had Births Or Deaths

Implemented in NodeBasedCellPopulation< DIM >, CaBasedCellPopulation< DIM >, MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >, MeshBasedCellPopulation< DIM >, MeshBasedCellPopulation< 1 >, MeshBasedCellPopulation< 2 >, VertexBasedCellPopulation< SPACE_DIM >, and PottsBasedCellPopulation< DIM >.

Referenced by VolumeTrackingModifier< DIM >::UpdateCellData(), DeltaNotchTrackingModifier< DIM >::UpdateCellData(), and CellPopulationAdjacencyMatrixWriter< ELEMENT_DIM, SPACE_DIM >::VisitAnyPopulation().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::UpdateCellProcessLocation ( )
virtual

Update the ownership of cell in a parallel cell-based simulation.

Reimplemented in NodeBasedCellPopulation< DIM >.

Definition at line 434 of file AbstractCellPopulation.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Validate ( )
protectedpure virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::WriteResultsToFiles ( const std::string &  rDirectory)
virtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
virtual void AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::WriteVtkResultsToFile ( const std::string &  rDirectory)
protectedpure virtual

Friends And Related Function Documentation

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

Needed for serialization.

Definition at line 88 of file AbstractCellPopulation.hpp.

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<Cell*, unsigned> AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellLocationMap
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<boost::shared_ptr<AbstractCellPopulationCountWriter<ELEMENT_DIM, SPACE_DIM> > > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellPopulationCountWriters
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<boost::shared_ptr<AbstractCellPopulationWriter<ELEMENT_DIM, SPACE_DIM> > > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellPopulationWriters
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::vector<boost::shared_ptr<AbstractCellWriter<ELEMENT_DIM, SPACE_DIM> > > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellWriters
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
c_vector<double, SPACE_DIM> AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCentroid
protected

Population centroid.

Definition at line 143 of file AbstractCellPopulation.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
std::map<unsigned, std::set<CellPtr> > AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mLocationCellMap
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
bool AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mOutputResultsForChasteVisualizer
protected

Whether to write results to file for visualization using the Chaste java visualizer (defaults to true).

Definition at line 152 of file AbstractCellPopulation.hpp.

Referenced by AbstractCellPopulation< DIM, DIM >::serialize().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
boost::shared_ptr<CellPropertyRegistry> AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mpCellPropertyRegistry
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM = ELEMENT_DIM>
out_stream AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mpVtkMetaFile
protected

Meta results file for VTK.

Definition at line 146 of file AbstractCellPopulation.hpp.


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