#include <AbstractCardiacCell.hpp>
Public Member Functions | |
AbstractCardiacCell (AbstractIvpOdeSolver *pOdeSolver, unsigned numberOfStateVariables, unsigned voltageIndex, AbstractStimulusFunction *intracellularStimulus) | |
virtual void | Init () |
virtual OdeSolution | Compute (double tStart, double tEnd) |
virtual void | ComputeExceptVoltage (double tStart, double tEnd) |
virtual double | GetIIonic ()=0 |
void | SetVoltage (double voltage) |
double | GetVoltage () |
unsigned | GetVoltageIndex () |
void | SetStimulusFunction (AbstractStimulusFunction *stimulus) |
double | GetStimulus (double time) |
void | SetIntracellularStimulusFunction (AbstractStimulusFunction *stimulus) |
double | GetIntracellularStimulus (double time) |
virtual double | GetIntracellularCalciumConcentration () |
virtual void | VerifyStateVariables () |
virtual void | SetState (CellModelState state) |
virtual void | SetSlowValues (const std::vector< double > &rSlowValues) |
virtual void | GetSlowValues (std::vector< double > &rSlowValues) |
virtual bool | IsFastOnly () |
virtual void | AdjustOutOfRangeSlowValues (std::vector< double > &rSlowValues) |
virtual unsigned | GetNumSlowValues () |
Protected Attributes | |
unsigned | mVoltageIndex |
AbstractIvpOdeSolver * | mpOdeSolver |
double | mDt |
AbstractStimulusFunction * | mpIntracellularStimulus |
bool | mSetVoltageDerivativeToZero |
Definition at line 50 of file AbstractCardiacCell.hpp.
void AbstractCardiacCell::Init | ( | ) | [virtual] |
Initialise the cell: set our state variables to the initial conditions, set model parameters to their default values.
Initialise the cell: set our state variables to the initial conditions (done here), set model parameters to their default values (done by subclasses).
Reimplemented in BackwardEulerLuoRudyIModel1991.
Definition at line 59 of file AbstractCardiacCell.cpp.
Referenced by BackwardEulerFoxModel2002Modified::BackwardEulerFoxModel2002Modified(), FitzHughNagumo1961OdeSystem::FitzHughNagumo1961OdeSystem(), HodgkinHuxleySquidAxon1952OriginalOdeSystem::HodgkinHuxleySquidAxon1952OriginalOdeSystem(), BackwardEulerLuoRudyIModel1991::Init(), LuoRudyIModel1991OdeSystem::LuoRudyIModel1991OdeSystem(), and TenTusscher2006OdeSystem::TenTusscher2006OdeSystem().
OdeSolution AbstractCardiacCell::Compute | ( | double | tStart, | |
double | tEnd | |||
) | [virtual] |
Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep dt.
Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep mDt.
Reimplemented in AbstractBackwardEulerCardiacCell< SIZE >, AbstractBackwardEulerCardiacCell< 12 >, AbstractBackwardEulerCardiacCell< 1 >, and AbstractBackwardEulerCardiacCell< 3 >.
Definition at line 69 of file AbstractCardiacCell.cpp.
References mpOdeSolver, and AbstractIvpOdeSolver::Solve().
void AbstractCardiacCell::ComputeExceptVoltage | ( | double | tStart, | |
double | tEnd | |||
) | [virtual] |
Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep dt, but does not update the voltage.
Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep mDt, but does not update the voltage.
Reimplemented in AbstractBackwardEulerCardiacCell< SIZE >, FakeBathCell, AbstractBackwardEulerCardiacCell< 12 >, AbstractBackwardEulerCardiacCell< 1 >, and AbstractBackwardEulerCardiacCell< 3 >.
Definition at line 79 of file AbstractCardiacCell.cpp.
References mpOdeSolver, AbstractIvpOdeSolver::SolveAndUpdateStateVariable(), and VerifyStateVariables().
virtual double AbstractCardiacCell::GetIIonic | ( | ) | [pure virtual] |
Computes the total current flowing through the cell membrane, using the current values of the state variables.
Implemented in BackwardEulerFoxModel2002Modified, BackwardEulerLuoRudyIModel1991, DiFrancescoNoble1985OdeSystem, FakeBathCell, FitzHughNagumo1961OdeSystem, FoxModel2002Modified, HodgkinHuxleySquidAxon1952OriginalOdeSystem, LuoRudyIModel1991OdeSystem, and TenTusscher2006OdeSystem.
double AbstractCardiacCell::GetIntracellularCalciumConcentration | ( | ) | [virtual] |
[Ca_i] is needed for mechanics, so we explcitly have a Get method (rather than use a get by name type method, to avoid inefficiency when using different cells types of cells). This method by defaults throws an exception, so should be implemented in the concrete class if IntracellularCalciumConcentration is one of the state variables
Reimplemented in BackwardEulerLuoRudyIModel1991, and LuoRudyIModel1991OdeSystem.
Definition at line 128 of file AbstractCardiacCell.cpp.
virtual void AbstractCardiacCell::VerifyStateVariables | ( | ) | [inline, virtual] |
Empty method which can be over-ridden in concrete cell class which should go through the current state vector and go range checking on the values (eg check that concentrations are positive and gating variables are between zero and one). This method is called in the ComputeExceptVoltage method.
Reimplemented in BackwardEulerLuoRudyIModel1991, DiFrancescoNoble1985OdeSystem, LuoRudyIModel1991OdeSystem, and TenTusscher2006OdeSystem.
Definition at line 125 of file AbstractCardiacCell.hpp.
Referenced by AbstractBackwardEulerCardiacCell< SIZE >::Compute(), ComputeExceptVoltage(), and AbstractBackwardEulerCardiacCell< SIZE >::ComputeExceptVoltage().
void AbstractCardiacCell::SetState | ( | CellModelState | state | ) | [virtual] |
Pure method for setting the state of this model. This should (i) set the state (ii) initialise the cell (iii) SET mNumberOfStateVariables CORRECTLY (as this would not have been known in the constructor
Definition at line 137 of file AbstractCardiacCell.cpp.
void AbstractCardiacCell::SetSlowValues | ( | const std::vector< double > & | rSlowValues | ) | [virtual] |
Pure method, for setting the slow variables. Should only be valid in fast mode)
Definition at line 142 of file AbstractCardiacCell.cpp.
void AbstractCardiacCell::GetSlowValues | ( | std::vector< double > & | rSlowValues | ) | [virtual] |
Pure method, for getting the slow variables. Should only valid in slow mode.
Definition at line 147 of file AbstractCardiacCell.cpp.
bool AbstractCardiacCell::IsFastOnly | ( | ) | [virtual] |
Get whether this cell is a fast or slow version
Definition at line 152 of file AbstractCardiacCell.cpp.
unsigned AbstractCardiacCell::GetNumSlowValues | ( | ) | [virtual] |
Pure method for getting the number of slow variables for the cell model (irrespective of whether in fast or slow mode
Definition at line 157 of file AbstractCardiacCell.cpp.
unsigned AbstractCardiacCell::mVoltageIndex [protected] |
The index of the voltage within our state variable vector
Definition at line 54 of file AbstractCardiacCell.hpp.
Referenced by HodgkinHuxleySquidAxon1952OriginalOdeSystem::GetIIonic(), and FitzHughNagumo1961OdeSystem::GetIIonic().
AbstractIvpOdeSolver* AbstractCardiacCell::mpOdeSolver [protected] |
Pointer to the solver used to simulate currents for this cell.
Definition at line 55 of file AbstractCardiacCell.hpp.
Referenced by Compute(), and ComputeExceptVoltage().