We need some infrastructure to transfer the solution between grids. This can be done with the PointEvalHandler in general, but we can come up with more specific choices.
To complete the train of thought on the "interproblem transfer" here some concerns:
- The LTG solver does not carry a big vector with all solution variables into which the subsolvers just "view", simply because the solutions might live on different grids. For example, we can put the concentration variables on some coarse grid for the EP and evolve them with larger time steps. We might be able to make this work as follows for the solution block vector $[u,c]$ where the subproblems carry custom vectors for "incompatible" vectors which get updated by interpolation operations $u_2 = Pu_1$. Not sure what would be best here. We should explore this option, as well as some API to access the solution. The latter is especially a problem for user-provided initializers.
- How does the outer solver know what size and partitioning the solution vector should have and how to pass down the views into the inner caches consistently and in a type stable way?
We need some infrastructure to transfer the solution between grids. This can be done with the PointEvalHandler in general, but we can come up with more specific choices.
The main idea here is this operator acts as glue between the subproblems. So instead of dispatching on the problems directly we just dispatch on the solution vectors and the transfer operator, where the transfer operator carries the mapping.
To complete the train of thought on the "interproblem transfer" here some concerns: