[Dune-devel] New GridView stuff fails test-geogrid
Oliver Sander
sander at igpm.rwth-aachen.de
Mon Nov 18 09:36:30 CET 2013
I agree. In fact I didn't even know until very recently that I am supposed to
implement the views for the grids I maintain. Plus, that doesn't appear to be
mentioned anywhere. Near the leaf/levelView methods in GridDefaultImplementations
it certainly doesn't say "will disappear eventually" or something along those
lines.
Which doesn't mean I necessarily object to removing the defaults.
Cheers,
Oliver
Am 18.11.2013 08:12, schrieb Dr. Olaf Ippisch:
> Dear Martin,
>
> I do not completely agree with your view. In my opinion it does not make
> sense, that the same working code is duplicated for each grid. I thought
> the basic idea of default implementations is to just reimplement the
> code if the default implementation is to slow or not applicable.
>
> Best regards,
> Olaf
>
> Am 16.11.13 15:13, schrieb Martin Nolte:
>> 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
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 551 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune-devel/attachments/20131118/333e0a44/attachment.sig>
More information about the Dune-devel
mailing list