Skip to content

Conversation

@brownbaerchen
Copy link
Contributor

This PR includes things that are needed to couple pySDC and Firedrake and a small heat equation example. Seems I cannot add @jshipton as a reviewer, but you are very welcome to add comments anyways.

What is needed:

  • data type that wraps Firedrake data and that pySDC can use
  • Communicator that wraps the Firedrake ensemble communicators and gives it an MPI communicator interface to use parallel implementations within pySDC

Also included in this PR:

  • Small fixes for the generic implicit MPI and Runge-Kutta sweepers, which were more numpy-specific than we want
  • Basic forced 1D heat equation example, which is essentially the same as the Fenics test problem, but using Firedrake
  • Tutorial for running this serially, as well as MPI-parallel with diagonal SDC
  • Tests for the datatype that make sure the result is correct and we didn't accidentally do shallow copies
  • Tests for the heat equation that make sure the result is close to exact
  • Regression tests for the tutorial, serial and parallel
  • Another test environment using the Firedrake docker-hub image. As you can see there, the only dependence that pySDC has that is not part of Firedrake is qmat. So, while Firedrake is not easy to install, once you have it, adding pySDC is simple. The test environment is a bit complicated because it also installs Gusto, which we will use in the future

Not included in this PR

Coupling between pySDC and Gusto. While this works in principle, it needs a lot of cleanup and will be a slightly larger PR. So we decided to merge the two couplings separately. We did not do any more elaborate equations here than heat equation because including elaborate versions of equations is one of the features of Gusto and that will come with the Gusto coupling.

@brownbaerchen brownbaerchen requested review from jakob-fritz and pancetta and removed request for jakob-fritz January 21, 2025 15:05
@pancetta
Copy link
Member

Prettttttty awesome!

@pancetta
Copy link
Member

Further thoughts, @jshipton or @tlunet ?

@tlunet
Copy link
Member

tlunet commented Jan 22, 2025

Looks fine by me. Having a first structure for a coupling with firedrake and gusto is already some nice input, eventually we can improve that later ...

@brownbaerchen
Copy link
Contributor Author

I would appreciate if we could merge this sooner rather than later. I cleaned up the Gusto coupling a lot today. I basically have to make sure the parameters in the tutorial are sensible and then I could open a PR for this from tomorrow.

@pancetta pancetta merged commit 5ac6441 into Parallel-in-Time:master Jan 22, 2025
87 checks passed
@brownbaerchen brownbaerchen deleted the firedrake_coupling branch January 22, 2025 16:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants