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.

  1. GitHub Forks and Pull Requests

  2. Pull Requests Recommendations

  3. Continuous Integration

  4. Naming Conventions

  5. Custom Implementations

  6. Documenting Code

  7. Adding a project

⬅️ Back to main page