[Dune-devel] New GridView stuff fails test-geogrid

Martin Nolte nolte at mathematik.uni-freiburg.de
Sat Nov 16 15:13:05 CET 2013


Hi Christoph,

this is really yet another unnerving bug that could have been avoided by proper 
testing.

The root of the problem is that GeometryGrid and AlbertaGrid are (to my 
knowledge) the only grid implementations in dune-grid that natively implement 
their grid views. All other grids just use the "default" implementation, which 
was introduced as a compatibility measure. Even worse, the methods leafView and 
levelView on the GridDefaultImplementation were introduced (~5 years ago) so 
that grid implementors don't directly have to change their code. Seemingly, 
developers are lazier than I thought ;-).

In order to enforce migration to the "new" 5 year-old interface, I think we 
should deprecate the methods leafView, leafGridView, levelView, levelGridView on 
the GridDefaultImplementation.

Anyway, I'll have a look at the problem as soon as I find the time. Could you 
please post a proper bug report?

Best,

Martin


On 11/16/2013 01:52 PM, Christoph Grüninger wrote:
> Hi guys,
> test-geogrid currently fails in the new LeafGridView code of
> the GridDefaultImplementation, see compiler output below.
>
> Bye
> Christoph
>
> In file included from test-geogrid.cc:4:
> In file included from ../../../config.h:354:
> In file included from ../../../dune/grid/yaspgrid.hh:18:
> ../../../dune/grid/common/grid.hh:1058:19: error: no matching conversion for
> functional-style cast from 'const GridImp' (aka 'const
>        GeometryGrid<Dune::YaspGrid<2>, Dune::IdenticalCoordFunction<double, 2>,
> std::allocator<void>
>> ') to 'ViewImp' (aka 'GridView<HostGridView,
>        Dune::IdenticalCoordFunction<double, 2>, std::allocator<void>,
> (Dune::PartitionIteratorType)4U>')
>        return View(ViewImp(asImp()));
>                    ^~~~~~~~~~~~~~~
> ./gridcheck.cc:598:33: note: in instantiation of member function
> 'Dune::GridDefaultImplementation<2, 2, double,
>        Dune::GeoGrid::GridFamily<Dune::YaspGrid<2>,
> Dune::IdenticalCoordFunction<double, 2>, std::allocator<void>
>> >::leafView' requested here
>    LeafGridView leafGridView = g.leafView();
>                                  ^
> ./gridcheck.cc:886:3: note: in instantiation of function template specialization
> 'iteratorEquals<Dune::GeometryGrid<Dune::YaspGrid<2>,
>        Dune::IdenticalCoordFunction<double, 2>, std::allocator<void> > >'
> requested here
>    iteratorEquals(g);
>    ^
> test-geogrid.cc:84:3: note: in instantiation of function template specialization
> 'gridcheck<Dune::GeometryGrid<Dune::YaspGrid<2>,
>        Dune::IdenticalCoordFunction<double, 2>, std::allocator<void> > >'
> requested here
>    gridcheck( geogrid );
>    ^
> test-geogrid.cc:131:3: note: in instantiation of function template
> specialization 'test<Dune::GeometryGrid<Dune::YaspGrid<2>,
>        Dune::IdenticalCoordFunction<double, 2>, std::allocator<void> > >'
> requested here
>    test<GeometryGrid>(gridfile);
>    ^
> ../../../dune/grid/geometrygrid/gridview.hh:27:11: note: candidate constructor
> (the implicit copy constructor) not viable: no known conversion from
>        'const GridImp' (aka 'const GeometryGrid<Dune::YaspGrid<2>,
> Dune::IdenticalCoordFunction<double, 2>, std::allocator<void>
>> ') to 'const
>
> Dune::GeoGrid::GridView<Dune::GridView<Dune::DefaultLeafGridViewTraits<const
> Dune::YaspGrid<2>, 4> >, Dune::IdenticalCoordFunction<double, 2>,
>        std::allocator<void>, 4>' for 1st argument
>      class GridView;
>            ^
> ../../../dune/grid/geometrygrid/gridview.hh:115:7: note: candidate constructor
> not viable: requires 2 arguments, but 1 was provided
>        GridView ( const Grid &grid, const HostGridView &hostGridView )
>
> _______________________________________________
> Dune-devel mailing list
> Dune-devel at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune-devel

-- 
Dr. Martin Nolte <nolte at mathematik.uni-freiburg.de>

Universität Freiburg                                   phone: +49-761-203-5630
Abteilung für angewandte Mathematik                    fax:   +49-761-203-5632
Hermann-Herder-Straße 10
79104 Freiburg, Germany




More information about the Dune-devel mailing list