[Dune] Problem mit GmshReader

Jö Fahlke jorrit at jorrit.de
Tue May 26 14:23:30 CEST 2015


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 811 bytes
Desc: Digital signature
URL: <https://lists.dune-project.org/pipermail/dune/attachments/20150526/238bcd19/attachment.sig>


More information about the Dune mailing list