IA_FEMesh (Finite Element Meshing Module from the University of Iowa)
A loadable module to automate the creation of surface and volumetric meshes for finite element analysis.
Module Type & Category
Authors, Collaborators & Contact
- Nicole Grosland, University of Iowa, firstname.lastname@example.org
- Vince Magnotta, University of Iowa, email@example.com
- Kiran Shivanna, University of Iowa, firstname.lastname@example.org
- Austin Ramme, University of Iowa
- Steve Pieper, Isomics, email@example.com
- Curtis Lisle, KnowledgeVis, firstname.lastname@example.org
This module allows the creation and editing of surface and volumetric meshes. Polygonal surfaces in VTK or STL format are imported to begin the process. Then a unique and intuitive bounding surface (called Building Blocks) are created interactively by the user and used to guide automated meshing algorithms. The module includes visualization and analysis reports of the quality of mesh elements. Meshes can be written out in Abaqus or VTK format for later processing.
Examples, Use Cases & Tutorials
- IA_FEMesh is particularly well suited for quickly developing quality hexahedral meshes for artificial joint research and prothesis design. Its intuitive interface allows the user to mesh and review moderate sized objects, such as bone surfaces, efficiently. However, the use cases are not restricted to this application area.
- Meshing Module Tutorial
- IA_FEMesh Users Manual
Quick Tour of Features and Use
The user interface for IA_FEMesh is organized as a set of tabs, with each tab corresponding to a group of related activities. Often the user will move back and forth between the tabs during the meshing process. The tabs organize related operations yet allow free movement, depending on the users needs. The tabs and associated operations are listed below:
- Surface: This tab allows input and saving of surface files used to define the object which will be meshed.
- Building Block: After a 3D object surface is input, the user interactively creates, modifies, and views a control surface used to guide meshing algorithms. Under this tab, operations for editing, copying, deleting, and splitting building blocks provide the tools for rapid building block creation. The operations can be applied to all or a selected subset of building blocks.
- Mesh Creation:This tab contains the algorithms for projecting points along the building block walls down onto the selected surface mesh. A solid mesh is created using transfinite or elliptical interploation.
- Mesh Quality: After a mesh is created, tools inside this tab allow for interactive viewing, exploration, and mesh improvement algorithms to be run if desired.
- Material Properties: Meshes are composed of multiple surface and/or volume elements. Individual elements or groups of elements are selected and given material properties with the tools inside this tab. Material properties stay with the mesh and are output when the mesh is saved as an external file.
- Boundary Conditions: Multi-step boundary conditions, including external forces, can be defined by the GUI tools defined under this tab. A user can create an Abaqus input file and visually preview if conditions have been specified correctly before beginning an external finite element simulation.
IA_FEMesh has no external dependcies. The module creates meshes in ABAQUS format. To perform finite element analysis, the user will have to provide a suitable simulation environment.
As far as the software building process, all required support libraries, that extend the Slicer3 base, are built from source code during the Slicer3 build process automatically.
This module isn't fully integrated with MRML yet. MRML scene snapshots and restores are not yet supported. Please save your work using the file save dialogs in the user interface.
Follow this link to the Slicer3 bug tracker.
Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.
Source code & documentation
IA_FEMesh was developed as a standalone program and has been integrated for use in Slicer3 as one of the products of a NA-MIC External Collaboration. A design goal for this effort is to allow software development to continue on both the standalone and integrated module versions while working off a common code base.
To browse the module source code, click here.
Custom GUI classes were created to group meshing operations -- inheriting from a common parent class developed for this module. Doxygen generated documentation of the abstract parent class and the operations as derived classes is available here.
Please see the publications section of the grant description page also listed directly above.