CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] how to mesh a sail (and the rest of the boat) (

matteoL September 13, 2010 12:13

how to mesh a sail (and the rest of the boat)
1 Attachment(s)
I have been using ICEM for many years to mesh hulls of sailing boat for free surface simulations and have always been very happy of the structured Hex mesher.

Now I have to start working on the upper part of the boat, thus sails and mast, and I am a bit stuck on how to start.
My solver is both CFX and OpenFoam.

If i want to mesh just a sail I may still use a HEX-structured mesh, but i want to use an approach general enough for real boat simulations, thus mast, 2 sails, etc etc and I think I have to switch to unstructured approaches (or at least unstructured near the sail/mast assembly).

CFX is pretty robust while OpenFoam seems to be pretty peaky with pyramid and skewed/bad orthogonality cells thus I would like to have something like a hexa-dominant mesh. I also need to simulate accurately the turbulent flow attached to the sails, thus need a proper "boundary-layer"/prism layer.

Furthermore there is the issue that the sail is a baffle, i.e. 2D-surface with no width, thus I have to define the part as Internal wall and the at "some point" use the split internal wall function since i want to have to different par for the inside and outside of the sail.

1)Use a tetra+prism: I have managed to prodcue a mesh with tetra +prism (5 prism) but the quality is very low and orthogonality very high (max nor roth angle 90 !!) fig 1. I defientely cannot use this mesh with OpenFoam. Is it me that have done something wrong?Is it possible to produce acceptable mesh with this approach?I have tried using some smoothing or similar but with no results.

2) Using hexa-dominant: I have tried using hexa-dominant but the mesh generator always fails saying:
" Running hexa-dominant mesher...

error orienting normals, perhaps there is more than one region
error in output_region_boundaries
Hex Dominant meshing failed"

No sure how to fix the problem.

3)Using the cartesian dominant meshes: I think this would be the best solution, if only i could make it work. I have created a cartesian input mesh with the Hexa structured blocking but when i run the the cartesian mesher it fails saying:

"Final Number of unset cells = 0
Finding edge intersections for xcarts...
Finding quadratic minimizer point for xcarts...
hexcart: stdmesh.C:120: virtual void std_vertex::set_extnum(int): Assertion `extnumber == n' failed.
Application is finished.
Cartesian mesher failed to create mesh"

Any idea why?
When doing the blocking, I have splitted the the blocking so that i have assigned a surface to the "gennaker", is this correct?If i don't do it, I get that the part "gennaker" has no mesh defined on it..

Can I insert/create a "boundary layer" after?

I have set up the case using the "Femur" tutorial, are there any other tutorials/documentation available for the cartesian mesher? How should one work for an external flow mesh?

4) any other suggestion?

Any suggestion, documentation, points to other thread/material would be really very appreciated.
Thank you very much,

PSYMN September 21, 2010 15:12

Tetra prism is probably the way to go.
2 Attachment(s)
In reverse order (since your first was best).

3) the Cartesian method does not work if you bend the blocking. Everything must remain Cartesian. We are releasing a cutcell mesher with ANSYS Meshing and/or TGrid at 13.0 (mid Nov 2010) that should do nicely for you. It does support baffles, inflation, etc. If you contact me privately, I would love to get your test case and run it thru that mesher.

2) The Hexa Dominant mesher is really intended for FEA users. I am not sure if it even supports baffles, but I know it doesn't support inflation.

1) Tetra Prism is the way to go for this sort of problem. Orthogonality of 90 degrees for Prism is good, so not sure what your problems really are. I would suggest going back to this approach and we can try to sort out your issues thru better settings, etc.

The first thing to look at will be if you have stair stepping on or not... Or you could create a baffle that extends beyond your actual sail (in a different "construction" part) so that the stair stepping can happen there, then you delete the shells in the construction part.

Here are a couple images to illustrate stair stepping on or off.
Attachment 4764

Attachment 4765

Later we can discuss how you will merge this with the hexa going on below the surface.

matteoL September 21, 2010 18:47

Hello Simon,
thank you very much for help offer.

3) Why do you say that max orthogonality angle of 90 for prism is good?
In general, I ahve always thougth/understood that th orthogonality must be as small as possible (OpenFoam reuqires it to be lower than 70) and a high values means that two cells are very distorted one to the other. Is the definition of orthogonality anle different for prisms layer?

Anyway, not sure what you want me to do: do i want stairsStep on or off to improve quality?In my test case it was off.

"... Or you could create a baffle that extends beyond your actual sail (in a different "construction" part) so that the stair stepping can happen there, then you delete the shells in the construction part. ..." I see your idea but not sure on how to implement do i delete the shells?what do i substitute them with?

To re-check, here are the steps i have done so far in my test (which has lead to a mesh with very low quality and high orthogonality..):
1-create a tetra mesh (selecting int wall for my sail), defining the required sizes on the different patches
2-split the internal wall
3-add prism layers

Is it correct? or should i create the prism layer directly? what about all detailed settings?I have left most of them default..

Thank you very much,

PSYMN November 24, 2010 15:07

Belated answers...
Orthogonality angle of 90 means that the adjacent faces are 90 degrees apart. A perfect cube has faces that are 90 degrees apart. When we are talking about a prism element, we want the sides of the prism to be 90 degrees from the base. This is perfect orthogonality. Perhaps Open Foam uses some other way to measure orthogonality such as a normalized scale or an inverse scale or something like that? Can you show an image of the bad prisms (maybe a cut plane) and I can suggest how to improve them in that situation.

My part about stair step on or off was to show that there is a trade off. You would need to decide which was better for you. I prefer the other option of extending the baffle around the sail and using stair step off.


Basically, create geometry that forms an apron around your sail that is wide enough to carry the pyramids far enough from your area of interest. This construction apron must be in a different part.

Flag that part for prism (along with the sail). You could set curve parameters around the apron to increase the initial height. Ideally, it could go all the way up to the mesh size (and the growth ratio goes down to 1) so it will tie in nicely with the surrounding mesh. Don't forget to go to Params By Parts and make sure that all the zero thickness baffles are set to "Internal Wall", other wise no mesh will form on these parts.

Then generate Tetra and Prism... Your prisms will grow across your sail and continue (without needing to step down) across the apron. This will carry the stair stepping to the edge of the apron away from the area of interest and where the initial prism height can be made larger. Since the airfoil has zero thickness, the prism nodes on either side actually share nodes along with the shell element between them.

Then go to Edit Mesh => Delete elements. Use the selection tool bar to select elements by part and select the construction apron part. This will remove the shell elements between the prisms, but will not affect connectivity. You don't need to substitute them with anything.

That should get you going. Again, sorry this is so late. Hopefully it can still help.

michele ambrosio May 7, 2012 10:23

if the problem has been solved, could you please upload the file?
thank you a lot


All times are GMT -4. The time now is 09:51.