Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions docs/source/events.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@ The eleventh Firedrake user and developer workshop will be held
jointly with the PETSc annual user meeting near London between
1-5 June 2026. For more information see :doc:`the workshop page <firedrake_26>`.

Firedrake tutorial March 2026
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

A tutorial on basic and advanced usage of Firedrake will be held
between 18-20 March 2026 at the University of Oxford. For more
information see :doc:`the tutorial page <tutorial_mar_26>`.

Firedrake '25
~~~~~~~~~~~~~

Expand Down
69 changes: 69 additions & 0 deletions docs/source/tutorial_mar_26.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
:orphan: true

.. title:: Solving partial differential equations with Firedrake, 18-20 March 2026

.. image:: images/maths_oxford.jpg
:alt: Mathematical Institute, University of Oxford
:width: 100%
:align: center

Solving partial differential equations with Firedrake
-----------------------------------------------------

We will host a 2.5-day in-person tutorial on Firedrake at the
`Mathematical Institute, University of Oxford
<https://www.maths.ox.ac.uk>`__ from 18-20 March 2026. This training event is kindly supported by the `Collaborative Computational Project on Data-centric Computational Mechanics <https://ccp-dcm.github.io/>`__ and the `Computational Science Centre for Research Communities (CoSeC) <https://www.cosec.ac.uk/>`__.

The tutorial is aimed at all levels, from MSc students to senior faculty and those solving partial differential equations in industry. Only a basic passing knowledge of finite elements is necessary, although of course knowing more background is still useful.

The course will cover both the basics of solving stationary and time-dependent problems, as well as various advanced topics like geometric multigrid and 𝑝-multigrid solvers, high-order mesh generation and adaptive mesh refinement with Netgen, nonlinear problems, mixed formulations and block preconditioners, eigenvalue problems, and adjoints.

Attendees will need to bring a laptop. Installing Firedrake (see the
:doc:`download page <install>` for details) is optional, as it will be
also be possible to join the tutorial using the cloud. Installing `Paraview <https://www.paraview.org>`__ for visualisation before the course is recommended.


Registration
------------

Registration of £25 covers tea, coffee, and biscuits. `Registration is now open on the Oxford online store <https://www.oxforduniversitystores.co.uk/product-catalogue/mathematical-institute/events/solving-partial-differential-equations-with-firedrake>`__.


Where and when
--------------

The conference will take place in the Andrew Wiles Building. Its main entrance
is located on Woodstock Road (`see here for the precise location
<https://what3words.com/policy.rises.bets>`__). Take some care in navigation, as
Google Maps sometimes directs people to the old mathematics building on St.
Giles.

The course will begin at 13:00 on March 18 and end at 16:00 on March 20.

Travel to Oxford
----------------

(This advice is an adaptation of `Mike Giles' advice <https://people.maths.ox.ac.uk/~gilesm/travel.html>`__.)

Coming to Oxford from abroad, the best options are:

* Flying to Heathrow

This is usually the best option for those flying long distance. There is an excellent `direct bus service to Oxford <https://www.theairlineoxford.co.uk/oxford-to-heathrow-bus/>`__ (when you approach the bus the driver will ask which stop in Oxford you want; tell the driver you want to go to Gloucester Green bus station, "Gloucester" is pronounced "gloster") with 2-3 buses per hour taking 80-90 minutes from the Heathrow Central Bus Station (Terminals 1-3) and Terminal 5. Those flying into Terminal 4 must first change and take local transport at Heathrow to get to Terminal 5.

* Flying to Birmingham

This is a good option for European flights; Birmingham is a much smaller airport than Heathrow and is more convenient. There is a `regular train service to Oxford from the adjacent Birmingham International station <https://www.crosscountrytrains.co.uk/>`__. There is usually one train per hour, and they take about an hour. The trains can get quite busy, booking in advance is advisable.

Other, less convenient options are:

* Flying to Gatwick: the direct bus service is less frequent and takes up to 2.5 hours.
* Flying to Luton or Stansted: two more airports near London but neither has convenient public transport links to Oxford.
* Eurostar train to St Pancras station in London: onward travel to Oxford requires a 30-minute underground train journey to Paddington station, then an hour's train journey to Oxford.


Organising committee
--------------------

* `Patrick Farrell <https://pefarrell.org>`__, University of Oxford
* `Pablo Brubeck <https://www.maths.ox.ac.uk/people/pablo.brubeckmartinez>`__, University of Oxford
2 changes: 1 addition & 1 deletion firedrake/eigensolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
class LinearEigenproblem:
"""Generalised linear eigenvalue problem.

The problem has the form, find `u`, `λ` such that::
The problem has the form, find ``u``, ``λ`` such that::

A(u, v) = λM(u, v) ∀ v ∈ V

Expand Down
4 changes: 2 additions & 2 deletions firedrake/external_operators/abstract_external_operators.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ def assemble_method(derivs, args):

Notes
-----
More information can be found at `www.firedrakeproject.org/external_operators.html#build-your-own-external-operator`.
More information can be found at ``www.firedrakeproject.org/external_operators.html#build-your-own-external-operator``.
"""
# Checks
if not isinstance(derivs, (tuple, int)) or not isinstance(args, tuple):
Expand Down Expand Up @@ -154,7 +154,7 @@ def assemble(self, assembly_opts=None):

Notes
-----
More information can be found at `www.firedrakeproject.org/external_operators.html#assembly`.
More information can be found at ``www.firedrakeproject.org/external_operators.html#assembly``.
"""

# -- Checks -- #
Expand Down
Loading