This is an old revision of the document!
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.
A structure is defined as a collection of FEA parts associated with a single geometry. A geometry is able to have multiple structures.
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 defined along a sub-surface edge or the intersection of two surfaces. A series of beam elements define the zero-depth feature. 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.
A group of interconnected FEA nodes create an FEA element. All elements are assigned a single element property.
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.
Visible on all tabs of the FEA Mesh GUI are the status window, currently selected structure output, 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. Additionally, error messages and warning will also be displayed in the status window. The current structure output lists 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.
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. Below, the unit system for the vehicle can be specified. All of the FEA export file formats are unitless, so 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 structures 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. 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”.
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 (the options can also be used for a single selection). 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”. If a single FEA part is selected in the browser, the part can be renamed and the “Edit Part” button can be used to pull up the FEA Part Edit GUI. This GUI, which can also be accessed by double clicking a part in the browser, offers controls and options unique to each FEA part type
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, i.e. 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 to the desired values.
Similar to the Material tab, the Properties tab contains a library of FEA element properties that are available to all structures. Properties can either be shell properties or beam properties. The browser at the top of the Properties tab lists all of the properties in the library. There must be a minimum of one shell and one beam property at all times. 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). For shell properties, the only defining parameters are a material and thickness. Shell properties are written in Calculix and Abaqus export files with the SHELL SECTION keyword. In NASTRAN, PSHELL is used. Like shell properties, beam properties are also assigned a material. The cross section of the beam element defines the parameters needed for the beam property. 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, PBAR defines general cross sections in NASTRAN while PBARL defines all other cross section types. The “Show XSec” button next to the cross section type opens a new window with a diagram of the cross section type. 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.
The Mesh tab is available for controlling aspects of the solver used during the generation of an FEA mesh. 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 below these 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.
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 FEA elements selected in the set. “Draw Mesh” displays the borders of each triangular shell element. “Color Elements” is used to apply a different color to each element set. “Draw Nodes” provides visualization of the individual FEA nodes. “Draw Element Orientation Vector” draws the normal vector for beam elements. For shell elements, this button draws a vector that points in the direction of increasing U. Since the FEA mesh is unstructured, this orientation vector is important for 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.
The one FEA part common to all structures is skin. Skin is defined as the outer mold line (OML) of the structures parent geometry. The skin is automatically added upon the creation of a new structure, and can not be removed. The skin is composed of shell FEA elements, which the property for can be specified. The only additional option available for skins 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 specifies the center location of the slice as a fraction of the bounding box of the parent geometry. Absolute sets the center of the slice at 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 wings 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 be used to 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. In addition, dome is not available for wing geometries.
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.
Sub-surface modeling capabilities have been extended to structures in the form of line, rectangle, ellipse, and control surface sub-surface types. All of the same options and parameters for “normal” sub-surfaces are available to FEA sub-surfaces. However, sub-surfaces defined for 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 for an FEA sub-surface, 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. However, this action cannot be reversed.
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 AddFeaProperty( int property_type = 0 )
*TO DO: Alphabetize