NhsContractionModel Class Reference

#include <NhsContractionModel.hpp>

Inherits AbstractOdeBasedContractionModel.

Inherited by NhsModelWithBackwardSolver.

Collaboration diagram for NhsContractionModel:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 NhsContractionModel ()
void SetStretchAndStretchRate (double lambda, double dlambdaDt)
void SetInputParameters (ContractionModelInputParameters &rInputParameters)
void SetIntracellularCalciumConcentration (double calciumConcentration)
double GetCalciumTroponinValue ()
void EvaluateYDerivatives (double time, const std::vector< double > &rY, std::vector< double > &rDY)
double GetActiveTension ()
double GetNextActiveTension ()
bool IsStretchDependent ()
bool IsStretchRateDependent ()

Protected Member Functions

void CalculateCalciumTrop50 ()
double CalculateT0 (double z)

Protected Attributes

double mLambda
double mDLambdaDt
double mCalciumI
double mCalciumTrop50
double mK1
double mK2

Static Protected Attributes

static const double mKon = 100
static const double mKrefoff = 0.2
static const double mGamma = 2
static const double mCalciumTroponinMax = 0.07
static const double mAlphaR1 = 0.002
static const double mAlphaR2 = 0.00175
static const double mKZ = 0.15
static const unsigned mNr = 3u
static const double mBeta1 = -4
static const double mAlpha0 = 0.008
static const unsigned mN = 3u
static const double mZp = 0.85
static const double mCalcium50ref = 0.00105
static const double mTref = 56.2
static const double mBeta0 = 4.9
static const double mA = 0.35
static const double mA1 = -29
static const double mA2 = 138
static const double mA3 = 129
static const double mAlpha1 = 0.03
static const double mAlpha2 = 0.130
static const double mAlpha3 = 0.625

Friends

class TestContractionModels

Detailed Description

NHS (Niederer, Hunter, Smith) model of active tension in cardiac cells.

A system of ODEs which determines the active potential, given the intracellular calcium concentration, the stretch (lambda) of the cell, and the stretch rate (dlambda_dt) of the cell.

The state variables are, in order: Calcium_troponin, z, Q1, Q2, Q3

Reference: S.A. Niederer, N.P. Smith, P.J. Hunter, "New developments in a strongly coupled cardiac electro-mechanical model" Europace 7, S118-S127

The active tension is returned in KPa.

Definition at line 48 of file NhsContractionModel.hpp.


Constructor & Destructor Documentation

NhsContractionModel::NhsContractionModel (  ) 

Constructor. Initialises all state variables to zero, lambda to 1, dlambda_dt to 0 and intracellular calcium concentration to 0

Definition at line 92 of file NhsContractionModel.cpp.

References CalculateCalciumTrop50(), AbstractOdeSystem::GetInitialConditions(), mAlphaR2, mCalciumI, mDLambdaDt, mK1, mK2, mKZ, mLambda, mNr, AbstractOdeSystem::mpSystemInfo, mZp, and AbstractOdeSystem::SetStateVariables().


Member Function Documentation

void NhsContractionModel::CalculateCalciumTrop50 (  )  [protected]

Compute the calcium_trop50 concentration. This is a function of constants and lambda, so only needs to be called in the constructor or when lambda is set

Definition at line 67 of file NhsContractionModel.cpp.

References mBeta1, mCalcium50ref, mCalciumTrop50, mCalciumTroponinMax, mGamma, mKon, mKrefoff, and mLambda.

Referenced by NhsContractionModel(), and SetStretchAndStretchRate().

double NhsContractionModel::CalculateT0 ( double  z  )  [protected]

Calculate T0. This is a function of constants, lambda and z

Parameters:
z 

Definition at line 76 of file NhsContractionModel.cpp.

References mAlpha0, mAlphaR1, mBeta0, mCalciumTrop50, mCalciumTroponinMax, mK1, mK2, mLambda, mN, and mTref.

Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), GetActiveTension(), and NhsModelWithBackwardSolver::GetNextActiveTension().

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

Evaluate the derivatives of the state variables

Parameters:
time the current time, in milliseconds
rY current values of the state variables
rDY to be filled in with derivatives

Implements AbstractOdeSystem.

Definition at line 141 of file NhsContractionModel.cpp.

References CalculateT0(), mA, mA1, mA2, mA3, mAlpha0, mAlpha1, mAlpha2, mAlpha3, mAlphaR1, mAlphaR2, mCalciumI, mCalciumTrop50, mCalciumTroponinMax, mDLambdaDt, mGamma, mKon, mKrefoff, mKZ, mN, mNr, and mTref.

double NhsContractionModel::GetActiveTension (  )  [virtual]

Get the active tension, which is a function of the constants and current state variables. KILOPASCALS

Implements AbstractContractionModel.

Definition at line 199 of file NhsContractionModel.cpp.

References CalculateT0(), mA, and AbstractOdeSystem::mStateVariables.

double NhsContractionModel::GetCalciumTroponinValue (  ) 

Get the current Calcium Troponin (one of the state variables) value. This may be needed if the cell model has Calcium troponin and might need overwriting

Definition at line 136 of file NhsContractionModel.cpp.

References AbstractOdeSystem::mStateVariables.

double NhsContractionModel::GetNextActiveTension (  )  [inline, virtual]

GetNextActiveTension() normally returns the active tension corresponding to the state variables that have been computed in RunDoNotUpdate. However, this only applies to when an implicit cardiac mechanics solver is used, in which case the NhsModelWithBackwardSolver should be used.

Implements AbstractContractionModel.

Reimplemented in NhsModelWithBackwardSolver.

Definition at line 203 of file NhsContractionModel.hpp.

bool NhsContractionModel::IsStretchDependent (  )  [inline, virtual]

This model is stretch-dependent

Implements AbstractContractionModel.

Definition at line 211 of file NhsContractionModel.hpp.

bool NhsContractionModel::IsStretchRateDependent (  )  [inline, virtual]

This model is stretch-rate-dependent

Implements AbstractContractionModel.

Definition at line 219 of file NhsContractionModel.hpp.

void NhsContractionModel::SetInputParameters ( ContractionModelInputParameters rInputParameters  )  [virtual]

Set the current intracellular calcium concentration

Parameters:
rInputParameters input parameters (calcium, voltage, time, of which only calcium is used)

Implements AbstractContractionModel.

Definition at line 123 of file NhsContractionModel.cpp.

References ContractionModelInputParameters_::intracellularCalciumConcentration, and mCalciumI.

void NhsContractionModel::SetIntracellularCalciumConcentration ( double  calciumConcentration  ) 

Directly set the intracellular calcium concentration.

Parameters:
calciumConcentration calcium concentration.

Definition at line 130 of file NhsContractionModel.cpp.

References mCalciumI.

void NhsContractionModel::SetStretchAndStretchRate ( double  lambda,
double  dlambdaDt 
) [virtual]

Set the current stretch and the stretch rate of the cell/fibre

Parameters:
lambda current stretch
dlambdaDt current stretch rate

Implements AbstractContractionModel.

Definition at line 114 of file NhsContractionModel.cpp.

References CalculateCalciumTrop50(), mDLambdaDt, and mLambda.


Member Data Documentation

const double NhsContractionModel::mA = 0.35 [static, protected]
const double NhsContractionModel::mA1 = -29 [static, protected]

See reference. Dimensionless

Definition at line 120 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mA2 = 138 [static, protected]

See reference. Dimensionless

Definition at line 123 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mA3 = 129 [static, protected]

See reference. Dimensionless

Definition at line 126 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mAlpha0 = 0.008 [static, protected]
const double NhsContractionModel::mAlpha1 = 0.03 [static, protected]

See reference. (ms)^-1

Definition at line 129 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mAlpha2 = 0.130 [static, protected]

See reference. (ms)^-1

Definition at line 132 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mAlpha3 = 0.625 [static, protected]

See reference. (ms)^-1

Definition at line 135 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().

const double NhsContractionModel::mAlphaR1 = 0.002 [static, protected]
const double NhsContractionModel::mAlphaR2 = 0.00175 [static, protected]
const double NhsContractionModel::mBeta0 = 4.9 [static, protected]

See reference. Dimensionless

Definition at line 114 of file NhsContractionModel.hpp.

Referenced by CalculateT0().

const double NhsContractionModel::mBeta1 = -4 [static, protected]

See reference. Dimensionless

Definition at line 96 of file NhsContractionModel.hpp.

Referenced by CalculateCalciumTrop50().

const double NhsContractionModel::mCalcium50ref = 0.00105 [static, protected]

See reference. mMols

Definition at line 108 of file NhsContractionModel.hpp.

Referenced by CalculateCalciumTrop50().

The intracellular calcium concentration. To be specified by the caller

Definition at line 58 of file NhsContractionModel.hpp.

Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), NhsContractionModel(), SetInputParameters(), and SetIntracellularCalciumConcentration().

A parameter only dependent on constants and lambda, so updated whenever lambda is updated

Definition at line 62 of file NhsContractionModel.hpp.

Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().

const double NhsContractionModel::mCalciumTroponinMax = 0.07 [static, protected]

The stretch rate. To be specified by the caller

Definition at line 56 of file NhsContractionModel.hpp.

Referenced by EvaluateYDerivatives(), NhsModelWithBackwardSolver::ImplicitSolveForQ(), NhsContractionModel(), and SetStretchAndStretchRate().

const double NhsContractionModel::mGamma = 2 [static, protected]

A constant determined from the other constrants. Set up in the constructor

Definition at line 65 of file NhsContractionModel.hpp.

Referenced by CalculateT0(), and NhsContractionModel().

A constant determined from the other constrants. Set up in the constructor

Definition at line 67 of file NhsContractionModel.hpp.

Referenced by CalculateT0(), and NhsContractionModel().

const double NhsContractionModel::mKon = 100 [static, protected]

See reference. (mMols)^-1 (ms)^-1

Definition at line 72 of file NhsContractionModel.hpp.

Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), and EvaluateYDerivatives().

const double NhsContractionModel::mKrefoff = 0.2 [static, protected]
const double NhsContractionModel::mKZ = 0.15 [static, protected]

The stretch. To be specified by the caller

Definition at line 54 of file NhsContractionModel.hpp.

Referenced by CalculateCalciumTrop50(), CalculateT0(), NhsContractionModel(), and SetStretchAndStretchRate().

const unsigned NhsContractionModel::mN = 3u [static, protected]

See reference. Dimensionless

Definition at line 102 of file NhsContractionModel.hpp.

Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().

const unsigned NhsContractionModel::mNr = 3u [static, protected]
const double NhsContractionModel::mTref = 56.2 [static, protected]
const double NhsContractionModel::mZp = 0.85 [static, protected]

See reference. Dimensionless

Definition at line 105 of file NhsContractionModel.hpp.

Referenced by NhsContractionModel().


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

Generated by  doxygen 1.6.2