CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] surface mesh merging problem (

everest June 9, 2010 11:31

surface mesh merging problem
4 Attachment(s)
Hi everybody,
I'm working on a project of simulating DLR-F4 wing-body configuration(half model)with CFX. The orginal unstructured mesh was generated with Octree method using ICEM-CFD. In order to save the number of grid points, I was considering making anisotropic mesh(large aspect ratio along spanwise) on the wing. Then I delteted all the volume mesh and the surface mesh on the wing, and got a structured surface mesh(quads) from some other guy. I intended to concatenate thses surface meshes at the wing body intersection and grow volume meshes from this new surface mesh with bottom-up methods within ICEM-CFD such as Delauney. Some problems occured during the process and I really need suggestions from experienced ICEM users.

1. tris + quads or tris + tris
Now I have triangle surface mesh on the fuselage, symmetry plane and farfiled. Should I directly connected the quds on the wing with tris on the fuselage or first split the quad mesh on the wing into tris? I was suggested converting the wing quad mesh into tris first. Can ICEM grow volume tetras and prisms if I have fuselage tris and wing quds sewn together?

2. surface mesh merging
After loading the geomety and surface mesh respectively, nodes on the wing and fuselage didn't match together at the intersection line. I finally found the "stitch edges" command useful which can make the mesh on both sides conformal. After sewing the surface mesh together, there were still some seemingly bad elements. Manual operatons such as merging and projecting were performed node by node. The whole process was a little tedious and sometimes difficult.

Can someone recommend general proceduals or better guidlines of merging and then fixing surface meshes? Are there convinient commands or operations in ICEM when joining two surface meshs.I could only find demos on volume mesh merging on ANSYS website.

btw, I have another question here. Due to their large aspect ratio, the wing tri mesh splitted from quad mesh seem to have low quality according to the ICEM quality criterion. Should I still have these surface meshes smoothed globally?

3. A weird volome mesh was grown from the sewn surface mesh

I finally elininated some obviously bad elements and went through the mesh checking procedure. Tetra volume meshes were grown using Delauney (with TGlib and and AF), but a fatal error occured. The tetra meshes grew out of my farfield boundary (the red lines in my last attached graphs). There seemed to be some unacceptable large tetras grown out. I really didn't know the reason.

PSYMN June 10, 2010 11:09

Quick Thoughts
1) You can stitch and grow delaunay tetra off quads or tri's. You can also grow prism of either, if you grow the prism first. If you do the delaunay first, you have more trouble because Prism has trouble moving pyramids.

2) Yes, this is not an ideal procedure. There are many faster ways to mesh this model in ICEM CFD. There is a actually a tutorial for bottom up (patch conforming) surface meshing on this F6 (to get higher aspect ratio elements), followed by delaunay and prism, but I don't like it. I think it is faster to do this model with ICEM CFD Hexa or MuliZone. The easiest way is Octree (which you already tried), but it is less efficient.

Perhaps your best option would be to import this wing mesh, then Edit Mesh => Repair => Build mesh topology so it would be properly associated to the geometry (surface and curve projected nodes). Convert the quads to tri's (optional) and then run Octree mesh with the option to keep the existing wing mesh. Then it will generate the octree mesh in accordance with the existing mesh and everything would be automatically connected. Then you could run delaunay to replace the octree volume mesh, etc. There would be hardly any interactive steps. You may have some issues with high aspect ratio mesh along the wing not conforming properly and need to repair a little bit here or there.

Stitch edges is the primary tool for merging edge to edge surface mesh. You would then check for single edges and use a combination of "split edges" and "merge nodes" to clean up any left overs. It is tedious, so I only do it when absolutely necessary.

No, don't smooth this wing surface. These thin high aspect ratio elements do have low quality by all definitions and the smoother will try to fix them. You don't want that, so freeze them. There are several ways to do this, including that you can lock the nodes under Edit Mesh => Repair.

3) Not sure about your weird volume mesh. Did you run your mesh checks before generating that? You will want to make sure you have no overlapping elements or single edges in your model. Delaunay needs a good starting point to produce a good mesh. Garbage in, Garbage out.

everest June 10, 2010 12:20

Simmon, I really appreciate your suggestions. I'll try them ASAP and post new results here.:D

As for the weird volume mesh in the last picture, I once did mesh check and fix errors like dumplicating elements before growing tetra mesh. I might need recheck them carefully.:confused:

everest June 12, 2010 13:28

5 Attachment(s)
After rechecking my combined surface mesh, I found two overlapping tri elements. Finally the surface mesh went through mesh quality checking (Fig. 1) . The volume tetra mesh was then successfully from surface mesh using Delauney (Fig. 2). When I tried to insert prism layer into volume tetras, something went wrong. The final iteration of prism generating kept on running for a rather long time, printing message like the following (Fig. 3).
final iteration: worst collapse time 0.318662 worst quality -1
worst vertex 23267 21365 23266
completed smoothing
really bad tet quality (8.49741e-006)
cur_verts[0] = 1010
cur_verts[1] = 106980
cur_verts[2] = 21664
cur_verts[3] = 1011
old_verts[0] = 1010
old_verts[1] = 106980
old_verts[2] = 21664
old_verts[3] = 1011
really bad tet quality (6.47109e-006)
cur_verts[0] = 105915
cur_verts[1] = 21596
cur_verts[2] = 726
cur_verts[3] = 21573
old_verts[0] = 105915
old_verts[1] = 21596
old_verts[2] = 726
I just know this may be due to bad tetra quality, but I don't know how to avoid them. Tetra mesh form the anisotropic wing tri mesh (especially in area such as trailling edge) seem to undoubtedly in low quality .:confused:

I had also tried to generate prism layer first and then volume tetras. Through some pyramids appeared, prism layer could be grown around the wing and fuselage (Fig. 4). The weired volume mesh came again when I growed volume mesh with existing surface mesh and prism layers using delauney (Fig. 5).:eek:

everest June 12, 2010 19:46

4 Attachment(s)
I'm going to freak out.:(

I tried to follow simmon's suggestion, keeping the existing wing surface mesh loaded; thereafter generated other mesh with octree method. Unfortunately, a warning box "Your geometry has a hole, do you want to repair it" popped out at final steps. You can see them in my pictures attached. There are holes near the trailling edge. I don't konw why the wing surface mesh are ruined with "Use Existing Mesh Parts" option toggled on. I sliced a plane to view the volume mesh, and discovered that the volume mesh even grown inner the wing. Perhaps this is the reason why holes appeared.

I first thought it was due to mesh smoothing, and checked off "Sooth mesh" option in volume meshing parameters. The holes with yellow curves stll exists.

I really cann't figure out the problem. There didn't exist any yellow curve in the geometry level, when I built the geometry topology. How did the wing volume mesh grow inward? Are there any options in ICEM that can totally freeze some part of the mesh?

everest June 17, 2010 12:32

Perhaps I'm not on the right track of solving this problem. Volume mesh often goes wrong from the merged surface mesh.

I'd like to turn to the 'multizone' approach. I have no experience in blocking and growing structural meshes. Are there any tutorials or guidlines on 'multizone' method? Please let me konw.:)

PSYMN June 18, 2010 09:32

I will try to create and post a movie to MulitZone mesh this model... I have done it a number of times for various people, but not properly recorded it.

PSYMN June 18, 2010 10:29

Pics of F6 meshed with MultiZone.
5 Attachment(s)
As a teaser, here are some pics... The total mesh time from geometry to solver was about 15 or 20 minutes.

siw August 3, 2010 10:07

PSYMN, I hope your still going to make this movie (for the ANSYS youtube channel?). Is a Hexa licence required as well as a Tetra/Prism licence to make this MultiZone mesh?

PSYMN August 3, 2010 17:36

MultiZone is considered ICEM CFD Hexa functionality.
Nope, MultiZone just needs a Hexa license (aihexa) (or aienv key or aiaddon key or amesh_extended key). It does not require an aitetra key.

Not sure when I will have time... The summer is flying by.


dhananjay1287 September 4, 2010 13:50

Better way f stitching two surface meshes
one can uses close hole feature of ICEM to stitch surface meshes
it works better than stitch edges option. also good transition can be achieved which will reduce manual wok later to improve quality.

I have explained the procedure in images.

sorry i dont know how to atach images in reply

hope this is helpful !!!! :)

dhananjay1287 September 4, 2010 14:05

here are the images attached
5 Attachment(s)
here are the files

dhananjay1287 September 4, 2010 14:07

1 Attachment(s)
sorry, here is the last file

AlbertoP February 24, 2011 15:06


Originally Posted by dhananjay1287 (Post 274024)
here are the files

Hi Dhananjay,

I need to do a similar thing (matching 2 different surface mesh, one quad and one tri): please could you kindly better explain how to do the steps you attached above?

I am ok until figure 3, but I am not able to do the 4th and 5th step.

Many thanks, very helpful!

best regards,


dhananjay1287 February 25, 2011 03:51

ICEM mesh repair tool needs to find hole in your mesh to fill that hole.
In order to use that oration to join surface meshes you have to fool the ICEM in thinking there is hole in the surface mesh. To create that you need to merge end nodes, so that when you repair the mesh ICEM can find the close loop which then can be filled with tri mesh.

AlbertoP February 25, 2011 19:42

Thanks for your quick reply.

I understood this concept, but I asked you if you could explain how to merge end nodes and to do the close loop. I mean, some pratical clues/hints/indications about ICEM commands.

I now it is annoying, but please I need to do that in a very short time.

It is a little quad-mesh around an airfoil merged with a farfield tri-mesh; I deleted some tri-cells around the quad-mesh to create the hole, but can't figure out how to merge end nodes to create the close loop.

Many thanks again for your availability.
Kind regards,


PSYMN February 26, 2011 07:54

Edit mesh => Merge => Merge nodes...

You just need to close the sides, you could even Edit mesh => Create a few tri elements. If you create them from nodes, they will already be merged.

Tip, when you do go to close the hole, the first element edge you select (before hitting "l" to select all the neighbors) will determine the part name of the final fill mesh.

AlbertoP March 10, 2011 07:54

Thanks Dhananjay and Simon,

I got it... I am not able to create the right loop hitting "l", but selecting all edges manually it works.

If someone has the same problem maybe is useful to know that sometimes it is required to refine mesh close to the hole, in case of big difference of cells dimension between the two mesh to match. That was my problem, could not make it work without a refinement.

Great, many thanks again.

AlbertoP March 11, 2011 14:13

I correct myself:

able to get the loop hitting "l", so great, got my hybrid mesh.

But now, a problem: when I go to create the Fluent mesh file, I get some errors like "face (near node xxx) is attached to more than 2 cells ... error in computing cell connectivity ... child process exited abnormally".

Any idea, please?

Many thanks!


PSYMN March 12, 2011 18:46

Usually, you have shells (face elements) around a fluid volume... So you would have one cell attached to each face.

If you had faces between two volumes, then each face would have 2 cells attached. That is the most you should have.

In your case, it says you have more than 2 cells... Have you generated overlapping volume mesh? (not replaced when you regenerated?)

Run a cut plane thru the model and check for this. Actually, run thru the mesh checks and you should get several violations. You should always run the checks before exporting to the solver anyway...

All times are GMT -4. The time now is 12:38.