# ICEM CFD

ANSYS ICEM CFD is a popular proprietary software package which provides advanced geometry/mesh generation as well as mesh diagnostics and repair functions useful for in-depth analysis. Its design is centered around aerospace, automotive and electrical engineering applications with a specific focus on computational fluid dynamics and structural analysis. The ability to accurately create a computational grids about geometrically complex configurations is becoming increasingly important in the analysis world.

## General Meshing Overview

ANSYS ICEM CFD offers mesh generation with the capacity to compute meshes with various different structures depending on the users requirements. It is a powerful and highly manipulative software which allows the user to generate grids of high resolution. This is a requirement as mesh generation is an inherently geometry dependent problem meaning there is no singular meshing method which can be used for every problem. ICEM CFD allows the following different types of grid structures to be created:
* Multi-block structured meshes
* Unstructured meshes
* Hybrid meshes
A simplified overview of the meshing methodology provides an indication of how to begin the meshing procedure with the different stages shown.

## User Interface

ICEM CFD provides a user interface which includes several components to make mesh generation intuitive and easy to use once its full capabilities are understood. The user interface contains a complete environment to create, modify and manage computational grids:
* Main Menu: Create/Open/Save/Close projects, Geometry/Mesh/Blocking options and parameters, Import/Export Model/Geometry/Mesh
* Utilities for visualisation purposes: View/Zoom/Refresh screen, Undo/Redo commands, Wireframe/Solid Simple Display
* A hierarchical Display Control Tree: Model,Geometry/Mesh/Blocking/Parts
* Function Tabs to modify the mesh: Geometry/Mesh/Blocking, Edit Mesh, Properties/Constraints/Loads/FEA solver options, Output Mesh
* Selection Toolbar
* Data Entry Zone
* Message Window
* Histogram Window
The user interface window can also be personalised in the settings menu.

## Project Structure

It is possible to either create or open a pre-existing project. Every project will contain a series of file types dependent upon the mesh type and structure. The series of file types contained within the working directory are:
* Project Settings (*.prj): This file consists of the necessary information to manage the data files associated within the project itself.
* Tetin (*.tin): This file consists of the geometry components, material bodies, part associations and global mesh sizes.
* Mesh (*.uns): This file consists of the line, shell, and volume mesh elements. The shell mesh elements contain triangular and quadrilateral elements whilst the volume mesh elements contain hexahedra, pyramids and prisms.
* Blocking (*.blk): This file consists of the framework used to create a structured mesh with the details of each individual block.
* Attributes (*.atr)(*.fbc): This file consists of the mesh dependent data specified during any edge, surface or vertices association as well as data for parts, element properties, loads and constraints of the mesh.
* Parameters (*.par): This file consists of the mesh independent data such as material properties, local coordinates and run parameters. This data is then passed onto the attributes file.
* Cartesian (*.crt): This file consists of the information regarding the Cartesian grid. This is hence only ever apparent in Cartesian grids.
* Journal (*.jrf): This file consists of the record of the operations performed.
* Replay (*.rpl): This file consists of the replay script.

## Geometry Modelling

ICEM CFD allows for its geometry to either be made using its own geometry topology package or to import geometry via external CAD software. For simple geometries the former tends to be used and for more complex geometries the latter is often used. Regardless of this, the geometry should be checked using the geometry analysis to ensure the model contains a closed volume, meaning there are no holes or gaps within the geometry, so that further down the line, no negative volume elements are present. Negative volume elements are not permitted in external solvers. These maybe present due to differences in geometrical and meshing tolerances.There is hence an emphasis in ICEM CFD to create a mesh that has 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, 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 ICEM CFD, after the BUILD TOPOLOGY option has been implemented:
* YELLOW: curve attached to a single surface
* RED: curve shared by two surface
* BLUE: curve shared by more than two surface.
* Green: curve not attached to any surface
An analysis post building the topology is then required, whereby if it is clear a curve is supposed to share two surfaces yet is being displayed as yellow, a hole exists and it is likely there will be meshing problems.
Geometrical entities which may include points, curves and surfaces must also be associated to a given part. Each part can then be controlled for meshing, visualisation or various other purposes and is stored within the aforementioned tetin file.

## Structured vs. Unstructured Background

There are often some misunderstandings regarding structured/unstructured mesh, meshing algorithm, and solver. A mesh may look like a structured mesh but may or may not have been created using a structured algorithm-based tool. For example, 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. Unstructured solvers can only work on an unstructured mesh even if provided 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.
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.
examples of the two types inserted here.

## Unstructured Meshing

The unstructured mesh generation creates tetrahedral volume meshes based on the users created or imported geometry. The unstructured mesh generation has the capability of using different meshing algorithms for meshing surfaces and volumes as well as incorporating a power smoothing algorithm to locally adapt the mesh for improved mesh quality.
The unstructured mesh generation procedure will now be considered:
* Create/Import geometry
* Repair geometry ensuring a closed volume
* Determine global meshing parameter
* Specify part mesh setup
* Specify curves and surface mesh size
* Compute mesh
The mesh can then later be further refined by adding prism layers, regional refinement, curvature/proximity based refinement, etc. without the need to recompute the entire mesh again by simply computing the mesh based on the already existing mesh. This permits iteratively improving and updating the mesh for high quality mesh resolution.
When using the unstructured meshing method the most important consideration is to determine which meshing algorithm is most appropriate for the problem. ICEM supports four different meshing algorithms for generating unstructured meshes: Robust (Octree), Quick (Delaunay), Smooth (Advancing Front) and Fluent Meshing. They are listed as Tetra/Mixed as each method includes the possibility of adding a boundary layer of prism elements to the tetra volume mesh. As previously mentioned, although containing prism elements the mesh is still considered unstructured due to the orientation of the indices.
The Robust (Octree) method generates its volume mesh first then later generates the surface mesh. This uses a patch-independent approach meaning an existing surface is not required as one is generated during the Octree process.
The Quick (Delaunay) method generates a surface mesh then the volume mesh. This process hence uses a patch-dependent approach as it requires a closed surface when using the Delaunay Tetra algorithm. If the geometry does not have a closed volume this meshing method will automatically create the surface using the global meshing parameters.
The Smooth (Advancing Front) method generates a surface mesh then the volume mesh similar to that of the Quick (Delaunay) method. The Smooth (Advancing Front) method however produces a smoother transition from surface elements to volume elements. This will hence also require a relatively high level of mesh quality to mesh without failures. The surface mesh should be one enclosed volume with no abrupt changes in element size and no single edge, multiple edges, non-manifolded vertices, overlapping elements or duplicate elements.
The Fluent Meshing method generates its mesh in a batch process. In case no closed volume surface is present before the batch process begins it will create a surface mesh then start the Fluent batch meshing method. It also allows for creating the volume mesh from the surface on a part-by-part basis. Furthermore, optional prism layers may be created using either its pre or post inflation prism creating. Pre inflation prism generation first creates the boundary layer from the existing surface mesh then later generates the volume mesh. Post inflation prism generation first creates the volume mesh then replaces the tetrahedral volume elements at the surface with prism elements. If this mesh is highly skewed at the surface the post inflation method will fail to create prism elements. Fluent Meshing also also for control of the expansion ration of elements away from the surface which directly affects the size of the volume mesh.

## Structured Meshing

With structured meshing, the basic steps necessary to generate a structured mesh are the same regardless of the model complexity. Initialising the block creates one block which surrounds the entire geometry. This block is then modified into a series of block topologies which embody the shape of the model geometry. This is known as blocking the geometry. These modifications can be done through splitting the block into further sub-blocks, merging sub-blocks together into whole blocks and Ogrid operations which splits a block into a circular "O"-type shape. Splitting a block can be applied over entire blocks or just applied to individual faces or edges. Merging can also merge faces or edges of blocks as well as whole blocks. Creating Ogrids is a powerful technique used to achieve O-type block shapes localised round objects which would not be possible without this technique. Importantly, Ogrids can not be later be merge together as the index direction is not the same around the O-type blocks. O-type block structures are particularly useful when considering very complex geometries. Each block then contains both geometric data and block topological data. The geometrical data contains: Points with x, y and z positions, curves and surfaces. The hexahedral block topological data contains: At least eight vertices per hexaheron, which are the corner points of blocks. Four edges per face and twelve per block. Six faces per block. Each block volume is hence comprised of vertices, edges and faces.
The structured mesh generation procedure will now be considered:
* Create/Import geometry.
* Initialise blocking with respect to geometry dimension
* Generate block structure using the split, merge, Ogrid definition.
* Associate vertices to points, edges to curve and block faces to geometry face.
* Check block structure quality to ensure the block model meets specified quality threshold.
* Determine edge meshing parameters and using spacing 1 or spacing 2 for increasing mesh density in specific zone.
* using pre-mesh to update mesh
* Check the cell quality of the mesh once its generated.
* convert structure mesh to substructure mesh by right click on the re-compute mesh
* Write output files to desired solver like ansys fluent or Star CCM
In case of any problems arise, the blocking structure can be saved at any time and previous block topologies can be returned to.
Without associating vertices, edges and faces is not a problem, in that it will not directly cause the mesh generation solver to fail, however it does mean that the blocks will not follow any of the predefined user geometry.
The following are the different multi-block strategies available which can be implemented using ANSYS ICEM CFD.
* O-grid
* C-grid
* H-grid
* Y-Block
* Half O-grid
These strategies can also be combined for hybrid block designs, for instance C-H-grid types.

## Exporting Mesh

ICEM CFD allows the user to export their mesh into various different formats for compatibility with other external solvers. The meshing topology, associated parts, boundary conditions and loads should all be predefined before this stage. Some of the possible supported output solvers are:
* ANSYS CFX
* ANSYS Fluent
* CGNS
* Plot3D
* STAR-CCM+

## ICEM CFD Documentation

ICEM CFD documentation can be found in the help tab of the main menu. Here it is possible to find ICEM CFD Documentation that includes procedures, commands, elements and theoretical details needed to use ICEM CFD products.
The ANSYS ICEM CFD Help Manual consists of information about using ANSYS ICEM CFD which includes full descriptions of its user features.
The ANSYS ICEM CFD User's Manual consists of the theoretical knowledge needed for setting up problems and meshing options.
The ICEM CFD Tutorials consists of a number of example test cases which can be used for learning simple problems all the way through to more complex problems using a variety of different meshing methods.
The ANSYS ICEM CFD Programmer's Guide consists of a full description of the text commands available within the program.

## Reference

* ↑ Ansys, Inc. The International Directory of Company Histories. 115. St James Press. pp. 23-25. ISBN 1558627782
* ↑ Wulf, A. and Akdag, V., 1995. Tuned grid generation with ICEM CFD.
* ↑ ICEM, C., 2012. ver. 14.0. ANSYS Inc., Southpointe, 275.
* ↑ Ansys, I.C.E.M., 2015. CFD. ICEM CFD theory guide, Ansys inc.
* ↑ Frey, P.J. and George, P.L., 2008. Mesh generation: application to finite elements. London: ISTE.
* ↑ Badcock, K.J., Richards, B.E. and Woodgate, M.A., 2000. Elements of computational fluid dynamics on block structured grids using implicit solvers. Progress in Aerospace Sciences, 36(5-6), pp.351-392.
* ↑ Rantakokko, J., 2000. Partitioning strategies for structured multiblock grids. Parallel Computing, 26(12), pp.1661-1680.
* ↑ Venkatakrishnan, V., 1995. Convergence to steady state solutions of the Euler equations on unstructured grids with limiters. Journal of computational physics, 118(1), pp.120-130.
* ↑ Löhner, R. and Parikh, P., 1988. Generation of three‐dimensional unstructured grids by the advancing‐front method. International Journal for Numerical Methods in Fluids, 8(10), pp.1135-1149.
* ↑ Gerhold, T., 2005. Overview of the hybrid RANS code TAU. In MEGAFLOW-Numerical Flow Simulation for Aircraft Design (pp. 81-92). Springer, Berlin, Heidelberg.
* ↑ Moinier, P., M-uacute, J.D., ller and Giles, M.B., 2002. Edge-based multigrid and preconditioning for hybrid grids. AIAA journal, 40(10), pp.1954-1960.
* ↑ Owen, S.J., 1998, October. A survey of unstructured mesh generation technology. In IMR (pp. 239-267).
* ↑ Baehmann, P.L., Wittchen, S.L., Shephard, M.S., Grice, K.R. and Yerry, M.A., 1987. Robust, geometrically based, automatic two‐dimensional mesh generation. International Journal for Numerical Methods in Engineering, 24(6), pp.1043-1078.
* ↑ Shewchuk, J.R., 1996. Triangle: Engineering a 2D quality mesh generator and Delaunay triangulator. In Applied computational geometry towards geometric engineering (pp. 203-222). Springer, Berlin, Heidelberg.
* ↑ Schöberl, J., 1997. NETGEN An advancing front 2D/3D-mesh generator based on abstract rules. Computing and visualization in science, 1(1), pp.41-52.
* ↑ Khalid, M. and Jones, D.J., 1993. Navier-Stokes investigation of blunt trailing-edge airfoils using O grids. Journal of aircraft, 30(5), pp.797-800.
* ↑ Ringler, T.D., Thuburn, J., Klemp, J.B. and Skamarock, W.C., 2010. A unified approach to energy conservation and potential vorticity dynamics for arbitrarily-structured C-grids. Journal of Computational Physics, 229(9), pp.3065-3090.
* ↑ Griffin, L.W., Huber, F.W. and Sharma, O.P., 1995, June. Performance improvement through indexing of turbine airfoils: part 2—numerical simulation. In ASME 1995 International Gas Turbine and Aeroengine Congress and Exposition (pp. V001T01A002-V001T01A002). American Society of Mechanical Engineers.
* ↑ Ansys, C.F.X., 2006. Solver theory guide. Ansys CFX Release, 11, pp.1996-2006.
* ↑ Fluent, A., 2009. 12.0 User’s guide. Ansys Inc.
* ↑ Fluent, A., 2009. 12.0 Theory Guide. Ansys Inc, 5(5).
* ↑ Poirier, D., Allmaras, S., McCarthy, D., Smith, M. and Enomoto, F., 1998. The CGNS system. In 29th AIAA, Fluid Dynamics Conference (p. 3007).
* ↑ Walatka, P.P., Buning, P.G., Pierce, L. and Elson, P.A., 1990. PLOT3D user's manual.
* ↑ Guide, U., 2009. Star-CCM+ Version 4.04. 11. CD adapco.
* ↑ ANSYS, I. and ANSYS, I., 2012. CFD Help Manual. ANSYS, Inc., Canonsburg, PA.
* ↑ ICEM, C., 11.0, 2007. User Manual, Ansys Inc, Canonsburg, PA.
* ↑ ANSYS, I.C., 2007. 11.0 Tutorial Manual. ANSYS Inc.

## Links

* ANSYS ICEM CFD product page
* OpenFOAM Open source CFD home page
* FeatFLOW Open source CFD home page