36#include "OnLatticeSimulation.hpp"
37#include "AbstractOnLatticeCellPopulation.hpp"
38#include "CellBasedEventHandler.hpp"
42 bool deleteCellPopulationInDestructor,
45 deleteCellPopulationInDestructor,
50 EXCEPTION(
"OnLatticeSimulations require a subclass of AbstractOnLatticeCellPopulation.");
80 if (update_cell_population_this_timestep)
90 *rParamsFile <<
"\n\t<UpdateRules>\n";
93 std::vector<boost::shared_ptr<AbstractUpdateRule<DIM> > > collection =
97 iter != collection.end();
100 (*iter)->OutputUpdateRuleInfo(rParamsFile);
103 *rParamsFile <<
"\t</UpdateRules>\n";
106template<
unsigned DIM>
#define EXCEPTION(message)
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
virtual void UpdateCellPopulation()
virtual void OutputSimulationParameters(out_stream &rParamsFile)=0
virtual const std::vector< boost::shared_ptr< AbstractUpdateRule< DIM > > > GetUpdateRuleCollection() const
virtual void RemoveAllUpdateRules()
virtual void UpdateCellLocations(double dt)=0
virtual void AddUpdateRule(boost::shared_ptr< AbstractUpdateRule< DIM > > pUpdateRule)=0
static void BeginEvent(unsigned event)
static void EndEvent(unsigned event)
void AddUpdateRule(boost::shared_ptr< AbstractUpdateRule< DIM > > pUpdateRule)
void OutputSimulationParameters(out_stream &rParamsFile)
void UpdateCellLocationsAndTopology()
void UpdateCellPopulation()
void RemoveAllUpdateRules()
void OutputAdditionalSimulationSetup(out_stream &rParamsFile)
OnLatticeSimulation(AbstractCellPopulation< DIM > &rCellPopulation, bool deleteCellPopulationInDestructor=false, bool initialiseCells=true)
static SimulationTime * Instance()
unsigned GetTimeStepsElapsed() const