[firedrake] galerkin coarse grid operators

Lawrence Mitchell wence at gmx.li
Sat Dec 7 19:55:44 GMT 2019


*******************
This email from originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. 
If you trust the sender, add them to your safe senders list https://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
*******************
Hi Max,

> On 7 Dec 2019, at 19:47, Heldman, Max <heldmanm at bu.edu> wrote:
> 
> I’m working on a multigrid code and I’m wondering if there’s any way to get Galerkin coarse grid operators. The context is that I’m writing a Newton-multigrid type method, so I’m linearizing my PDE around the current iterate using automatic differentiation and then building the levels. I saw a 2016 paper which uses the coarsen_form function to get the coarse grid form, but that doesn’t seem to work anymore (and I’m not sure exactly what it does).

Right now it is not supported: the reason being that to build Galerkin coarse grids requires that we provide PETSc with the restriction/prolongation operators (whereas we only build the action of the operator). Supporting building the operator could be done (and I could provide some guidance if you want to do this).

Is there any strong reason why you do not want to do rediscretised multigrid? I think it should be possible unless you have something very funky going on.

The coarsen_form function has now been renamed (but this does rediscretised, rather than Galerkin coarse grids). Although, given that you are thinking about using it (or its equivalent) it sounds like you're wanting to write the multigrid cycle yourself. While that is possible, I wonder why you don't want to (or can't?) use PETSc's -pc_type mg (which is hooked up in Firedrake if you build a MeshHierarchy and handles relinearising around the current state in a newton iteration).

Lawrence




More information about the firedrake mailing list