bool FGFDMExec::Run(void) { bool success=true; Debug(2); for (unsigned int i=1; i<ChildFDMList.size(); i++) { ChildFDMList[i]->AssignState( (FGPropagate*)Models[ePropagate] ); // Transfer state to the child FDM ChildFDMList[i]->Run(); } IncrTime(); // returns true if success, false if complete if (Script != 0 && !IntegrationSuspended()) success = Script->RunScript(); for (unsigned int i = 0; i < Models.size(); i++) { LoadInputs(i); Models[i]->Run(holding); } if (ResetMode) { unsigned int mode = ResetMode; ResetMode = 0; ResetToInitialConditions(mode); } if (Terminate) success = false; return success; }
void FGFDMExec::ResetToInitialConditions(int mode) { if (mode == 1) { for (unsigned int i=0; i<Outputs.size(); i++) { Outputs[i]->SetStartNewFile(true); } } ResetToInitialConditions(); }
NhsContractionModel::NhsContractionModel() : AbstractOdeBasedContractionModel(5) // five state variables { mpSystemInfo = OdeSystemInformation<NhsContractionModel>::Instance(); ResetToInitialConditions(); mLambda = 1.0; mDLambdaDt = 0.0; mCalciumI = 0.0; // Initialise mCalciumTrop50!! CalculateCalciumTrop50(); double zp_to_n_plus_K_to_n = SmallPow(mZp,mNr) + SmallPow(mKZ,mNr); mK1 = mAlphaR2 * SmallPow(mZp,mNr-1) * mNr * SmallPow(mKZ,mNr); mK1 /= zp_to_n_plus_K_to_n * zp_to_n_plus_K_to_n; mK2 = mAlphaR2 * SmallPow(mZp,mNr)/zp_to_n_plus_K_to_n; mK2 *= 1 - mNr*SmallPow(mKZ,mNr)/zp_to_n_plus_K_to_n; }
Ode1() : AbstractOdeSystem(1) // 1 here is the number of variables { mpSystemInfo = OdeSystemInformation<Ode1>::Instance(); ResetToInitialConditions(); }
void AbstractCardiacCell::Init() { ResetToInitialConditions(); mParameters.resize(rGetParameterNames().size()); }
SimpleOde2() : AbstractOdeSystem(1) // 1 here is the number of variables { mpSystemInfo = OdeSystemInformation<SimpleOde2>::Instance(); ResetToInitialConditions(); mParameters.resize(1); }
SimpleOde6() : AbstractOdeSystem(2) // 2 here is the number of variables { mpSystemInfo = OdeSystemInformation<SimpleOde6>::Instance(); ResetToInitialConditions(); }