CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] Element sizing question (

siw July 23, 2009 05:24

[ICEM] Element sizing question

In the ICEM v12.0 Help Manual (page 234) it says "It is recommended that the Max Element value is a power of 2." So this must be 1/4, 1/2, 1, 2, 4 etc.

But can the element sizes on Parts, Curves, Surfaces, Densities etc be defined as any value with a unit (such as 0.3mm, 0.1m etc)? Particularly needed when making the prism layer based on a first layer y+ calculation.

I cannot find the answer in the Guide or anywhere to define the units I want to work in or that the imported geometry was created in, unlike in ANSYS Meshing. Therefore, I'm not 100% sure that the element sizes I want are being applied.

BTW, I have not choice but to use ICEM as I need the mesh for the CFX replay remeshing.


PSYMN July 24, 2009 10:05

Powers of 2 explained
Well, if you are going to be stuck with a meshing software, ICEM CFD is a pretty good one to be stuck with.;)

What this is talking about is the Octree division structure. You have a range of sizes in your model, but perhaps not all of them will fit to the power of 2 system. Describing it as 1, 2, 4, 8, 16, 32, etc. is just a simplification. The actual equation is;

Local Size = (Smallest Size)*2n for n=0 to ∞

So, if your smallest size were 0.3 mm and your maximum size were 50 mm, the equation gives a range of sizes that looked like this…

0.3, 0.6, 1.2, 2.4, 4.8, 9.6, 19.2, 38.4, 76.8.

During the Octree process, it would start by picking the valid size smaller than your max size. Since Max size is 50, and 76.8 is too big, it actually uses 38.4. Octree creates an intial grid of blocks, 38.4 mm on a side, that encapsulate your volume. Then subdivisions starts. It looks at the sizes set on each entity and asks the question, is this smaller than the current size. If yes, stop, if not, subdivide in half in three dimensions,(1/2)^3 = 1/8 = Octree subdivision. So if you had 10 mm parts it would go like this…

Is 10 mm less than 38.4? Yes. Subdivide to 19.2.
Is 10 mm less than 19.2? Yes. Subdivide to 9.6.
Is 10 mm less than 9.6? No. Stop.

As subdivison creates more and more cells, this question is asked in each one by looking at the entities with the smallest sizes within that cell. If a cell contains no geometry (or density regions), then the answer comes back as "No" and subdivision stops.

After subdivision, it “resolves refinements” to build in transitions, etc. Then it “cuts in” to the surfaces and features and finally flood fills and runs the cutter to throw away the un needed mesh.

We tell new people to stick with easy powers of 2 (1/4, ½, 1, 2, 4, 8, 16, 32, 64, 128, etc.) because it makes it easier to avoid wasting time on settings that won’t matter. I often see models where the users have carefully set a variety of settings that all end up the same. For instance, in the above case with min size of 0.3 mm. If you had very carefully set sizes to 20, 22, 25, 28, 30, and 35, the algorithm would treat these all the same. Subdivide 38.4 into 19.6, then stop.

If you want smoother transitions, we recommend using the Octree process as a starting point. Delete your volumes (edit mesh => Delete mesh => use the selection tool bar to select all volumes (last icon)). Then smooth with laplace. Then run a volume fill like Delaunay (with the TGrid option in 12.0) or run Advancing Front. Then smooth again. This gives the robust patch independence of Octree for the surface mesh, but the smooth transition of a tetra fill for the volume.

siw July 27, 2009 02:21

Thanks Simon for the explaination.

So if I wanted to have a prism layer and I know the first layer height in some unit (i.e. mm) based on y+, the number of layers needed and the layer height expansion factor. Therefore, I can calc the entire prism layer height in mm. How would this be correctly applied to an ICEM mesh?

My guess would be to create a single prism layer to begin with that's equal to the total height and then, after getting a good quality surround tetra mesh, split the prism layer into the required number of layers with the required expansion rate.

PSYMN July 27, 2009 08:44

Prism Inflation
Ok, to be clear, this powers of 2 stuff is for octree subdivision and does not apply to prism inflation… This is now a new subject.

When running ICEM CFD prism, the most time consuming part is the smoothing and mesh adjustments that happen after each layer of prism is grown into the volume. So, if you need to grow 21 layers, it will take considerably longer than growing one layer to that same total height. Some ICEM CFD users swear by growing a single layer and then subdividing it as the quickest and best way… However, all that smoothing is actually doing something in terms of improving prism quality and dealing with difficult geometries, adjusting the prism growth directions, etc. After all, the code was designed expecting you to put in the total number of layers. If your model is simple enough and the single layer method works for you, then that is great. I often try a middle ground approach of starting with 3 or 7 layers (in this example). This provides a number of rounds of smoothing to get a somewhat advanced layer, but without waiting thru 21 layers.

The easiest way for setup is to go to the Global prism settings and put in the number of layers you want (in this case, 21) and then set your initial height and ratio. It will calculate your total height. Then delete the initial height, put in your new number of layers (let’s say 7) and then hit calculate to get your new initial height. Run Prism like this, then use Split Prisms to split each layer into three and then redistribute prism with the initial height set back to what you wanted in the first place.

If you have lots of surface size variations in your model, then perhaps just set ratio and number of layers. Leave total height and initial height blank. This will leave the initial height free to "float" so that the volume transitions between the last prism and outer volume are smoother. You can still redistribute at the end to get the exact initial height you wanted. If you do this well, you may still get a nice smooth transition even after subdivision and redistribution. Use 12.0 or 12.1 to get the more recent algorithms (a lot of work was done here at 12.0 and then even more for 12.1).

You can use max height over base with an initial height to a similar end...

hotboy January 22, 2015 10:11

Why icem prompts "An application(prism)is currently running"?
hello friends!
I use icem to mesh the BCL .When I modify it ,the icem prompts "An application(prism)is currently running" That is why?Thank you?

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