CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] Prism on complex geometry (

shohin November 4, 2010 04:43

Prism on complex geometry
2 Attachment(s)
Hi all,

i am struggling at the moment in generating a good mesh for a very complex shaped natural fracture out of CT data.

It is possible to generate a pure tetra mesh using the robust(octree) mesher.
the delauney mesher fails, that is, it creates some really strange (huge) elements?!

The problem is now: i can only handle something around 14Mio elements with fluent on my machine. It would be very nice to have 3 or 4 boundary layers on the walls, but the prism mesher always fails. Since my geometry is really complex, i want to know if you think it is possible at all to generate it? If not, a hexa-mesh won´t be also not possible??

Looking forward to your comments!
Thanks a lot in advance

PSYMN November 6, 2010 16:36

Outside the box.
Hmm, very thin and you want several layers thick to better capture flow gradients between the walls?

Just thinking outside of the box here, but have you considered taking the surface mesh from one side and extruding it thru the thickness? You can extrude with an equation to simulate a double sided growth ratio. If it is not a uniform thickness, but it is close, you could project the new mesh to the wall...

Delaunay starts from a surface mesh, so it wouldn't generate huge elements. Those would be created by a mis use of its first step to create the surface mesh.

Octree can work directly from faceted geometry to create volume mesh and surface mesh. You can also use curvature and proximity size functions to make sure your mesh is fine enough... (Under Global Mesh Params)

Beyond that, I would need to get my hands on the model to diagnose the prism failure problem.

shohin November 6, 2010 19:18

thanks for your answer!

well, i can generate now both with delauney and octree pure tetra meshes with a desired number of elements, thats not the problem. unfortunately my hardware restricts using 40Mio or so....
but i can not really generate enough elements in very thin areas. maybe i should play around with the proximity and curvature feature a little more.

beyond, i manage to create prism meshs, both from one layer and splitting and from lets say 3 layers initially. i can also load it without error in fluent, but it is not converging. i assume the quality of the mesh is to bad, i have some tetra elements with a quality of 1e-5!!!

your idea with the surface mesh sounds interesting! could you please give me some hints how to manage this. i will study the manual about extruding...
the problem will be, i think, that the thickness is not at all uniform!!

PSYMN November 7, 2010 20:00

Hmm, If I had to do it, and the model had roughly even sides, I would just use edit mesh => Extrude, but since it seems like you will have rough and uneven side walls, I would probably use ICEM CFD hexa because it offers me extreme control and projects to the final surfaces.

I would start by creating points along the edges of the domain (create points by screen selection). Then connect those points with curves. The amount of points and curves is more an art than a science, but enough that I have some nice perimeter to hook my Hexa blocking up to.

Then I could either create a manual hexa blocking or do a bit more geometry work to get an automatic one... I would probably go with the manual process, but will outline both.

For the manual process, make sure you have done some tutorials so you know how to split, delete and associate. Basically just block it out and associate the edges with the curves you made. It should work out quite nicely and give you nice mapped hexa. You may want to run an Ogrid thru it to get mesh aligned to the curved sides, but face the flat sides. Once you have done the Ogrid tutorials, you should understand that instruction. If you have some blocks that you would prefer to be swept, you can convert them using Edit Blocks => Change block type. The final mesh will be nicely projected directly to your faceted geometry. I think this would just take a few hours. New uses may want to print out the geometry and pencil in their blocking strategy first.

An alternative would be to create a 2D blocking on one side, with any shaped blocks you want (maybe even automatic 2D of one side as described below or create blocks from verts and points or create large elements manually and then load blocking from unstructured mesh) and then extrude this to get the thickness... These could be funky any-shaped swept blocks. ICEM CFD hexa would handle the interpolation between your roughly shaped walls.

The "automatic" hexa method requires geometry to auto-create the blocking... But then you could swap back for your original faceted surface to get the final projected mesh. Basically, you would start with getting the curves as noted before, then create surfaces to represent the faces. The surfaces are just for topology not final projection. Once you have a boxy representation of your model (but using the right edge curves), you can use Hexa => Initialize Blocking => 2D Surface Blocking. This will generate the surface blocks automatically based on your geometry surfaces. You can do this with just one side and then 2D to 3D translate (sweep) that, or you could go all the way for 3D followed by a 2D to 3D fill operation. At some point, you have a blocking for your boxy geometry. You then load that blocking with the faceted model and associate it so the projection goes to the original faceted surfaces (not the ones you made).

Once the blocking is done, you have very powerful controls over your edge distributions and can tweak the model to get the mesh count and resolution that you need. It will easily handle the variations in thickness, etc.

Also, as a separate blocking file, it can be applied to topologically similar geometries so you could study variations or what would happen if certain areas widened or narrowed, etc. Hexa mesh also works great with mesh morphing.

Have fun.

PSYMN November 7, 2010 20:06

oops, on second thought...
Um, never mind. I typed the last bit based on memory and without looking at your model recently.

I just went back and looked at your model again... That would take a long time to interactive hexa block. I would probably stick with tetra prism unless you have a bunch of time (a day or two and a lot of hexa splits.) or don't mind ignoring some details. Hexa is patch independent and doesn't have to capture everything...

I had originally suggested the extrude because you have the surface mesh already. How important is it to capture the thickness variation? An extrude would be pretty painless once you deleted the side you were not interested in.

shohin November 8, 2010 09:52


first, thanks for your thorough answer :)

the hexa method really sounds interesting, though very time consuming, furthermore i am absolutely new to hexa meshing thats why i would prefer the tetras.

As i said, i can generate prism layers (2 or 3 on both sides, the remaining interior filled with tetras) but i still get some errors while prism meshing, so not everything seems to work perfectly. Nevertheless, the mesh is imported into fluent w/o errors, but i do not get convergence (just a test) i assume the mesh is anything but perfect at the moment. it seems to be that i have some very bad tetras (bad quality: 1e-5), maybe that is the problem right now.

The extruding idea seems also interesting...i thought about extruding via element normals on both sides....but the splitting of the big surface (= wall; bottom= inlet, top = outlet) into to 2 surfaces is not so easy. i am also not so sure if this will be the best approach....but thats only a thought.

unfortunately the thickness is one of the major features i want to capture, thats why i am so much concerned about enough elements to examine flow and solute transport in the interior :(

(maybe i should stick for the moment with a pure tetra mesh which gives me some results, but for sure not the best....)

PSYMN November 8, 2010 13:50

Prism settings...
It could be that different prism settings are what you need...

shohin November 8, 2010 14:48

yes, that could be true...but which settings!?!?!? :) i already played around with them and it is not really becoming better.....

PSYMN November 9, 2010 13:04

Lets focus the questions and the info you provide on the prism errors...

Some photos of cut planes zoomed in so I can see the problem areas would help me diagnose and suggest alternate settings. It would also help to know what settings you did use...

shohin November 10, 2010 12:54

...ok, i will provide pics and details tomorrow....looking forward to your suggestions! thanks a lot for your help :)

shohin November 16, 2010 05:45

1 Attachment(s)
sorry for the delay...i had some severe problems in the lab with this is leaking at the moment due to high fluid pressure :(
attached find some first pics about the settings...maybe this gives you a first impression about the settings...i will provide some cut planes later on...

in this example i only generated one layer of prisms and splitt them later...but it makes no difference if i generate 3 layers initially....i think the biggest problem are some very very bad tetrahedra which i cannot remove/remesh etc...

PSYMN November 16, 2010 15:35

Solutions need problems...
Yea, I would need to look at the cross section... These settings would be fine for some models. When I see the problems I can suggest the solutions...

shohin November 24, 2010 13:12

1 Attachment(s)
so sorry for the delay again!

i can say that i "accidently" got a mesh with 4 prisms on each wall, which has a reasonable mesh quality (mean ~ 0.70). i still have some bad tetras, a few pyramids, and some quads with a quality of around 0.01.
the quality was more or less a results of extensive smoothing (~ 1000s) of all the elements together up to a quality of 0.2.
the final mesh has ~10 Mio elements which is more or less the max i can reasonably handle with my hardware (also considering the calculation times in fluent).
i want to add, that i had to use the octree volume mesh, because when using delauney i always got some problems in the fluent mesh check (degenerated contact points)....

nonetheless, fluent reads in without problems and converges fine!
so, i will live with that for the moment, until i have more hardware resources available which offers me more flexibility for the mesh size/type.

nethertheless, i attached a pic of an arbitrary cutplane.....

thanks again, PSYMN, for your great support!!!!


All times are GMT -4. The time now is 22:08.