-
Notifications
You must be signed in to change notification settings - Fork 4
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
Implementation of domains, meshes, and quadrature #4
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #4 +/- ##
==========================================
+ Coverage 54.77% 63.61% +8.83%
==========================================
Files 5 12 +7
Lines 199 698 +499
==========================================
+ Hits 109 444 +335
- Misses 90 254 +164
☔ View full report in Codecov by Sentry. |
@tanderson92 The first draft is now ready to be looked at. Not perfect, but it does allow us to use gmsh and visualize things using makie. Let me know if you need help exporting to vtk. |
@maltezfaria There is now VTK support. I have the transition of VTK to an extension half-done, will try to understand the errors I'm seeing with fresh eyes tomorrow (your today). |
@maltezfaria Perhaps I am doing something wrong but I don't like the type piracy enforced by extensions. In order to have "function Inti.vtk_mesh_file" be allowed I need to define a stub somewhere in src/ -- I chose |
I agree with you: this feels hacky. I will find a workaround to have:
|
- define methods inside extensions themselves - add some convenience methods to get extension from `Inti.jl` - this changes the usage, so adapt tests
@tanderson92 Take a look at the changes I proposed and see what you think. I tried to make the extensions as truly independent modules. The upside, IMO, is that it makes more sense how the code is structured, and who owns what. The downside is that the user now has to explicitly load the extension module, and use it in order to interact with the functionality. We could eventually add some boilerplate code so that the user only interacts through |
Interesting. I hope that Extensions support will change in the future as people hit these kinds of issues. It's a strange language design to consider an extension part of a module but require this explicit shadow function declaration. It all looks good to me. |
I will go ahead and merge this soon. I am in the process of adding quadratures. |
I agree with you. It should, at the very least, be better documented. Currently, my model of an extension is very sketchy: it looks syntactically like a module, but the semantics are more nuanced. If we are unhappy with the current usage because e.g. there are too many namespaces for the user to handle, we can create some wrappers in |
This PR implements the basic functionality to talk about some general meshes and domains, as well as to import a mesh from
gmsh
. It uses package extensions to not depend directly on theGmsh
package.Tasks:
vtk
gmsh