QMat Package
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 \(Q\)-coefficients for multi-stages methods (equivalent to Butcher tables) :
and many different lower-triangular approximations of the \(Q\) matrix, named \(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 \(Q\) and \(Q_\Delta\) coefficients, that can be used for quick testing and experiments.
This package can be installed using pip :
pip install qmat
… but you can also use conda or installation from sources, see the Installation Instructions 💾
📜 If you are already familiar with those concepts, you can use this package like this :
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) Contribution Guidelines 🔑 and the current Development Roadmap 🎯
Projects relying on qmat
Doc Contents
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