#include <AbstractIvpOdeSolver.hpp>


Public Member Functions | |
| virtual OdeSolution | Solve (AbstractOdeSystem *pAbstractOdeSystem, std::vector< double > &rYValues, double startTime, double endTime, double timeStep, double timeSampling)=0 |
| virtual void | Solve (AbstractOdeSystem *pAbstractOdeSystem, std::vector< double > &rYValues, double startTime, double endTime, double timeStep)=0 |
| virtual void | SolveAndUpdateStateVariable (AbstractOdeSystem *pAbstractOdeSystem, double startTime, double endTime, double timeStep) |
| bool | StoppingEventOccurred () |
| double | GetStoppingTime () |
| AbstractIvpOdeSolver () | |
| virtual | ~AbstractIvpOdeSolver () |
Protected Attributes | |
| bool | mStoppingEventOccurred |
| double | mStoppingTime |
Private Member Functions | |
| template<class Archive> | |
| void | serialize (Archive &archive, const unsigned int version) |
Friends | |
| class | boost::serialization::access |
Definition at line 45 of file AbstractIvpOdeSolver.hpp.
| AbstractIvpOdeSolver::AbstractIvpOdeSolver | ( | ) |
Constructor.
Definition at line 35 of file AbstractIvpOdeSolver.cpp.
| AbstractIvpOdeSolver::~AbstractIvpOdeSolver | ( | ) | [virtual] |
Virtual destructor since we have virtual methods.
Definition at line 41 of file AbstractIvpOdeSolver.cpp.
| void AbstractIvpOdeSolver::serialize | ( | Archive & | archive, | |
| const unsigned int | version | |||
| ) | [inline, private] |
Archive the member variables.
| archive | the archive | |
| version | the current version of this class |
Reimplemented in AbstractOneStepIvpOdeSolver, BackwardEulerIvpOdeSolver, CvodeAdaptor, EulerIvpOdeSolver, HeunIvpOdeSolver, MockEulerIvpOdeSolver, RungeKutta2IvpOdeSolver, RungeKutta4IvpOdeSolver, and RungeKuttaFehlbergIvpOdeSolver.
Definition at line 56 of file AbstractIvpOdeSolver.hpp.
References mStoppingEventOccurred, and mStoppingTime.
| virtual OdeSolution AbstractIvpOdeSolver::Solve | ( | AbstractOdeSystem * | pAbstractOdeSystem, | |
| std::vector< double > & | rYValues, | |||
| double | startTime, | |||
| double | endTime, | |||
| double | timeStep, | |||
| double | timeSampling | |||
| ) | [pure virtual] |
Solves a system of ODEs using a specified one-step ODE solver and returns the solution as an OdeSolution object.
| pAbstractOdeSystem | pointer to the concrete ODE system to be solved | |
| rYValues | a standard vector specifying the intial condition of each solution variable in the system (this can be the initial conditions vector stored in the ODE system) | |
| 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 | |
| timeSampling | the interval at which to sample the solution to the ODE system |
Implemented in AbstractOneStepIvpOdeSolver, CvodeAdaptor, and RungeKuttaFehlbergIvpOdeSolver.
Referenced by SolveAndUpdateStateVariable().
| virtual void AbstractIvpOdeSolver::Solve | ( | AbstractOdeSystem * | pAbstractOdeSystem, | |
| std::vector< double > & | rYValues, | |||
| double | startTime, | |||
| double | endTime, | |||
| double | timeStep | |||
| ) | [pure virtual] |
Second version of Solve. Solves a system of ODEs using a specified one-step ODE solver. This method does not return the solution and therefore does not take in a sampling time. Instead, the mStateVariables component in the ODE system object is updated.
| pAbstractOdeSystem | pointer to the concrete ODE system to be solved | |
| rYValues | a standard vector specifying the intial condition of each solution variable in the system (this can be the initial conditions vector stored in the ODE system) | |
| 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 |
Implemented in AbstractOneStepIvpOdeSolver, CvodeAdaptor, and RungeKuttaFehlbergIvpOdeSolver.
| void AbstractIvpOdeSolver::SolveAndUpdateStateVariable | ( | AbstractOdeSystem * | pAbstractOdeSystem, | |
| double | startTime, | |||
| double | endTime, | |||
| double | timeStep | |||
| ) | [virtual] |
Solves a system of ODEs using a specified one-step ODE solver and update the state variables.
| 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 45 of file AbstractIvpOdeSolver.cpp.
References EXCEPTION, AbstractParameterisedSystem< VECTOR >::GetNumberOfStateVariables(), AbstractParameterisedSystem< VECTOR >::rGetStateVariables(), and Solve().
Referenced by AbstractOdeBasedContractionModel::RunAndUpdate().
| bool AbstractIvpOdeSolver::StoppingEventOccurred | ( | ) |
Determine whether the solver quit due to the ODE's stopping event triggering
Definition at line 58 of file AbstractIvpOdeSolver.cpp.
References mStoppingEventOccurred.
| double AbstractIvpOdeSolver::GetStoppingTime | ( | ) |
Get the stopping time for the solver.
Definition at line 63 of file AbstractIvpOdeSolver.cpp.
References mStoppingTime.
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented in AbstractOneStepIvpOdeSolver, BackwardEulerIvpOdeSolver, CvodeAdaptor, EulerIvpOdeSolver, HeunIvpOdeSolver, MockEulerIvpOdeSolver, RungeKutta2IvpOdeSolver, RungeKutta4IvpOdeSolver, and RungeKuttaFehlbergIvpOdeSolver.
Definition at line 48 of file AbstractIvpOdeSolver.hpp.
bool AbstractIvpOdeSolver::mStoppingEventOccurred [protected] |
Boolean indicating whether the solver quit due to the ODEs stopping event occuring
Definition at line 68 of file AbstractIvpOdeSolver.hpp.
Referenced by RungeKuttaFehlbergIvpOdeSolver::InternalSolve(), AbstractOneStepIvpOdeSolver::InternalSolve(), serialize(), RungeKuttaFehlbergIvpOdeSolver::Solve(), CvodeAdaptor::Solve(), AbstractOneStepIvpOdeSolver::Solve(), and StoppingEventOccurred().
double AbstractIvpOdeSolver::mStoppingTime [protected] |
If a stopping event occurred the time is stored here. (Only valid when mStoppingEventOccurred==true)
Definition at line 71 of file AbstractIvpOdeSolver.hpp.
Referenced by GetStoppingTime(), RungeKuttaFehlbergIvpOdeSolver::InternalSolve(), AbstractOneStepIvpOdeSolver::InternalSolve(), serialize(), CvodeAdaptor::Solve(), and AbstractOneStepIvpOdeSolver::Solve().
1.5.5