Chaste  Release::2017.1
AbstractBackwardEulerCardiacCell< 0u > Class Template Referenceabstract

#include <AbstractBackwardEulerCardiacCell.hpp>

+ Inheritance diagram for AbstractBackwardEulerCardiacCell< 0u >:
+ Collaboration diagram for AbstractBackwardEulerCardiacCell< 0u >:

Public Member Functions

 AbstractBackwardEulerCardiacCell (unsigned numberOfStateVariables, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
virtual ~AbstractBackwardEulerCardiacCell ()
 
OdeSolution Compute (double tStart, double tEnd, double tSamp=0.0)
 
void ComputeExceptVoltage (double tStart, double tEnd)
 
void SolveAndUpdateState (double tStart, double tEnd)
 
- Public Member Functions inherited from AbstractCardiacCell
 AbstractCardiacCell (boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned numberOfStateVariables, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
virtual ~AbstractCardiacCell ()
 
void Init ()
 
void SetTimestep (double dt)
 
void SetVoltage (double voltage)
 
double GetVoltage ()
 
unsigned GetNumberOfStateVariables () const
 
unsigned GetNumberOfParameters () const
 
std::vector< doubleGetStdVecStateVariables ()
 
const std::vector< std::string > & rGetStateVariableNames () const
 
void SetStateVariables (const std::vector< double > &rVariables)
 
void SetStateVariable (unsigned index, double newValue)
 
void SetStateVariable (const std::string &rName, double newValue)
 
double GetAnyVariable (const std::string &rName, double time=0.0)
 
double GetParameter (const std::string &rParameterName)
 
double GetParameter (unsigned parameterIndex)
 
void SetParameter (const std::string &rParameterName, double value)
 
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 ()
 
- Public Member Functions inherited from AbstractCardiacCellInterface
 AbstractCardiacCellInterface (boost::shared_ptr< AbstractIvpOdeSolver > pOdeSolver, unsigned voltageIndex, boost::shared_ptr< AbstractStimulusFunction > pIntracellularStimulus)
 
virtual ~AbstractCardiacCellInterface ()
 
virtual double GetIIonic (const std::vector< double > *pStateVariables=NULL)=0
 
unsigned GetVoltageIndex ()
 
void SetStimulusFunction (boost::shared_ptr< AbstractStimulusFunction > pStimulus)
 
double GetStimulus (double time)
 
void SetIntracellularStimulusFunction (boost::shared_ptr< AbstractStimulusFunction > pStimulus)
 
double GetIntracellularStimulus (double time)
 
double GetIntracellularAreaStimulus (double time)
 
void SetUsedInTissueSimulation (bool tissue=true)
 
virtual boost::shared_ptr< RegularStimulusUseCellMLDefaultStimulus ()
 
bool HasCellMLDefaultStimulus ()
 
virtual AbstractLookupTableCollectionGetLookupTableCollection ()
 
boost::shared_ptr< AbstractStimulusFunctionGetStimulusFunction ()
 
const boost::shared_ptr< AbstractStimulusFunctionGetStimulusFunction () const
 
const boost::shared_ptr< AbstractIvpOdeSolverGetSolver () const
 
void SetSolver (boost::shared_ptr< AbstractIvpOdeSolver > pSolver)
 
virtual void SetVoltageDerivativeToZero (bool clamp=true)
 
void SetFixedVoltage (double voltage)
 
virtual void SetStretch (double stretch)
 
virtual double GetIntracellularCalciumConcentration ()
 
- Public Member Functions inherited from AbstractOdeSystem
 AbstractOdeSystem (unsigned numberOfStateVariables)
 
virtual ~AbstractOdeSystem ()
 
virtual bool CalculateStoppingEvent (double time, const std::vector< double > &rY)
 
virtual double CalculateRootFunction (double time, const std::vector< double > &rY)
 
bool GetUseAnalyticJacobian ()
 
const std::vector< double > & rGetConstStateVariables () const
 
- Public Member Functions inherited from AbstractParameterisedSystem< std::vector< double > >
 AbstractParameterisedSystem (unsigned numberOfStateVariables)
 
std::vector< double > & rGetStateVariables ()
 
std::vector< doubleGetStateVariables ()
 
void SetStateVariables (const std::vector< double > &rStateVariables)
 
double GetStateVariable (unsigned index) const
 
double GetStateVariable (const std::string &rName) const
 
void SetStateVariable (unsigned index, double newValue)
 
void SetStateVariable (const std::string &rName, double newValue)
 
virtual void VerifyStateVariables ()
 
void SetDefaultInitialConditions (const std::vector< double > &rInitialConditions)
 
void SetDefaultInitialCondition (unsigned index, double initialCondition)
 
std::vector< doubleGetInitialConditions () const
 
void ResetToInitialConditions ()
 
double GetParameter (unsigned index) const
 
double GetParameter (const std::string &rName) const
 
void SetParameter (const std::string &rName, double value)
 
void SetParameter (unsigned index, double value)
 
double GetAnyVariable (unsigned index, double time=0.0, std::vector< double > *pDerivedQuantities=NULL)
 
double GetAnyVariable (const std::string &rName, double time=0.0, std::vector< double > *pDerivedQuantities=NULL)
 
void SetAnyVariable (unsigned index, double value)
 
void SetAnyVariable (const std::string &rName, double value)
 
virtual std::vector< doubleComputeDerivedQuantities (double time, const std::vector< double > &rState)
 
std::vector< doubleComputeDerivedQuantitiesFromCurrentState (double time)
 
- Public Member Functions inherited from AbstractUntemplatedParameterisedSystem
 AbstractUntemplatedParameterisedSystem (unsigned numberOfStateVariables)
 
virtual ~AbstractUntemplatedParameterisedSystem ()
 
boost::shared_ptr< const AbstractOdeSystemInformationGetSystemInformation () const
 
std::string GetSystemName () const
 
unsigned GetNumberOfAttributes () const
 
bool HasAttribute (const std::string &rName) const
 
double GetAttribute (const std::string &rName) const
 
unsigned GetNumberOfStateVariables () const
 
const std::vector< std::string > & rGetStateVariableNames () const
 
const std::vector< std::string > & rGetStateVariableUnits () const
 
unsigned GetStateVariableIndex (const std::string &rName) const
 
bool HasStateVariable (const std::string &rName) const
 
std::string GetStateVariableUnits (unsigned index) const
 
unsigned GetNumberOfParameters () const
 
const std::vector< std::string > & rGetParameterNames () const
 
const std::vector< std::string > & rGetParameterUnits () const
 
unsigned GetParameterIndex (const std::string &rName) const
 
bool HasParameter (const std::string &rName) const
 
std::string GetParameterUnits (unsigned index) const
 
unsigned GetNumberOfDerivedQuantities () const
 
const std::vector< std::string > & rGetDerivedQuantityNames () const
 
const std::vector< std::string > & rGetDerivedQuantityUnits () const
 
unsigned GetDerivedQuantityIndex (const std::string &rName) const
 
bool HasDerivedQuantity (const std::string &rName) const
 
std::string GetDerivedQuantityUnits (unsigned index) const
 
unsigned GetAnyVariableIndex (const std::string &rName) const
 
bool HasAnyVariable (const std::string &rName) const
 
std::string GetAnyVariableUnits (unsigned index) const
 
std::string GetAnyVariableUnits (const std::string &rName) const
 

Protected Member Functions

virtual void ComputeOneStepExceptVoltage (double tStart)=0
 
virtual void UpdateTransmembranePotential (double time)=0
 
- Protected Member Functions inherited from AbstractParameterisedSystem< std::vector< double > >
std::string DumpState (const std::string &rMessage)
 
std::string DumpState (const std::string &rMessage, std::vector< double >Y)
 
std::string DumpState (const std::string &rMessage, std::vector< double >Y, double time)
 
void CheckParametersOnLoad (const std::vector< double > &rParameters, const std::vector< std::string > &rParameterNames)
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 
void EvaluateYDerivatives (double time, const std::vector< double > &rY, std::vector< double > &rDY)
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Attributes inherited from AbstractCardiacCell
double mDt
 
- Protected Attributes inherited from AbstractCardiacCellInterface
unsigned mVoltageIndex
 
boost::shared_ptr< AbstractIvpOdeSolvermpOdeSolver
 
boost::shared_ptr< AbstractStimulusFunctionmpIntracellularStimulus
 
bool mSetVoltageDerivativeToZero
 
bool mIsUsedInTissue
 
bool mHasDefaultStimulusFromCellML
 
double mFixedVoltage
 
- Protected Attributes inherited from AbstractOdeSystem
bool mUseAnalyticJacobian
 
- Protected Attributes inherited from AbstractParameterisedSystem< std::vector< double > >
std::vector< doublemStateVariables
 
std::vector< doublemParameters
 
- Protected Attributes inherited from AbstractUntemplatedParameterisedSystem
unsigned mNumberOfStateVariables
 
boost::shared_ptr< AbstractOdeSystemInformationmpSystemInfo
 

Detailed Description

template<>
class AbstractBackwardEulerCardiacCell< 0u >

Specialization for the case where there are no non-linear ODEs in the model.

Definition at line 330 of file AbstractBackwardEulerCardiacCell.hpp.

Constructor & Destructor Documentation

AbstractBackwardEulerCardiacCell< 0u >::AbstractBackwardEulerCardiacCell ( unsigned  numberOfStateVariables,
unsigned  voltageIndex,
boost::shared_ptr< AbstractStimulusFunction pIntracellularStimulus 
)
inline

Standard constructor for a cell.

Parameters
numberOfStateVariablesthe size of the ODE system
voltageIndexthe index of the variable representing the transmembrane potential within the state variable vector
pIntracellularStimulusthe intracellular stimulus function

Definition at line 357 of file AbstractBackwardEulerCardiacCell.hpp.

virtual AbstractBackwardEulerCardiacCell< 0u >::~AbstractBackwardEulerCardiacCell ( )
inlinevirtual

Virtual destructor

Definition at line 367 of file AbstractBackwardEulerCardiacCell.hpp.

Member Function Documentation

OdeSolution AbstractBackwardEulerCardiacCell< 0u >::Compute ( double  tStart,
double  tEnd,
double  tSamp = 0.0 
)
inlinevirtual

Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep mDt. Uses a forward Euler step to update the transmembrane potential at each timestep.

The length of the time interval must be a multiple of the timestep.

Parameters
tStartbeginning of the time interval to simulate
tEndend of the time interval to simulate
tSampsampling interval for returned results (defaults to mDt)
Returns
the values of each state variable, at intervals of tSamp.

Reimplemented from AbstractCardiacCell.

Definition at line 382 of file AbstractBackwardEulerCardiacCell.hpp.

References AbstractBackwardEulerCardiacCell< SIZE >::ComputeOneStepExceptVoltage(), AbstractCardiacCell::mDt, AbstractUntemplatedParameterisedSystem::mpSystemInfo, OdeSolution::rGetSolutions(), AbstractParameterisedSystem< std::vector< double > >::rGetStateVariables(), OdeSolution::rGetTimes(), OdeSolution::SetNumberOfTimeSteps(), OdeSolution::SetOdeSystemInformation(), AbstractBackwardEulerCardiacCell< SIZE >::UpdateTransmembranePotential(), and AbstractParameterisedSystem< std::vector< double > >::VerifyStateVariables().

void AbstractBackwardEulerCardiacCell< 0u >::ComputeExceptVoltage ( double  tStart,
double  tEnd 
)
inlinevirtual

Simulates this cell's behaviour between the time interval [tStart, tEnd], with timestep mDt. The transmembrane potential is kept fixed throughout.

The length of the time interval must be a multiple of the timestep.

Parameters
tStartbeginning of the time interval to simulate
tEndend of the time interval to simulate

Reimplemented from AbstractCardiacCell.

Definition at line 442 of file AbstractBackwardEulerCardiacCell.hpp.

References AbstractBackwardEulerCardiacCell< SIZE >::ComputeOneStepExceptVoltage(), AbstractCardiacCell::mDt, and AbstractParameterisedSystem< std::vector< double > >::VerifyStateVariables().

virtual void AbstractBackwardEulerCardiacCell< 0u >::ComputeOneStepExceptVoltage ( double  tStart)
protectedpure virtual

Compute the values of all state variables, except the voltage, using backward Euler, for one timestep from tStart.

Note
This method must be provided by subclasses.
Parameters
tStartstart of this timestep
void AbstractBackwardEulerCardiacCell< 0u >::EvaluateYDerivatives ( double  time,
const std::vector< double > &  rY,
std::vector< double > &  rDY 
)
inlineprivatevirtual
template<class Archive >
void AbstractBackwardEulerCardiacCell< 0u >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Archive the member variables.

Parameters
archive
version

Definition at line 342 of file AbstractBackwardEulerCardiacCell.hpp.

void AbstractBackwardEulerCardiacCell< 0u >::SolveAndUpdateState ( double  tStart,
double  tEnd 
)
inlinevirtual

Simulate this cell's behaviour between the time interval [tStart, tEnd], with timestemp mDt, updating the internal state variable values.

Parameters
tStartbeginning of the time interval to simulate
tEndend of the time interval to simulate

Reimplemented from AbstractCardiacCell.

Definition at line 474 of file AbstractBackwardEulerCardiacCell.hpp.

References TimeStepper::AdvanceOneTimeStep(), AbstractBackwardEulerCardiacCell< SIZE >::ComputeOneStepExceptVoltage(), TimeStepper::GetTime(), TimeStepper::IsTimeAtEnd(), AbstractCardiacCell::mDt, AbstractBackwardEulerCardiacCell< SIZE >::UpdateTransmembranePotential(), and AbstractParameterisedSystem< std::vector< double > >::VerifyStateVariables().

virtual void AbstractBackwardEulerCardiacCell< 0u >::UpdateTransmembranePotential ( double  time)
protectedpure virtual

Perform a forward Euler step to update the transmembrane potential.

Note
This method must be provided by subclasses.
Parameters
timestart of this timestep

Friends And Related Function Documentation

friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 334 of file AbstractBackwardEulerCardiacCell.hpp.


The documentation for this class was generated from the following file: