![]() |
Chaste Commit::333233612e3dcc941d260418acd7b5ccdc30390e
|
#include <AbstractOdeSrnModel.hpp>
Public Member Functions | |
AbstractOdeSrnModel (unsigned stateSize, boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >()) | |
virtual | ~AbstractOdeSrnModel () |
virtual void | SimulateToCurrentTime () |
virtual void | ResetForDivision () |
void | SetInitialConditions (std::vector< double > initialConditions) |
virtual void | OutputSrnModelParameters (out_stream &rParamsFile) |
virtual void | ScaleSrnVariables (const double theta) |
![]() | |
AbstractSrnModel () | |
virtual | ~AbstractSrnModel () |
virtual void | SetCell (CellPtr pCell) |
virtual void | InitialiseDaughterCell () |
CellPtr | GetCell () |
void | SetSimulatedToTime (double simulatedToTime) |
double | GetSimulatedToTime () const |
virtual AbstractSrnModel * | CreateSrnModel ()=0 |
void | OutputSrnModelInfo (out_stream &rParamsFile) |
void | SetEdgeLocalIndex (unsigned index) |
unsigned | GetEdgeLocalIndex () |
bool | HasEdgeModel () const |
void | SetEdgeModelIndicator (const bool isEdgeModel) |
virtual void | AddSrnQuantities (AbstractSrnModel *pOtherSrn, const double scale=1.0) |
virtual void | AddShrunkEdgeSrn (AbstractSrnModel *pShrunkEdgeSrn) |
virtual void | AddMergedEdgeSrn (AbstractSrnModel *pMergedEdgeSrn) |
virtual void | AddShrunkEdgeToInterior (AbstractSrnModel *pShrunkEdgeSrn) |
virtual void | SplitEdgeSrn (const double relativePosition) |
![]() | |
virtual | ~Identifiable () |
std::string | GetIdentifier () const |
![]() | |
CellCycleModelOdeHandler (double lastTime=SimulationTime::Instance() ->GetTime(), boost::shared_ptr< AbstractCellCycleModelOdeSolver > pOdeSolver=boost::shared_ptr< AbstractCellCycleModelOdeSolver >()) | |
virtual | ~CellCycleModelOdeHandler () |
AbstractOdeSystem * | GetOdeSystem () const |
void | SetOdeSystem (AbstractOdeSystem *pOdeSystem) |
const boost::shared_ptr< AbstractCellCycleModelOdeSolver > | GetOdeSolver () const |
void | SetLastTime (double lastTime) |
double | GetDt () |
void | SetDt (double timeStep) |
void | SetStateVariables (const std::vector< double > &rStateVariables) |
std::vector< double > | GetProteinConcentrations () const |
void | SetProteinConcentrationsForTestsOnly (double lastTime, std::vector< double > proteinConcentrations) |
Protected Member Functions | |
void | Initialise (AbstractOdeSystem *pOdeSystem) |
AbstractOdeSrnModel (const AbstractOdeSrnModel &rModel) | |
virtual void | Initialise () |
![]() | |
AbstractSrnModel (const AbstractSrnModel &rModel) | |
![]() | |
CellCycleModelOdeHandler (const CellCycleModelOdeHandler &rHandler) | |
bool | SolveOdeToTime (double currentTime) |
virtual void | AdjustOdeParameters (double currentTime) |
Protected Attributes | |
std::vector< double > | mInitialConditions |
unsigned | mStateSize |
![]() | |
CellPtr | mpCell |
double | mSimulatedToTime |
unsigned | mEdgeLocalIndex = UNSIGNED_UNSET |
bool | mIsEdgeBasedModel = false |
![]() | |
double | mDt |
AbstractOdeSystem * | mpOdeSystem |
boost::shared_ptr< AbstractCellCycleModelOdeSolver > | mpOdeSolver |
double | mLastTime |
bool | mFinishedRunningOdes |
Private Member Functions | |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | boost::serialization::access |
This class contains the abstract code for an ODE sub-cellular reaction network (SRN) model, similar in structure to AbstractOdeBasedCellCycleModel.
Definition at line 52 of file AbstractOdeSrnModel.hpp.
|
protected |
Protected copy-constructor for use by CreateSrnModel(). The only way for external code to create a copy of a SRN model is by calling that method, to ensure that a model of the correct subclass is created.
This copy-constructor helps subclasses to ensure that all member variables are correctly copied when this happens.
This method is called by child classes to set member variables for a daughter cell upon cell division. Note that the parent SRN model will have had ResetForDivision() called just before CreateSrnModel() is called, so performing an exact copy of the parent is suitable behaviour. Any daughter-cell-specific initialisation can be done in InitialiseDaughterCell().
rModel | the SRN model to copy. |
Definition at line 45 of file AbstractOdeSrnModel.cpp.
AbstractOdeSrnModel::AbstractOdeSrnModel | ( | unsigned | stateSize, |
boost::shared_ptr< AbstractCellCycleModelOdeSolver > | pOdeSolver = boost::shared_ptr<AbstractCellCycleModelOdeSolver>() |
||
) |
Create an AbstractOdeSrnModel.
stateSize | The number of state variables in the ODE system. |
pOdeSolver | An optional pointer to a cell-cycle model ODE solver object (allows the use of different ODE solvers). |
Definition at line 38 of file AbstractOdeSrnModel.cpp.
|
virtual |
Destructor.
Definition at line 67 of file AbstractOdeSrnModel.cpp.
|
protectedvirtual |
Initialise the SRN model at the start of a simulation.
This method will be called precisely once per cell set up in the initial cell population. It is not called on cell division; use ResetForDivision(), CreateSrnModel() and InitialiseDaughterCell() for that.
By the time this is called, a CellPopulation will have been set up, so the model can know where its cell is located in space. If relevant to the simulation, any singletons will also have been initialised.
Reimplemented from AbstractSrnModel.
Reimplemented in DeltaNotchEdgeSrnModel, DeltaNotchInteriorSrnModel, DeltaNotchSrnModel, and Goldbeter1991SrnModel.
Definition at line 164 of file AbstractSrnModel.cpp.
Referenced by DeltaNotchEdgeSrnModel::Initialise(), DeltaNotchInteriorSrnModel::Initialise(), DeltaNotchSrnModel::Initialise(), and Goldbeter1991SrnModel::Initialise().
|
protected |
Overridden Initialise() method, which here sets up the ODE system.
Note we bring virtual functions from AbstractSrnModel into derived namespace so overloading virtual works.
pOdeSystem | pointer to an ODE system |
Definition at line 97 of file AbstractOdeSrnModel.cpp.
References AbstractParameterisedSystem< VECTOR >::GetInitialConditions(), mInitialConditions, AbstractSrnModel::mpCell, CellCycleModelOdeHandler::mpOdeSystem, AbstractSrnModel::mSimulatedToTime, CellCycleModelOdeHandler::SetLastTime(), and AbstractParameterisedSystem< VECTOR >::SetStateVariables().
|
virtual |
Outputs SRN model parameters to file. Virtual void so needs to be specified in child classes.
rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractSrnModel.
Reimplemented in DeltaNotchEdgeSrnModel, DeltaNotchInteriorSrnModel, DeltaNotchSrnModel, and Goldbeter1991SrnModel.
Definition at line 128 of file AbstractOdeSrnModel.cpp.
References AbstractSrnModel::OutputSrnModelParameters().
Referenced by DeltaNotchEdgeSrnModel::OutputSrnModelParameters(), DeltaNotchInteriorSrnModel::OutputSrnModelParameters(), DeltaNotchSrnModel::OutputSrnModelParameters(), and Goldbeter1991SrnModel::OutputSrnModelParameters().
|
virtual |
For a naturally cycling model this does not need to be overridden in the subclasses. But most models should override this function and then call AbstractSrnModel::ResetForDivision() from inside their version.
Reimplemented from AbstractSrnModel.
Reimplemented in DeltaNotchInteriorSrnModel.
Definition at line 115 of file AbstractOdeSrnModel.cpp.
References CellCycleModelOdeHandler::mFinishedRunningOdes, CellCycleModelOdeHandler::mLastTime, AbstractSrnModel::mSimulatedToTime, and AbstractSrnModel::ResetForDivision().
|
virtual |
Scales all ODE variables by factor theta. Used for example to scale model variables after cell division.
theta | factor by which to scale all ODE variables. |
Reimplemented from AbstractSrnModel.
Definition at line 134 of file AbstractOdeSrnModel.cpp.
References AbstractUntemplatedParameterisedSystem::GetNumberOfStateVariables(), AbstractParameterisedSystem< VECTOR >::GetStateVariable(), CellCycleModelOdeHandler::mpOdeSystem, and AbstractParameterisedSystem< VECTOR >::SetStateVariable().
Referenced by DeltaNotchInteriorSrnModel::ResetForDivision(), and DeltaNotchEdgeSrnModel::SplitEdgeSrn().
|
inlineprivate |
Archive the SRN model and member variables.
archive | the archive |
version | the current version of this class |
Definition at line 65 of file AbstractOdeSrnModel.hpp.
References mInitialConditions, and mStateSize.
void AbstractOdeSrnModel::SetInitialConditions | ( | std::vector< double > | initialConditions | ) |
Set mInitialConditions. Used in CreateSrnModel().
initialConditions | the new value of mInitialConditions |
Definition at line 122 of file AbstractOdeSrnModel.cpp.
References mInitialConditions, and mStateSize.
|
virtual |
Here we solve the ODEs associated with the SRN.
Implements AbstractSrnModel.
Reimplemented in DeltaNotchEdgeSrnModel, DeltaNotchInteriorSrnModel, DeltaNotchSrnModel, and Goldbeter1991SrnModel.
Definition at line 71 of file AbstractOdeSrnModel.cpp.
References SimulationTime::GetTime(), SimulationTime::Instance(), CellCycleModelOdeHandler::mFinishedRunningOdes, CellCycleModelOdeHandler::mLastTime, CellCycleModelOdeHandler::mpOdeSystem, AbstractSrnModel::SetSimulatedToTime(), and CellCycleModelOdeHandler::SolveOdeToTime().
Referenced by DeltaNotchEdgeSrnModel::SimulateToCurrentTime(), DeltaNotchInteriorSrnModel::SimulateToCurrentTime(), DeltaNotchSrnModel::SimulateToCurrentTime(), and Goldbeter1991SrnModel::SimulateToCurrentTime().
|
friend |
Needed for serialization.
Definition at line 57 of file AbstractOdeSrnModel.hpp.
|
protected |
The initial condition for the ODE state variables.
Definition at line 78 of file AbstractOdeSrnModel.hpp.
Referenced by Initialise(), serialize(), and SetInitialConditions().
|
protected |
The number of state variables.
Definition at line 83 of file AbstractOdeSrnModel.hpp.
Referenced by serialize(), and SetInitialConditions().