Support for custom 3D domain boundaries (non-rectangular) in geological modeling
What is your question? Currently, GemPy defines the modeling domain using a rectangular bounding box (xmin/xmax/ymin/ymax/zmin/zmax). However, many real-world applications require modeling geology within irregular, user-defined volumes (e.g., fault-bounded blocks, mineralized zones, or custom survey areas) I propose supporting custom 3D domains via vertex-defined polyhedrons or file imports (VTK/JSON). This would confine interpolation to specified boundaries, avoiding inefficient post-processing cropping. While workarounds exist (e.g., external clipping), native support would streamline workflows. Is this feasible in current/future versions?
Hi @hanppyyong, thanks for the suggestion. This issue has been on the radar but to be honest I do not think it is very high on our ToDo List.
As a fix and depending on your exact model area it might make sense to rotate the input data to reduce the amount of overhead computation. Note also that the use of octree refined grids compared to regular grids (both available in gempy3) might actually make the overhead negelctible.
Alternatively also note that you can use custom grids, meaning you can basically compute a solution for any set of locations you pass. While this would not allow you to use gempy's visualization and meshing tools it might be useful if you are just interested in the solution (element ID) per given location.
And finally of course - this is an Open-Source project after all - if you implement a nice solution for this and want it integrated into gempy we would be happy to see your Pull request and help merging it into the main repository.
Cheers, Jan
Thank you very much for your response. Currently, I am working on 3D geological modeling for arbitrary sites. I plan to divide the site into grids myself before proceeding with the modeling, but I am still in the experimental stage and haven't achieved it yet. My coding skills are not very strong, so I'm unsure whether I can contribute this functionality to the open-source library. However, if I succeed in implementing it, I will share my approach.
Sounds great, good luck and let us know if you need any further assistance.