Metadata-Version: 2.4
Name: IRKsome-gadopt
Version: 2026.4.0
Summary: A library for fully implicit Runge-Kutta methods in Firedrake
Author: Pablo Brubeck, Patrick E. Farrell, Scott P. MacLachlan
Author-email: "Robert C. Kirby" <Robert_Kirby@baylor.edu>
License: Irksome is free software: you can redistribute it and/or modify it under
        the terms of the GNU Lesser General Public License as published by the
        Free Software Foundation, either version 3 of the License, or (at your
        option) any later version.
        
        Irksome is distributed in the hope that it will be useful, but WITHOUT
        ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
        FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
        License for more details.
        
        You should have received a copy of the GNU Lesser General Public
        License along with Irksome. If not, see <http://www.gnu.org/licenses/>.
        
        
Project-URL: Homepage, https://www.firedrakeproject.org/Irksome
Project-URL: Repository, https://github.com/firedrakeproject/Irksome.git
Classifier: Programming Language :: Python
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: ci
Requires-Dist: flake8; extra == "ci"
Requires-Dist: pytest; extra == "ci"
Requires-Dist: vtk; extra == "ci"
Provides-Extra: dolfinx
Requires-Dist: scifem; extra == "dolfinx"
Requires-Dist: firedrake-fiat; extra == "dolfinx"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
Dynamic: license-file

# Irksome

This package works with Firedrake to generate Runge-Kutta methods from a semi-discrete UFL form.  We have added a UFL symbol for time derivatives and can produce UFL for the fully discrete method from a semi-discrete form and a Butcher tableau.  Several such tableaux are available, and some utility functions for time-stepping and adaptive time-stepping provided the tableau has an embedded lower-order method.

A long-standing critique of fully implicit RK methods, especially for PDE, is that they require a very large algebraic solve for all stages concurrently.  However, we can use Firedrake's solver infrastructure to address this issue, and also recover most of the comparative efficiency of DIRK or explicit methods.

The core of Irksome is based on UFL manipulation and so should be adaptable to work with FEniCS or other UFL-based packages, but the current version works only with Firedrake.  As such, it requires a working Irksome installation.

To install Irksome you need a working Firedrake installation (instructions can be found [here](https://www.firedrakeproject.org/install.html)) and then Irksome can be installed by running:
```
$ pip install --src . --editable git+https://github.com/firedrakeproject/Irksome.git#egg=Irksome
```
or, equivalently:
```
$ git clone https://github.com/firedrakeproject/Irksome.git
$ pip install --editable ./Irksome
```
