int main (void) { cvodeSettings_t *options = CvodeSettings_createWithTime(10000, 1000); odeModel_t *odemodel = ODEModel_createFromFile("MAPK.xml"); integratorInstance_t *ii = IntegratorInstance_create(odemodel, options); ASTNode_t *f = SBML_parseFormula("MAPK_PP"); ASTNode_t *f2 = SBML_parseFormula("MAPK + MAPK_P"); ASTNode_t *f3 = SBML_parseFormula("MAPK + MAPK_P + MAPK_PP"); cvodeData_t *data = IntegratorInstance_getData(ii); while( ! IntegratorInstance_timeCourseCompleted(ii) ) if ( IntegratorInstance_integrateOneStep(ii ) ) { printf(" active MAPK concentration at time %g:\t%7.3f\n", IntegratorInstance_getTime(ii), evaluateAST(f, data)); printf("inactive MAPK concentration at time %g:\t%7.3f\n", IntegratorInstance_getTime(ii), evaluateAST(f2, data)); printf(" total:\t%7.3f\n\n", evaluateAST(f3, data)); } else break; SolverError_dump(); ODEModel_free(odemodel); IntegratorInstance_free(ii); ASTNode_free(f); ASTNode_free(f2); return (EXIT_SUCCESS); }
int main (int argc, char *argv[]) { int result = doIt(); SolverError_dump(); return result ; }
int main (int argc, char *argv[]) { int neq, nass, nconst; char *x[3]; double x0[3]; char *ode[2]; ASTNode_t *ast[2]; double time, rtol, atol; double printstep; /* SBML model containing events */ Model_t *events; /* SOSlib types */ odeModel_t *om; cvodeSettings_t *set; integratorInstance_t *ii; variableIndex_t *vi; /* parsing input ODEs and settings */ /* time and error settings */ time = 0.5; rtol = atol = 1.0E-9; printstep = 10; /* variables */ neq = 2; x[0] = "C_cy"; x0[0] = 0.0; ode[0] = "((150.0 * (3.8 - (p * D_cy) - (p * C_cy)) * (1.0 - (p * C_cy))) - (9.0 * C_cy))"; x[1] = "D_cy"; x0[1] = 9.0; ode[1] = "(3.8 - (3.0 * D_cy) - (p * D_cy) - (p * C_cy))"; /* parameters */ nconst = 1; x[2] = "p"; x0[2] = 0.2; /* assignments */ nass = 0; /* SBML model containing events */ events = NULL; /* creating ODE ASTs from strings */ ast[0] = SBML_parseFormula(ode[0]); ast[1] = SBML_parseFormula(ode[1]); /* end of input parsing */ /* Setting SBML ODE Solver integration parameters */ set = CvodeSettings_createWithTime(time, printstep); CvodeSettings_setErrors(set, atol, rtol, 1e4); CvodeSettings_setStoreResults(set, 0); /* activating default sensitivity */ CvodeSettings_setSensitivity(set, 1); /* creating odeModel */ /* `events' could be an SBML model containing events */ om = ODEModel_createFromODEs(ast, neq, nass, nconst, x, x0, events); /* creating integrator */ ii = IntegratorInstance_create(om,set); /* integrate */ printf("integrating:\n"); while( !IntegratorInstance_timeCourseCompleted(ii) ) { if ( !IntegratorInstance_integrateOneStep(ii) ) { SolverError_dump(); break; } else IntegratorInstance_dumpData(ii); } /* Specific data interfaces: */ /* names are stored in the odeModel and values are independently stored in the integrator: you can get different values from different integrator instances built from the same model */ vi = ODEModel_getVariableIndex(om, "C_cy"); printf("\nVariable %s has final value of %g at time %g\n\n", ODEModel_getVariableName(om, vi), IntegratorInstance_getVariableValue(ii, vi), IntegratorInstance_getTime(ii)); VariableIndex_free(vi); vi = ODEModel_getVariableIndex(om, "p"); printf("Sensitivies to %s:\n", ODEModel_getVariableName(om, vi)); IntegratorInstance_dumpPSensitivities(ii, vi); printf("\n\n"); VariableIndex_free(vi); /* finished, free stuff */ /* free ASTs */ ASTNode_free(ast[0]); ASTNode_free(ast[1]); /* free solver structures */ IntegratorInstance_free(ii); ODEModel_free(om); CvodeSettings_free(set); return (EXIT_SUCCESS); }