Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consolidate use of Triangle #2

Closed
j-fu opened this issue Nov 19, 2019 · 6 comments
Closed

Consolidate use of Triangle #2

j-fu opened this issue Nov 19, 2019 · 6 comments

Comments

@j-fu
Copy link
Member

j-fu commented Nov 19, 2019

The use of Triangle in the various Julia packages needs to be consolidated.

We have TriangleMesh by @konsim83 and Triangle by @furio . Both hide the full functionality of Triangle behind their particular mesh structure.
In this package I need yet another particular mesh structure (I need triangles, triangle attributes, segments, segment markers). I was not able to access these data with either package.
I think there should be one module e.g. TriangleRaw which gives full Julianic access to Triangle which everyone can use. Based on @konsim83 's code (which has some good architectural ideas within this respect) I made a prototype for this which sits in the subdirectory src/triangle of this package. Before making yet another Triangle package out of this I suggest to try to have some consensus.
Same IMHO would be good for TetGen and possibly other mesh generators. CC to @SimonDanisch and @ChrisRackauckas .

Jürgen (Fuhrmann)

PS: What is the appropriate place for discussing this ? It is on the intersection of geometry and PDEs...

@furio
Copy link

furio commented Nov 20, 2019

Hi,

I'm open to an expansion of Triangle if necessary. The lib started as a wrapper for a specific use case, with the wish to make it more generic with time (that I didn't have anymore).

If you've any patch/idea ecc I'm open to merge in the main repo (or add you or who wants to collaborate).

@j-fu
Copy link
Member Author

j-fu commented Nov 20, 2019

Hi, I am also in contact with @konsim83 of TriangleMesh and in the moment more or less plan a pull request to his package (just because it is easier for me to navigate and to modify). I can find time for this around Friday.
Structurally, I am not sure in the moment which of your packages could be seen as a primary one.
My main interest is to have an interface which maps the C triangulateio to a julia structure just consisting of all possible arrays I think there should be exactly one package which has this functionality. It could be part of either Triangle or TriangleMesh, I then would use the one which provides this functionality. Alternatively, we create TriangleRaw (tentative name) and all three interface this one.

@furio
Copy link

furio commented Nov 21, 2019

I think that, at least mine, doesn't have all the stuff to be a generic entrypoint: I did all the stuff to be able to bind the lib from every OS (NativeInterface section) then used it for a narrow use-case.

I think your suggestion to make a package that works on raw-input/output (modernizing the build process as well) is a good idea. We make the interface as stupid as possible, maybe simplyfing the switches access (kinda like i did with https://github.com/cvdlab/Triangle.jl/blob/master/src/NativeInterface/options_structure.jl ).

Then everyone uses as it wants (myself included). If we do smth like this I can donate the Triangle name (i hope there is a way to do it) to such lib.

@j-fu
Copy link
Member Author

j-fu commented Nov 21, 2019

Sounds like a plan:

  • I would create a TriangleRaw package in the next couple of days without registering it
  • @furio , @konsim83 and @j-fu would be authors
  • We check if our packages work with the new version
  • We figure out the name issue
  • With @SimonDanisch we figure out if this can go into JuliaGeometry

@konsim83
Copy link

Sounds like a plan! :-)

@j-fu
Copy link
Member Author

j-fu commented Dec 1, 2019

So here is my attempt on the triangle package: TriangleRaw. Let us continue there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants