36 #include "OnLatticeSimulation.hpp"
37 #include "PottsBasedCellPopulation.hpp"
38 #include "CellBasedEventHandler.hpp"
39 #include "LogFile.hpp"
40 #include "Version.hpp"
41 #include "ExecutableSupport.hpp"
42 #include "CaBasedCellPopulation.hpp"
44 template<
unsigned DIM>
46 bool deleteCellPopulationInDestructor,
49 deleteCellPopulationInDestructor,
54 EXCEPTION(
"OnLatticeSimulations require a subclass of AbstractOnLatticeCellPopulation.");
60 template<
unsigned DIM>
69 template<
unsigned DIM>
79 template<
unsigned DIM>
88 template<
unsigned DIM>
97 template<
unsigned DIM>
106 template<
unsigned DIM>
115 template<
unsigned DIM>
119 return zero_vector<double>(DIM);
122 template<
unsigned DIM>
127 *this->mpVizSetupFile <<
"PottsSimulation\n";
131 template<
unsigned DIM>
140 template<
unsigned DIM>
143 bool update_cell_population_this_timestep =
true;
163 if (update_cell_population_this_timestep)
169 template<
unsigned DIM>
173 *rParamsFile <<
"\n\t<UpdateRules>\n";
176 std::vector<boost::shared_ptr<AbstractPottsUpdateRule<DIM> > > collection =
180 iter != collection.end();
183 (*iter)->OutputUpdateRuleInfo(rParamsFile);
188 std::vector<boost::shared_ptr<AbstractCaUpdateRule<DIM> > > collection =
192 iter != collection.end();
195 (*iter)->OutputUpdateRuleInfo(rParamsFile);
198 std::vector<boost::shared_ptr<AbstractCaSwitchingUpdateRule<DIM> > > switching_collection =
202 iter != switching_collection.end();
205 (*iter)->OutputUpdateRuleInfo(rParamsFile);
213 *rParamsFile <<
"\t</UpdateRules>\n";
216 template<
unsigned DIM>
void RemoveAllCaSwitchingUpdateRules()
void RemoveAllUpdateRules()
void AddCaSwitchingUpdateRule(boost::shared_ptr< AbstractCaSwitchingUpdateRule< DIM > > pUpdateRule)
#define EXCEPTION(message)
static void BeginEvent(unsigned event)
void RemoveAllPottsUpdateRules()
static SimulationTime * Instance()
const std::vector< boost::shared_ptr< AbstractPottsUpdateRule< DIM > > > & rGetUpdateRuleCollection() const
virtual c_vector< double, DIM > CalculateCellDivisionVector(CellPtr pParentCell)
const std::vector< boost::shared_ptr< AbstractCaUpdateRule< DIM > > > & rGetUpdateRuleCollection() const
void UpdateCellLocationsAndTopology()
void AddPottsUpdateRule(boost::shared_ptr< AbstractPottsUpdateRule< DIM > > pUpdateRule)
virtual void WriteVisualizerSetupFile()
void RemoveAllSwitchingUpdateRules()
virtual void UpdateCellLocations(double dt)=0
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
virtual void OutputSimulationParameters(out_stream &rParamsFile)=0
void OutputSimulationParameters(out_stream &rParamsFile)
void AddUpdateRule(boost::shared_ptr< AbstractPottsUpdateRule< DIM > > pUpdateRule)
virtual void UpdateCellPopulation()
const std::vector< boost::shared_ptr< AbstractCaSwitchingUpdateRule< DIM > > > & rGetSwitchingUpdateRuleCollection() const
void AddSwitchingUpdateRule(boost::shared_ptr< AbstractCaSwitchingUpdateRule< DIM > > pUpdateRule)
void RemoveAllCaUpdateRules()
void RemoveAllUpdateRules()
void AddUpdateRule(boost::shared_ptr< AbstractCaUpdateRule< DIM > > pUpdateRule)
OnLatticeSimulation(AbstractCellPopulation< DIM > &rCellPopulation, bool deleteCellPopulationInDestructor=false, bool initialiseCells=true)
static void EndEvent(unsigned event)
void OutputAdditionalSimulationSetup(out_stream &rParamsFile)
void UpdateCellPopulation()
void AddCaUpdateRule(boost::shared_ptr< AbstractCaUpdateRule< DIM > > pUpdateRule)