User Tools

Site Tools


This is an old revision of the document!

Structural Modeling

OpenVSP allows a user to model aerospace structures for a geometry and generate a finite element mesh model. This model can then be exported to an external FEA software package for post-processing and further analysis. To begin, a geometry must first be created or loaded. A structure can then be defined for the geometry using the FEA Mesh GUI. The GUI is accessed by clicking “FEA Mesh…” in the Analysis pull down menu.

VSP Terminology


A structure is defined as a collection of FEA parts associated with a single geometry. A geometry is able to have multiple structures.

FEA Part

An FEA part is any structural entity that can be added to a structure. This includes full-depth, zero-depth, and key-point types of entities.


A structural entity that passes entirely through a geometry is considered full-depth. Triangular shell elements are used to define the surface of the full-depth entity. Examples of full-depth aerospace structures include ribs, spars, and floors.


A zero-depth structural entity is composed of a series of beam elements. I can be defined along either a sub-surface edge or the intersection curve of two surfaces. Stringers, longerons, and other stiffeners are represented as zero-depth entities.


A specific FEA node that is fixed in space is referred to as a key-point (used interchangeably with fixed point). Key-points can be used to provide connectivity to other FEA meshes. The can also be used to apply a point load or mass at a specific location.

FEA Element

A group of interconnected FEA nodes create an FEA element. All elements are assigned a single element property.

FEA Node

An FEA node is a 3D coordinate point used to build FEA elements. FEA nodes may be assigned to multiple elements. Key-points are FEA nodes that have been defined at a specific location.


Shells are full-depth FEA parts comprised of triangular FEA elements. In Nastran these elements are CTRIA6. In Abaqus and Calculix they are S6 elements.


A cap is a zero-depth FEA part made up of beam FEA elements. The beam elements are represented in Nastran as CBAR. In Abaqus and Calculix they are B32 elements.

FEA Mesh Screen

Visible on all tabs of the FEA Mesh GUI are the status window, current structure identification, and “Mesh and Export” button. The status window is mainly used to display the progress of FEA mesh generation, which is run as a separate process. Error messages and warning will also be displayed in the status window. The current structure is listed at the bottom left of the GUI, and shows which structure is highlighted in the structure browser on the Structure tab. This is the structure that will be used to create the FEA mesh when “Mesh and Export” is selected.

Structure Tab

The main function of the Structures tab is the addition and removal of structures for the vehicle. At the top of the tab under “General”, there is a link to this wiki page. Below, the unit system for the vehicle can be specified. If the unit system is changed, all FEA related parameters are automatically converted. Since all of the FEA export file formats are unitless, the following options are available to ensure consist units:

The structure browser lists all of the structures for the vehicle, along with their name, parent geometry, and surface index. Below the browser, all available geometries a structure may be added to are listed. All geometry types, with the exception of Blank and Hinge, are allowed as a structure's parent. The available surface indexes for each geometry are also listed. More than one structure may be added to a geometry. The “Add Structure” button will create a new structure on the geometry and surface indicated in the above choices. “Delete Structure” will, as expected, delete the structure that is currently selected in the browser (warning: cannot be undone). The name of the currently selected structure may be edited below the add and delete buttons. When a structure is selected, the degenerate geometry preview can be displayed under “Orientation”. This feature is particularly useful for wing structural layups, where a top-down 2D view is shown. The display options can also be changed in the Geom Browser under “Surface”.

Part Tab

The Part tab provides organization and control of FEA parts for the selected structure. The browser at the top of the tab lists all FEA parts for the structure, and includes their name, type, structural entity type, and property assignment. To the left of the browser controls are available for reordering FEA parts. The ordering of parts in the browser is important in the case of tagging conflict, where priority is given to the part higher up in the browser. For example, if two FEA sub-surfaces overlap, the overlapping region is tagged according to the FEA part earlier in the list. Another feature of the browser is that multiple FEA parts can be selected at once. The options under “General” can then be set for the group of selected parts (or individual part). To add an FEA part to a structure, the FEA part type must first be indicated. The available FEA part types are slice, rib, spar, fixed point, dome, rib array, slice array, line, rectangle, ellipse, control surf, and line array. For more details on these part types, see the “FEA Part Types” section of this wiki page. One or more FEA parts can be deleted by selecting “Delete Part”. A part can be renamed with the input in the middle of the tab. If a single FEA part is selected, the “Edit Part” button will open the FEA Part Edit GUI. This GUI, which can also be accessed by double clicking an FEA part in the browser, offers controls and options unique to each FEA part type.

Material Tab

The Material tab contains a library of linear, temperature-independent, isotropic materials. In Nastran, these are defined by the MAT1 keyword. Materials in the library are available to all structures and are saved with the vehicle, so there is no need to recreate materials for different structures. The browser at the top of the Materials tab lists all materials in the library. The default materials available are Aluminum 7075-T6, Aluminum 2024-T3, Titanium Ti-6AI-4V, and AISI 4130 Steel. These materials can not be edited or deleted. To add a material, simply select “Add Material” and adjust the parameters for mass density, elastic modulus, Poissons ratio, and thermal expansion coefficient.

Property Tab

Similar to the Material tab, the Properties tab contains a library of FEA element properties available to all structures. Properties are specified as either shell or beam, and there must be at least one of each type at all times. The browser at the top of the tab lists the name, type, cross section, and material of the properties in the library. A default shell and beam property are provided, and can be edited as desired. To add a new property, simply specify the type and click the “Add Property” button. The selected property can be renamed or deleted (unless it is the last of its type). All properties are assigned a material from the library on the previous tab. For shell properties, the only additional parameter is thickness. Shell properties are written in Calculix and Abaqus with the SHELL SECTION keyword. In Nastran, PSHELL is used. For beam properties, the cross section of the element defines the additional parameters needed. The available cross sections are General, Circle, Pipe, I, Rectangle, and Box. In Calculix and Abaqus, the “Beam General Section” keyword is used if the cross section is general, and “Beam Section” is used for all other cross section types. Similarly, Nastran uses PBAR for general cross sections and PBARL otherwise. The “Show XSec” button next to the cross section type opens a new window with a diagram of the cross section. Once the FEA properties library has been built up, properties can be assigned to individual FEA parts. As would be expected, shell properties can only be assigned to triangular shell FEA elements and beam properties can only be assigned to beam FEA elements.

Mesh Tab

The Mesh tab is available for controlling aspects of the FEA mesh solver. The options available are similar to those seen on the Global tab to the CFD Mesh GUI. Further insight into these settings can be found here: CFD Mesh Wiki. Below the mesh control settings, the files exported during FEA mesh generation are listed. The first two, *.stl and *.msh, are general mesh formats that do not include any materials or properties. The mass output file is a *.txt file that lists the mass of each FEA part, divided between the shell and beam FEA elements. The remaining two export files are *.dat files written in Nastran and Calculix/Abaqus FEA mesh format. These files may be imported to an external FEA mesh program for further processing and analysis.

Display Tab

The Display tab is used to control visualization of the generated FEA mesh. Therefore, it has no functionality until the “Mesh and Export” button has been selected. At the top of the tab under “Display”, toggle buttons are available for controlling the display of all sets checked under “Display Element Sets”. “Draw Mesh” shows the borders of each triangular shell element. “Color Elements” is applies a different color to each element set. “Draw Nodes” displays each individual FEA node. “Draw Element Orientation Vector” draws the normal vector for beam elements. For shell elements, this button draws a vector pointing in the direction of increasing U. Since the FEA mesh is unstructured, this orientation vector is useful when laying out composite laminate layers. Under “Display Element Sets”, FEA parts are grouped by their shell and beam elements. Their visibility is controlled by the check boxes next to each set or by using the “Show All” and “Hide All” buttons.

FEA Part Types


Skin is defined as the outer mold line (OML) of the structure's parent geometry. It is automatically added to a structure upon its creation, and can only be removed by deleting the structure. The skin is composed of shell FEA elements, which the property for can be specified. The only additional option available for skin in the FEA Part Edit GUI is to delete the skin triangles after the FEA mesh has been generated.


Slice is a 2D cutting plane that is used to intersect a skin. A slice can be full-depth, zero-depth, or both, specified by selection of “Shell”, “Cap”, or “Shell and Cap”, respectively. The cutting plane for a slice is defined by an orientation, center location, and rotation. Orientation is the plane the slice runs parallel to. This can be defined from either the absolute axes or the body axes of the parent geometry. An option is available to specify distance as either relative or absolute. Relative distance is identified as a fraction of the bounding box of the parent geometry. Absolute is defined as a fixed location within the bounding box.


Ribs are a derivation of slice parameterized specifically for wing geometries. Ribs are defined from the leading edge to the trailing edge of the wing, parallel to the local XZ plane. In the FEA Part Edit GUI, “Edge Normal” can be used to specify the rib as perpendicular to the wing's leading edge, trailing edge, or any spars that have been added to the structure.


Spars are another extension of slice made for wing geometries. They are defined from the root to tip of the wing, oriented vertically along the local XZ plane. An option is included to constrain a spar to a specific wing section, which can be useful for a multi-section wing.


Dome is a semi-elliptical cutting surface that can model pressure bulkheads and similar aircraft structures. The parameters used to define a dome are radius (A, B, C), location (X, Y, Z), and rotation. The center of the dome can be initially constrained to the spine of the parent geometry. The location along the spine can be specified, and the dome can then be translated from there. This allows the dome to react more parametrically to changes made to the parent geometry. It is important to note that domes must be oversized manually to correctly intersect the skin, due to the fact that the skin-dome intersections are not calculated until FEA mesh generation begins. Dome is not available for wing geometries.

Fixed Point

A fixed point, or key-point, is a forced FEA node at a specified surface location (UW coordinates). Fixed points can be placed on the parent skin surface or any available FEA part surface. A fixed point can also be turned into a mass element and assigned a mass value. This element is defined as CONM2 in Nastran and MASS in Calculix and Abaqus.

FEA Sub-Surface

Sub-surface modeling capabilities have been extended to structures in the form of line, rectangle, ellipse, and control surf sub-surface types. All of the same options and parameters for “normal” sub-surfaces are available to FEA sub-surfaces. However, sub-surfaces defined on a geometry are not automatically transferred when a structure is created. FEA sub-surfaces can be used to assign properties to specific areas, define separate element sets, cut holes in a surface, and create beam elements. “Tag” is used to specify which triangular shell elements are identified as belonging to the FEA sub-surface. If “Cap (No Tris)” is indicated, all shell elements tagged for the sub-surface will be deleted and a hole will be left.


Arrays are groups of FEA parts defined by their start and end location, spacing, and direction. The three types of arrays are rib array, slice array, and line array. Many of the same options and features available to the individual FEA part type are available for the array as well. If a specific number of parts is desired for the array, distance should be indicated as “Relative”. “Absolute” ensures a fixed distance between parts in the array. All arrays have the option to be individualized, which turns the array into individual FEA parts. Note, this action cannot be reversed.

Best Practices

Although a focus of the development for structural modeling in OpenVSP has been making it as robust as possible, certain cases can cause structural setup or mesh generation errors. Some of these may be worked around while others do not have a solution at this time. If you believe that you have found a bug or unsupported use case that is not identified here, please send us an email or post on the Google Group here:!forum/openvsp

  1. Avoid coplanar overlapping surfaces. Since the FEA mesh solver cannot identify a single intersection curve for two coplanar surface, mesh errors are likely to result. A common example of this is attempting to place a rib directly on a flat wing root or tip cap (see the images below). One workaround for this is to use a line subsurface to assign the root or tip with rib properties. Another option is to place a rib or slice at the root or tip, but set the root or tip cap to “None”.
  2. Avoid placing planar FEA parts at the exact same location. Doing this will cause the FEA parts to be merged. In the merge, only data for the FEA part higher in the FEA part browser will be kept.
  3. Mesh errors may occur when an intersection occurs directly on the edge of a surface patch. One example of this is for a slice placed at an absolute location of 7.6875 on a standard pod (see the image below). If this occurs, try adjusting the FEA part location very slightly (absolute location change of 1e-8 should fix the issue).
  4. If placing a fixed point on an FEA part surface other than the skin, make sure the fixed point is located within the intersection curve of the parent part. Otherwise, the fixed point will be lost.
  5. Ribs and spars on complex wing geometries may not intersect the skin correctly. If this is the case, slice can always be used to model a rib or spar.
  6. Mesh errors often result when intersection curves overlap. This could occur if a spar is placed on a control surface edge, a slice is aligned directly with a line sub-surface, or a similar intersection conflict is created.

API and Scripting


int AddFeaStruct( const string & in geom_id, bool init_skin = true, int surfindex = 0 )
void DeleteFeaStruct( const string & in geom_id, int fea_struct_ind )
void SetFeaMeshVal( const string & in geom_id, int fea_struct_ind, int type, double val )
void SetFeaMeshFileName( const string & in geom_id, int fea_struct_id, int file_type, const string & in file_name )
void ComputeFeaMesh( const string & in geom_id, int fea_struct_ind, int file_type )
string AddFeaPart( const string & in geom_id, int fea_struct_id, int type )
string DeleteFeaPart( const string & in geom_id, int fea_struct_id, const string & in part_id )
string AddFeaSubSurf( const string & in geom_id, int fea_struct_id, int type )
string DeleteFeaSubSurf( const string & in geom_id, int fea_struct_id, const string & in ss_id )
string AddFeaMaterial()
string AddFeaProperty( int property_type = 0 )


FEA Part Type


FEA Part Element Type


FEA Slice Type


FEA Unit Type


FEA Cross Section Type


FEA Export Type


References and Further Reading

  1. Bruhn, E. F. (1973). Analysis and Design of Flight Vehicle Structures. Indianapolis, Jacobs Publishing, Inc.
  2. Cutler, John, and Jeremy Liber. (2005). Understanding Aircraft Structures , 4th Edition. 4th ed., Blackwell Publishing Ltd.
  3. Dhondt, Guido. (2017, April 2).CalculiX CrunchiX USER’S MANUAL version 2.12.
  4. MatWeb Material Property Data.
  5. Niu, Michael C. Y. (1988) Airframe Structural Design: Practical Design Information and Data on Aircraft Structures. Hong Kong, Conmilit Press Ltd.
  6. Siemens. Element Library Reference.
  7. Siemens. NX Nastran User Guide.
  8. Simulia. Abaqus 6.14 Documentation.
  9. U.S. Department of Transportation, Federal Aviation Administration. (2012). Aviation Maintenance Technician Handbook- Volume 1.

Back to Landing Page

This page was created and edited by: — Justin Gravett 2017/09/21 12:00

feamesh.1505517084.txt.gz · Last modified: 2018/04/01 14:40 (external edit)