QMat Package
************
.. raw:: html
`qmat` is a python package to generate matrix coefficients related to Collocation methods,
Spectral Deferred Corrections (SDC), and more generally for Runge-Kutta methods.
It allows to generate :math:`Q`-coefficients for multi-stages methods (equivalent to Butcher tables) :
.. math::
Q\text{-coefficients : }
\begin{array}
{c|c}
\tau & Q \\
\hline
& w^\top
\end{array}
\quad \Leftrightarrow \quad
\begin{array}
{c|c}
c & A \\
\hline
& b^\top
\end{array}
\quad\text{(Butcher table)}
and many different **lower-triangular** approximations of the :math:`Q` matrix, named :math:`Q_\Delta`,
which are key elements for Spectral Deferred Correction (SDC), or more general Iterated Runge-Kutta Methods.
It also contains **generic time-integration solvers** based on :math:`Q` and :math:`Q_\Delta` coefficients,
that can be used for quick testing and experiments.
.. raw:: html
This package can be installed using `pip` :
.. code-block:: bash
pip install qmat
... but you can also use `conda` or installation from sources, see the :doc:`Installation Instructions 💾`
📜 *If you are already familiar with those concepts, you can use this package like this :*
.. code-block:: python
from qmat import genQCoeffs, genQDeltaCoeffs
# Coefficients or specific collocation method
nodes, weights, Q = genQCoeffs("Collocation", nNodes=4, nodeType="LEGENDRE", quadType="RADAU-RIGHT")
# QDelta matrix from Implicit-Euler based SDC
QDelta = genQDeltaCoeffs("IE", nodes=nodes)
# Butcher table of the classical explicit RK4 method
c, b, A = genQCoeffs("ERK4")
*But if you are new to this, then welcome ! ... and please have a look at the* **step by step tutorials** *below* 😉
For any contribution, please checkout out (very cool) :doc:`Contribution Guidelines 🔑`
and the current :doc:`Development Roadmap 🎯`
Projects relying on `qmat`
==========================
* `pySDC `_ : *Python implementation of the spectral deferred correction (SDC) approach and its flavors, esp. the multilevel extension MLSDC and PFASST.*
* `SWEET `_ : *Shallow Water Equation Environment for Tests, Awesome! (C++).*
Doc Contents
============
.. toctree::
:maxdepth: 1
installation
notebooks
contributing
API reference
Links
=====
* Code repository: https://github.com/Parallel-in-Time/qmat
* Issues Tracker : https://github.com/Parallel-in-Time/qmat/issues
* Q&A : https://github.com/Parallel-in-Time/qmat/discussions/categories/q-a
* Project Proposals : https://github.com/Parallel-in-Time/qmat/discussions/categories/project-proposals
Developers
==========
* `Thibaut Lunet `_
* `Thomas Saupe (né Baumann) `_