Python interface to goss - General ODE System Solver
Project description
GOSS - General ODE solver
goss
is a C++ library for solver ordinary differential equations.
The general idea is that you define your ODE in a gotran ode file
and hand the ode over to goss
.
Documentation
Documentation is hosed at https://computationalphysiology.github.io/goss
Install
To work with goss from python, you only need to install the python package.
python -m pip install pygoss
Alternatively you can clone the repo, cd into it at execute
python -m pip install .
or use
python -m pip install -e .
for an editable install.
Testing
Python
The tests for the python code can be found in the folder tests and run with pytest
. To run the tests, please install the test dependencies
python -m pip install ".[test]"
and run the tests with
python -m pytest
C++
The C++ source code for goss
is found in the folder cpp. The C++ code also has a separate test suite that can be found in cpp/tests. To run the tests you need to first build goss with the BUILD_TESTS flag enabled
cmake -B build-cpp -S cpp -DBUILD_TESTS=ON
cmake --build build-cpp
and now you can run the tests
cd build-cpp
ctest
Structure
The bindings between python and C++ uses pybind11 and all the bindings are found in the file python/wrapper.cpp.
The python package is built using scikit-build which is a build system especially suited for python code with C++ extensions.
Contributing
Contributions are very welcomed. To contribute please fork the repo, create a branch a submit a pull request. Before the pull request can be accepted it has to pass the test suit for the python and C++ code. Also note that we try to enforce an consistent coding style. To ensure that you follow the coding style you can install the pre-commit hook in the repo
python -m pip install pre-commit
pre-commit install
For every future commit, you will now run a set of tests that will make sure that you follow the coding style.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for pygoss-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 817a84d5595f8aef48fd97321b315862d6e1d2e4041d79ae27dd163ef59aa055 |
|
MD5 | 1904ef3369f54903925b5c1b77809277 |
|
BLAKE2b-256 | 3b9524b4793f8ef571e15bed599aa16900ee2838d9d949eeefcd8ac58448e834 |
Hashes for pygoss-0.1.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc7d99debd69b10d2627a17e8ef8fb2579c49fae10e7f08525e1fa777e9af71e |
|
MD5 | 3c62c8a4af938f6c723d8757cae45b0e |
|
BLAKE2b-256 | 4ee5681466ba18f9f1e0b0bf77832f54ef87cae8a88cd850ed296a3c34d69f5c |
Hashes for pygoss-0.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1261cec1c1f309920f3d289318aeab10eff4e3a3957ea8def380a4263cf4480 |
|
MD5 | 691e6ffcb2e864bc7da1d122c7d6d10e |
|
BLAKE2b-256 | 37acdd1c72d5ce2163f5b4a8548f95a191e6dccfc2d6ad3c6ecee83e3152cd25 |
Hashes for pygoss-0.1.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 803acdef20d67f3bd489be74dbe3e61fc5318a497ea7141559ff4250b0b86719 |
|
MD5 | d7543e6c86aac2f10dca79acdbda0123 |
|
BLAKE2b-256 | 04a6a3cc51385f5ce3683d66ba5026e09413d052ada19e80fcf0655ae020813d |
Hashes for pygoss-0.1.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f54dd35782869e63b6957eaebe973636404a6a4d04b4d03f5063b3e1b1da3c7d |
|
MD5 | f108069715fe6f732e2123889642ddb0 |
|
BLAKE2b-256 | fe78c208841f7379e394465a71295bbf330bcbf417bd4e37f9a7fedbdfe84298 |
Hashes for pygoss-0.1.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1acb574175dd837b257d3ef9a8cb3de5e2ae15462701d1cbdd8ca3a97ed2f0a6 |
|
MD5 | 251621d4190b01cbd166ec619bccc6f9 |
|
BLAKE2b-256 | 0a2801d6c46be5ea494ffe99441b44f42fd515beca15d790f5cdf0dcb39dd913 |
Hashes for pygoss-0.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cac6cb4d308da813c960066b1ee2475e7ea659b1f28cc909c52e164bc3d1fa5f |
|
MD5 | 2336b6e4497cc0efdd6828573497f7a9 |
|
BLAKE2b-256 | c535a356cf56879d5878afe0e76049884d00a18cc4baa126823bbe56f732dcc2 |
Hashes for pygoss-0.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63cf1263f4727c3d0ec6781979f89c478181e28196895809751ad5eb73d177f6 |
|
MD5 | a9cebc137ee8d52e5931cfdf24186212 |
|
BLAKE2b-256 | 5060121e1a79c833070fd10a283d62e9865d8b49139dd51031b5cd9421ab732c |