CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] trouble with small angles (

johnp November 3, 2010 22:59

trouble with small angles
3 Attachment(s)

Iím having some difficulty meshing a geometry that has some small angles between surfaces. The geometry represents the topology of a river channel. I have provided the channel bottom and inlet and outlet in fig1. The water surface sits on top. The flow is just over the banks so that a small angle occurs between the water surface and the channel bottom.

For the first run, Iím trying to mesh this geometry with the tetra/mixed octree. I have set the edge criterion fairly low (0.05) and defined a thin cut between the surfaces. The resulting mesh is shown in fig2. There a several gaps in the mesh near the edges (an example is shown in fig3). Some of these gaps were able to be fixed with the ďfind/Close HolesĒ tool, others could not be fixed though. I would prefer not to lower the minimum size to keep the element count reasonable, as the geometry shown here is only about a quarter of the entire geometry. I have experimented with other tetra/mixed schemes and meshing a single surface then generating a volume mesh. However these results are no better. Maybe Iím going about this in the totally wrong way. It certainly wouldnít be the first time. Any help/suggestions are greatly appreciated,


BrolY November 4, 2010 04:13

It looks like some curves are missing. Have you used the "bluild topology" option ?

Ludvik November 4, 2010 05:51

Try this:
In "Mesh > Volume Mesh Params (Octree)" decrease "Edge Criterion" from 0.2 to 0.0002 or "Define Thin Cuts" (see help).

johnp November 4, 2010 10:23

thanks for the suggestions. I did use the "build topology" function and it found no problems. I further deleted some curves and points that were not necessary. I have defined the thin cuts as between two surfaces, the water surface and the channel boundary. Also, I decreased the edge criterion to 0.0002 and the problem persists.

I have begun trying to manually edit each area on the surface mesh to close the gaps. This is very time consuming, so I'm hoping that there is an easier way. Also, I'm not sure what will happen if I mesh the volume from the fixed surface mesh. Any thoughts?

BrolY November 4, 2010 11:03

Could you post an image of your model with the mesh and the curves you kept?

The edge criteron is useful, but reducing it to 0,0002 seems very low to me, maybe too much !

Ludvik November 4, 2010 11:38

Open help and see Figure.20 in "Mesh>Global Mesh Setup> Volume Meshing Parameters> tetra/Mixed>Robust/Octree". This value is resolution for grid gereration.
On the other side. Some small examples are:

"0" is with default settings -> wrong mesh,
"1" with thin cut -> good mesh and hold edge,
"2" with Edge criterion -> strange mesh but hold edge

johnp November 4, 2010 16:06

more figures
2 Attachment(s)
Here are figures showing the mesh with curves and just the curves alone after running "Build Diagnostic Topology". The view is looking downstream from above the channel, flow is approximately in the positive x-direction.

The model contains four surfaces: inlet, outlet, water surface, and channel boundary. Could the fact that the two surface defined as a thin cut interesct twice (i.e. the water surface and boundary)? I'll try to spilt the surfaces and see what happens.

examosty November 9, 2010 12:21

Hello John,
did you solve your problem? I have met the same trouble. It would be grateful to share your experience.
Best Regards.

johnp November 9, 2010 17:58

Hi Examosty,

sorry to say I haven't resolved the issue. I found that lowering the edge requirement to a point helped. However, after it was reduced past some critical value, strange things happened, such as elements violating geometry surfaces. I can't say for sure that this is related to the edge criterion, except that it didn't happen for larger values.

Presently, I'm experimenting with a hexa-mesh on a simplified geometry. I'll let you know if come up with a solution,


galap November 10, 2010 04:17

I would suggest a hexa blocking strategy as the geometry looks adequate and easy for this. Why you didn't try this? I suggest 2 blocks - a thin block right under your water surface could handle the edges.

examosty November 10, 2010 09:28

1 Attachment(s)
Hi John,

My problem is that, i have a very small surface (the blue surface in the attached picture). The angle between two edges is about 3į. I donīt know if itīs possible to get a gut quality. Because of the complicate geometry I can not use hexa. I hope you solve it soon.


johnp November 10, 2010 11:58


I have been working on a hexa mesh the last two days. The reason I initially avoided it is due to a section of the geometry that is not shown in the figure. There is a bend in the channel and the cross-section shape is more triangular than trapezoidal.

The initial work indicates that hexa may work. Right now i've just got some very poor quality elements (determinant 2x2x2 < 0) to deal with. We'll how it goes today...


PSYMN November 11, 2010 18:31

The mesh is not fine enough to capture the shallow river bank...

Yes, adjusting the edge criterion may help because it causes refinement instead of moving the nodes when the mesh tries to fit to the geometry. I can explain that algorithm if you need it...

Yes, Turning on "Thin Cuts" may help, and here I will explain the algorithm.

"if a surface element has a node on Part "A", it may not have any nodes on part "B".

This prevents surface mesh from jumping between the parts. However, if any two parts specified for a "thin cuts" relationship "touch", it becomes impossible for the elements along that connection to fulfill the algorithm. Therefore the thin cut is violated and turned off. If the surface of the water touches the river bed, you must have a third part between them (such as a curve called "shoreline") that could separate the two thin cut parts.

Both of the above methods will work better if you give in and go with a smaller mesh size. Actually, at this coarse mesh size, you couldn't expect much from the CFD solver.

But in the end, a Hexa mesh would be best quality for this geometry, if you can set it up... Just make sure that when you create the Ogrid, you Face the water surface, as well as the upstream and down stream cut offs. Other wise your ogrid will need to make an awkward and low quality turn at the shore line.

johnp November 12, 2010 09:42

3 Attachment(s)
Thanks for all the suggestions. I've been working on a hexa mesh the last couple of days and, as many of you stated, it worked much better. I've attached the basic blocking structure which is a C-grid at each cross-section. To remove negative volume elements on the inner bank of the bend required some compromise in terms of element size transition. The last picture shows the location of elements with quality below 0.1. I know there are probably some improvements that can be made but I think it's a good start.

PSYMN November 12, 2010 10:23


My guess is that the shoreline on the inner bank would be better represented with a wedge block than a warped hexa block...

You can get this by moving the shoreline vertex into the river to improve the corner and then adding a wedge block in for the shore line... (there are easier ways to get that topology if you were starting out with the plan, but this is how to get there from where you already are).

Get me an image of a scan plane with an index plane and verts with numbers, and I can tell you which verts to merge...

Best regards,


johnp November 12, 2010 13:44

1 Attachment(s)

I had something like this in mind but I wasn’t able to get it to work. I have attached an image that I hope is what you requested (not sure what a scan or index plane are). The image shows the section that results in highly skewed elements. If you need something else, let me know. Thanks,


PSYMN November 14, 2010 22:42

Step by step...
An index is a single plane of your blocking, such as the front plane in this image that contains the block verts 73-135-69-134. ICEM CFD hexa gets a lot easier if you know how to use your index control... (right click on the blocking branch of the tree to display the index, or hit the "i" hotkey while in the blocking tab. Index control appears in the lower left corner).

A scan plane is a good way to diagnose problems... Right click on "premesh" in the model tree to bring up the scan plane control (also in the bottom left). I usually use the option for "scan plane by selection"...

Anyway, this image is enough to talk about.

For the block I mentioned before, slide vertex 73 (and 105, etc.) under vertex 135 (and 138, etc.) to improve the angle of the corner... Of course, you will have to clean up your edge associations (the edge between 73 and 105 should now project to surface.)

But now, you are not properly representing that shore line... So we need to create some new blocks...

Go to the first icon of the blocking tab to initialize blocking... Then choose the second option on the DEZ to create blocks by verts. You have 4 verts, but are missing the last two... This makes the first block a little tricky... First change the pulldown option to degenerate (wedge). It now expects 6 verts... Give it the first two... Now 73 and 135, and then hit the middle mouse button... Normally this would mean you were done, but since you only picked 2 out of the 6 expected verts, it knows you are not done and switches to select location mode... Pick the geometry location where 73 used to be... Then pick near the locations where 105, 138 and 105 used to be... The tool was selecting by locations, so the verts near 105 and 138 are not actually connected... so you will need to merge those (Blocking => Merge => Merge Verts). From then on, you will have the base set and can pick your first 5 verts before you need to select the 6th geometry location... Follow the bed of the river and add these blocks one at a time or (skip a few indecies, split the block degenerate and merge it in.)

Note, there is a Y block option instead of Degenerate, but I don't think it will work very well (you will still have a hexa squeezed into the shore line)... You could also come back and change these wedge blocks into a stack of swept blocks if you prefer that sort of thing... (would avoid the stack of squished wedges at the shoreline)

johnp November 15, 2010 18:36

5 Attachment(s)

Thanks for the instructions on generating the wedge block. I think the blocking is correct (figs 1&2), but the prism (2D tri) elements are not aligned on the bank edge (fig 3). Is there a way to reorient the distribution to place the prism at the outer edge?

Also, eventually Iíll have to merge the wedge blocks with the C-grids in the straighter sections. Figs 4&5 show the current blocking, which obviously wonít work. I tried to split vertices (vert 73) to match, but didnít work. Is there a straight-forward way to do this? Thanks,


PSYMN November 16, 2010 17:25

Order of Nodes and 7 noded blocks...
3 Attachment(s)
Oops, my bad. The focus point of the degenerate block is the first point you pic... This means you must start each wedge by selecting the point on the short line... Then things turn out ok.

Attachment 5459

I will ask around if there is a way to change this once the block is created, but I don't think there is.

As for what to do in other areas of the short line... I would normally just put wedges along the entire river... It should be fine quality wise and would be the best for bringing the refined boundary layer right up to the shoreline...

If you really wanted to transition back to square, you would still need to move the other blocks back into alignment, but you could put a hexa block (instead of a wedge) along the shoreline (I created a point at an XYZ coordinate for easy selection) and merge the one end to make a 7 noded hexa. Under Settings => Hexa Mixed, you will see an option that turns the corner collapsed hexas into pairs of pyramids during conversion to unstructured mesh...
Attachment 5461
Attachment 5460

johnp November 17, 2010 13:32

getting there...
4 Attachment(s)
i couldn't find a way to change the tri location, so i just starting blocking from the beginning. i created the wedge before any associations, so i have a wedge plus C-grid around the entire domain.

It looks very nice except i have some negative volumes at the inner bank edge where the wedge elements are located (see figs 1 & 2). i assume this is because all the elements are being squished here, for lack of more technical phrasing. Just in case there were gaps, i set the Projection Limit to 0.1.

One solution i tried is to make the central H-block very thin and contain only a few elements (see figs 3 & 4). This works, but i don't like it. i feel like i'm sacrificing element quality in the area of interest to account for an area i'm not interested in. i could improve the mesh by moving some vertices and edge matching, etc. But i would rather find a better solution.

Another thought i had was to coarsen the wedge block in the vertical direction using Refinement. Unfortunately, it seem that i can't set the Level below 1.0, therefore no coarsening. Is there a better way to handle this? Thanks,


All times are GMT -4. The time now is 19:57.