Open main menu

Wikibooks β


ANSYS ICEM CFD is a popular proprietary software package used for CAD and mesh generation. Some open source software includes OpenFOAM, FeatFlow, Open FVM etc. Present discussion is applicable to ANSYS ICEM CFD software.

It can create structured, unstructured, multi-block, and hybrid grids with different cell geometries.

unstructured grid around NACA0012 aerofoil


Geometry ModelingEdit

ANSYS ICEM CFD is meant to mesh a geometry already created using other dedicated CAD packages. Therefore, the geometry modelling features are primarily meant to 'clean-up' an imported CAD model. Nevertheless, there are some very powerful geometry creation, editing and repair (manual and automated) tools available in ANSYS ICEM CFD which assist in arriving at the meshing stage quickly. Unlike the concept of volume in tools like GAMBIT, ICEM CFD rather treats a collection of surfaces which encompass a closed region as BODY. Therefore, the typical topological issues encountered in GAMBIT (e.g. face cannot be deleted since it is referenced by higher topology) don't show up here. The emphasis in ICEM CFD to create a mesh is to have a 'water-tight' geometry. It means if there is a source of water inside a region, the water should be contained and not leak out of the BODY.

Apart from the regular points, curves, surface creation and editing tools, ANSYS ICEM CFD especially has the capability to do BUILD TOPOLOGY which removes unwanted surfaces and then you can view if there are any 'holes' in the region of interest for meshing. Existence of holes would mean that the algorithm which generates the mesh would cause the mesh to 'leak out' of the domain. Holes are typically identified through the colour of the curves. The following is the colour coding in ANSYS ICEM CFD, after the BUILD TOPOLOGY option has been implemented:

  • YELLOW: curve attached to a single surface - possibly a hole exists. In some cases this might be desirable for e.g., thin internal walls require at least one curve with single surface attached to it.
  • RED: curve shared by two surface - the usual case.
  • BLUE: curve shared by more than two surface.
  • Green: Unattached Curves - not attached to any surface

Meshing approach and meshEdit

There are often some misunderstandings regarding structured/unstructured mesh, meshing algorithm and solver. A mesh may look like a structured mesh but may/may not have been created using a structured algorithm based tool. For e.g., GAMBIT is an unstructured meshing tool. Therefore, even if it creates a mesh that looks like a structured (single or multi-block) mesh through pain-staking efforts in geometry decomposition, the algorithm employed was still an unstructured one. On top of it, most of the popular CFD tools like, ANSYS FLUENT, ANSYS CFX, Star CCM+, OpenFOAM, AxSTREAM CFD, etc. are unstructured solvers which can only work on an unstructured mesh even if we provide it with a structured looking mesh created using structured/unstructured algorithm based meshing tools. ANSYS ICEM CFD can generate both structured and unstructured meshes using structured or unstructured algorithms which can be given as inputs to structured as well as unstructured solvers, respectively.

Please refer The classification of structured or unstructured grid is only by the book-keeping of the grid. In structured grid representation we use indices i, j, k to locate a node. And we know if a grid line is represented by i=2, the next grid line is i=3 and the next is i=4 and so on. But in unstructured notation we use node number, element number etc. Element 5 may be adjacent to element 4 and element 6 need not be adjacent to element 4 or 5. It can be anywhere in the domain. The same mesh represented by i, j, k indices can be written with node number, element number etc. Now the former structured mesh is written in unstructured mesh format. But a tetrahedral unstructured mesh can not be represented by indices like i, j, k.

Structured meshing strategyEdit

While simple ducts can be modelled using a single block, majority of the geometries encountered in real life have to be modelled using multi-block strategies if at all it is possible.

The following are the different multi-block strategies available which can be implemented using ANSYS ICEM CFD.

  • O-grid
  • C-grid
  • Quarter O-grid
  • H-grid

Best practicesEdit

The first step before using the software is often to think about the right strategy on a sheet of paper. Once the strategy is deduced, implementing it on the software will be much easier.

Unstructured meshing strategyEdit

Unlike the structured approach for meshing, the unstructured meshing algorithm is more or less an optimization problem, wherein, it is required to fill-in a given space (with curvilinear boundaries) with standard shapes (e.g., triangle, quadrilaterals - 2D; tetrahedrals, hexahedrals, polyhedrals, prisms, pyramids - 3D) which have constraints on their size. The basic algorithms employed for doing unstructured meshing are:

  • Octree (easiest from the user's perspective; robust but least control over the final cell count which is usually the highest)
  • Delaunay (better control over the final cell count but may have sudden jumps in the size of the elements)
  • Advancing front (performs very smooth transition of the element sizes and may result in quite accurate but high cell count)

Best practicesEdit

If using Octree -

  • Perform volume meshing
  • Improve the quality of the volume mesh using Edit Mesh options
  • Create prism layers for boundary layer near the walls
  • Improve the total mesh quality using Edit Mesh options

If using Delaunay or Advancing Front -

  • Perform surface meshing
  • Improve the quality of the surface mesh using Edit Mesh options
  • Perform volume meshing
  • Improve the quality of the volume mesh using Edit Mesh options
  • Create prism layers for boundary layer near the walls
  • Improve the total mesh quality using Edit Mesh options


basic viewport interactionEdit

  • use the left mouse button and drag to rotate the view
  • use the middle mouse button to pan the view

importing dataEdit

Once the aerofoil coordinates have been imported into ICEM, they must be connected with splines. ICEM can handle up to 15 points per curve:

Grid TypesEdit

C-Type: O-Type:

creating a C-gridEdit

A C-grid is normally used for structured grids, and true to its name looks like a letter 'C'.

c-grid around NACA0015 airfoil

creating a structured gridEdit

The first thing to do when creating a structured grid is to create the geometry or a .tin file in ICEM. You can do this by manually creating it in ICEM or importing data into ICEM, for example 3-dimensional point data from a .txt file.

The tools available are specified under the geometry tab. There are quite a number of tools and they can be quite useful. However, it is suggested that some planning is done before beginning to make a geometry. There are tools specifically for curves.

  • curves can be split or joined to other curves.
  • Points can be created at cross-sections of curves.
  • Surfaces can be created from curves.

All of this gives extra flexibility in the methods of designing a grid.

A tip that is quite useful is the use of the F9 key to "pause" the tool being used so the grid can be moved or zoomed in to.

Also, different parts of the grid can be saved under a part name which can be switched off or on if you want certain things to be invisible like points or curves or certain surfaces. You can also copy an entire set of geometry by selecting the parts you want and translating it to a specified point using the 'translation' tool. This is useful, especially when creating a symmetrical object such as a wing, where the aerofoil can be copied to another location and then joined up to the original aerofoil with curves.

Once the geometry is created, the next step is to create the actual grid. Note that the tolerances of the geometry plays an important role in the accuracy of the grid. So make sure that depending on what you want, the tolerances are high enough. Using the blocking tab, a block can be created around the entire geometry and then split up into sections. The mesh is created by specifying the distribution of points along the edges of the blocks. Therefore the more blocks you have, the more flexibility you have in changing the distribution of points along the edges. The edges and vertices of the blocks must be assosciated with the geomery curves and points.

Once the blocks have been created and all the required points and curves associated, the number of points and the distribution can be set along each edge. In some cases, you want the density of cells to be high, for example at the boundary layer of an object, whereas to save time, you may want the cells further away to be large. There are various types of distribution such as linear, geometrical and exponential variation that can be used. The premesh tool can then be used to view the meshing. There is also a quality check tool, where one can specify how you want to check the quality of the blocking. For example, one can check the variation in volume size to see if it varies smoothly, or if there are any negative volumes, which would suggest that the grid crosses into solid surfaces.

The blocking is saved as a .blk file. When all is done, the mesh can be made readable by a solver by specifying what type of solver is to be used in the "output tab".

creating an unstructured gridEdit

Once the curves and surfaces have been created, click the mesh tab -> surface mesh and define the mesh density on the surfaces.

The surface menu is shown on the right, and to select surfaces, click the button next to it and start selecting surfaces, using middle-click when done. Then select a mesh density (0.05 in this case, but will vary with each case) and check remesh selected surfaces if needed, and click ok.

Then, click volume mesh, and select the method (tetra for tetragonal unstructured meshes) to generate the unstructured grid, press 'ok' and wait for the grid to be generated and review the result.