[dune-pdelab] PGFS with 1 component
Pavel Hron
pavel.hron at iwr.uni-heidelberg.de
Tue Feb 18 01:03:15 CET 2014
On Mon, 2014-02-17 at 14:59 -0800, Steffen Müthing wrote:
> Hi Martin,
>
> Am 17.02.2014 um 06:27 schrieb Martin Rückl <mrueckl at physik.hu-berlin.de>:
>
> > Hi PDELab team,
> > i am using the Dune::PDELab::PowerGridFunctionSpace in one of my generic classes. At the moment I’m porting lots of my code to the new Dune/Pdelab version. I think in the old version of PDElab (like one year ago, before the changes with the dof handling) it was possible to create a PowerGridFunctionSpace with only a single component, i.e.:
> >
> > typedef Dune::PDELab::PowerGridFunctionSpace<GFS,1,VBE,Dune::PDELab::EntityBlockedOrderingTag> PGFS;
> >
> > while the above is still possible, i get an assertion error when interpolating an initial solution into the dof vector:
> >
> > Dune::PDELab::interpolate(initialSolution,pgfs,u);
> >
> > -> assert(i==-1) in dune/pdelab/backend/istl/vectorhelpers.hh line #27 fails
> >
> > i had a short glimpse into the callstack, and I think the cache type had size 1 hence i resulted in 0. If you like, i can provide a full call stack(which looks REALLY ugly :-() and/or fill a bug report.
> >
> > Since i added a little bit of extra functionality around the ISTLBlockVectorConainer, I’m not 100% sure whether it is an PDELab issue :-(
>
> that’s weird, I just clobbered together a small example (see attached file), and that works without a problem.
> Is your initialSolution a PowerGridFunction?
>
> Steffen
>
Hi Steffen,
your code works, but if you change Dune::PDELab::ISTLVectorBackend<>
(default no blocking) to
Dune::PDELab::ISTLVectorBackend<Dune::PDELab::ISTLParameters::static_blocking> (as in Martin's code), it breaks.
Does it make a sense use static_blocking with blocksize 1?
Pavel
More information about the dune-pdelab
mailing list