Skip to content

#890 gmsh-reader fails to compile

Metadata

Property Value
Reported by Jö Fahlke (jorrit@jorrit.de)
Reported at Mar 1, 2011 17:39
Type Bug Report
Version Git (pre2.4) [autotools]
Operating System Unspecified / All
Last edited by Christian Engwer (christi@conan.iwr.uni-heidelberg.de)
Last edited at Feb 19, 2013 18:24
Closed by Christian Engwer (christi@conan.iwr.uni-heidelberg.de)
Closed at Feb 19, 2013 18:24
Closed in version Unknown
Resolution Fixed
Comment At least it's not reproducible anymore...

Description

Since dune-common trunk@6366 certain parts of the gmsh-reader fail to compile. It appears the boundary segments are instanciated with a dimension not matching the grid. dune-common@6366 started prohibiting certain automatic conversions (such as FieldVector<K, 2> to FieldVector<K, 3>), so compilation fails now. This was not a problem previously, because the offending code was compiled but probably never executed.

One way to trigger the problem is to compile any of the 2D gridinfo-gmsh utilities in dune-grid. The error message looks like this:

Making all in gridinfo-gmsh make[3]: Entering directory /home/joe/src/dune-noopt/dune-grid/utility/gridinfo-gmsh' if g++ -std=c++0x -DHAVE_CONFIG_H -I. -I. -I../.. -I/home/joe/src/dune-noopt/dune-common -I../.. -I/usr/include/alberta -DALBERTA_DIM=2 -DENABLE_ALBERTA -UNDEBUG -ggdb3 -O0 -Wall -Wno-missing-braces -MT dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.o -MD -MP -MF ".deps/dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.Tpo" -c -o dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.o test -f 'gridinfo-gmsh-alberta-2d.cc' || echo './'gridinfo-gmsh-alberta-2d.cc; then mv -f ".deps/dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.Tpo" ".deps/dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.Po"; else rm -f ".deps/dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.Tpo"; exit 1; fi In file included from ../../dune/grid/utility/gridinfo-gmsh-main.hh:18, from gridinfo-gmsh-alberta-2d.cc:16: ../../dune/grid/io/file/gmshreader.hh: In member function ‘void Dune::GmshReaderParser<GridType>::pass2HandleElement(FILE*, int, std::map<int, unsigned int, std::less<int>, std::allocator<std::pair<const int, unsigned int> > >&, const std::vector<Dune::FieldVector<double, Dune::GmshReaderParser<GridType>::dimWorld>, std::allocator<Dune::FieldVector<double, Dune::GmshReaderParser<GridType>::dimWorld> > >&, int) [with GridType = Dune::AlbertaGrid<2, 2>]’: ../../dune/grid/io/file/gmshreader.hh:429: instantiated from ‘void Dune::GmshReaderParser<GridType>::read(const std::string&) [with GridType = Dune::AlbertaGrid<2, 2>]’ ../../dune/grid/io/file/gmshreader.hh:664: instantiated from ‘static GridType* Dune::GmshReader<GridType>::read(const std::string&, bool, bool) [with GridType = Dune::AlbertaGrid<2, 2>]’ ../../dune/grid/utility/gridinfo-gmsh-main.hh:102: instantiated from here ../../dune/grid/io/file/gmshreader.hh:611: error: no matching function for call to ‘Dune::<unnamed>::GmshReaderQuadraticBoundarySegment<3, 3>::GmshReaderQuadraticBoundarySegment(Dune::FieldVector<double, 2>&, Dune::FieldVector<double, 2>&, Dune::FieldVector<double, 2>&, Dune::FieldVector<double, 2>&, Dune::FieldVector<double, 2>&, Dune::FieldVector<double, 2>&)’ ../../dune/grid/io/file/gmshreader.hh:127: note: candidates are: Dune::<unnamed>::GmshReaderQuadraticBoundarySegment<3, 3>::GmshReaderQuadraticBoundarySegment(Dune::FieldVector<double, 3>, Dune::FieldVector<double, 3>, Dune::FieldVector<double, 3>, Dune::FieldVector<double, 3>, Dune::FieldVector<double, 3>, Dune::FieldVector<double, 3>) ../../dune/grid/io/file/gmshreader.hh:125: note: Dune::<unnamed>::GmshReaderQuadraticBoundarySegment<3, 3>::GmshReaderQuadraticBoundarySegment(const Dune::<unnamed>::GmshReaderQuadraticBoundarySegment<3, 3>&) make[3]: *** [dune_gridinfo_gmsh_alberta_2d-gridinfo-gmsh-alberta-2d.o] Fehler 1 make[3]: Leaving directory /home/joe/src/dune-noopt/dune-grid/utility/gridinfo-gmsh'