gempy icon indicating copy to clipboard operation
gempy copied to clipboard

Volume bodies from contact surfaces

Open domist07 opened this issue 4 years ago • 7 comments

Is your feature request related to a problem? Please describe. Exporting the model to CAD Software the surfaces doesn't have a volume but voxel aren't good usable for this kind of software.

Describe the solution you'd like Do you think it is possible (with an additional python package) to mesh the related surfaces to one closed mesh body and export this?

domist07 avatar May 05 '20 09:05 domist07

Hello @domist07,

Just a quick answer: we have several meshing approaches already tested (gmesh, CGAL) that should suit your needs, maybe @MohammadCGRE can have a look?

Also, if I recall your models right: do you have continuous layers (no faults) over the entire domain? Then a simple "vertical thickness" map extraction could work. Not sure if we have this already implemented in gempy (@Leguark ?), but that should not be difficult.

flohorovicic avatar May 05 '20 10:05 flohorovicic

No, I have contained little faults in some models, but I think too that an "vertical thickness" approach could work.

domist07 avatar May 05 '20 10:05 domist07

we need a way to close the surfaces and then we can just use the following

https://tetgen.pyvista.org/examples/sphere.html#sphx-glr-examples-sphere-py

Leguark avatar May 05 '20 10:05 Leguark

@flohorovicic:

Just a quick answer: we have several meshing approaches already tested (gmesh, CGAL) that should suit your needs, maybe @MohammadCGRE can have a look?

can you provide more details about the several tested meshing approaches (e.g with gmesh)? where can I find a guide/worked example? Thank you very much!

nlosacco avatar Jun 01 '20 01:06 nlosacco

Hello @domist07

For the closed surfaces which contains some volumes,

1- you can use the tetgen at Pyvista. Also, you can use CGAL 3D mesh generation, (https://doc.cgal.org/latest/Mesh_3/index.html) and Quartet that made by ( Robert Bridson and Crawford Doran) https://github.com/crawforddoran/quartet

2- Generally, you can define these volumes by your self and represent these volumes by Pyvista (https://docs.pyvista.org/examples/00-load/create-poly.html ).

In order to define the volumes, you need to define the vertices and faces for each voxel. For the Vertices, You can divide your environment by your self based on the X min and max, y min and max, and z min and max. After Vertices, you should try to define the algorithm for the faces. each voxel has 6 faces and each face has two triangles. for more information, you can search for the "procedural meshing"

Hi @nlosacco you can find more information about these methods by

1- Gmesh : (https://gmsh.info/ )

2- CGAL: (https://www.cgal.org/)

MohammadCGRE avatar Jun 01 '20 14:06 MohammadCGRE

@MohammadCGRE thanks for the overview of possibilities! As soon as I have time, I will test it and report here.

domist07 avatar Jun 02 '20 11:06 domist07

@MohammadCGRE thanks a lot for the links. Do you know of any examples showing the workflow from gempy to the mesh through either Gmsh or CGAL?

nlosacco avatar Jun 03 '20 21:06 nlosacco