Chaste  Release::2017.1
Kerchoffs2003ContractionModel Class Reference

#include <Kerchoffs2003ContractionModel.hpp>

+ Inheritance diagram for Kerchoffs2003ContractionModel:
+ Collaboration diagram for Kerchoffs2003ContractionModel:

Public Member Functions

 Kerchoffs2003ContractionModel ()
 
void EvaluateYDerivatives (double time, const std::vector< double > &rY, std::vector< double > &rDY)
 
void SetInputParameters (ContractionModelInputParameters &rInputParameters)
 
void SetStretchAndStretchRate (double stretch, double stretchRate)
 
double GetActiveTension ()
 
bool IsStretchDependent ()
 
bool IsStretchRateDependent ()
 
double GetNextActiveTension ()
 
- Public Member Functions inherited from AbstractOdeBasedContractionModel
 AbstractOdeBasedContractionModel (unsigned numStateVariables)
 
virtual void RunDoNotUpdate (double startTime, double endTime, double timeStep)
 
void UpdateStateVariables ()
 
void RunAndUpdate (double startTime, double endTime, double timeStep)
 
- 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
 
- Public Member Functions inherited from AbstractContractionModel
 AbstractContractionModel ()
 
virtual ~AbstractContractionModel ()
 
void SetStretch (double stretch)
 

Private Member Functions

double GetActiveTension (double lengthOfContractileElement)
 

Private Attributes

double mSarcomereLength
 
double mActivationTime
 
bool mIsActivated
 
bool mElectricallyUnactivated
 

Static Private Attributes

static const double a6 = 2.0
 
static const double a7 = 1.5
 
static const double T0 = 180
 
static const double Ea = 20
 
static const double v0 = 0.0075
 
static const double ls0 = 1.9
 
static const double ld = -0.4
 
static const double mActivationVoltage = 0.0
 
static const double mDeactivationVoltage = -70.0
 

Friends

class TestContractionModels
 

Additional Inherited Members

- 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)
 
- Protected Attributes inherited from AbstractOdeBasedContractionModel
std::vector< doublemTemporaryStateVariables
 
double mTime
 
- 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

Implementation of the ODE-based, stretch-dependent, stretch-rate-INdependent, contraction model detailed in the appendix of Kerchoffs 2003 "Intra- and interventricular asynchrony of electromechanics in the ventricularly paced heart".

Definition at line 48 of file Kerchoffs2003ContractionModel.hpp.

Constructor & Destructor Documentation

Member Function Documentation

void Kerchoffs2003ContractionModel::EvaluateYDerivatives ( double  time,
const std::vector< double > &  rY,
std::vector< double > &  rDY 
)
virtual

The derivative function of the one state variable: "lc" in reference, the length of the contractile element

Parameters
timetime
rY1D vector containing lc
rDY1D vector in which dlc/dt is set

Implements AbstractOdeSystem.

Definition at line 73 of file Kerchoffs2003ContractionModel.cpp.

References Ea, mSarcomereLength, and v0.

double Kerchoffs2003ContractionModel::GetActiveTension ( double  lengthOfContractileElement)
private
Returns
the active tension as a function of length of contractile element. This is private. The public GetActiveTension() calls this using the value of lc in the state variable
Parameters
lengthOfContractileElementlength of contractile element (the state variable in this model).

Definition at line 109 of file Kerchoffs2003ContractionModel.cpp.

References a6, a7, Ea, AbstractParameterisedSystem< std::vector< double > >::GetParameter(), ld, ls0, mActivationTime, mElectricallyUnactivated, mIsActivated, mSarcomereLength, AbstractOdeBasedContractionModel::mTime, and T0.

double Kerchoffs2003ContractionModel::GetActiveTension ( )
virtual
Returns
the active tension (note: actually a stress), ie kPa

Implements AbstractContractionModel.

Definition at line 144 of file Kerchoffs2003ContractionModel.cpp.

References AbstractParameterisedSystem< std::vector< double > >::mStateVariables.

Referenced by GetNextActiveTension().

double Kerchoffs2003ContractionModel::GetNextActiveTension ( )
virtual
Returns
the active tension corresponding to the temporary stored state variables produced by calling RunDoNotUpdate (and before calling UpdateStateVariables())

Implements AbstractContractionModel.

Definition at line 149 of file Kerchoffs2003ContractionModel.cpp.

References GetActiveTension(), and AbstractOdeBasedContractionModel::mTemporaryStateVariables.

Referenced by IsStretchRateDependent().

bool Kerchoffs2003ContractionModel::IsStretchDependent ( )
inlinevirtual
Returns
whether model is stretch-dependent

Implements AbstractContractionModel.

Definition at line 124 of file Kerchoffs2003ContractionModel.hpp.

bool Kerchoffs2003ContractionModel::IsStretchRateDependent ( )
inlinevirtual
Returns
whether model is stretch-rate-independent

Implements AbstractContractionModel.

Definition at line 132 of file Kerchoffs2003ContractionModel.hpp.

References GetNextActiveTension().

void Kerchoffs2003ContractionModel::SetInputParameters ( ContractionModelInputParameters rInputParameters)
virtual

Set the input parameters. The calcium concentration is not used. If the voltage is such that activation has occured (gone above mActivationVoltage), the state is set to active and the time saved as the activation time.

Parameters
rInputParametersreference to the input parameters

Implements AbstractContractionModel.

Definition at line 82 of file Kerchoffs2003ContractionModel.cpp.

References DOUBLE_UNSET, mActivationTime, mActivationVoltage, mDeactivationVoltage, mElectricallyUnactivated, mIsActivated, AbstractOdeBasedContractionModel::mTime, and ContractionModelInputParameters_::voltage.

void Kerchoffs2003ContractionModel::SetStretchAndStretchRate ( double  stretch,
double  stretchRate 
)
virtual

Take the stretch and compute the sarcomere length (stretch rate is not used).

Parameters
stretchstretch
stretchRatestretch rate

Implements AbstractContractionModel.

Definition at line 103 of file Kerchoffs2003ContractionModel.cpp.

References ls0, and mSarcomereLength.

Member Data Documentation

const double Kerchoffs2003ContractionModel::a6 = 2.0
staticprivate

See reference. 2.0 um^{-1}

Definition at line 53 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension().

const double Kerchoffs2003ContractionModel::a7 = 1.5
staticprivate

See reference. 1.5 um

Definition at line 54 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension().

const double Kerchoffs2003ContractionModel::Ea = 20
staticprivate

See reference. 20 um^{-1}

Definition at line 56 of file Kerchoffs2003ContractionModel.hpp.

Referenced by EvaluateYDerivatives(), GetActiveTension(), and Kerchoffs2003ContractionModel().

const double Kerchoffs2003ContractionModel::ld = -0.4
staticprivate

See reference. -0.4 um

Definition at line 62 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension().

const double Kerchoffs2003ContractionModel::ls0 = 1.9
staticprivate

See reference. 1.9 um

Definition at line 58 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension(), Kerchoffs2003ContractionModel(), and SetStretchAndStretchRate().

double Kerchoffs2003ContractionModel::mActivationTime
private

Time (ms) of electrical activation (= time the voltage at this cell reached mActivationVoltage)

Definition at line 72 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension(), Kerchoffs2003ContractionModel(), and SetInputParameters().

const double Kerchoffs2003ContractionModel::mActivationVoltage = 0.0
staticprivate

Voltage threshold above which the cell is activated (mV) - note hysteresis

Definition at line 65 of file Kerchoffs2003ContractionModel.hpp.

Referenced by SetInputParameters().

const double Kerchoffs2003ContractionModel::mDeactivationVoltage = -70.0
staticprivate

Voltage threshold below which the cell is deactivated (mV)

Definition at line 67 of file Kerchoffs2003ContractionModel.hpp.

Referenced by SetInputParameters().

bool Kerchoffs2003ContractionModel::mElectricallyUnactivated
private

Whether the cell is electrically unactivated yet (whether the voltage has gone below mDeactivationVoltage

Definition at line 79 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension(), Kerchoffs2003ContractionModel(), and SetInputParameters().

bool Kerchoffs2003ContractionModel::mIsActivated
private

Whether the cell is activated - whether the voltage has gone above mActivationTime and not gone below without going below mDeactivationVoltage, and that the cell has stopped producing force.

Definition at line 76 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension(), Kerchoffs2003ContractionModel(), and SetInputParameters().

double Kerchoffs2003ContractionModel::mSarcomereLength
private

Length of the sarcomere in um. Variable "ls" in reference. Fibre-stretch is ls/ls0.

Definition at line 70 of file Kerchoffs2003ContractionModel.hpp.

Referenced by EvaluateYDerivatives(), GetActiveTension(), Kerchoffs2003ContractionModel(), and SetStretchAndStretchRate().

const double Kerchoffs2003ContractionModel::T0 = 180
staticprivate

See reference. 180 kPa

Definition at line 55 of file Kerchoffs2003ContractionModel.hpp.

Referenced by GetActiveTension().

const double Kerchoffs2003ContractionModel::v0 = 0.0075
staticprivate

See reference. 0.0075 um/ms

Definition at line 57 of file Kerchoffs2003ContractionModel.hpp.

Referenced by EvaluateYDerivatives().


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