2D Mesh Generation Methodology

When creating 2D meshes, the 2D mesh is generated using the Shewchuk Triangle meshing functionality. Heights at the vertices of the generated mesh elements are calculated by interpolation from a specified ground model.

In order for meshing to be carried out, a bounding polygon must be defined in InfoWorks ICM. Voids (regions that will not be meshed), break lines and areas of varying roughness and mesh resolution may also be defined as described in the sections below:

Mesh element generation

A single mesh element may be made up of more than one triangle, if a triangle has an area less than the Minimum element area specified for the 2D zone. Triangles will be aggregated with adjacent triangles until the minimum area is met.

The mesh elements generated cannot be edited manually, however element properties can be displayed by clicking on the icon on the GeoPlan Tools toolbar and then clicking on a 2D element.

To adjust the display of the mesh triangles, use the options on the Elements page of the GeoPlan properties dialog.

Element generation at 2D manholes

If possible, it is desirable for 2D manholes to be in separate elements, to make it easier to correctly match manhole and mesh levels.

The mesh generation process will split triangles if needed to try to avoid having more than one 2D manhole in the same element, although it is not guaranteed to be successful. The resulting triangles may be smaller than the minimum element area, in which case they will be aggregated with adjacent triangles, while trying to avoid having more than one 2D manhole in the same element.

Ground level calculation

The ground level for a mesh element is calculated by sampling the ground model within the 2D triangles making up the element and then taking the average of the sample point levels.

The number of sample points for each triangle is determined by subdividing the triangle until the minimum element area or, (when using a gridded ground model), the ground model resolution is reached. The sample points are the centroids of the resulting triangles.

If a triangle is smaller than the minimum element area or ground model resolution, the centroid of the triangle will be the only point sampled.

The same method is used when recalculating mesh element ground levels by resampling elevations from a different ground model.

Terrain-sensitive meshing

Terrain-sensitive meshing is used to increase the resolution of the mesh in areas that have a large variation in height, without increasing the number of elements in relatively flat areas.

This functionality can be applied to individual 2D zones by use of the Terrain-sensitive meshing field.

When terrain-sensitive meshing is enabled, the mesh generation process samples the ground model in each candidate triangle. If the range of heights within the triangle exceeds the Maximum height variation specified for the 2D zone, the triangle is split, increasing the resolution of the mesh in areas where terrain height varies rapidly. This process is repeated until the Maximum height variation is no longer exceeded, or splitting would be likely to result in a triangle with an area smaller than the Minimum element area specified for the 2D zone.

Currently terrain-sensitive meshing parameters are specified for the entire 2D zone and include the minimum element area specified for the 2D zone. Terrain-sensitive meshing parameters cannot be set for individual mesh zones and the minimum element areas specified for Mesh Zones do not apply to terrain-sensitive meshing.


Because each triangle is sampled at a limited number of points (maximum 64) it is possible that the process will not detect narrow linear features such as embankments or channels, particularly if the maximum triangle area is large. Even if detected, such a feature will not be accurately modelled if triangles with minimum element area are too large to resolve the sides and upper/lower surfaces of the feature. If required, such features should be modelled explicitly using 1D objects such as walls, banks or river reaches.

Mesh generation methods

InfoWorks ICM offers two methods of mesh generation for InfoWorks networks:

Clip meshing is automatically used to generate a mesh for a SWMM network.

Classic meshing is a well-proven method that is fast and robust in the vast majority of cases, but there are exceptions that could present difficulties. Clip meshing excels by comparison when it encounters highly complex geometry with a vertex density far greater than the desired mesh element density.

The clipped meshing process is outlined below:

  1. A primary mesh is generated, following the geometry of the 2D zone, but ignoring other geometrical constraints. The mesh resolution is refined in this stage to respect any mesh zones or terrain sensitive meshing.
  2. Each element from the primary mesh undergoes a parallelised per-element intersection routine, which involves clipping with proximal mesh input features/geometries, and then sub-dividing the intersection output into a local triangulation. The combination of all the local triangulations produces a secondary mesh.
  3. The secondary mesh is analysed, sampled, and attributed to provide all the relevant data necessary for an InfoWorks 2D simulation.
  4. Mesh aggregation is undertaken in a similar way to the classic method, however the triangles are pre-aggregated into initial collections according to their parent primary element that provides an improved aggregation with minimal shared segments between adjacent elements.

On average clip meshing has been found to be about four times faster than classic, although this differs substantially with the specifics of each meshing job. The greatest improvements tend to be:

A further aspect to consider when choosing which method to use is how the input objects impact on the final mesh. Note that for classic meshing, a change to a single input geometry vertex can propagate small differences throughout the entire mesh. For clip meshing, the primary mesh is only affected by the 2D Zone boundary and any mesh refinement options/features. Therefore, a change to a given input object should only impact on the local intersections, and so only cause local changes to the mesh (subject to aggregation). This provides more stability during the model build process. It can also simplify a before/after scenario comparison, as local geometry changes should not impact on 2D simulation results in distant locations, purely via mesh changes.

Creating 2D Meshes

Ground Model

2D Zones

Mesh Zones

Mesh Level Zones

Roughness Zones

2D Infiltration Zones

Turbulence Zones (2D)

Turbulence Models (2D)

Permeable Zones (2D)

Initial Conditions 2D

2D Point Sources

2D Line Sources

Defining 2D Nodes

Viewing 2D Mesh Element Properties