[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