firedrakeproject / asQ

A library for implementing ParaDIAG timestepping algorithms using Firedrake
MIT License
4 stars 1 forks source link

All at once system #69

Closed JHopeCollins closed 2 years ago

JHopeCollins commented 2 years ago

Factoring out the all-at-once system from the paradiag class.

AllAtOnceSystem encapsulates all data and logic related to a time-series spread over an ensemble - this include both the distrubuted function space/functions and the all-at-once finite element form.

JHopeCollins commented 2 years ago

I think this is ready to merge, or at least I've done all the refactors I wanted to do for this branch.

Turns out that most of the paradiag class was just dealing with the distributed all-at-once system, so most of the old paradiag methods have ended up in AllAtOnceSystem:

Where possible, these methods can also take as arguments all-at-once functions belonging to someone else as arguments, so they can be reused by the JacobianMatrix and DiagFFTPC.

Other major points for this PR:

JHopeCollins commented 2 years ago

I think this is ok except my minor suggestions and the bug fix!

Great, thanks. I'll make those edits now.