[dune-pdelab] Question on space construction
Oliver Sander
sander at igpm.rwth-aachen.de
Tue May 5 14:53:38 CEST 2015
Am 05.05.2015 um 14:47 schrieb Steffen Müthing:
> Hi Oliver,
>
>> Am 05.05.2015 um 10:31 schrieb Oliver Sander <sander at igpm.rwth-aachen.de>:
>>
>> Am 05.05.2015 um 09:26 schrieb Steffen Müthing:
>>> Hi Oliver,
>>>
>>>> Am 05.05.2015 um 06:46 schrieb Oliver Sander <sander at igpm.rwth-aachen.de>:
>>>>
>>>> Dear pdelab team,
>>>> I have a question concerning the tree construction of FE spaces in pdelab.
>>>> In my problem, I have two P1 FE spaces. One is 3-valued, and the other one
>>>> is 5-valued. What I want is the product space of the two, so I guess I should
>>>> use the CompositeGridFunctionSpace class. However, I also want the resulting
>>>> stiffness matrix to be BCRSMatrix<FieldMatrix<double,8,8> >.
>>>> How do I do this? Is this combination of blocking across a CompositeGFSpace
>>>> possible at all?
>>>
>>> yes, that works. You just keep using the EntityBlockedOrderingTag and the
>>> ISTLVectorBackend with static blocking further up the tree (inside the CompositeGridFunctionSpace).
>>>
>>
>> Thanks Steffen,
>> I think I tried that, but it gives me an 'invalid blocking structure' static assertion failure.
>> Am I doing it right? Find below my setup code and the complete error message. Of course I'll
>> prepare a complete test case if that helps.
>> Thanks!
>
> congratulations, you found a really nasty bug in TypeTree!
>
> First off, I should have thought before writing my answer - you do not simply add static blocking to the
> CompositeGFS, you also have to remove it from the VectorGridFunctionSpaces.
> The idea between the backends is that you only specify blocking for exactly those nodes in the tree where
> blocking is supposed to occur - and now you don’t want blocking at the VectorGridFunctionSpace level
> anymore, as that would give you something like a block with two nested blocks (of size 5 and 3). That’s also
> the reason for the static assertion - ISTL doesn’t support that kind of block structure.
>
> So I changed your example, but then I got a vector with block size 5 instead of 8. That was the TypeTree bug
> (now fixed in master).
>
> After updating dune-typetree, the MWE at http://conan2.iwr.uni-heidelberg.de/git/snippets/1 should do what you want.
>
Kudos, Steffen! With your changes in dune-typetree and my code the problem is gone. Thank you very much!
Release managers: please cherry-pick dune-typetree 04556199db6029b1ff895f1dd2c312f5cc8df511 to the release branch.
Thanks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune-pdelab/attachments/20150505/34457cee/attachment.sig>
More information about the dune-pdelab
mailing list