[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