CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] Using STL Data with ICEM CFD/AI-Environment (

Shawn Givler January 13, 2010 15:13

Using STL Data with ICEM CFD/AI-Environment
I have about 2 years experience using ICEM CFD/AI-Environment on creating CFD tet-prism and tet-prism+hex core meshes for ANSYS CFX. In this experience I have always taken IGES or STEP geometry data, performed geometry repair, set up the mesh metrics, and generated surface/volume meshes via Octree/Delaunay method, performed mesh smoothing, and generated the prism mesh with resmoothing. I believe this is the standard methodology recommended to follow for generating CFD meshes for complex geometries.

My experience with STL is that it is what I would call a triangulated surface mesh of the geometry and contains no real geometry information. As a result, the standard process which includes “geometry repair-cleanup” is not applicable. As almost all STL meshes suffer very poor quality triangulation and can not be used to generate tet volume meshes (via Delaunay method for example) is there a method within ICEM that allows remeshing of the STL triangulation in preparation for tet-volume meshing? Can you describe what the “mesh > facets” option in ICEM is best used for? Is this an alternative? Is there an alternative methodology to handle volume meshing using “raw” STL data?


PSYMN January 14, 2010 09:34

STL works well in ICEM CFD...
Hello Shawn,

Probably about 25% of our customers use faceted data or a combination of faceted data and CAD on a regular basis.

I usually bring in STL data as geometry, If it is closed then I can extract sharp features with build topology and run the Octree Tetra mesher. This mesher will walk over all the overlaps, bad triangles, etc. and give you a reasonable mesh. From there you can run Delaunay or whatever.

Other times I may get a model that has poor STL. These models may have large holes (Perhaps even just a partial scan), or perhaps the facets are over lapping so much that extracting the sharp features gives far too much data. There are a variety of faceted geometry repair tools that can be used to fix these problems. Some are very special, others are more like the mesh editing type options, except that they work on the facets instead of the elements. For instance, if an edge were not well defined, I could create a curve to define it better and then fit the edge to the curve. There are also commands to close holes or chop up the facets, etc.

The main hassle with these Faceted geometry tools is that they frequently require you to select the entity before editing it. If I am working with the routine commands, I very often just convert the facets to mesh and use the mesh editing tools instead (faster for lots of operations). So, for the above example with the poorly defined feature curves, I could convert the facets to mesh, then create a geometry curve or points to represent my feature, then associate and project the specific nodes to that point using the mesh editing commands. If a particular surface was to be flat, I could set the nodes on that feature to a specific Z value, I could merge away overlaps, etc. I could even use the element creation tool to build facets from the bottom up or use the mesh from edges command (with project to surface off) to close large holes.

In the end, I could delete my previous faceted geometry and convert the mesh to facets. Build in sharp features to get your curves and points (it is a pop-up option during the mesh to facets process).

It is likely that this STL mesh would still not be suitable for direct use by Delaunay, so setup your sizes and run Octree instead. This will give you a surface mesh you can use. Smooth the heck out of it with the Laplace smoother and then pass it to Delaunay.

There are/were some tutorials for this out there. I even made an advanced class a few years ago, but I lost the final ppt. I did find these pics though…

For instance, here is an imported faceted geometry made with an optical scanner…


With very little effort, I could use cut planes to trim off the ragged edges… [IMG]file:///C:/DOCUME%7E1/sppereir/LOCALS%7E1/Temp/msohtmlclip1/01/clip_image004.gif[/IMG]

Next, I will want to make the circle hole rounder, clean up all the holes, close some holes, remove the bump feature that I didn’t want, etc.

Lets zoom in on a hole…

Using the Faceted Geometry Repair tool to close holes, I select an edge and flood fill select to get all the neighbors (hot key l)

Then, hit apply and the hole is filled.

To remove a feature, I select facets and delete them. In this case, I first selected them and moved them to a new part so you could see the color difference.


Then I deleted the blue part.


Then I use the first procedure to fill in the resulting hole…


To make the needed holes smoother, I used the geometry creation tools to create a curves (mid point from three points, then a circle from that mid-point and two of the original points)…

Then there is a tool to fit the faceted edges to the curves…

When you hit apply, the data is repaired…


Using these methods, I was able to quickly clean up the model. But these facets are still ugly (and in other models may even include long edge to edge facets), probably not the right mesh size and generally not suitable for direct volume meshing…


So I can create a surface mesh on this geometry… You can use the Patch dependent method as in this FEA example…

Or you could use the patch independent (Octree Tetra) method, as I did here. Sizes are set the same way, curves and points (extracted or created) still cause node association, etc. If your volume model still has a hole, just pick the option to keep the surface mesh. Then use the single edge diagnostic to find the holes and close them as a mesh editing step…

Anyway, these repairs are not always needed. In the above example, I didn’t really refine the mesh enough to worry if the hole was a real circle or not, but if you need the tools, they are there.

PSYMN January 14, 2010 09:38

5 Attachment(s)
Oh well, I thought the image thing might work... I guess it didn't. I will attach a few here. They show the intial state and then a couple fixes...

PSYMN January 14, 2010 09:42

Pics 2
5 Attachment(s)
And here are a few more.

These show how to remove a feature and then close the hole. I did the unnecessary extra step of putting the feature into a new part...

The last pic is the final cleaned up stl.

PSYMN January 14, 2010 09:55

Pics 3
5 Attachment(s)
And the last set...

The first is the above model meshed with patch dependent quad (it is an FEA example after all). The second is the same part meshed with Patch independent Octree Tetra.

The third is a before and after with a Porsche scan. This was actually a scan of a Toy Porsche ;)

The last two were a before and after of a simple STL dragster. A far field box was created in ICEM CFD, Intersection curves were created between the parts, basic sizes were set, a material point was created and the octree mesh was computed. Pretty straight forward if the model is closed.

Sumi January 5, 2011 09:01

Close holes in stl for a volume mesh
2 Attachment(s)
Hi. I’m a newcomer in ICEM CFD and would use it to mesh a complicated stl geometry for a FEM analysis.
The geometry exhibits some holes in the surface which must be close.

When I close this holes with mesh triangulars (Mesh from Edges) or facete triangulars (Close faceted holes) and make a volume mesh afterwards the holes are not be closed (i.e. the volume mesh go throw the facete geometry - see picture below).

Can anybody help me how I can close the holes alternatively?

PSYMN January 8, 2011 15:51

Sorry, I can't really tell what you are showing me in your pictures, but if I just focus on "The mesh goes thru the geometry", that means there is still a hole.

In ICEM CFD, if there is a hole and the volume mesh leaks to both sides of a wall, the wall is assumed to be a mistake and is removed. This is great when you really have little extra bits of junk, but not if you wanted that wall.

There are two main ways I sort this out...

1) Go to Mesh tab => Params by parts and turn on the option for "internal wall" for the part in question. This way, even if you get the same volume on both sides, it won't delete the wall because it is just an internal wall. You can then find the holes with "single edges", close it and run flood fill again.

2) You can create a new material point or even an ORFN material point in that region that you think should be outside the model. When the mesh falls thru the leak and finds that material point, you will be notified and able to see where the leak happened... Then you can fix the leak, etc.

Best regards,


PSYMN January 8, 2011 15:53

Material Point Placement rather than real leakage?
There is a third possibility that we sometimes see... You may have put the material point on the surface... (it happens some times). A material point on the surface of the geometry can seed both sides of the geometry. It is not really a leak, but the flood fill happens on both sides of the wall.

Just make sure your material point is inside the intended volume.

Sumi January 9, 2011 09:46

Leak filled
Dear Simon,
thanks a lot for your reply. I currently used your first recommend way (toggle "internal wall" in "part mesh setup", find holes with "single edges", close it, run "flood fill" and make a volume mesh).
All the holes are closed in the volume mesh, i.e. no volume mesh goes thru the (adverse) geometry. :D

The solution of my problem was, I've not make a check mark by "internal wall" in "part mesh setup".

Best regard,


wanna88 January 17, 2012 06:27


Im a new beginner in ICEM CFD.
I have very "bad and raw" image of STL from CT scan.
Can someone help me (any tutorial/ or steps that can be followed) how to generate a mesh in this image in order to use it in Fluent analysis?

Thank you so much.

PSYMN January 17, 2012 10:00


If you can access the sales portal (you just need the customer number from your license file) you can download the "Aorta" tutorial that takes you thru the steps to mesh an Aorta scan taken of one of our ANSYS colleagues during a routine physical...

Best regards,


wanna88 January 17, 2012 21:08


Thank you so much for the info.
I have uploaded the tutorial. However, I cannot create the part.
My whole geometry come as one part. How I 'm going to create the inlet and outlet?

cdegroot February 21, 2012 11:41


I just came across this thread because I am also working with some STL data coming from a CT scan. To create an inlet and outlet, you will need to create surfaces. For my geometry, I ended up creating surfaces that intersected my geometry at the location where I wanted my inlet. I then created a curve by intersecting the surfaces, used that curve to cut my STL surface, then deleted the unneeded part. Finally I used the curve to create a new surface representing my inlet. Depending on your geometry, you may be able to build topology to get the necessary curves, but mine wasn't clean enough, so I had to use the procedure above. Hope it helps.


a.sarami August 19, 2013 13:51

the same problem
I have also the same problem. I have STL surface mesh from MRI with one input and one output. The mesh is only on the surface. I read the Aorta example and tried to add two inlet and outlet parts, but to no avail. I cannot select inlet and outlet parts because there is actually no surface there, they are only two holes!
would you please help me how to get the volumetric mesh out of this surface and assign BCs on inlet and outlet?

cdegroot August 21, 2013 10:42

It has been a while since I worked on this project, but I will try to help. You are going to need to create surfaces for the inlet and outlet if you are to create a volume mesh. I would try to "Build Topology" which should pick up the edges of the surface and create curves there. It probably will be a number of curves that you will have to merge in order to create curves representing the perimeters of the inlet and outlet surfaces. From there, you can create surfaces for the inlet and outlet using their bounding curves using one of the tools that create surfaces.

a.sarami August 21, 2013 11:39


Originally Posted by cdegroot (Post 447181)
It has been a while since I worked on this project, but I will try to help. You are going to need to create surfaces for the inlet and outlet if you are to create a volume mesh. I would try to "Build Topology" which should pick up the edges of the surface and create curves there. It probably will be a number of curves that you will have to merge in order to create curves representing the perimeters of the inlet and outlet surfaces. From there, you can create surfaces for the inlet and outlet using their bounding curves using one of the tools that create surfaces.

Thank you very much. And After I made Inlet and Outlet, How to create the volume mesh on the inner fluid zone? I computed the volume mesh but cutting the plane I noticed that only surface is meshed and the inner part of the shell is empty, there is no solid body there, just an empty shell.
Do you know how to generate solid body from an empty shell?

PSYMN August 26, 2013 11:50

You may just need to learn how to display volume mesh...

Check the mesh branch of the model tree... Is the volume mesh turned on? Is the volume part turned on?

Click on mesh info... Does it say you have any tetra elements?

Sipher May 28, 2015 15:05

Hi all
I just started learning ICEM and I want to use it to generate a mesh for a STL file of an airway tree from CT images, which will then be imported to Fluent for CFD analysis. I read and followed every step in the tutorial above of meshing an aorta (, and reproduced the same results. However my complaint is that it doesn't explain anything regarding why each step is needed and what goal should be achieved. At the end when I started looking at my own geometry file I still feel I lack enough knowledge to make correct judgements. For example:
1. on p128 why do I need to extract the feature curves from the inlet and outlet surfaces? How is this going to affect the meshing result?
2. how does a material point work? I guess the software is using some algorithm to differentiate what is inside and outside? Do I need to make sure my STL file is completely watertight if I want to do the same on my own geometry data?
3. before meshing, do I need to do anything to improve the smoothness of the STL file? Sometimes they can be very ugly when converted from CT images.
4. why does everyone prefer generating a Octree mesh before Delauney? The same thing happened here: and here Is this a general routine in this field?
I can keep going on but perhaps I should first stop here. If there are any better learning materials for ICEM I would appreciate it if you can share them with me. Thanks in advance.

All times are GMT -4. The time now is 21:34.