Skip to main content

Mesh-Geometry Associativity using Fidelity Pointwise MeshLink Framework

A framework has been developed for describing how a computational mesh is associated with the geometry model it discretizes. The target application of this framework is surface mesh adaptation in a CFD flow solver. The framework, MeshLink, consists of two components. First, a schema has been defined to describe the one-to-many associativity of a surface mesh to the geometry model entities to which it is attached. Second, a high-level library provides a kernel-agnostic wrapper for the necessary geometry queries to an application (e.g., mesher, flow solver). Both the schema and library are provided freely and openly. MeshLink’s ability to support solution mesh adaptation on linear and curved meshes for a high-order flow solution is demonstrated in several test cases relevant to aerospace applications.

Why is Linkage with CAD Important in CFD?

The CFD 2030 Vision Study identified an “inadequate linkage with CAD” as a pacing item in the advancement of applied CFD. Beyond interoperability and suitability for simulation, the CFD flow solvers need to evaluate the geometry model (e.g., compute curvature, project mesh points onto the model) and perform those evaluations in a tightly-coupled, low-overhead manner within a massively parallel computational environment.
A flow solver typically limits its mesh associativity queries to boundary conditions (BC) (e.g., wall, symmetry plane, outflow) and volume conditions (VC) (e.g., fluid, porous media, solid). Even if one were to assume that all wall BC mesh points are on the geometry model, there is no data to identify exactly where on the geometry model those points belong.
To make matters more complicated, some surface mesh points are constrained to curve entities. This additional complication arises because the computation of intersection curves is a tolerance-based fit of discrete points. Knowing whether the mesh points adhere to the intersection curve or one or the other of its parent surfaces is critical to the robust use of the geometry model.

Mesh-Geometry Associativity

The term geometry association is used to denote the relationship between a mesh element and the supporting computational geometry model used to constrain the location of the mesh element in Cartesian space. 

MeshLink provides access to several geometry kernels, and the Fidelity™ Pointwise® Geode kernel in MeshLink is tuned to the needs of engineering simulation; that is, its capabilities and performance are biased toward evaluations and inverse evaluations versus providing a breadth of geometry creation functionality. The development of the Geode kernel is a response to the NASA CFD Vision 2030 Study's identification of the lack of CFD software access to geometry.

Figure 1. MeshString and MeshSheet topology objects contain MeshEdge and MeshFace elements.

The MeshLink Library defines a Geometry Group object that provides a unique integer identifier for the computational geometry entity(s) associated with a mesh element. The Geometry Group identifier allows:

  • Mesh associativity both to a single geometry entity and to multiple geometry entities using a common API 
  • Efficient representation of repeated geometry association for multiple mesh entities

MeshLink File and Schema

The MeshLink file defines geometry associativity in a mesh-centric manner, using the associativity data in a simulation framework. Geometry entities are given a unique global identifying integer termed the geometry reference ID (gid).

What is a MeshLink File?

A MeshLink file is an open, neutral file format designed and documented for the transfer of mesh geometry associativity data. The MeshLink file connects geometry entities contained in the geometry data file with mesh elements contained in the mesh data file and could be considered the configuration’s master file.

The MeshLink XML file format complies with the XML Schema Definition (XSD) standard. Since the XML file is validated against the MeshLink XSD, consistency can be ensured across a variety of implementations while still allowing flexibility of use for any given application. 

The MeshLInk schema, as shown in Figure 2, was designed to allow maximum flexibility for a given application. For example, the content of a MeshSheet (collection of surface-like mesh elements) is not rigidly defined to allow an application the freedom to define its structure.

Figure 2. MeshLink XML Schema Hierarchy.

The MeshLink file is an ASCII XML text file that ensures portability between hardware platforms. Moreover, the XML standard allows comment strings, making the file human-readable and allowing an application to provide context for debugging purposes. 

The MeshLink API

The MeshLink API is a high-level application programming interface that abstracts details of
evaluating geometry models from the CFD flow solver developer. The API is not a kernel itself. Instead, the API wraps any geometry kernel with less than a dozen commonly used functions listed here.

  • Read the geometry model file
  • Read the MeshLink XML fileProject a mesh point onto the geometry model
  • Return the (X, Y, Z) coordinates of a projected mesh point
  • Return the (U, V) coordinates of a projected mesh point
  • Return the geometry model entity ID of a projected mesh point
  • Evaluate the (X, Y, Z) coordinates for a given set of (U, V) coordinates
  • Evaluate the radius of curvature of the geometry model at given (U, V) coordinates

The API also wraps any XML parser that an application chooses. The MeshLink API has been designed to be streamlined for common analysis tasks and does not require an intimate knowledge of geometry model topology.

Once the application has loaded the MeshLink associativity and instantiated an API-compliant geometry kernel, the API is used to query mesh elements and their corresponding geometry references, and then evaluate or project new or updated coordinates as the application requires.

MeshLink Schema in an HPC Environment

The MeshLink schema allows the geometry model to be efficiently accessed within an HPC environment. Given the MeshLink file and the mesh partitioning across the compute nodes, one can easily determine the geometry entities required on each compute node for adaptation. Also, the MeshLink schema can be easily streamed within an HPC environment, so communication need not be done using file transfer.

The one-to-many MeshLink mesh-geometry associativity from the MeshLink API is cached using NASA's refine mesh adaptation tool. The cached mesh-geometry associativity is stored at each vertex where a vertex will have zero or more sheet, string, or point associations.

An extension to the MeshLink/Geode via API could be made to cache and return the geometry data in an opaque binary block.

MeshLink API Application Examples

All the application examples (shown below) use the reference implementation of MeshLink API and the Geode geometric modeling kernel. They also use the Apache Xerces XML parser. The cases labeled with the FUN3D (Fully Unstructured Navier Stokes 3D) finite-volume CFD flow solver include the Spalart-Allmaras (SA) turbulence model, refine mesh adaptation tool, MeshLink, and Geode.

CASE I: ONERA M-6 Wing – Mesh Refinement to Geometry

Figure 3. a) Geometry model of the ONERA M-6 wing, b) The coarse initial mesh for the ONERA M-6 wing demonstration case, c) The result of adapting a coarse mesh for the ONERA-M6 mesh to simple geometric goals while maintaining adherence to the geometry model using MeshLink.

CASE II: ONERA M-6 Wing – Mesh Refinement to Geometry

Figure 4. This mesh for the ONERA M-6 uses hp-adaptation driven by a flow solution. The mesh cells are colored by their polynomial degree Q (p-adaptation), and their relative size indicates the h-adaptation.

CASE III: ONERA M-6 Wing - Linear Anisotropic Adaptation

Figure 5. a) This mesh for the ONERA M-6 wing served as the starting point for mesh adaptation to a flow solution. It was adapted to the geometry model’s surface curvature by the refine-MeshLink toolchain, b) This mesh for the ONERA M-6 Mesh has been adapted by the FUN3D toolchain to the CFD solution, c) The symmetry plane (top) and upper surface (bottom) meshes for the ONERA M-6 illustrated the results of anisotropic adaptation.

CASE IV: DLR-F6 - Linear Anisotropic Adaptation

Figure 6. A mesh for the DLR-F6 Mesh was adapted by the FUN3D toolchain. Shown clockwise from the upper left are the pressure coefficient, nose, tail, and nacelle trailing edge.


The development of the Fidelity MeshLink API contributes to the goals of the CFD 2030 Vision Study by directly addressing the concern of “inadequate linkage with CAD.” MeshLink is an ongoing project to define and deliver mesh-geometry associativity. The possibilities of direct linkage with CAD are clearly shown in the MeshLink application examples. 

Accommodating the typical features present in imported geometry models (e.g., quilting inconvenient topology, accepting relatively large boundary representation tolerances) will contribute to the automation intent laid out in the vision study.


  1. Wyman, Nicholas J., Park, Michael, A., Baker, Patrick A., and Chawner, John R., “A Framework for Mesh-Geometry Associativity during Mesh Adaptation,” AIAA paper no. 2021-1900, January 2021.
  2. “MeshLink: Simplified Computational Geometry Access,”
    URL:, accessed May 2022.
Untitled Document