From: Witold W. <wew...@gm...> - 2006-05-11 13:47:14
|
Reiner, The meassage: CVode-- At t =3D 0 and h =3D 1.12418e-06, the corrector convergence failed repeatedly or with |h| =3D hmin. 1.12418e-06 0 0 0 0 0 0 0 0 1.12418e-06 10 0 0 0 0 I got with only 3 global parameters while with 4 global parmaters (after th= e call of the function globalize), but with all other settings the same, everything is working fine. Not sure what to think about it because it seem= s to contradict what you have said before. The cvodeSettings I am using are: CvodeSettings_setTime(settings, 300, 10); CvodeSettings_setErrors(settings, 1e-9, 1e-4, 1000); CvodeSettings_setStoreResults(settings, 1); CvodeSettings_setSensitivity(settings,1); However, after changing: CvodeSettings_setTime(settings, 300, 10); to: CvodeSettings_setTime(settings, 7.5*200, 200); And I am just not getting my head around this. Eryk Eryk On 5/11/06, Rainer Machne <ra...@tb...> wrote: > > Hi Eryk, > > On Thu, 11 May 2006, Witold Wolski wrote: > > > Hi Rainer, > > > > The point I wanted to make is that I am wondering why depending if I us= e > the > > function globalizeParameter or not prior to integration I am getting > > different results. > > Sorry, I really didn't answer that question! > > >> > globalizeParameter(model,"V2","J1"); > > > By globalizing two parameters you add them to the cvodeData constants > (nvalues and nconst increase by two) and thereby request more > sensitivities from CVODES. Calculating many sensitivities at > the same time can in some cases significantly decrease the performance or > even get too much for CVODES and it quits. `convergence failed' is the usual message when CVODES cannot calculate > results (timecourses and/or sensitivities) within the requested error > tolerance. > > Unfortunately, the sensitivity error tolerance currently cannot be set, > but you can try to play with the general tolerances (--error and --rerror= ) > > and with the maximum number of internal steps option (--mxstep) or with > external steps (--printstep). > > To solve this, we need to > > a) implement a way to select specific parameters for which sensitivities > are calculated; a quick hack could be a function localizeParameterExcept > that works on the SBML input model and localizes all global parameters > except the ones that you want sensititities for. > > b) implement error settings for sensitivities > > > Furthermore, we need to write documentation on performance relevant > settings, such as errors, mxstep etc. > > > Ok? > > Rainer > > > > > > cheers > > Eryk > > > > > > On 5/10/06, Rainer Machne < ra...@tb...> wrote: > >> > >> > >> > >> > If I do not call it the output reads: > >> > > >> > CVode-- At t =3D 0 and h =3D 1.12418e-06, the corrector > >> > convergence failed repeatedly or with |h| =3D hmin. > >> > > >> > 1.12418e-06 0 0 0 0 0 0 0 0 > >> > 1.12418e-06 10 0 0 0 0 > >> > >> > >> The first two lines mean that cvodes has failed for integration with > >> sensitivity analysis. Thus results and sensitivities were not > calculated. > >> > >> IntegratorInstance_dumpY/PSensitivities > >> > >> print first the current time, then the current value of the > >> variable/parameter, and then the sensitivities to all constants of the > >> model. > >> > >> I have never noticed however that upon failure the current time seems > to > >> be the h, which is cvodes' internal timestep. So the sensitivities for > >> this time h are wrong and the output should look different. Maybe upon > >> failure cvodeData the time should be reset to the last valid time. > >> > >> > >> Rainer > >> > >> On Wed, 10 May 2006, Witold Wolski wrote: > >> > >> > Hello, > >> > > >> > Depending if I apply globalise parameter or not I am getting > different > >> > outputs in the sensitivity analysis. > >> > > >> > Given the MAPK.xml > >> > > >> > Namely the output of the functions (see attachment) > >> > > >> > IntegratorInstance_dumpPSensitivities(integratorInstance,p1); > >> > IntegratorInstance_dumpYSensitivities(integratorInstance,y1); > >> > > >> > differs depedning if > >> > > >> > globalizeParameter(model,"V2","J1"); > >> > > >> > was called. > >> > > >> > If I do not call it the output reads: > >> > > >> > CVode-- At t =3D 0 and h =3D 1.12418e-06, the corrector > >> > convergence failed repeatedly or with |h| =3D hmin. > >> > > >> > 1.12418e-06 0 0 0 0 0 0 0 0 > >> > 1.12418e-06 10 0 0 0 0 > >> > > >> > I am working on a very recent cvs checkout. > >> > > >> > cheers > >> > > >> > Eryk > >> > > >> > > > |