Solving Decoupled Problems over Elements of Mesh of Global Problem
Hello, I am working on developing a method where optimal discontinous test functions are computed for the global problem. The issue is that these optimal test function computations are decoupled from the global problem and are over each element individually. Has this been done or is there a way with par_loop() to perform a solve over each element of a mesh and have its solutions contribute to the global solve at the end? Each element problem has its own variational statement with its own test functions which we would define. Using these results we would construct the global stiffness matrix(function) as we solve this optimal test function problem over each element. We have implemented a very simple version of this with an in house code but your framework allows for so much flexibility we would love to be able to do this in Firedrake. Regards, -- Austin Kaul
Dear Austin, I think we do have something which might enable you to do this. The SLATE subsystem of Firedrake, enables for at least some cases a form to be assembled locally on each element and then local linear algebra to be performed before the result is inserted into the global matrix. This might meet your needs. There is a paper explaining this at: https://doi.org/10.5194/gmd-13-735-2020, and some documentation here: https://www.firedrakeproject.org/firedrake.slate.html#module-firedrake.slate... Regards, David -- Dr David Ham Department of Mathematics Imperial College London https://www.imperial.ac.uk/people/david.ham From: <firedrake-bounces@imperial.ac.uk> on behalf of Austin Kaul <austinraykaul@gmail.com> Date: Tuesday, 10 March 2020 at 22:10 To: firedrake <firedrake@imperial.ac.uk> Subject: [firedrake] Solving Decoupled Problems over Elements of Mesh of Global Problem Hello, I am working on developing a method where optimal discontinous test functions are computed for the global problem. The issue is that these optimal test function computations are decoupled from the global problem and are over each element individually. Has this been done or is there a way with par_loop() to perform a solve over each element of a mesh and have its solutions contribute to the global solve at the end? Each element problem has its own variational statement with its own test functions which we would define. Using these results we would construct the global stiffness matrix(function) as we solve this optimal test function problem over each element. We have implemented a very simple version of this with an in house code but your framework allows for so much flexibility we would love to be able to do this in Firedrake. Regards, -- Austin Kaul
participants (2)
- 
                
                Austin Kaul
- 
                
                Ham, David A