[firedrake] hybridisation and tensor-product multigrid
Miklos Homolya
m.homolya14 at imperial.ac.uk
Mon Mar 16 13:39:55 GMT 2015
Andrew said a long time ago, that trace elements are basically facet
elements dotted with the facet normal. This latter approach probably
works on quads.
On 16/03/15 13:25, Colin Cotter wrote:
> Hi Eike,
> If you take a look at the test_hybridisation_inverse branch, in
> tests/regression/test_hybridisation_schur, you'll see a hacked up
> attempt at doing this for simplices. It's a bit fiddly because you
> need to assemble the form multiple times, once as a mixed system and
> once as a single block, so I'm thinking of making a tool to automate
> some of this by doing automated substitutions in UFL. Lawrence and I
> said we might try to sketch out how to do this.
>
> Another slight problem is that we don't have trace elements for
> quadrilaterals or tensor product elements at the moment. Our approach
> to trace spaces is also rather hacked up, we extract the facet basis
> functions from an H(div) basis and the tabulator returns DOFs by
> dotting the local basis functions by the local normal.
>
> Andrew: presumably you didn't implement them because you anticipated
> some fiddliness for tensor-products?
>
> cheers
> --cjc
>
> On 16 March 2015 at 08:49, Eike Mueller <E.Mueller at bath.ac.uk
> <mailto:E.Mueller at bath.ac.uk>> wrote:
>
> Dear firedrakers,
>
> I have two questions regarding the extension of a hybridised
> solver to a tensor-product approach:
>
> (1) In firedrake, is there already a generic way of multiplying
> locally assembled matrices? I need this for the hybridised solver,
> so for example I want to (locally) assemble the velocity mass
> matrix M_u and divergence operator D and then multiply them to
> get, for example:
>
> D^T M_u^{-1} D
>
> I can create a hack by assembling them into vector-valued DG0
> fields and then writing the necessary operations to multiply them
> and abstract that into a class (as I did for the column-assembled
> matrices), but I wanted to check if this is supported generically
> in firdrake (i.e. if there is support for working with a locally
> assembled matrix representation). If I can do that, then I can see
> how I can build all operator that are needed in the hybridised
> equation and for mapping between the Lagrange multipliers and
> pressure/velocity. For the columnwise smoother, I then need to
> extract bits of those locally assembled matrices and assemble them
> columnwise as for the DG0 case.
>
> (2) The other ingredient we need for the Gopalakrishnan and Tan
> approach is a tensor-product solver in the P1 space. So can I
> already prolongate/restrict in the horizontal-direction only in
> this space? I recall that Lawrence wrote a P1 multigrid, but I
> presume this is for a isotropic grid which is refined in all
> coordinate directions. Again I can probably do it 'by hand' by
> just L2 projecting between the spaces, but this will not be the
> most efficient way. Getting the columnwise smoother should work as
> for the DG0 case: I need to assemble the matrix locally and then
> pick out the vertical couplings and build them into a columnwise
> matrix, which I store as a vector-valued P1 space on the
> horizontal host-grid.
>
> Thanks a lot,
>
> Eike
>
> --
> Dr Eike Hermann Mueller
> Lecturer in Scientific Computing
>
> Department of Mathematical Sciences
> University of Bath
> Bath BA2 7AY, United Kingdom
>
> +44 1225 38 6241 <tel:%2B44%201225%2038%206241>
> e.mueller at bath.ac.uk <mailto:e.mueller at bath.ac.uk>
> http://people.bath.ac.uk/em459/
>
> _______________________________________________
> firedrake mailing list
> firedrake at imperial.ac.uk <mailto:firedrake at imperial.ac.uk>
> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
>
>
>
>
> _______________________________________________
> firedrake mailing list
> firedrake at imperial.ac.uk
> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the firedrake
mailing list