#include <NhsCellularMechanicsOdeSystem.hpp>
Public Member Functions | |
NhsCellularMechanicsOdeSystem () | |
void | SetLambdaAndDerivative (double lambda, double dlambdaDt) |
void | SetIntracellularCalciumConcentration (double calciumI) |
double | GetCalciumTroponinValue () |
void | EvaluateYDerivatives (double time, const std::vector< double > &rY, std::vector< double > &rDY) |
double | GetActiveTension () |
double | GetLambda () |
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 double | mNr = 3 |
static const double | mBeta1 = -4 |
static const double | mAlpha0 = 0.008 |
static const double | mN = 3 |
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 | TestCellularMechanicsOdeSystems |
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 KILOPASCALS!!
Definition at line 48 of file NhsCellularMechanicsOdeSystem.hpp.
NhsCellularMechanicsOdeSystem::NhsCellularMechanicsOdeSystem | ( | ) |
Constructor. Initialises all state variables to zero, lambda to 1, dlambda_dt to 0 and intracellular calcium concentration to 0
Definition at line 89 of file NhsCellularMechanicsOdeSystem.cpp.
References CalculateCalciumTrop50(), AbstractOdeSystem::GetInitialConditions(), OdeSystemInformation< ODE_SYSTEM >::Instance(), mAlphaR2, mCalciumI, mDLambdaDt, mK1, mK2, mKZ, mLambda, mNr, AbstractOdeSystem::mpSystemInfo, mZp, and AbstractOdeSystem::SetStateVariables().
void NhsCellularMechanicsOdeSystem::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 64 of file NhsCellularMechanicsOdeSystem.cpp.
References mBeta1, mCalcium50ref, mCalciumTrop50, mCalciumTroponinMax, mGamma, mKon, mKrefoff, and mLambda.
Referenced by NhsCellularMechanicsOdeSystem(), and SetLambdaAndDerivative().
double NhsCellularMechanicsOdeSystem::CalculateT0 | ( | double | z | ) | [protected] |
Calculate T0. This is a function of constants, lambda and z
z |
Definition at line 73 of file NhsCellularMechanicsOdeSystem.cpp.
References mAlpha0, mAlphaR1, mBeta0, mCalciumTrop50, mCalciumTroponinMax, mK1, mK2, mLambda, mN, and mTref.
Referenced by NhsSystemWithImplicitSolver::CalcActiveTensionResidual(), EvaluateYDerivatives(), and GetActiveTension().
void NhsCellularMechanicsOdeSystem::SetLambdaAndDerivative | ( | double | lambda, | |
double | dlambdaDt | |||
) |
Set the current stretch and the stretch rate of the cell/fibre
lambda | current stretch | |
dlambdaDt | current stretch rate |
Definition at line 111 of file NhsCellularMechanicsOdeSystem.cpp.
References CalculateCalciumTrop50(), mDLambdaDt, and mLambda.
Referenced by ImplicitCardiacMechanicsAssembler< DIM >::AssembleOnElement().
void NhsCellularMechanicsOdeSystem::SetIntracellularCalciumConcentration | ( | double | calciumI | ) |
Set the current intracellular calcium concentration
calciumI | is the intracellular calcium |
Definition at line 120 of file NhsCellularMechanicsOdeSystem.cpp.
References mCalciumI.
double NhsCellularMechanicsOdeSystem::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 127 of file NhsCellularMechanicsOdeSystem.cpp.
References AbstractOdeSystem::mStateVariables.
void NhsCellularMechanicsOdeSystem::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 133 of file NhsCellularMechanicsOdeSystem.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 NhsCellularMechanicsOdeSystem::GetActiveTension | ( | ) |
Get the active tension, which is a function of the constants and current state variables
Definition at line 189 of file NhsCellularMechanicsOdeSystem.cpp.
References CalculateT0(), mA, and AbstractOdeSystem::mStateVariables.
Referenced by NhsSystemWithImplicitSolver::NhsSystemWithImplicitSolver().
double NhsCellularMechanicsOdeSystem::GetLambda | ( | ) |
Get the current stretch rate
Definition at line 204 of file NhsCellularMechanicsOdeSystem.cpp.
References mLambda.
double NhsCellularMechanicsOdeSystem::mLambda [protected] |
The stretch. To be specified by the caller
Definition at line 54 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), CalculateT0(), GetLambda(), NhsCellularMechanicsOdeSystem(), and SetLambdaAndDerivative().
double NhsCellularMechanicsOdeSystem::mDLambdaDt [protected] |
The stretch rate. To be specified by the caller
Definition at line 56 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), NhsSystemWithImplicitSolver::ImplicitSolveForQ(), NhsCellularMechanicsOdeSystem(), and SetLambdaAndDerivative().
double NhsCellularMechanicsOdeSystem::mCalciumI [protected] |
The intracellular calcium concentration. To be specified by the caller
Definition at line 58 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop(), NhsCellularMechanicsOdeSystem(), and SetIntracellularCalciumConcentration().
double NhsCellularMechanicsOdeSystem::mCalciumTrop50 [protected] |
A parameter only dependent on constants and lambda, so updated whenever lambda is updated
Definition at line 62 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), CalculateT0(), NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ().
double NhsCellularMechanicsOdeSystem::mK1 [protected] |
A constant determined from the other constrants. Set up in the constructor
Definition at line 65 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), and NhsCellularMechanicsOdeSystem().
double NhsCellularMechanicsOdeSystem::mK2 [protected] |
A constant determined from the other constrants. Set up in the constructor
Definition at line 67 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), and NhsCellularMechanicsOdeSystem().
const double NhsCellularMechanicsOdeSystem::mKon = 100 [static, protected] |
FILL IN. (mMols)^-1 (ms)^-1
Definition at line 72 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop().
const double NhsCellularMechanicsOdeSystem::mKrefoff = 0.2 [static, protected] |
FILL IN. (ms)^-1
Definition at line 75 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop().
const double NhsCellularMechanicsOdeSystem::mGamma = 2 [static, protected] |
FILL IN. Dimensionless
Definition at line 78 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop().
const double NhsCellularMechanicsOdeSystem::mCalciumTroponinMax = 0.07 [static, protected] |
FILL IN. mMols
Definition at line 81 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50(), CalculateT0(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop().
const double NhsCellularMechanicsOdeSystem::mAlphaR1 = 0.002 [static, protected] |
FILL IN. (ms)^-1
Definition at line 84 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ().
const double NhsCellularMechanicsOdeSystem::mAlphaR2 = 0.00175 [static, protected] |
FILL IN. (ms)^-1
Definition at line 87 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ(), and NhsCellularMechanicsOdeSystem().
const double NhsCellularMechanicsOdeSystem::mKZ = 0.15 [static, protected] |
FILL IN. Dimensionless
Definition at line 90 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ(), and NhsCellularMechanicsOdeSystem().
const double NhsCellularMechanicsOdeSystem::mNr = 3 [static, protected] |
FILL IN. Dimensionless
Definition at line 93 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ(), and NhsCellularMechanicsOdeSystem().
const double NhsCellularMechanicsOdeSystem::mBeta1 = -4 [static, protected] |
FILL IN. Dimensionless
Definition at line 96 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50().
const double NhsCellularMechanicsOdeSystem::mAlpha0 = 0.008 [static, protected] |
FILL IN. (ms)^-1
Definition at line 99 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ().
const double NhsCellularMechanicsOdeSystem::mN = 3 [static, protected] |
FILL IN. Dimensionless
Definition at line 102 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), NhsSystemWithImplicitSolver::CalcZResidual(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitExplicitSolveForZ().
const double NhsCellularMechanicsOdeSystem::mZp = 0.85 [static, protected] |
FILL IN. Dimensionless
Definition at line 105 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by NhsCellularMechanicsOdeSystem().
const double NhsCellularMechanicsOdeSystem::mCalcium50ref = 0.00105 [static, protected] |
FILL IN. mMols
Definition at line 108 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateCalciumTrop50().
const double NhsCellularMechanicsOdeSystem::mTref = 56.2 [static, protected] |
FILL IN. kPa
Definition at line 111 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0(), EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForCaTrop().
const double NhsCellularMechanicsOdeSystem::mBeta0 = 4.9 [static, protected] |
FILL IN. Dimensionless
Definition at line 114 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by CalculateT0().
const double NhsCellularMechanicsOdeSystem::mA = 0.35 [static, protected] |
FILL IN. Dimensionless
Definition at line 117 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by NhsSystemWithImplicitSolver::CalcActiveTensionResidual(), EvaluateYDerivatives(), and GetActiveTension().
const double NhsCellularMechanicsOdeSystem::mA1 = -29 [static, protected] |
FILL IN. Dimensionless
Definition at line 120 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().
const double NhsCellularMechanicsOdeSystem::mA2 = 138 [static, protected] |
FILL IN. Dimensionless
Definition at line 123 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().
const double NhsCellularMechanicsOdeSystem::mA3 = 129 [static, protected] |
FILL IN. Dimensionless
Definition at line 126 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().
const double NhsCellularMechanicsOdeSystem::mAlpha1 = 0.03 [static, protected] |
FILL IN. (ms)^-1
Definition at line 129 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().
const double NhsCellularMechanicsOdeSystem::mAlpha2 = 0.130 [static, protected] |
FILL IN. (ms)^-1
Definition at line 132 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().
const double NhsCellularMechanicsOdeSystem::mAlpha3 = 0.625 [static, protected] |
FILL IN. (ms)^-1
Definition at line 135 of file NhsCellularMechanicsOdeSystem.hpp.
Referenced by EvaluateYDerivatives(), and NhsSystemWithImplicitSolver::ImplicitSolveForQ().