36 #ifndef ABSTRACTCENTREBASEDCELLPOPULATION_HPP_
37 #define ABSTRACTCENTREBASEDCELLPOPULATION_HPP_
39 #include "AbstractOffLatticeCellPopulation.hpp"
40 #include "AbstractCentreBasedDivisionRule.hpp"
48 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM=ELEMENT_DIM>
58 friend class boost::serialization::access;
65 template<
class Archive>
66 void serialize(Archive & archive,
const unsigned int version)
68 archive & boost::serialization::base_object<AbstractOffLatticeCellPopulation<ELEMENT_DIM, SPACE_DIM> >(*this);
127 std::vector<CellPtr>& rCells,
128 const std::vector<unsigned> locationIndices=std::vector<unsigned>());
165 std::string& rVariableName,
166 bool dirichletBoundaryConditionApplies=
false,
167 double dirichletBoundaryValue=0.0);
177 CellPtr
AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr());
188 std::pair<CellPtr,CellPtr>
CreateCellPair(CellPtr pCell1, CellPtr pCell2);
202 void MarkSpring(std::pair<CellPtr,CellPtr>& rCellPair);
209 void UnmarkSpring(std::pair<CellPtr,CellPtr>& rCellPair);
boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > mpCentreBasedDivisionRule
virtual void WriteVtkResultsToFile(const std::string &rDirectory)=0
void UnmarkSpring(std::pair< CellPtr, CellPtr > &rCellPair)
virtual void AcceptCellWritersAcrossPopulation()
void serialize(Archive &archive, const unsigned int version)
bool IsCellAssociatedWithADeletedLocation(CellPtr pCell)
virtual double GetCellDataItemAtPdeNode(unsigned pdeNodeIndex, std::string &rVariableName, bool dirichletBoundaryConditionApplies=false, double dirichletBoundaryValue=0.0)
virtual bool IsParticle(unsigned index)
double GetMeinekeDivisionSeparation()
std::pair< CellPtr, CellPtr > CreateCellPair(CellPtr pCell1, CellPtr pCell2)
virtual std::vector< std::pair< Node< SPACE_DIM > *, Node< SPACE_DIM > * > > & rGetNodePairs()=0
virtual bool IsGhostNode(unsigned index)
virtual void OutputCellPopulationParameters(out_stream &rParamsFile)
double mMeinekeDivisionSeparation
virtual std::set< unsigned > GetNeighbouringLocationIndices(CellPtr pCell)
AbstractCentreBasedCellPopulation(AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
Node< SPACE_DIM > * GetNodeCorrespondingToCell(CellPtr pCell)
virtual double GetDefaultTimeStep()
boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > GetCentreBasedDivisionRule()
CellPtr AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr())
void MarkSpring(std::pair< CellPtr, CellPtr > &rCellPair)
bool IsMarkedSpring(const std::pair< CellPtr, CellPtr > &rCellPair)
friend class TestCentreBasedDivisionRules
void SetMeinekeDivisionSeparation(double divisionSeparation)
virtual double GetDampingConstant(unsigned nodeIndex)
c_vector< double, SPACE_DIM > GetLocationOfCellCentre(CellPtr pCell)
std::set< std::pair< CellPtr, CellPtr > > mMarkedSprings
virtual void CheckForStepSizeException(unsigned nodeIndex, c_vector< double, SPACE_DIM > &rDisplacement, double dt)
void SetCentreBasedDivisionRule(boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, SPACE_DIM > > pCentreBasedDivisionRule)