[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