![]() |
Chaste
Release::3.4
|
#include <AbstractCellCycleModelOdeSolver.hpp>
Inheritance diagram for AbstractCellCycleModelOdeSolver:
Collaboration diagram for AbstractCellCycleModelOdeSolver:Public Member Functions | |
| AbstractCellCycleModelOdeSolver () | |
| virtual | ~AbstractCellCycleModelOdeSolver () |
| virtual bool | IsSetUp ()=0 |
| virtual void | Reset () |
| void | SolveAndUpdateStateVariable (AbstractOdeSystem *pAbstractOdeSystem, double startTime, double endTime, double timeStep) |
| virtual void | Initialise ()=0 |
| bool | StoppingEventOccurred () |
| double | GetStoppingTime () |
| void | SetSizeOfOdeSystem (unsigned sizeOfOdeSystem) |
| unsigned | GetSizeOfOdeSystem () |
| void | CheckForStoppingEvents () |
| void | SetMaxSteps (long int numSteps) |
| void | SetTolerances (double relTol=1e-4, double absTol=1e-6) |
| virtual bool | IsAdaptive () |
Protected Attributes | |
| boost::shared_ptr < AbstractIvpOdeSolver > | mpOdeSolver |
| unsigned | mSizeOfOdeSystem |
Private Member Functions | |
| template<class Archive > | |
| void | serialize (Archive &archive, const unsigned int version) |
Friends | |
| class | boost::serialization::access |
This provides a wrapper around any ODE solver class, exposing roughly the same interface, for use by ODE-based cell-cycle models. Its main purpose is to allow multiple instances of the same cell-cycle model to share the same ODE solver instance.
The recommended way to use this wrapper is via the CellCycleModelOdeSolver subclass, which is templated over cell-cycle model class and ODE solver class, providing a singleton instance for each combination of template parameters.
Definition at line 56 of file AbstractCellCycleModelOdeSolver.hpp.
| AbstractCellCycleModelOdeSolver::AbstractCellCycleModelOdeSolver | ( | ) |
Constructor.
Definition at line 40 of file AbstractCellCycleModelOdeSolver.cpp.
|
virtual |
Virtual destructor since we have virtual methods.
Definition at line 45 of file AbstractCellCycleModelOdeSolver.cpp.
| void AbstractCellCycleModelOdeSolver::CheckForStoppingEvents | ( | ) |
If using CVODE, make the solver check for stopping events using CVODE's rootfinding functionality (by default we do not check).
Definition at line 84 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
| unsigned AbstractCellCycleModelOdeSolver::GetSizeOfOdeSystem | ( | ) |
Definition at line 79 of file AbstractCellCycleModelOdeSolver.cpp.
References mSizeOfOdeSystem.
| double AbstractCellCycleModelOdeSolver::GetStoppingTime | ( | ) |
Call mpOdeSolver->GetStoppingTime.
Definition at line 68 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
|
pure virtual |
Initialise the ODE solver.
Implemented in CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >, and CellCycleModelOdeSolver< CELL_CYCLE_MODEL, ODE_SOLVER >.
|
virtual |
The base class version just returns true iff the solver is the CvodeAdaptor class.
Reimplemented in CellCycleModelOdeSolver< CELL_CYCLE_MODEL, ODE_SOLVER >.
Definition at line 117 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
Referenced by CellCycleModelOdeSolver< CELL_CYCLE_MODEL, ODE_SOLVER >::IsAdaptive().
|
pure virtual |
Implemented in CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >, and CellCycleModelOdeSolver< CELL_CYCLE_MODEL, ODE_SOLVER >.
Referenced by CheckForStoppingEvents(), GetStoppingTime(), IsAdaptive(), SetMaxSteps(), SetTolerances(), SolveAndUpdateStateVariable(), and StoppingEventOccurred().
|
virtual |
Reset the instance.
Reimplemented in CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >.
Definition at line 49 of file AbstractCellCycleModelOdeSolver.cpp.
|
inlineprivate |
Archive the object and its the member variables.
| archive | the archive |
| version | the current version of this class |
Definition at line 69 of file AbstractCellCycleModelOdeSolver.hpp.
References mpOdeSolver, and mSizeOfOdeSystem.
| void AbstractCellCycleModelOdeSolver::SetMaxSteps | ( | long int | numSteps | ) |
If using CVODE, change the maximum number of steps to be taken by the solver in its attempt to reach the next output time (default is 500).
| numSteps | the new maximum number of steps |
Definition at line 95 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
| void AbstractCellCycleModelOdeSolver::SetSizeOfOdeSystem | ( | unsigned | sizeOfOdeSystem | ) |
Set method for mSizeOfOdeSystem.
| sizeOfOdeSystem | the new value of mSizeOfOdeSystem |
Definition at line 74 of file AbstractCellCycleModelOdeSolver.cpp.
References mSizeOfOdeSystem.
If using CVODE, set relative and absolute tolerances; both scalars. If no parameters are given, tolerances will be reset to default values.
| relTol | the relative tolerance for the solver |
| absTol | the absolute tolerance for the solver |
Definition at line 106 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
| void AbstractCellCycleModelOdeSolver::SolveAndUpdateStateVariable | ( | AbstractOdeSystem * | pAbstractOdeSystem, |
| double | startTime, | ||
| double | endTime, | ||
| double | timeStep | ||
| ) |
Call mpOdeSolver->SolveAndUpdateStateVariable.
| pAbstractOdeSystem | pointer to the concrete ODE system to be solved |
| startTime | the time at which the initial conditions are specified |
| endTime | the time to which the system should be solved and the solution returned |
| timeStep | the time interval to be used by the solver |
Definition at line 53 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
| bool AbstractCellCycleModelOdeSolver::StoppingEventOccurred | ( | ) |
Definition at line 62 of file AbstractCellCycleModelOdeSolver.cpp.
References IsSetUp(), and mpOdeSolver.
|
friend |
Needed for serialization.
Definition at line 61 of file AbstractCellCycleModelOdeSolver.hpp.
|
protected |
The ODE solver.
Definition at line 78 of file AbstractCellCycleModelOdeSolver.hpp.
Referenced by CheckForStoppingEvents(), GetStoppingTime(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::Initialise(), IsAdaptive(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::IsSetUp(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::Reset(), serialize(), SetMaxSteps(), SetTolerances(), SolveAndUpdateStateVariable(), and StoppingEventOccurred().
|
protected |
The size of the ODE system to be solved.
Definition at line 81 of file AbstractCellCycleModelOdeSolver.hpp.
Referenced by GetSizeOfOdeSystem(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::Initialise(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::IsSetUp(), CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >::Reset(), serialize(), and SetSizeOfOdeSystem().