[dune-pdelab] Grid operator for subspace?
Gregor Corbin
corbin at mathematik.uni-kl.de
Tue Feb 13 15:01:07 CET 2018
Hi Steffen,
thanks for the quick reply.
The reason why I never thought about splitting the spaces was that there
exists another update step, that updates both U and W at the same time.
On the other hand, due to restrictions in the interface of local
operators, I implemented this step using low-level functions(bind,
read, ...), so I might as well split the function spaces as you suggested.
I currently do not use the Dirichlet constraints for W but assemble a
mass matrix for W as well( hence my earlier question about combined L2
operators). Would Dirichlet constraints allow me to skip the mass
matrix assembly for W?
Concerning my second point: When I split all the function spaces, I wont
need a generalized L2 local operator any more. But maybe its is still a
useful addition to the codebase.
Is there a tutorial for TypeTree? It seems like a really useful tool,
not only for the PDELab context, so I would like to understand it
better. What I currently know about it, I learned from browsing the
code, but at some point this gets a bit tedious.
Thanks for your help,
Gregor
Am 13.02.2018 um 13:56 schrieb Steffen Müthing:
> 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: 0x0686D386.asc
Type: application/pgp-keys
Size: 3116 bytes
Desc: not available
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20180213/847f5507/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20180213/847f5507/attachment.sig>
More information about the dune-pdelab
mailing list