[dune-pdelab] Grid operator for subspace?

Steffen Müthing steffen.muething at iwr.uni-heidelberg.de
Tue Feb 13 13:56:28 CET 2018


Hi Gregor,

> Am 12.02.2018 um 18:22 schrieb Gregor Corbin <corbin at mathematik.uni-kl.de>:
> 
> Hi everyone,
> 
> I was wondering if one could define a grid operator that only updates
> part of a CompositeGridFunctionSpace? In more detail, I have a
> CompositeGridFunctionSpace of two Power-Spaces U and W.  One local
> operator reads both U and W, but only contributes to the residual of U
> and leaves W unchanged. Is there some way to tell the OneStepMethod that
> W is constant to improve performance?

there are a few points here:

- You can of course write a LocalOperator that only updates part of a GFS. As the
  GridOperator works additively, there just won’t be any change to the output for the
  DOFs if you never call accumulate() for those DOFs.

- I’m not quite sure what you are trying to do here (operator splitting?). If you never
  need to write to both U and W in a single LocalOperator, it might be better to keep
  the two spaces separate and provide W and its solution vector (or a grid function
  that bundles the two) as a member function to the LocalOperator.

- If you really want to keep the single global space, that will have one large solution
  vector (and one large matrix for implicit methods), so apart from reduced assembly
  work, there isn’t really a way to speed up the OneStepMethod if you don’t split the
  spaces as suggested above. In this case, you also have to make sure to use Dirichlet
  constraints on the whole subspace W - otherwise, the diagonal matrix block that
  corresponds to the W subspace will be 0 and your matrix becomes singular.

> 
> Also, on a related note,  I had to write a local operator for the time
> operator that basically applies the PowerL2 operator to U and W
> separately. This only works so far for the functions space as above.
> Since there will be more generalizations to my code at a later stage, I
> wondered if there maybe is a L2 operator that works for general trees of
> function spaces? If not, I suppose I could write one, but if it is not
> necessary, I have no desire to enter that rabbit hole…

- No, that doesn’t exist right now. Doing so requires a little bit of messing around with
  TypeTree visitors. It’s actually not a lot of lines of code if you know what to do, I’ll write
  one and open a MR.

Cheers
Steffen

> 
> Cheers,
> 
> Gregor
> 
> <0x0686D386.asc>_______________________________________________
> dune-pdelab mailing list
> dune-pdelab at lists.dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-pdelab

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: Message signed with OpenPGP
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20180213/451a4b1c/attachment.sig>


More information about the dune-pdelab mailing list