[Dune] Problem mit GmshReader
conf86 at web.de
conf86 at web.de
Tue May 26 21:00:09 CEST 2015
Hallo,
vielen Dank für die schnelle Antwort!
Ich habe es nun so geschrieben:
typedef Dune::UGGrid<2> GridType;
std::shared_ptr<GridType> gridp(Dune::GmshReader<GridType>::read("TEST.msh"));
GridType &grid = *gridp;
bekomme aber immer noch diesen Fehler:
libtool: link: g++ -std=c++11 -g -O2 -Wall -o TEST TEST-TEST.o -L/lib /lib/libugS2.a /lib/libugS3.a /lib/libdevS.a -lm /lib/libdunepdelab.a /lib/libdunetypetree.a /lib/libdunegrid.a /lib/libdunegeometry.a /lib/libdunecommon.a -llapack -lblas -lgfortran -lquadmath
TEST-TEST.o: In function `std::_Sp_counted_ptr<Dune::UGGrid<2>*,(__gnu_cxx::_Lock_policy)2>::_M_dispose()':/usr/include/c++/4.8.3/bits/shared_ptr_base.h:290: undefined reference to `Dune::UGGrid<2>::~UGGrid()'
TEST-TEST.o: In function `__shared_count<Dune::UGGrid<2>*>':/usr/include/c++/4.8.3/bits/shared_ptr_base.h:456: undefined reference to `Dune::UGGrid<2>::~UGGrid()'
TEST-TEST.o: In function `Dune::GmshReader<Dune::UGGrid<2>> ::read(std::string const&, bool, bool)':
/lib/include/dune/grid/io/file/gmshreader.hh:670: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::GridFactory()'
/lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::createGrid()'
/lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::~GridFactory()'
/lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::~GridFactory()'
collect2: error: ld returned 1 exit status
Viele Grüße
> Gesendet: Dienstag, 26. Mai 2015 um 14:23 Uhr
> Von: "Jö Fahlke" <jorrit at jorrit.de>
> An: conf86 at web.de, dune at dune-project.org
> Betreff: Re: [Dune] Problem mit GmshReader
>
> Am Tue, 26. May 2015, 14:20:45 +0200 schrieb Jö Fahlke:
> > Date: Tue, 26 May 2015 14:20:45 +0200
> > From: Jö Fahlke <jorrit at jorrit.de>
> > To: conf86 at web.de
> > Cc: dune at dune-project.org
> > Subject: Re: [Dune] Problem mit GmshReader
> > X-No-Auth: unauthenticated sender
> > X-No-Relay: not in my network
> > X-No-Auth: unauthenticated sender
> > X-No-Auth: unauthenticated sender
> > User-Agent: Mutt/1.5.23 (2014-03-12)
> > X-Envelope-From: <jorrit at jorrit.de>
> >
> > Am Tue, 26. May 2015, 13:37:14 +0200 schrieb conf86 at web.de:
> > > Date: Tue, 26 May 2015 13:37:14 +0200
> > > From: conf86 at web.de
> > > To: dune at dune-project.org
> > > Subject: [Dune] Problem mit GmshReader
> > >
> > > Hallo,
> > >
> > > ich versuche gerade ein UG-Gitter aus einer gmsh-Datei zu erzeugen.
> > > Ich habe es zunächst so versucht, wie es hier geschrieben steht: https://spline.de/static/talks/dune-project.pdf (Seite 25)
> > >
> > > L. 98 typedef Dune::UGGrid<2> GridType;
> > > L. 99 GridType grid;
> > > L.100 Dune::GmshReader<GridType>::read(grid, "TEST.geo");
> >
> > Yeah, that does not look right. It should be either
> >
> > typedef Dune::UGGrid<2> GridType;
> > std::shared_ptr<GridType> gridp(Dune::GmshReader<GridType>::read(grid, "filename"));
>
> Uh, make that
>
> std::shared_ptr<GridType> gridp(Dune::GmshReader<GridType>::read("filename"));
>
> > GridType &grid = *gridp;
> >
> > or
> >
> > typedef Dune::UGGrid<2> GridType;
> > Dune::GridFactory<GridType> factory;
> > Dune::GmshReader<GridType>::read(factory, "filename");
> > std::shared_ptr<GridType> gridp(factory.createGrid());
> > GridType &grid = *gridp;
> >
> > The second form is usually used when to want to read physical entity numbers
> > (but then read() has additional arguments that are not shown here).
> >
> > Note also that .geo is common as the filename extension for gmsh geometry
> > description files -- but dune reads mesh files (.msh). Gmsh can generate .msh
> > files from .geo files, read the gmsh documentation for the details.
> >
> > Regards,
> > Jö.
> >
> > > und bekomme diese Fehlermeldungen:
> > >
> > > TEST.cc: In function 'int main(int, char**)':
> > > TEST.cc:100:58: error: no matching function for call to 'Dune::GmshReader<Dune::UGGrid<2> >::read(GridType&, const char [11])'
> > > Dune::GmshReader<GridType>::read(grid, "TEST.geo");
> > > ^
> > > TEST.cc:100:58: note: candidates are:
> > > In file included from TEST.cc:18:0:
> > > /lib/include/dune/grid/io/file/gmshreader.hh:667:18: note: static Dune::GmshReader<GridType>::Grid* Dune::GmshReader<GridType>::read(const string&, bool, bool) [with GridType = Dune::UGGrid<2>; Dune::GmshReader<GridType>::Grid = Dune::UGGrid<2>; std::string = std::basic_string<char>]
> > > static Grid* read (const std::string& fileName, bool verbose = true, bool insert_boundary_segments=true)
> > > ^
> > > /lib/include/dune/grid/io/file/gmshreader.hh:667:18: note: no known conversion for argument 1 from 'GridType {aka Dune::UGGrid<2>}' to 'const string& {aka const std::basic_string<char>&}'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:680:18: note: static Dune::GmshReader<GridType>::Grid* Dune::GmshReader<GridType>::read(const string&, std::vector<int>&, std::vector<int>&, bool, bool) [with GridType = Dune::UGGrid<2>; Dune::GmshReader<GridType>::Grid = Dune::UGGrid<2>; std::string = std::basic_string<char>]
> > > static Grid* read (const std::string& fileName,
> > > ^
> > > /lib/include/dune/grid/io/file/gmshreader.hh:680:18: note: candidate expects 5 arguments, 2 provided
> > > /lib/include/dune/grid/io/file/gmshreader.hh:699:17: note: static void Dune::GmshReader<GridType>::read(Dune::GridFactory<GridType>&, const string&, bool, bool) [with GridType = Dune::UGGrid<2>; std::string = std::basic_string<char>]
> > > static void read (Dune::GridFactory<Grid>& factory, const std::string& fileName,
> > > ^
> > > /lib/include/dune/grid/io/file/gmshreader.hh:699:17: note: no known conversion for argument 1 from 'GridType {aka Dune::UGGrid<2>}' to 'Dune::GridFactory<Dune::UGGrid<2> >&'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:708:17: note: static void Dune::GmshReader<GridType>::read(Dune::GridFactory<GridType>&, const string&, std::vector<int>&, std::vector<int>&, bool, bool) [with GridType = Dune::UGGrid<2>; std::string = std::basic_string<char>]
> > > static void read (Dune::GridFactory<Grid>& factory,
> > > ^
> > > /lib/include/dune/grid/io/file/gmshreader.hh:708:17: note: candidate expects 6 arguments, 2 provided
> > >
> > >
> > > Ich habe es dann wie es oben in "candidates are" der Fehlermeldung stand auch so versucht:
> > >
> > > L. 98 typedef Dune::UGGrid<2> GridType;
> > > L. 99 GridType grid;
> > > L.100 Dune::GmshReader<GridType>::read("TEST.geo",true,true);
> > >
> > > da bekomme ich dann allerdings diese Fehlermeldungen:
> > >
> > > TEST-TEST.o: In function `main':
> > > /home/myname/TEST/src/TEST.cc:99: undefined reference to `Dune::UGGrid<2>::UGGrid()'
> > > TEST-TEST.o: In function `Dune::GmshReader<Dune::UGGrid<2> >::read(std::string const&, bool, bool)':
> > > /lib/include/dune/grid/io/file/gmshreader.hh:670: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::GridFactory()'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::createGrid()'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::~GridFactory()'
> > > TEST-TEST.o: In function `main':
> > > /home/myname/TEST/src/TEST.cc:100: undefined reference to `Dune::UGGrid<2>::~UGGrid()'
> > > TEST-TEST.o: In function `Dune::GmshReader<Dune::UGGrid<2> >::read(std::string const&, bool, bool)':
> > > /lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::~GridFactory()'
> > > TEST-TEST.o: In function `main':
> > > /home/myname/TEST/src/TEST.cc:100: undefined reference to `Dune::UGGrid<2>::~UGGrid()'
> > >
> > >
> > > bzw. so wie hier: http://www.uni-graz.at/~haasegu/Lectures/HPC-II/SS12/Talks/kucher_presentation_june_14.pdf (Seite 9)
> > >
> > > typedef Dune::UGGrid<2> GridType;
> > > GridType* grid = Dune::GmshReader<GridType>::read(std::string("TEST.geo"),true,true);
> > >
> > > und die Fehlermeldungen:
> > >
> > > TEST-TEST.o: In function `Dune::GmshReader<Dune::UGGrid<2> >::read(std::string const&, bool, bool)':
> > > /lib/include/dune/grid/io/file/gmshreader.hh:670: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::GridFactory()'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::createGrid()'
> > > /lib/include/dune/grid/io/file/gmshreader.hh:676: undefined reference to `Dune::GridFactory<Dune::UGGrid<2> >::~GridFactory()'
> > >
> > >
> > > Wo könnte hier das Problem liegen? Oder stimmt der Code so nicht?
> > > Welche weiteren Angaben wären denn notwendig, dass man den eigentlichen Fehler finden könnte?
> > >
> > > Vielen Dank im Voraus.
> > >
> > >
> > > Viele Grüße
> > >
> > > _______________________________________________
> > > Dune mailing list
> > > Dune at dune-project.org
> > > http://lists.dune-project.org/mailman/listinfo/dune
> >
> > --
> > Jorrit (Jö) Fahlke, Institute for Computational und Applied Mathematics,
> > University of Münster, Orleans-Ring 10, D-48149 Münster
> > Tel: +49 251 83 35146 Fax: +49 251 83 32729
> >
> > Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das
> > nennen sie ihren Standpunkt.
> > -- A. Einstein
>
>
>
> > _______________________________________________
> > Dune mailing list
> > Dune at dune-project.org
> > http://lists.dune-project.org/mailman/listinfo/dune
>
>
> --
> Jorrit (Jö) Fahlke, Institute for Computational und Applied Mathematics,
> University of Münster, Orleans-Ring 10, D-48149 Münster
> Tel: +49 251 83 35146 Fax: +49 251 83 32729
>
> This message is protected by DoubleROT13 encryption
> Attempting to decode it violates the DMCA/WIPO acts
>
More information about the Dune
mailing list