How to contribute to pySDC¶
Developments on the pySDC
code use the classical approach of forks and pull requests.
You can look at extended GitHub documentation
for more details (skip this if you are already used to it).
Furthermore, branches on pySDC
follow a pre-defined structure.
To contribute to any of them, please look at the pull request recommendations.
Additionally, a few rules are set to enforce code readability, consistency and reliability. Some of them are automatically tested with each commit, and summarized in the page on continuous integration (CI). Others are specific conventions chosen for the pySDC library, that may follow Python standards (or not …), detailed in the naming conventions page.
Finally, while pySDC
provides many base functionalities that implement
classical flavors of SDC, it also allows problem-specific applications through
Object-Oriented Programming (OOP) and the implementation of custom inherited classes.
This follows a specific OOP framework, you can look at the page on
custom implementations
for more details. Additional guideline are also given on how to
document the code in pySDC
.
📣 Some core components (collocation matrix, $Q-Delta$ coefficients, Lagrange barycentric interpolation)
are implemented and developed in the ``qmat` companion package <https://github.com/Parallel-in-Time/qmat>`_. Checkout its own contributing guide to add any new coefficient / feature on this part.