Hi @geuzaine,
Thank you for your suggestion, finally I was able to remesh the skin of the geometry as it can be seen in the figure.
Once all surfaces are generated I define the corresponding volume in order to have a volume mesh(see code).
gmsh.model.mesh.createGeometry()
surfaces = gmsh.model.getEntities(2)
loopSurface = gmsh.model.geo.addSurfaceLoop([surfaces[i][1] for i in range(len(surfaces))])
a=gmsh.model.geo.addVolume([loopSurface])
volume=gmsh.model.addPhysicalGroup(3,[a])
gmsh.option.setNumber("Mesh.Algorithm3D", 9)
gmsh.option.setNumber("Mesh.MeshSizeMin",10)
gmsh.option.setNumber("Mesh.MeshSizeMax",10)
gmsh.model.geo.synchronize()
gmsh.model.mesh.generate(3)
However when I am trying to mesh the volume I am getting the following errors.
Triangle not found for first derivative at uv=(464.138,12.8658) on discrete surface 2 ( Surface 2 is the top surface)
Info : Tetrahedrizing 14637 nodes...
Info : Done tetrahedrizing 14645 nodes (Wall 0.208965s, CPU 0.206685s)
Info : Reconstructing mesh...
Info : - Creating surface mesh
Info : - Identifying boundary edges
Info : - Recovering boundary
Error : PLC Error: A segment and a facet intersect at point
A priori I can not see where is the error. I attach you the skin mesh file in order to test it.
Thank you once again!!!!
Best Regards
Uxue
Hello again,
I have followed the idea that you proposed(@geuzaine) to me last week in order to mesh the discrete curved surfaces (skin).
The methodology followed is in based the following points:
In order to fulfill the previously mentioned condition I have used the transfinite tool where I have set the number of segments in each curve. However, when I mesh it again, no apparent changes are observed.
Likewise, once I generate the geometry of the skin surfaces from the coarse triangulation and I remesh it this kind of big element appears in the corners (see figure 3) .
As it can be seen, when I am remeshing, new nodes are only added to surfaces , while no new nodes are added on the curves.
That is why I would like to ask you if there is any way to assign meshing constraints on the lines and not only on the surfaces.
If you want I can attach you an example of what I am doing, maybe is easier to see why this problem happens
Thank you very much in advance
Best Regards
Uxue
Thank you very much for you quick answer!!
I am going to try applying your proposed solution, if it works, it seems nice to me adding to the demo. However, I am pretty new using gmsh, so maybe I need your help if it is ok for you.
Following your proposed solution, I would like to ask you the following points:
Has Gmsh any tool in order to define a coarse triangulation between the top/bottom side or it should be defined in my code previously?.
Do you know if createGeometry tool is able to differentiate in one step difference surfaces of the skin? ( I would like to define each one in a different physical group since they are going to have different boundary condition for my hydraulic problem [see figure]). If it is not possible, I understand that I could define a coarse triangulation for each surface belonging to one physical group and use createGeometry step by step in each surface. Is it true?
Thank you in advance
Best Regards
Uxue
Hello!! I am getting problems when I try to generate a surface mesh between Nurb Curves and Discrete Curves. In order to understand my issue I am going to try explaining what I am trying to do.
If a I use addPlaneSurface since my skin surface is not a plane surface I can not get correct results as the figure 3 shows
Figure 3
and If I use addSurfaceFilling I get the following error:
Error : Cannot interpolate ruled surface with discrete bounding curves
Does anyone know how I could solve this problem??
I would really appreciate any help in order to solve this problem
Thank you in advance
Best Regards Uxue