36 #include "TysonNovak2001OdeSystem.hpp" 37 #include "OdeSystemInformation.hpp" 47 if (stateVariables != std::vector<double>())
136 temp2 = (
mK4*x6*x1*x2)/(
mJ4+x2);
141 dx3 =
mK5d + temp1 - temp2;
143 temp1 = (
mK7*x5*(x3-x4))/(
mJ7+x3-x4);
146 dx4 = temp1 - temp2 - temp3;
148 dx5 =
mK9*x6*x1*(1.0-x5) -
mK10*x5;
164 double x1 = rSolutionGuess[0];
165 double x2 = rSolutionGuess[1];
166 double x3 = rSolutionGuess[2];
167 double x4 = rSolutionGuess[3];
168 double x5 = rSolutionGuess[4];
169 double x6 = rSolutionGuess[5];
173 double df1_dx2 = -
mK2dd*x1;
175 jacobian[0][0] = 1-timeStep*df1_dx1;
176 jacobian[0][1] = -timeStep*df1_dx2;
179 double df2_dx1 = -
mK4*x6*x2/(
mJ4+x2);
182 double df2_dx4 =
mK3dd*(1-x2)/(
mJ3+1-x2);
183 double df2_dx6 = -
mK4*x1*x2/(
mJ4+x2);
185 jacobian[1][0] = -timeStep*df2_dx1;
186 jacobian[1][1] = 1-timeStep*df2_dx2;
187 jacobian[1][3] = -timeStep*df2_dx4;
188 jacobian[1][5] = -timeStep*df2_dx6;
191 double z = x1*x6/
mJ5;
193 double df3_dx3 = -
mK6;
196 jacobian[2][0] = -timeStep*df3_dx1;
197 jacobian[2][2] = 1-timeStep*df3_dx3;
198 jacobian[2][5] = -timeStep*df3_dx6;
203 double df4_dx5 =
mK7*(x3-x4)/(
mJ7+x3-x4);
205 jacobian[3][2] = -timeStep*df4_dx3;
206 jacobian[3][3] = 1-timeStep*df4_dx4;
207 jacobian[3][4] = -timeStep*df4_dx5;
210 double df5_dx1 =
mK9*x6*(1-x5);
211 double df5_dx5 = -
mK10 -
mK9*x6*x1;
212 double df5_dx6 =
mK9*x1*(1-x5);
214 jacobian[4][0] = -timeStep*df5_dx1;
215 jacobian[4][4] = 1-timeStep*df5_dx5;
216 jacobian[4][5] = -timeStep*df5_dx6;
221 jacobian[5][5] = 1-timeStep*df6_dx6;
226 std::vector<double> dy(rY.size());
236 std::vector<double> dy(rY.size());
263 this->mVariableNames.push_back(
"CycB");
264 this->mVariableUnits.push_back(
"nM");
266 this->mInitialConditions.push_back(0.099999999999977);
268 this->mVariableNames.push_back(
"Cdh1");
269 this->mVariableUnits.push_back(
"nM");
271 this->mInitialConditions.push_back(0.989026454281841);
273 this->mVariableNames.push_back(
"Cdc20T");
274 this->mVariableUnits.push_back(
"nM");
276 this->mInitialConditions.push_back(1.547942029285891);
278 this->mVariableNames.push_back(
"Cdc20A");
279 this->mVariableUnits.push_back(
"nM");
281 this->mInitialConditions.push_back(1.421110920155839);
283 this->mVariableNames.push_back(
"IEP");
284 this->mVariableUnits.push_back(
"nM");
286 this->mInitialConditions.push_back(0.672838844290094);
288 this->mVariableNames.push_back(
"mass");
289 this->mVariableUnits.push_back(
"");
291 this->mInitialConditions.push_back(0.970831277863956 / 2);
293 this->mInitialised =
true;
double SmallPow(double x, unsigned exponent)
virtual void AnalyticJacobian(const std::vector< double > &rSolutionGuess, double **jacobian, double time, double timeStep)
TysonNovak2001OdeSystem(std::vector< double > stateVariables=std::vector< double >())
void SetStateVariables(const std::vector< double > &rStateVariables)
double CalculateRootFunction(double time, const std::vector< double > &rY)
~TysonNovak2001OdeSystem()
void EvaluateYDerivatives(double time, const std::vector< double > &rY, std::vector< double > &rDY)
bool CalculateStoppingEvent(double time, const std::vector< double > &rY)
boost::shared_ptr< AbstractOdeSystemInformation > mpSystemInfo
#define CHASTE_CLASS_EXPORT(T)