36#ifndef ABSTRACTSRNMODEL_HPP_
37#define ABSTRACTSRNMODEL_HPP_
41#include "Identifiable.hpp"
43#include <boost/serialization/base_object.hpp>
49#include "OutputFileHandler.hpp"
50#include "SimulationTime.hpp"
53typedef boost::shared_ptr<Cell> CellPtr;
73 template<
class Archive>
74 void serialize(Archive & archive,
const unsigned int version)
78 archive & p_time_wrapper;
151 virtual void SetCell(CellPtr pCell);
294 const double scale = 1.0);
327 virtual void SplitEdgeSrn(
const double relativePosition);
#define CLASS_IS_ABSTRACT(T)
const unsigned UNSIGNED_UNSET
void SetSimulatedToTime(double simulatedToTime)
virtual void OutputSrnModelParameters(out_stream &rParamsFile)
void OutputSrnModelInfo(out_stream &rParamsFile)
virtual void SimulateToCurrentTime()=0
AbstractSrnModel & operator=(const AbstractSrnModel &)
virtual ~AbstractSrnModel()
void SetEdgeLocalIndex(unsigned index)
void SetEdgeModelIndicator(const bool isEdgeModel)
virtual void AddSrnQuantities(AbstractSrnModel *pOtherSrn, const double scale=1.0)
virtual void AddShrunkEdgeToInterior(AbstractSrnModel *pShrunkEdgeSrn)
unsigned GetEdgeLocalIndex()
virtual void ScaleSrnVariables(const double theta)
virtual void SplitEdgeSrn(const double relativePosition)
virtual AbstractSrnModel * CreateSrnModel()=0
virtual void SetCell(CellPtr pCell)
virtual void ResetForDivision()
void serialize(Archive &archive, const unsigned int version)
double GetSimulatedToTime() const
friend class boost::serialization::access
bool HasEdgeModel() const
virtual void Initialise()
virtual void InitialiseDaughterCell()
virtual void AddMergedEdgeSrn(AbstractSrnModel *pMergedEdgeSrn)
virtual void AddShrunkEdgeSrn(AbstractSrnModel *pShrunkEdgeSrn)
SerializableSingleton< SINGLETON_CLASS > * GetSerializationWrapper() const
static SimulationTime * Instance()