The optimization of a neuronal solver ultimately focuses on accuracy and performance. Transforming complex biological parameters into precomputed tables and optimizing for a high CPU cache hit ratio are the most important features for a good solver, and gives the solver a performance boost of about a factor four to six.
Heccer is a fast compartmental solver, that is based on hsolve of the GENESIS simulator. To find out more about the numerical principles implemented in Heccer see a small tutorial on numerical theory. The efficiency of Heccer is explained in Byte Code Compilation.
Heccer can be instantiated from C, or from Perl (or other scripting languages). It is also possible to link Heccer directly to Matlab. Heccer comes with Swig interface definitions, such that linking Heccer to any other technologies should be easy.
Adding new channel types to Heccer can be done using callouts. The callout mechanism allows for general user extensions that contribute a current or conductance at a particular time in a simulation. Heccer automatically integrates this contribution into the membrane potential. Check the tests of the callouts for more information (tests/code/callout1.c and tests/code/calloutInjector.c).
The source code of Heccer contains inline developer documentation. As yet, there is no stable API but the Swig interfaces for Heccer are not expected to change much. If you are interested in this, look at a simple example for driving Heccer from Perl, and another example with active channels and a calcium pool. Heccer is currently capable of simulating Purkinje cells (see the Purkinje Cell Model), and, at first evaluation, runs slightly faster than hsolve (It is difficult to assess why exactly: while the hsolve implementation is much more optimized than Heccer’s, the Heccer design is slightly better optimized than hsolve’s.).
Heccer has been validated with a Purkinje cell model and produces an exact match with hsolve (see the purkinje cell model and the Purkinje cell tutorial in the GENESIS simulator distribution). Heccer is constantly undergoing regression tests. Link to Regression Test Output. These tests give an idea of the functionality of Heccer as a compartmental solver.
Besides being open source, Heccer is also hypersource and Heccer Source Code is browsable.