Weakly ordered expression evaluation language
We're building a lot of infrastructure here that's not obviously specific to time integration. An amount of code like this exists in hedge, and pytential, and ... quite possibly every other slightly-abstracted PDE solver.
I've been wondering whether to this logic should be factored out for good. Effectively, most high-level math packages amount to "evaluate an expression, plus here's one special thing I can do (apply a layer potential, take a derivative, ... whatever)". The way this is currently going, the PDE solver's expression tree won't see the time integrator's tree, leaving them ignorant of dependency chains that could be valuable to exploit
I was close to starting something like this a while ago, but shied away for fear of breaking all my existing stuff.
I'll be submitting an NSF CAREER proposal next summer based around integrating high-order unstructured integral equation machinery with high-order unstructured FEM machinery, with two very specific numerical schemes in mind. This project will necessarily have integration trouble like this, and an expression language like this would be a natural point at which to integrate them. Maybe that proposal could be a natural home for this type of thing.
FYI: @mattwala