ODE solvers for stiff problems (when cvode is not enough)

Anything that doesn't fit elsewhere.
Post Reply
Alix

ODE solvers for stiff problems (when cvode is not enough)

Post by Alix »

Hello,

I am trying to use NEURON to run a simulation with a model that has a stiff system of ODEs. Unfortunately, it is so stiff that CVODE has not been able to solve the system. I have tried adjusting the absolute tolerance level, but it is still not working.

Previously, I had been using this model in the Matlab environment, where I was successfully running simulations using the built in Matlab ODE solver ode15s, which is a backwards differentiation method with a variable time step intended for use with stiff problems.

I have been having trouble figuring out what kinds of options are available for numerical solvers in the NEURON environment, and I was wondering if anyone could suggest another solver that I might try. Alternatively, perhaps someone knows of a paper that managed to use NEURON for an especially stiff system?

Thanks so much!

Also, if it is useful, here is the output I get from nrn:
exp(725.497) out of range, returning exp(700)
exp(725.497) out of range, returning exp(700)
CVode-- Warning: Internal t = 1.39616 and h = 1.84998e-17
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 1.15623e-18
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 6.8639e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 4.40155e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 4.40155e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 4.40155e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 7.53857e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 7.53857e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 7.53857e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- Warning: Internal t = 1.39616 and h = 7.53857e-19
are such that t + h = t on the next step.
The solver will continue anyway.

CVode-- The above warning has been issued mxhnil times and will not be
issued again for this problem.

exp(700.014) out of range, returning exp(700)
exp(700.073) out of range, returning exp(700)
No more errno warnings during this execution
------------------------------------------------------------------------------------------
Just to check on the warnings about "exp(700.014)", I did go back to my matlab code and have it print out the value of the argument to every exp() at each timestep to see whether any of these was supposed to reach 700 or higher; in fact, none of them did. Thus, I think that these warning messages from cvode regarding "exp(700.014 out of range)" are happening after the solution has already blown up.
ted
Site Admin
Posts: 6384
Joined: Wed May 18, 2005 4:50 pm
Location: Yale University School of Medicine
Contact:

Re: ODE solvers for stiff problems (when cvode is not enough

Post by ted »

The default method is implicit Euler which has admirable stability.
Alix wrote:I have been having trouble figuring out what kinds of options are available for numerical solvers in the NEURON environment
Its fixed step methods are implicit Euler and a couple of Crank-Nicholson methods (see secondorder in the Programmer's Reference); its adaptive integrators are called CVODE for historical reasons but actually include a differential algebraic equation solver with preconditioned Krylov iteration.

Sometimes the problem lies in a particular mod file that can be revised to make the resulting equations more tractable. If you want me to take a look at this for you, please zip up just the hoc, nmodl, and ses code and email it to
ted dot carnevale at yale dot edu
Alix

Re: ODE solvers for stiff problems (when cvode is not enough

Post by Alix »

Thanks so much, I'd really appreciate that!
Post Reply