36#ifndef ABSTRACTCENTREBASEDCELLPOPULATION_HPP_
37#define ABSTRACTCENTREBASEDCELLPOPULATION_HPP_
39#include "AbstractOffLatticeCellPopulation.hpp"
40#include "AbstractCentreBasedDivisionRule.hpp"
51#ifdef DOXYGEN_CHASTE_ISSUE_199
52template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
54template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM = ELEMENT_DIM>
72 template<
class Archive>
73 void serialize(Archive & archive,
const unsigned int version)
75 archive & boost::serialization::base_object<AbstractOffLatticeCellPopulation<ELEMENT_DIM, SPACE_DIM> >(*this);
134 std::vector<CellPtr>& rCells,
135 const std::vector<unsigned> locationIndices=std::vector<unsigned>());
172 std::string& rVariableName,
173 bool dirichletBoundaryConditionApplies=
false,
174 double dirichletBoundaryValue=0.0);
184 CellPtr
AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr());
195 std::pair<CellPtr,CellPtr>
CreateCellPair(CellPtr pCell1, CellPtr pCell2);
209 void MarkSpring(std::pair<CellPtr,CellPtr>& rCellPair);
216 void UnmarkSpring(std::pair<CellPtr,CellPtr>& rCellPair);
void MarkSpring(std::pair< CellPtr, CellPtr > &rCellPair)
virtual double GetDefaultTimeStep()
std::set< std::pair< CellPtr, CellPtr > > mMarkedSprings
void UnmarkSpring(std::pair< CellPtr, CellPtr > &rCellPair)
virtual void OutputCellPopulationParameters(out_stream &rParamsFile)
double GetMeinekeDivisionSeparation()
friend class TestCentreBasedDivisionRules
virtual void CheckForStepSizeException(unsigned nodeIndex, c_vector< double, SPACE_DIM > &rDisplacement, double dt)
double mMeinekeDivisionSeparation
virtual bool IsParticle(unsigned index)
std::pair< CellPtr, CellPtr > CreateCellPair(CellPtr pCell1, CellPtr pCell2)
void SetCentreBasedDivisionRule(boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > pCentreBasedDivisionRule)
bool IsCellAssociatedWithADeletedLocation(CellPtr pCell)
void serialize(Archive &archive, const unsigned int version)
void SetMeinekeDivisionSeparation(double divisionSeparation)
virtual std::vector< std::pair< Node< SPACE_DIM > *, Node< SPACE_DIM > * > > & rGetNodePairs()=0
virtual double GetDampingConstant(unsigned nodeIndex)
bool IsMarkedSpring(const std::pair< CellPtr, CellPtr > &rCellPair)
boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > mpCentreBasedDivisionRule
friend class boost::serialization::access
virtual bool IsGhostNode(unsigned index)
virtual void WriteVtkResultsToFile(const std::string &rDirectory)=0
c_vector< double, SPACE_DIM > GetLocationOfCellCentre(CellPtr pCell)
virtual double GetCellDataItemAtPdeNode(unsigned pdeNodeIndex, std::string &rVariableName, bool dirichletBoundaryConditionApplies=false, double dirichletBoundaryValue=0.0)
virtual std::set< unsigned > GetNeighbouringLocationIndices(CellPtr pCell)
Node< SPACE_DIM > * GetNodeCorrespondingToCell(CellPtr pCell)
CellPtr AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr())
virtual void AcceptCellWritersAcrossPopulation()
boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > GetCentreBasedDivisionRule()