36#ifndef POTTSBASEDCELLPOPULATION_HPP_
37#define POTTSBASEDCELLPOPULATION_HPP_
39#include "AbstractOnLatticeCellPopulation.hpp"
40#include "PottsMesh.hpp"
41#include "VertexMesh.hpp"
42#include "AbstractUpdateRule.hpp"
43#include "MutableMesh.hpp"
46#include <boost/serialization/base_object.hpp>
47#include <boost/serialization/vector.hpp>
62 friend class TestPottsBasedCellPopulation;
94 friend class boost::serialization::access;
106 template<
class Archive>
107 void serialize(Archive & archive,
const unsigned int version)
109 archive & boost::serialization::base_object<AbstractOnLatticeCellPopulation<DIM> >(*this);
155 std::vector<CellPtr>& rCells,
156 bool deleteMesh=
false,
158 const std::vector<unsigned> locationIndices=std::vector<unsigned>());
259 CellPtr
AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr());
293 void Update(
bool hasHadBirthsOrDeaths=
true);
361 double GetWidth(
const unsigned& rDimension);
440 std::string& rVariableName,
441 bool dirichletBoundaryConditionApplies=
false,
442 double dirichletBoundaryValue=0.0);
450namespace serialization
455template<
class Archive,
unsigned DIM>
456inline void save_construct_data(
468template<
class Archive,
unsigned DIM>
469inline void load_construct_data(
gcov doesn't like this file...
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
unsigned RemoveDeadCells()
virtual void OpenWritersFiles(OutputFileHandler &rOutputFileHandler)
unsigned GetNumElements()
void Update(bool hasHadBirthsOrDeaths=true)
virtual void AcceptPopulationEventWriter(boost::shared_ptr< AbstractCellPopulationEventWriter< DIM, DIM > > pPopulationEventWriter)
VertexMesh< DIM, DIM > * GetElementTessellation()
virtual void WriteResultsToFiles(const std::string &rDirectory)
virtual double GetCellDataItemAtPdeNode(unsigned pdeNodeIndex, std::string &rVariableName, bool dirichletBoundaryConditionApplies=false, double dirichletBoundaryValue=0.0)
virtual void AcceptCellWriter(boost::shared_ptr< AbstractCellWriter< DIM, DIM > > pCellWriter, CellPtr pCell)
PottsElement< DIM > * GetElementCorrespondingToCell(CellPtr pCell)
virtual void AcceptPopulationWriter(boost::shared_ptr< AbstractCellPopulationWriter< DIM, DIM > > pPopulationWriter)
void UpdateCellLocations(double dt)
c_vector< double, DIM > GetLocationOfCellCentre(CellPtr pCell)
MutableMesh< DIM, DIM > * mpMutableMesh
std::set< unsigned > GetNeighbouringLocationIndices(CellPtr pCell)
PottsElement< DIM > * GetElement(unsigned elementIndex)
bool IsCellAssociatedWithADeletedLocation(CellPtr pCell)
VertexMesh< DIM, DIM > * mpElementTessellation
unsigned mNumSweepsPerTimestep
void SetNumSweepsPerTimestep(unsigned numSweepsPerTimestep)
CellPtr AddCell(CellPtr pNewCell, CellPtr pParentCell=CellPtr())
Node< DIM > * GetNode(unsigned index)
virtual void AcceptPopulationCountWriter(boost::shared_ptr< AbstractCellPopulationCountWriter< DIM, DIM > > pPopulationCountWriter)
void CreateElementTessellation()
virtual ~PottsBasedCellPopulation()
virtual void WriteVtkResultsToFile(const std::string &rDirectory)
PottsMesh< DIM > & rGetMesh()
virtual TetrahedralMesh< DIM, DIM > * GetTetrahedralMeshForPdeModifier()
double GetWidth(const unsigned &rDimension)
unsigned GetNumSweepsPerTimestep()
MutableMesh< DIM, DIM > * GetMutableMesh()
virtual void AddUpdateRule(boost::shared_ptr< AbstractUpdateRule< DIM > > pUpdateRule)
void OutputCellPopulationParameters(out_stream &rParamsFile)
double GetVolumeOfCell(CellPtr pCell)
PottsMesh< DIM > * mpPottsMesh
void serialize(Archive &archive, const unsigned int version)
void SetTemperature(double temperature)