35 #include "NhsContractionModel.hpp"
36 #include "OdeSystemInformation.hpp"
37 #include "EulerIvpOdeSolver.hpp"
75 double one_plus_beta0_times_lam_minus_one_over_two_gamma = (1 +
mBeta0*(
mLambda-1))/(2*
mGamma);
78 mCalciumTrop50 /= (Ca50ref_times_one_plus_beta1_times_lam_minus_one + (1-one_plus_beta0_times_lam_minus_one_over_two_gamma)*
mKrefoff/
mKon);
86 double z_max =
mAlpha0 -
mK2*calcium_ratio_to_n;
112 mK1 /= zp_to_n_plus_K_to_n * zp_to_n_plus_K_to_n;
136 assert(calciumConcentration > 0.0);
146 const std::vector<double> &rY,
147 std::vector<double> &rDY)
151 const double& calcium_troponin = rY[0];
152 const double& z = rY[1];
153 const double& Q1 = rY[2];
154 const double& Q2 = rY[3];
155 const double& Q3 = rY[4];
159 if (calcium_troponin < 0)
161 EXCEPTION(
"CalciumTrop concentration went negative");
174 double Q = Q1 + Q2 + Q3;
180 Ta = T0*(1+(2+
mA)*Q)/(1+Q);
184 Ta = T0*(1+
mA*Q)/(1-Q);
192 rDY[1] =
mAlpha0 * ca_trop_to_ca_trop50_ratio_to_n * (1-z)
210 return T0*(1+(2+
mA)*Q)/(1+Q);
214 return T0*(1+
mA*Q)/(1-Q);
221 this->mVariableNames.push_back(
"CalciumTroponin");
222 this->mVariableUnits.push_back(
"microMols");
223 this->mInitialConditions.push_back(0);
225 this->mVariableNames.push_back(
"z");
226 this->mVariableUnits.push_back(
"");
227 this->mInitialConditions.push_back(0);
229 this->mVariableNames.push_back(
"Q1");
230 this->mVariableUnits.push_back(
"");
231 this->mInitialConditions.push_back(0);
233 this->mVariableNames.push_back(
"Q2");
234 this->mVariableUnits.push_back(
"");
235 this->mInitialConditions.push_back(0);
237 this->mVariableNames.push_back(
"Q3");
238 this->mVariableUnits.push_back(
"");
239 this->mInitialConditions.push_back(0);
241 this->mInitialised =
true;
static const double mBeta0
void SetStretchAndStretchRate(double lambda, double dlambdaDt)
double CalculateT0(double z)
double SmallPow(double x, unsigned exponent)
std::vector< double > mStateVariables
static const double mTref
#define EXCEPTION(message)
void ResetToInitialConditions()
double GetActiveTension()
static const unsigned mNr
static const double mAlphaR1
const double DOUBLE_UNSET
static const double mAlpha0
void SetInputParameters(ContractionModelInputParameters &rInputParameters)
static const double mAlpha3
double GetCalciumTroponinValue()
static const double mCalciumTroponinMax
void SetIntracellularCalciumConcentration(double calciumConcentration)
void EvaluateYDerivatives(double time, const std::vector< double > &rY, std::vector< double > &rDY)
static const double mBeta1
void CalculateCalciumTrop50()
boost::shared_ptr< AbstractOdeSystemInformation > mpSystemInfo
static const double mCalcium50ref
static const double mAlpha2
static const double mGamma
static const double mAlpha1
static const double mAlphaR2
static const double mKrefoff