This program solves systems of differential equations for the NEURON simulator using the matrix-exponential method of integration. This is a new method of integration. The solution is faster and more accurate than NEURONs built in "sparse" solver. This method is only applicable to systems which are linear and time-invariant, such as Markov kinetic models. This method is also limited to systems with one or two inputs.
This program uses the NMODL file format (".mod" files). The input kinetic model is an NMODL file, and the solution is written to a new NMODL file.
For more information about how this program works see DETAILS.md.
Prerequisites:
- Compiler for the target system.
- CPU requires
g++ - Cuda requires the
cupypython package.
- CPU requires
$ pip install matexp
$ matexp --help
usage: matexp [-h] [-v] [--plot] -t TIME_STEP [-c CELSIUS] [-e ERROR]
[-i NAME MIN MAX] [--log [INPUT]] [--target {host,cuda}]
[-f {32,64}]
INPUT_PATH OUTPUT_PATH
positional arguments:
INPUT_PATH input path for unsolved NMODL file
OUTPUT_PATH output path for solved NMODL file
options:
-h, --help show this help message and exit
-v, --verbose print diagnostic information, give twice for trace mode
simulation parameters:
--dt DT, --time_step DT
milliseconds, default: 0.025
-t TEMPERATURE, --temperature TEMPERATURE
degrees celsius, default: 37
-e ERROR, --error ERROR
maximum absolute error per millisecond. default: 10^-3
input specification:
-i NAME MIN MAX, --input NAME MIN MAX
--log [INPUT] scale input logarithmically, for chemical concentrations
computer specification:
--target {host,cuda} default: host
-f {32,64}, --float {32,64}
default: 64