Metadata-Version: 2.4
Name: matexp
Version: 1.1.0
Summary: Simulator for Linear Time-Invariant Kinetic Models using the NMODL file format.
Author-email: David McDougall <dam1784@rit.edu>
License: MIT
Project-URL: Homepage, https://github.com/ctrl-z-9000-times/matexp
Keywords: nmodl,neuron
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Development Status :: 5 - Production/Stable
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: neuron
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: dill
Dynamic: license-file

# matexp

This program solves systems of differential equations for the NEURON simulator
using the approximate 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](https://www.neuron.yale.edu/neuron/static/py_doc/modelspec/programmatic/mechanisms/nmodl.html)
(".mod" files). 
The input kinetic model is an NMODL file, and the solution is written to a new NMODL file.


### Installation

Prerequisites:
* Linux
* The `g++` compiler

```
$ pip install matexp
```


### Usage

```
$ 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
```

