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.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddd812e61a8d448dd774cfc724d3ed8cd2642a1d3b2978f91da3f47ffe93cbb1 |
|
MD5 | 1d0ac4ef436ef43c8a920e7b6c6eb22d |
|
BLAKE2b-256 | eb292b21bec4ec23ad5f600901a862797ba4910eb3c50e700d77abc214e551de |
Hashes for pygoss-0.1.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d75b48efa60f77965542c38b1677d75e3033fe8d539965e3127fd14713263db |
|
MD5 | 4516948e018102cd8e351e54a14e9e60 |
|
BLAKE2b-256 | c4bb33d5efc0b188563a6717e036cb3b4838553e0e4e18e2579561277fa0b60f |
Hashes for pygoss-0.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b4cd76eb387130b1e899e8e7883835924a2c5120e6c7a67a746bb5d705406936 |
|
MD5 | 9ae1c2e471c558e5366d2c64f70c029a |
|
BLAKE2b-256 | e8ac252ba1f7124e5cf0d9939cc25b631417758792f6c542be8a21c6690376f1 |
Hashes for pygoss-0.1.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2be7520a916f9fbfda6bfeb39f59e1744f67c44394528dcdd00f20fc86cf1a16 |
|
MD5 | ba66962d4a674876e786f1560090c75e |
|
BLAKE2b-256 | eeb5ba292e3933aba54142fc18fa604fbe7d9329e39b7aea38b105c82cb83ff4 |
Hashes for pygoss-0.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 971ee3448f8f1c862f69c3af647450b54231be5e113bffed0faf73124c5bfd2e |
|
MD5 | dc35b10002520431a1345e0f679b34a9 |
|
BLAKE2b-256 | 92afed85364e1cddbdec2e9094e631f9c072fbdce7bf3f60b7ec5e0627a23596 |
Hashes for pygoss-0.1.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4084550b1dba3d3fce55cb6412e2ccd4df94f2796a30cc16e0ad1b451182fea3 |
|
MD5 | 9b3865d65fb7dc26c8a9df51049e5f4d |
|
BLAKE2b-256 | 78ee0d695b41e688e8bb4dd9e9cce67d86f62a45203a92600bb23049304bc198 |
Hashes for pygoss-0.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecb5749d298f579920cf39bdfb1ca4fcced76044d3be8c658d9c648a82ce344a |
|
MD5 | 40e7515603109a73d5bbd51047b302db |
|
BLAKE2b-256 | a64d3f714229029b9b5076313a82ec70379893db84b7e3c0613f71d7efb00885 |
Hashes for pygoss-0.1.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9ba80cd15de08e772b6bc9588f27538a251baf6f4590ad454a8cd845f6888fb |
|
MD5 | 40f76a0d5b494bed38c89bdfcf0e85e0 |
|
BLAKE2b-256 | d78ec3b9bd7ab50194f87f9e9519546b159a0421b04a7ff3c2a7fa4fbe684552 |