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.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 67e14bf94c75f28a72e18aa9228cc3c51354729ef1dc747f44a1d914a359cb5f |
|
MD5 | be1769468beea1bf8300a6144a09f821 |
|
BLAKE2b-256 | 6dfa62e4970c5c3a9ee9e323a584d445777a0e3599c4cf2c45461dacc57f2880 |
Hashes for pygoss-0.1.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95f05e645ec3ac86b4041bc2d66d1f7b3a2b73ba5d8230a1b6aa744663a004e8 |
|
MD5 | 9c1a0789fa1d11dddaa2f76146c9a23f |
|
BLAKE2b-256 | 2037d500261565da2044505342d3cd0bde078d09e1bbdeb2f1994afab53ead5a |
Hashes for pygoss-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45373eb129af4aeb1ef3541bb74982c3cdc145d61443649cc261ceb0e41f5f08 |
|
MD5 | 052d22c9029b1d218c4a650e3d5938fe |
|
BLAKE2b-256 | b81357ea28d9f55c97140508deef791b5e0178959674f424bf93da61b1c69bc7 |
Hashes for pygoss-0.1.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c3cfd7085b6d9149be4833765fd3dc6c647983b997f48ab98bd64fa40576db2 |
|
MD5 | 1b0208bbee7b9c43fe1d2b09e04fbdee |
|
BLAKE2b-256 | 3ac188659d5ab0e69692f8379e06e1974f460289ff1e749fcc75791377ee21a9 |
Hashes for pygoss-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03bff73630d02fd89f8673c9078f7220ba561731f1a3ca22f97c71bb61ba3296 |
|
MD5 | 66d575c9311e4d011130cfdf286b6ec1 |
|
BLAKE2b-256 | ddc0858b16e32ab4359643bc63f25832e21e2b14a5476d135c597f1fdf32e080 |
Hashes for pygoss-0.1.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92a80c853bf753edfe596214003aff3921d9477f14153b315ebc875983292da9 |
|
MD5 | 039d38dd1732e70c8af381b01f0183e7 |
|
BLAKE2b-256 | 8fd182ae98498a8cc029f946a0442a39752147412da272a300a11739bf7afc1a |
Hashes for pygoss-0.1.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da7371b1f3e758f56283f570a140842f4e3b7cfadfb48d1c2f459db7901ee3fe |
|
MD5 | ca93abc04853a5b24d194b6afcc836bf |
|
BLAKE2b-256 | a10476e2c0386719f6922237f7324434951381bb9d133f0e9673040ffe223da0 |
Hashes for pygoss-0.1.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a0735ea9509c904718a8996cf3613f29ebc89f8b42785255b62dece57851ac1 |
|
MD5 | eb818f7c679f1685c8f480ee5efe3e30 |
|
BLAKE2b-256 | ef92d83a7f60e16979540d2c32c23a7b8c58c31ac45ade58d0a4fef98e50a720 |