Interpreting CVODES error messages

204 views
Skip to first unread message

Richard West

unread,
Feb 25, 2019, 4:02:34 PM2/25/19
to Cantera Users' Group
Hi,
Sometimes when integrating you get a CanteraError thrown by CVodesIntegrator, which lists a list of Components with largest weighted error estimates.
What is the best way to learn from these? I.e. what is the state vector, so I know which component is causing a problem? My suspicion is that a rate constant or species thermochemistry in my model is inaccurate causing a stiff model, but knowing which species is causing the problem would greatly speed up our debugging.

Ray once posted to this list a helpful tip that "for an ideal gas reactor [component 2] corresponds to the temperature”.
Is this general, and what are the other components?
(and/or where are they documented)

Thanks!!

Richard


Some example errors (copied from past posts to this group) and the message from Ray:

> CanteraError thrown by CVodesIntegrator:
> CVodes error encountered. Error code: -4
> At t = 0.36875 and h = 5.13086e-09, the corrector convergence test failed repeatedly or with |h| = hmin.
>
> Components with largest weighted error estimates:
> 3: -59955.4
> 7: 889.532
> 4: 887.465
> 1: 348.224
> 2: 336.033
> 5: -286.102
> 0: -4.18195e-14
> 6: 3.54014e-14
> ***********************************************************************



>
> ***********************************************************************
> CanteraError thrown by CVodesIntegrator:
> CVodes error encountered. Error code: -3
> At t = 0.000305883 and h = 1.22703e-30, the error test failed repeatedly or with |h| = hmin.
>
> Components with largest weighted error estimates:
> 2: 2584.15
> 1: -2.03105e-09
> 37: 4.61019e-11
> 38: -8.89293e-12
> 4: -1.06279e-13
> 7: -1.06217e-13
> 5: -1.05934e-13
> 10: 5.23228e-14
> 11: -9.13288e-15
> 6: 1.20735e-15
> ***********************************************************************
>
>


> On Jun 29, 2016, at 10:48 AM, Ray Speth <yar...@gmail.com> wrote:
>
> Hi,
>
> You can find the meaning of the various CVODES output codes in the CVODES manual. They are defined in Appendix B. Essentially, though, this error code corresponds to the message on the following line: the solver could not find a step size that satisfied the tolerances. In particular, it is failing for component 2 of the state vector, which, for an ideal gas reactor corresponds to the temperature. You might want to look at what's happening with the temperature as it approaches the state that causes the error.
>
> Regards,
> Ray

Ray Speth

unread,
Feb 25, 2019, 6:17:24 PM2/25/19
to Cantera Users' Group
Richard,

The state variables are described in the science docs, although that documentation doesn't make it explicit that that is the order in which they occur. The documentation for Reactor.get_state is a bit more clear about this. To get the name of a component, you can use the function Reactor.component_name, or for multi-reactor networks, ReactorNet.component_name.

Regards,
Ray
Reply all
Reply to author
Forward
0 new messages