> On 10 Oct 2017, at 18:54, phillip mobley <phillipmobl...@gmail.com> wrote: > > Hello Christophe, > > thank you for taking the time to send a response. > > My suspicion was correct then. As much as I would like to use GMSH as a > library, I am not so sure it is the best idea for a user experience. I am > creating this project as open source and I would like anyone to be able to > compile and install the program with ease. I am not sure the skill level of > the users who will use my program. For all I know, they could exclusively be > familiar with GUI based simulators. Additional libraries to compile could be > challenging to them. > > With that in mind, I do not think that using GMSH as a library is the better > option. Including the sources in with the main program though would be better. > > Could you explain a little bit by what you mean that the " API will not > expose any of the internal C++ classes that the algorithms use"? I am > confused by this statement. The source would need to expose all of the > classes that the program/algorithm uses or how would someone be able to > compile the source?
We will expose a simple API to perform the high-level tasks that a mesh generator with an integrated CAD engine and post-processor does. See https://gitlab.onelab.info/gmsh/gmsh/issues/188 for some initial thoughts about this. Typically, the API will allow you to do in C everything that you can currently do in a .geo file, and then more. The C API could of course then be wrapped in Python, Java or whatever. Christophe > > I don't need to add in everything since I am dealing with only 2D meshes. > Specifically quads. I am commenting out the functionality for the 3D meshes > and ignoring those cases. For example, in some functions there are > case-switch statements that are deal with 3D meshes. I am commenting those > out as I do not need them. > > Once I get something built and working, I would step through the code line by > line in order to further refine what I don't need. > > I do hope though that the documentation of the source will come sooner rather > then later. > > On Tue, Oct 10, 2017 at 11:25 AM, Christophe Geuzaine <cgeuza...@ulg.ac.be> > wrote: > > > > On 8 Oct 2017, at 04:35, phillip mobley <phillipmobl...@gmail.com> wrote: > > > > Hello all, > > > > I am attmepting to extract the code from the GMSH API that will be able to > > create a 2D mesh. After looking through the code for a couple of days now, > > I have a question about how the code is structed. > > > > So far, I have been commenting out the sections that deal with 3D. For > > instance, removing any headers that include the SPoint3.h becuase I ma only > > dealing with 2D. > > I wouldn't do that. "2D" meshes in Gmsh are also generated on general (3D) > surfaces. > > > > > However, I have been getting the impression that the 2D case utilizes some > > of the 3D data structures. At first, I thought that the data structures for > > 2D are seperate from the 3D data structures. As in, if I wanted to mesh in > > 2D, then I would only be worried about the data structures related to 2D > > meshing (such as SPoint2.h). After examining the code for a bit though, I > > am worried that this may not be the case. I am starting to get the feeling > > that the data structures for the 3D (ex. SPoint3.h and SVector3.h) are also > > used in the 2D meshing execpt, the z value is set to 0 (or another constant > > number if the surface that the created mesh is on is an extruded surface). > > > > My question to the community or whoso ever may be able to answer is, does > > GMSH utilize the data structures for 3D in a 2D meshing case? Even if the > > mesh will always be in the x-y plane? > > Yes. > > As a general rule, with the current version of Gmsh I would only advise to > use it as a library if you really need to, as there is no documented API. A > stable API for programmers will be made available in the future (our goal is > Gmsh 4.0); and this API will not expose any of the internal C++ classes that > the algorithms use. > > Christophe > > > > Or, does a 3D mesh exclusively use the 3D data structures (ex. SPoint3.h) > > and a 2D mesh exclusivly uses the 2D data structures (ex. SPoint2)? > > > > Let me give another example to hopefully explain what I am asking. If you > > look at the SOrientedBoundingBox.h (and corresponding .cpp file), there is > > a class called SOrientedBoundingBox. The constructor for this class takes > > the SVector3 class. In the GEntity class, there is an instance of the > > SOrientedBoundaingBox. The constructor for the GEntity class even calls the > > contructor of the SOrientedBoundingBox object. Since the > > SOrientedBoundingBox class uses the SVector3 data type, I conclude that > > this class is used when you need to create a 3D mesh. However, I am > > creating a 2D mesh. Will there every be a case that the 2D mesher calls or > > utilizes the SOrientedBoundingBox. Or, would the 2D mesher utilize the > > SOrientedBoundingRectangle class? > > > > Also, as a bonus question, what is the purpose of the > > SOrientedBoundingRectangle/SOrientedBoundingBox? Is this used for meshing > > or is this mainly used in the GUI? How are these classes and what are their > > purpose? I > > > > I will give a third example, in the GEdge class, there is a variable called > > _normals. This is a mutable map of MVertex *and SVector3. Will the 2D > > meshing case every need access to this data type? Or will this only be used > > in the 3D meshing case? > > > > I hope that my explanation clearly explains the issue that I am having. If > > not, please let me know. I would very much to make sure that I am clearly > > explaining the issue that I am having. > > > > Thank you all for your time and I look forward to who so ever replies. > > > > > > _______________________________________________ > > gmsh mailing list > > gmsh@onelab.info > > http://onelab.info/mailman/listinfo/gmsh > > > -- > Prof. Christophe Geuzaine > University of Liege, Electrical Engineering and Computer Science > http://www.montefiore.ulg.ac.be/~geuzaine > > Free software: http://gmsh.info | http://getdp.info | http://onelab.info > > -- Prof. Christophe Geuzaine University of Liege, Electrical Engineering and Computer Science http://www.montefiore.ulg.ac.be/~geuzaine Free software: http://gmsh.info | http://getdp.info | http://onelab.info _______________________________________________ gmsh mailing list gmsh@onelab.info http://onelab.info/mailman/listinfo/gmsh