Programmer's Documentation



libsurf contains components which together make up a geometry kernel for surface modeling and unstructured mesh generation.


[Link to Module Documentation]

A large part of libsurf implements curve and surface geometry objects which are used in the mesh generation functions. Further functionality concerns the efficient computation of intersection lines, even for multiple surfaces simultaneously, and low-level fundamental functions which facilitate mesh generation.

Note that even though a wide variety of different types of curves and surfaces are equally fully supported, their performance characteristics differ, simply because of the mathematical complexity of their evaluation. Significant effort has been expended to speed up the evaluation of cubic (non-rational) b-spline curves and surfaces.


[Link to Module Documentation]

In order to be able to exchange geometry information with external CAD systems, libsurf implements reading and writing of IGES and STEP AP203 files. More objects support output IGES than STEP i/o.

When exporting geometry from libsurf to CAD, note that most CAD systems do not fully support the standard formats as they are documented. One important limitation which is often present regards the number of control points in spline surfaces and the maximum permit variation of tangent directions. If any of these limits is exceeded, the corresponding surface is either not imported at all or automatically split on import.

Mesh Generation

[Link to Module Documentation]

libsurf contains two Delaunay-based surface mesh generators. The legacy generator used by sumo 2.x uses the classes prefixed by "Dn" while the new, much more flexible system is marked by "Dc". The main differences are that the "Dc" generator has support for explicitly defined topology information and the possibility to work on mapped domains.

Some support for volume mesh generation is present in the form of interfaces to TetGen. Furthermore, class PentaGrow can be used to generate hybrid tetrahedral-pentahedral volume meshes for RANS solvers, but requires TetGen to be available for the tetrahedral domain.

Field Mapping

[Link to Module Documentation]

A number of classes are meant for the ratehr specialized task of mapping structural displacements of a structural model to aerodynamic surface mesh, and the perform the related operation of mapping pressure loads from aerodynamic to structural models.

Structural Modeling

[Link to Module Documentation]

Classes prefixed with "Sm" can be used to simplify the creation of global shell-and-beam element finite-element models as they are typical for global full aircraft models for load distribution and dynamic analyses.

The group of classes prefixed with "Nst" is designed to read and write files to interface with the NASTRAN family of structural finite-element solvers originating at NASA.


Commercial License Usage

Licensees holding valid commercial licenses may use this file in accordance with the terms contained in their respective non-exclusive license agreement. For further information contact .

GNU General Public License Usage

Alternatively, this file may be used under the terms of the GNU General Public License version 3.0 as published by the Free Software Foundation and appearing in the file gpl.txt included in the package containing this file.

Deprecated Components

Some parts of libsurf date back to about 2001 and are no longer used in new projects. However, they are still present in order to support legacy software. The corresponding classes are marked in the documentation as deprecated.

Generated on Sat Dec 2 2023 03:03:19 for libsurf by   doxygen 1.8.5