#include <NhsContractionModel.hpp>
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.0017 |
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 |
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 49 of file NhsContractionModel.hpp.
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 93 of file NhsContractionModel.cpp.
References CalculateCalciumTrop50(), OdeSystemInformation< ODE_SYSTEM >::Instance(), mAlphaR2, mCalciumI, mDLambdaDt, mK1, mK2, mKZ, mLambda, mNr, AbstractParameterisedSystem< std::vector< double > >::mpSystemInfo, mZp, and AbstractParameterisedSystem< std::vector< double > >::ResetToInitialConditions().
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 mBeta0, 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
z |
Definition at line 77 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::SetStretchAndStretchRate | ( | double | lambda, | |
double | dlambdaDt | |||
) | [virtual] |
Set the current stretch and the stretch rate of the cell/fibre
lambda | current stretch | |
dlambdaDt | current stretch rate |
Implements AbstractContractionModel.
Definition at line 115 of file NhsContractionModel.cpp.
References CalculateCalciumTrop50(), mDLambdaDt, and mLambda.
void NhsContractionModel::SetInputParameters | ( | ContractionModelInputParameters & | rInputParameters | ) | [virtual] |
Set the current intracellular calcium concentration
rInputParameters | input parameters (calcium, voltage, time, of which only calcium is used) |
Implements AbstractContractionModel.
Definition at line 124 of file NhsContractionModel.cpp.
References DOUBLE_UNSET, ContractionModelInputParameters_::intracellularCalciumConcentration, and mCalciumI.
void NhsContractionModel::SetIntracellularCalciumConcentration | ( | double | calciumConcentration | ) |
Directly set the intracellular calcium concentration.
calciumConcentration | calcium concentration. |
Definition at line 131 of file NhsContractionModel.cpp.
References mCalciumI.
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 137 of file NhsContractionModel.cpp.
References AbstractParameterisedSystem< std::vector< double > >::mStateVariables.
void NhsContractionModel::EvaluateYDerivatives | ( | double | time, | |
const std::vector< double > & | rY, | |||
std::vector< double > & | rDY | |||
) | [virtual] |
Evaluate the derivatives of the state variables
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 142 of file NhsContractionModel.cpp.
References CalculateT0(), EXCEPTION, 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 200 of file NhsContractionModel.cpp.
References CalculateT0(), mA, and AbstractParameterisedSystem< std::vector< double > >::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 204 of file NhsContractionModel.hpp.
References EXCEPTION.
bool NhsContractionModel::IsStretchDependent | ( | ) | [inline, virtual] |
This model is stretch-dependent
Implements AbstractContractionModel.
Definition at line 212 of file NhsContractionModel.hpp.
bool NhsContractionModel::IsStretchRateDependent | ( | ) | [inline, virtual] |
This model is stretch-rate-dependent
Implements AbstractContractionModel.
Definition at line 220 of file NhsContractionModel.hpp.
double NhsContractionModel::mLambda [protected] |
The stretch. To be specified by the caller
Definition at line 55 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), CalculateT0(), NhsContractionModel(), and SetStretchAndStretchRate().
double NhsContractionModel::mDLambdaDt [protected] |
The stretch rate. To be specified by the caller
Definition at line 57 of file NhsContractionModel.hpp.
Referenced by EvaluateYDerivatives(), NhsModelWithBackwardSolver::ImplicitSolveForQ(), NhsContractionModel(), and SetStretchAndStretchRate().
double NhsContractionModel::mCalciumI [protected] |
The intracellular calcium concentration. To be specified by the caller
Definition at line 59 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), NhsContractionModel(), SetInputParameters(), and SetIntracellularCalciumConcentration().
double NhsContractionModel::mCalciumTrop50 [protected] |
A parameter only dependent on constants and lambda, so updated whenever lambda is updated
Definition at line 63 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
double NhsContractionModel::mK1 [protected] |
A constant determined from the other constrants. Set up in the constructor
Definition at line 66 of file NhsContractionModel.hpp.
Referenced by CalculateT0(), and NhsContractionModel().
double NhsContractionModel::mK2 [protected] |
A constant determined from the other constrants. Set up in the constructor
Definition at line 68 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 73 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), and EvaluateYDerivatives().
const double NhsContractionModel::mKrefoff = 0.2 [static, protected] |
See reference. (ms)^-1
Definition at line 76 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), and EvaluateYDerivatives().
const double NhsContractionModel::mGamma = 2 [static, protected] |
See reference. Dimensionless
Definition at line 79 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), and EvaluateYDerivatives().
const double NhsContractionModel::mCalciumTroponinMax = 0.07 [static, protected] |
See reference. mMols
Definition at line 82 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
const double NhsContractionModel::mAlphaR1 = 0.002 [static, protected] |
See reference. (ms)^-1
Definition at line 85 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
const double NhsContractionModel::mAlphaR2 = 0.0017 [static, protected] |
See reference. (ms)^-1
Definition at line 88 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), and NhsContractionModel().
const double NhsContractionModel::mKZ = 0.15 [static, protected] |
See reference. Dimensionless
Definition at line 91 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), and NhsContractionModel().
const unsigned NhsContractionModel::mNr = 3u [static, protected] |
See reference. Dimensionless
Definition at line 94 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), and NhsContractionModel().
const double NhsContractionModel::mBeta1 = -4 [static, protected] |
See reference. Dimensionless
Definition at line 97 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50().
const double NhsContractionModel::mAlpha0 = 0.008 [static, protected] |
See reference. (ms)^-1
Definition at line 100 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
const unsigned NhsContractionModel::mN = 3u [static, protected] |
See reference. Dimensionless
Definition at line 103 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
const double NhsContractionModel::mZp = 0.85 [static, protected] |
See reference. Dimensionless
Definition at line 106 of file NhsContractionModel.hpp.
Referenced by NhsContractionModel().
const double NhsContractionModel::mCalcium50ref = 0.00105 [static, protected] |
See reference. mMols
Definition at line 109 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50().
const double NhsContractionModel::mTref = 56.2 [static, protected] |
See reference. kPa
Definition at line 112 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), CalculateT0(), and EvaluateYDerivatives().
const double NhsContractionModel::mBeta0 = 4.9 [static, protected] |
See reference. Dimensionless
Definition at line 115 of file NhsContractionModel.hpp.
Referenced by CalculateCalciumTrop50(), and CalculateT0().
const double NhsContractionModel::mA = 0.35 [static, protected] |
See reference. Dimensionless
Definition at line 118 of file NhsContractionModel.hpp.
Referenced by NhsModelWithBackwardSolver::CalculateCaTropAndZDerivatives(), EvaluateYDerivatives(), GetActiveTension(), and NhsModelWithBackwardSolver::GetNextActiveTension().
const double NhsContractionModel::mA1 = -29 [static, protected] |
See reference. Dimensionless
Definition at line 121 of file NhsContractionModel.hpp.
Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().
const double NhsContractionModel::mA2 = 138 [static, protected] |
See reference. Dimensionless
Definition at line 124 of file NhsContractionModel.hpp.
Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().
const double NhsContractionModel::mA3 = 129 [static, protected] |
See reference. Dimensionless
Definition at line 127 of file NhsContractionModel.hpp.
Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().
const double NhsContractionModel::mAlpha1 = 0.03 [static, protected] |
See reference. (ms)^-1
Definition at line 130 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 133 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 136 of file NhsContractionModel.hpp.
Referenced by EvaluateYDerivatives(), and NhsModelWithBackwardSolver::ImplicitSolveForQ().