[dune-pdelab] Fwd: Re: PGFS with 1 component

Christian Engwer christian.engwer at uni-muenster.de
Tue Feb 18 00:05:30 CET 2014


Hi Martin,

>   typedef Dune::PDELab::ISTLVectorBackend <Dune::PDELab::ISTLParameters::static_blocking,PGFSCOMPONENTS> VBE;               // block size 2
>   typedef Dune::PDELab::PowerGridFunctionSpace<GFS0,PGFSCOMPONENTS,VBE,Dune::PDELab::EntityBlockedOrderingTag> GFS;
>   GFS gfs(gfs0);
>   typedef typename GFS::template ConstraintsContainer<Real>::Type CC;

In your case some magic kicked in... the problem is that the backend
has to use a FieldVector<1> when we only have a LeafSpace. In this
case the BlockIndex is the actual index and the [0] to access the
FieldVector is not stored in the MultiIndex. In your case the
MultiIndex stored this last index 0, because you are using the
PowerGFS. The backend assumed that PowerGFS will result in a
FieldVector<n> and that FieldVector<1> is equivalent to LeafGFS. Thus
the assertion failed. I relaxed the assertion a little bit and your
example runs through.

I'm pretty sure we have the same problem in the matrix backend, but I
don't have time to investigate this tonight.

Ciao
Christian




More information about the dune-pdelab mailing list