CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Native Meshers: snappyHexMesh and Others (
-   -   Trouble with stl file: surface not closed (snappyHexMesh) (

sfalsharif April 2, 2011 06:04

Trouble with stl file: surface not closed (snappyHexMesh)
3 Attachment(s)
Hi all,

I'm trying to create a mesh for internal flow inside a pump intake sump. I created a simplified geometry in SolidWorks and saved it as a .stl file. A picture of the geometry is attached. It consists of an open-top rectangular box representing the sump walls, covered at the top with a plane where I plan to have a patch representing the water level. An outlet pipe is partially submerged into the sump, and there is a rectangular opening at the bottom of the sump on one side representing an inlet. I've added plane lids at the inlet and pipe outlet to close the geometry and to create patches for defining the necessary boundary conditions.

The problem I have is that, even though I specify a location inside the sump for meshing in snappyHexMeshDict, cells from the background mesh outside the target domain do not get removed.

When I checked with surfaceCheck (log file attached), it says that the geometry is not closed. I am not sure what I am doing wrong since the lids on the inlet and outlet should ensure that the geometry is closed.
I've also attached the (compressed) stl file for reference.

Any help or advice is highly appreciated.


wyldckat April 2, 2011 07:13

Greetings sfalsharif,

I saw a thread about such a problem almost a year ago and here is the solution:

Originally Posted by vinz (Post 253476)
I would say that there must be a hole somewhere. It is sometime difficult to find, but there must be one. The last time I had a similar problem I used the program AdMesh which is free. With the option --fill-holes, it worked for me and gave me a watertight surface. You can give it a try.

Best regards,

sfalsharif April 2, 2011 17:18

Hi Bruno,

Thanks for bringing AdMesh to my attention, it looks like something that might come in handy some time. Unfortunately, in this case it has not solved my problem. Apparently it added some facets, but surfaceCheck still says the resulting surface is open for some reason. I still have cells from the background mesh outside my desired computational domain.
I wonder if SolidWorks is a good choice for creating stl files for this purpose? Should I try something else?
What I plan to test tomorrow is to create a single part blind hollow box stl and try meshing that, just to see if the rest of the steps (e.g. snappyHexMeshDict) are OK.

Any further suggestions are welcome :)


wyldckat April 3, 2011 05:53

Hi Sharaf,

I've just visually checked the STL you posted and it seems the lid for the tube was STL'ized as an independent surface, which lead to various small holes due to the unconnected vertices between the lids and the interior tube wall.

I would test generating this geometry without the tube and see how it behaves. Then on another test simply add the hole with lid where the tube goes in; this test should reveal the same bug as the original lid+tube.

The other test possibility would be to change the lid to a bigger slate that covers the tube completely, like cutting it through.

Other things to test would be forcing the lid to be attached to the tube in SolidWorks, if possible. Another would be increasing the export STL resolution.

I know that 3D CAD in SolidWorks and any other similar programs always have these kinds of quirks and kinks. What looks good on paper, still needs very detailed work on the 3D geometries for CFD and FEM simulations. If you don't properly define relations between objects, the export processes will always leave out important details that you didn't include in the first place! ;)

Best regards,

All times are GMT -4. The time now is 16:15.