Page 1 of 1
Cvode::interpolate assert error
Posted: Fri Feb 09, 2007 5:09 am
by Raj
Dear forum,
I'm running network simulations with 160 cells and am using Cvode with use_local_dt switched on. During parameter searches on the network parameters I occasionally get the following errors:
...
Cvode::interpolate assert error t0=197.657 tout-t0=-2.84217e-14 eps*t_=4.38888e-12
...
Cvode::interpolate assert error t0=1678.76 tout-t0=-2.27374e-13 eps*t_=3.72759e-11
...
Has any body encountered these before? Is it known how to adjust the code to prevent these errors from happening? Or at least does anybody have a hint for a search direction?
Regards,
Raj
Posted: Fri Feb 09, 2007 11:26 am
by hines
Cvode::interpolate assert error
What version are you using? If it is earlier than the current standard distribution
NEURON -- Release 5.9.10 (1601) 2006-11-01 then see if the problem recurs after upgrading. If it does, can you set up a single simulation which reproducibly gives the err, zip up all the files needed, and send them to me at
michael.hines@yale.edu.
Cvode is not allowed to interpolate to
a time earlier than t0 but an event wanted to be delivered then. The error seems to involve round off and I've spent a lot of effort ensuring that does not happen. Maybe it is back to the drawing board for me.
Posted: Fri Feb 09, 2007 1:44 pm
by Raj
It was a 5.9 version but pre 5.9.10 (The one current at July 18 2006), but because I got caught in some other problem I cannot give the built number. As a result I am in the middle of updating. As a dutch saying formulates it: 'An accident never comes alone.'
When all updating is done I'll rerun the simulation, and let you know the result. It will take the machine at least this weekend as it is an extensive parameter scan on a network model.
Unfortunately the problem only occurs occasionally, somewhere after several hours simulation time so I'll have to think about how to make a minimal set, before zipping up the haystack.
I'll be in touch.
Posted: Sat Feb 10, 2007 3:44 pm
by Raj
I reproduced the problem with version 5.9.10 (1601). Sofar running the same code at other parameter settings gave no problems under version 5.8 2005-10-14 12:36:20 Main (88).
To get towards a more (faster) reproducible situation I will have to provide an explicit seed to NetStim at the start of each simulation run and see if there are parameter values for which the problem reproduces.
New interpolation errors?
Posted: Sun May 06, 2007 12:15 pm
by Raj
Build:
NEURON -- Version 5.9 2006-5-20 18:55:15 Main (39)
by John W. Moore, Michael Hines, and Ted Carnevale
Duke and Yale University -- Copyright 1984-2005
loading membrane mechanisms from nrnmech.dll
Additional mechanisms from files
AMPAS.mod des_cad.mod des_hh2.mod des_im.mod des_it.mod first_order_ampa.mod first_order_gaba.mod first_order_gabav2.mod netstimgamma.mod nmdaR.mod second_order_nmda.mod tmgsyn.mod
Running a network of 11 cells with 1kHz synaptic stimulation gives this error after about 179 ms simulation time:
PreSyn threshold for PyramidalCellRS_1C_Destexhe[4].soma
occurred immediately after the dead time interval (~0.01 ms,
needed for second order correct threshold detection)
since its previous activation and is therefore inaccurate.
Assertion failed: file ../nrncvode/netcvode.cpp, line 3703
nrniv: after_spike_flag_ == false
near line 285
hoc_ac_ = NoOfFastSpikingINs
^
fadvance( )
advance( )
step( )
continuerun(800 )
and others
With variable time step removed and use use_local_dt removed
we get the following error after about 672 ms simulation time:
Assertion failed: file AMPAS.c, line 239
nrniv: _tsav <= t
near line 285
hoc_ac_ = NoOfFastSpikingINs
^
fadvance( )
advance( )
step( )
continuerun(800 )
and others
Feels like these problems might be related to the previous one, for which admittedly I still didn't get to produce a test set.
Posted: Sun May 06, 2007 7:35 pm
by hines
PreSyn threshold for PyramidalCellRS_1C_Destexhe[4].soma
occurred immediately after the dead time interval (~0.01 ms,
needed for second order correct threshold detection)
A dead time after a spike threshold was being used to handle a spurious threshold crossing when a concave trajectory generates a spike time in which the voltage is in fact slightly below threshold. Unfortunately, cvode chose a time step at that point which was longer than the deadtime. Instead of increasing the deadtime, I have chosen a very different but logically simpler method that deals straightforwardly with these edge cases. An explanation is in
http://www.neuron.yale.edu/cgi-bin/trac ... geset/1733
Assertion failed: file AMPAS.c, line 239
nrniv: _tsav <= t
The cause of that error was fixed in
http://www.neuron.yale.edu/cgi-bin/trac ... geset/1465