Hello all,
I'm running into a strange error while trying to perform autoignition delay calculations (see the attached ignitionDriver.cpp code)—essentially, using a Reactor or ConstPressureReactor and integrating.
Using the attached mechanism, I get this error message immediately (seems to be occuring at t = 0 sec) for particular initial conditions:
***********************************************************************
CanteraError thrown by Reactor::updateState:
no convergence
U/m = 441051
T = 1000
rho = 0.367888
***********************************************************************
...(this is repeated a number of times)....
[CVODES ERROR] CVode
At t = 0 repeated recoverable right-hand side function errors.
terminate called after throwing an instance of 'Cantera::CVodesErr'
what():
***********************************************************************
CanteraError thrown by CVodesIntegrator:
CVodes error encountered. Error code: -10
Components with largest weighted error estimates:
313: 3.82476e+12
307: 2.3877e+12
78: 1.80132e+12
59: 1.56246e+12
387: 4.51253e+11
396: 2.4479e+11
397: 2.44787e+11
53: 2.288e+11
398: 1.22394e+11
51: 7.97068e+10
***********************************************************************
The weird part is that this seems to only happen for specific initial conditions: my input is a stoichiometric n-heptane and air mixture at 1 atm and 1000 K. If I change the initial temperature to 1000.01, it integrates without error.
Interestingly, this only seems to happen for constant volume (using a standard Reactor object); constant pressure (ConstPressureReactor) works fine for these initial conditions.
Also, if I use IdealGasReactor (after including "cantera/zeroD/IdealGasReactor.h"), the error also goes away.
Is this a bug with my constant volume implementation using Reactor, or something in Cantera? I can just switch to using IdealGasReactor, but it seems something is going on here.
Thanks!