Mesh Curving Service

Applying high-order finite element methods to general 3D curved domains requires carefully constructed meshes with properly curved elements [1]. A common approach to construct such curved meshes is to generate straight-sided meshes and curve the mesh entities on domain boundaries to the required order by inserting high-order edge (or face) nodes. A major problem with this procedure is that a number of elements typically become invalid (resulting in negative determinant of the Jacobian over a portion of the element) or poorly shaped after being curved [2]. In order to tackle this problem and support the needs of SciDAC applications (e.g. linear accelerator design at SLAC), a mesh curving service has been developed to construct valid and well-shaped curved elements. The mesh curving service is able to work in parallel to support large scale applications that require sufficiently refined partitioned curved meshes.

The mesh curving service is being developed as part of the ITAPS component software - MeshAdapt, and now has two major functionalities: 1) curved mesh creation for straight sided mesh over general 3D domains both in serial and in parallel, and 2) shape quality optimization of 3D curved meshes including element invalidity check and correction.

In curved mesh creation, the mesh curving service takes as inputs a CAD model of the domain of interest (such as Parasolid and Acis models), a valid straight-sided mesh of that domain and the classification information (the association of the mesh entities with the corresponding model entities) [3], then inserts high-order nodes to mesh entities classified on model boundaries (mesh edges and/or faces) and properly moves these nodes to appropriate positions on the model boundary by parametric queries to the CAD engines. The shape quality optimization functionality evaluates the shape quality of the curved mesh elements, including those that are invalid and performs local mesh modification and explicit nodal smoothing procedures to eliminate invalid elements and improve the overall shape quality of the rest valid elements. In the meantime it maintains the geometric approximation by keeping the nodes properly placed on the curved geometric boundary. The mesh curving service is currently able to work with unstructured meshes both in serial and parallel. When integrated with parallel straight sided element mesh generation tools, the service is able to effectively generate valid partitioned curved meshes with hundreds of millions of elements in parallel.

The mesh curving service performs a set of local mesh modification and explicit nodal smoothing operations to eliminate the invalid elements. They are applied in an incremental manner as well as a specific order [4]. The modification procedures are built upon a set of unit topological modifications including collapse, split, swap, etc. Internally it uses Bezier polynomials to represent the mesh geometry. The mesh region validity check and correction takes advantage of the bounding property of the Bezier polynomials which ensures that the determinant of Jacobian of the element in its closure is always positive and is independent of the chosen integration scheme in the high order finite element method [4]. In the situation where the given mesh uses different shape representation methods such as Lagrange polynomials, the conversion between the original representation and the Bezier method is processed before and after applying the tool.

In parallel, inter-processor communications are taken into consideration when constructing mesh cavities across partition boundaries. With the support of other ITAPS software (IPComMan and iMeshP), the curved mesh entities needed by modification operations can be efficiently migrated from one partition to another to construct the cavities. Inter-processor communication is also used for unifying data attached to the mesh entities shared among multiple partitions.

Accelerator Application

Figure 1. Overview and close-ups of a partitioned curved mesh of linear accelerator cavities

The mesh curving service has been successfully applied to curvilinear meshes being simulated by the SLAC National Accelerator Laboratory (SLAC) in the large-scale electromagnetic modeling. Large parallel curved meshes are needed to ensure resolution and accuracy of the simulation results. So far the largest mesh curved by the mesh curving service is a partitioned mesh with more than 180 million curved tetrahedral elements on a model of two linear accelerator cavities. It was generated in parallel with 64 cores. Figure 1 is an example of a partitioned curved mesh generated in parallel for the accelerator cavity model. The valid curvilinear meshes not only make the time-domain simulations stable but also make the execution time up to 30% faster due to better condition matrices.

Point of Contacts

Qiukai Lu (RPI,
Mark S. Shephard (RPI,

Download information

The mesh curving service is implemented as part of MeshAdapt which is an ITAPS component software. For more information and download, see MeshAdapt webpage at (


[1] X. Luo, M.S. Shephard, J.-F. Remacle, R.M. OBara, M.W. Beall, B. Szabo and R. Actis, p-Version Mesh Generation Issues, 11th International Meshing Roundtable, 2002.

[2] X. Luo, M.S. Shephard, R.M. OBara, R. Nastasia, and M.W. Beall, Automatic p-version mesh generation for curved domains, Engineering with Computers, 20(3):273-285, 2004.

[3] M.W. Beall and M.S. Shephard, A General Topology-Based Mesh Data Structure, International Journal for Numerical Methods in Engineering, 40:1573-1596, 1996.

[4] L-Q Lee, L. Ge X. Luo, M.S. Shephard and C. Ng. Moving Curved Mesh Adaptation for Higher Order Finite Element Simulations, Engineering with Computers, 2008.