The following MWE apparently works fine with Neuron v7.4, but with v7.5 it gives the following error.
Code: Select all
loading membrane mechanisms from mod/x86_64/.libs/libnrnmech.so
Additional mechanisms from files
no_section_mwe.mod
running
finitializing
running
Done testing
NEURON: NoSectionMWE[0] point process not located in a section
near line 0
while (t < tstop) { fadvance() }
Code: Select all
import subprocess as sp
import os.path
import shutil
import neuron
mod_dir = os.path.join(os.path.dirname(__file__), 'mod')
shutil.rmtree(os.path.join(mod_dir, 'x86_64'), ignore_errors=True)
orig_dir = os.getcwd()
os.chdir(mod_dir)
sp.check_call('nrnivmodl', shell=True)
os.chdir(orig_dir)
neuron.load_mechanisms(mod_dir)
sec = neuron.h.Section()
hoc = neuron.h.NoSectionMWE(0.5, sec=sec)
setattr(hoc, 'cm_int', 1.0)
setattr(hoc, 'R', 1.0)
setattr(hoc, 'tau', 1.0)
setattr(hoc, 'tau2', 1.0)
rec = neuron.h.NetCon(hoc, None, sec=sec)
print("running")
neuron.init()
print("finitializing")
neuron.h.finitialize()
print("running")
neuron.run(10)
print("Done testing")
Code: Select all
NEURON {
POINT_PROCESS NoSectionMWE
NONSPECIFIC_CURRENT i_int
RANGE a
RANGE tau
RANGE tau2
RANGE R
RANGE cm_int
RANGE i_int
}
PARAMETER {
tau = 0
tau2 = 0
R = 0
cm_int = 0
}
ASSIGNED {
i_int
v
}
STATE {
a
}
BREAKPOINT {
SOLVE states METHOD derivimplicit
i_int = -cm_int*(R*a - v)/tau
}
DERIVATIVE states {
a' = (-a)/tau2
}
NET_RECEIVE(connection_weight_, channel) {
}
NB: I have replicated this error on OS X, Ubuntu 14.04 & 16.04