Dear Shawn, apologies for the slow response.
On 7 May 2019, at 15:32, Shawn W Walker <walker@lsu.edu> wrote:
Hello.
I would like to know if you can tell Firedrake to run the assembly over part of a mesh. For example, suppose I have a stiffness matrix (with variable coefficient) defined over a global mesh, but I want to do some domain decomposition where I solve on a sub-domain that may be changing with iteration. I don’t want to assemble the entire matrix (then take a sub-matrix) because this can be inefficient. Is there a way to only assemble over a subset of elements, and solve using the corresponding sub-matrix?
Right now this is not easily possible: we will always assemble the full thing. Assembly over subdomains is on the roadmap, and hopefully things will start appearing in the next 6 months. Can you describe the type of domain decomposition you want to do in a little more detail. It might be possible to do what you want right now with the PC Patch capability in PETSc. Thanks, Lawrence