Difference between revisions of "Modules:IA FEMesh-Documentation-3.6"
Line 103: | Line 103: | ||
** '''Save''' | ** '''Save''' | ||
|[[Image:MeshingTabs.png|thumb|200px|IA-FEMesh Tabbed Wizard Interface]] | |[[Image:MeshingTabs.png|thumb|200px|IA-FEMesh Tabbed Wizard Interface]] | ||
− | [[Image:IAFEMeshBlockEdit.png|thumb|200px| | + | [[Image:IAFEMeshBlockEdit.png|thumb|200px|Block Editing Interface]] |
− | [[Image:IAFEMeshQualityTab.png|thumb|200px| | + | [[Image:IAFEMeshQualityTab.png|thumb|200px|Mesh Quality Interface]] |
|} | |} | ||
Revision as of 20:46, 1 April 2010
Home < Modules:IA FEMesh-Documentation-3.6Return to Slicer 3.6 Documentation
IA_FEMesh
IA-FEMesh
General Information
Module Type & Category
Type: Interactive
Category: Wizard
Authors, Collaborators & Contact
- Nicole Grosland: The University of Iowa - Departments of Biomedical Engineering and Orthopaedic Surgery, Center for Computer Aided Design (CCAD), Musculoskeletal Imaging, Modeling, and EXperimentation (MIMX)
- Vincent Magnotta: The University of Iowa - Departments of Radiology, Biomedical Engineering, and Psychiatry, Center for Computer Aided Design (CCAD), Musculoskeletal Imaging, Modeling, and EXperimentation (MIMX)
- Kiran Shivanna: The University of Iowa - Center for Computer Aided Design (CCAD), Musculoskeletal Imaging, Modeling, and EXperimentation (MIMX)
- Austin Ramme: The University of Iowa - Department of Biomedical Engineering, Center for Computer Aided Design (CCAD), Musculoskeletal Imaging, Modeling, and EXperimentation (MIMX)
- Steve Pieper: Isomics
- Curt Lisle: KnowledgeViz
- Contact: Nicole Grosland (grosland@engineering.uiowa.edu) or Vincent Magnotta (vincent-magnotta@uiowa.edu)
Module Description
This module allows the creation and editing of 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.
Usage
Use Cases, Examples
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.
Tutorials
Links to tutorials explaining how to use this module:
Quick Tour of Features and Use
The IA-FEMesh interface uses a wizard workflow. The wizard is implemented using a tabbed notebook with each tab corresponding to the type of data that the user will work with in that step of the meshing process. While there is a logical order where the user will work from left to right in the tabs, a strict linear ordering is not required and the user can freely go back and forth between the tabs. Described below are the tabs and the main features that each provides.
|
Development
Notes from the Developer(s)
Algorithms used, library classes depended upon, use cases, etc.
Dependencies
Tests
On the Dashboard, these tests verify that the module is working on various platforms:
- MimxitkImageToVtkUnstructuredGridTest itkImageToVtkUnstructuredGridTest.cxx
- MimxAddUnstructuredHexahedronGridCellTest MainAddUnstructuredHexahedronGridCellTest.cxx
- MimxDeleteUnstructuredHexahedronGridCellTest MainDeleteUnstructuredHexahedronGridCellTest.cxx
- MimxSplitUnstructuredHexahedronGridCellTest MainSplitUnstructuredHexahedronGridCellTest.cxx
- MimxMirrorUnstructuredHexahedronGridCellTest MainMirrorUnstructuredHexahedronGridCellTest.cxx
- MimxBoundingBoxFromUnstructuredGridTest MainBoundingBoxFromUnstructuredGridTest.cxx
- MimxEquivalancePointsTest MainEquivalancePointsTest.cxx
- MimxExtractSurfaceTest MainExtractSurfaceTest.cxx
- MimxBoundingBoxFromBoundsTest MainBoundingBoxFromBoundsTest.cxx
- MimxExtractStructuredGridEdgeTest MainExtractStructuredGridEdgeTest.cxx
- MimxExtractStructuredGridFaceTest MainExtractStructuredGridFaceTest.cxx
- MimxGeometryFilterTest MainGeometryFilterTest.cxx
- MimxBoundingBoxToStructuredGridsTest MainBoundingBoxToStructuredGridsTest.cxx
- MimxMorphStructuredGridTest MainMorphStructuredGridTest.cxx
- MimxUnstructuredToStructuredGridTest MainUnstructuredToStructuredGridTest.cxx
- MimxMergePointsTest MainMergePointsTest.cxx
- MimxRecalculateInteriorNodesTest MainRecalculateInteriorNodesTest.cxx
Known bugs
Links to known bugs in the Slicer3 bug tracker
Usability issues
Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.
Source code & documentation
IA-FEMesh Source code. It consists of several subdirectories:
- Adapter - Converts between ITK and VTK data structures
- BuildingBlock - Classes to implement the KWWidgets user interface
- Common - Custom data structures used for the meshing algorithms
- Filter - Filters to convert between custom data structures. Implements the underlying code for mesh generation.
- IA_FEMesh - Loadable module for meshing
- IO - Loading and saving of data
- Mesh - Meshing routines implemented using ITK
- Testing - Testing infrastructure
- Widgets - Custom 3D VTK widgets to support user interaction during mesh generation
Doxygen documentation:
- Common
- vtkMimxAbaqusFileWriter
- vtkAbstractIterator
- vtkAbstractList
- vtkContainer
- vtkFESurfaceList
- vtkFiniteElementBuildingBlockList
- vtkFiniteElementMeshList
- vtkLinkedList
- vtkLinkedListIterator
- vtkLinkedListWrapper
- vtkLinkedListWrapperTree
- vtkLocalAxesActor
- vtkLocalLinkedListWrapper
- vtkMeshQualityClass
- vtkMimxActorBase
- vtkMimxApplyNodeElementNumbers
- vtkMimxBoundaryConditionActor
- vtkMimxBoundingBoxSource
- vtkMimxColorCodeMeshSeedActor
- vtkMimxCurve
- vtkMimxEntryValueChangedCallback
- vtkMimxErrorCallback
- vtkMimxImageActor
- vtkMimxInteractorStyleUser
- vtkMimxMergeNodesPointAndCellData
- vtkMimxMeshActor
- vtkMimxMeshSeed
- vtkMimxPlanarStructuredGridSource
- vtkMimxSolidStructuredGridSource
- vtkMimxSTLSource
- vtkMimxSurfacePolyDataActor
- vtkMimxTestErrorCallback
- vtkMimxUGrid
- vtkMimxUnstructuredGridActor
- vtkMRMLFESurfaceNode
- vtkMRMLFiniteElementBuildingBlockDisplayNode
- vtkMRMLFiniteElementBuildingBlockNode
- vtkMRMLFiniteElementMeshDisplayNode
- vtkMRMLFiniteElementMeshNode
- vtkMRMLNullDisplayNode
- vtkPVAxesActor
- Filter
- vtkFaceHedgeHog
- vtkMeshQualityExtended
- vtkMimxAddUnstructuredHexahedronGridCell
- vtkMimxApplyImageBasedMaterialProperties
- vtkMimxAttachBoundingBoxMesh
- vtkMimxBoundingBoxFromBounds
- vtkMimxBoundingBoxFromUnstructuredGrid
- vtkMimxBoundingBoxSurfaceMesh
- vtkMimxBoundingBoxToStructuredGrids
- vtkMimxButterflyMeshFromBounds
- vtkMimxClipImageFromBox
- vtkMimxComputeNormalsFromPolydataFilter
- vtkMimxConstrainedSmoothPolyDataFilter
- vtkMimxCylindricalMesh
- vtkMimxDeleteUnstructuredHexahedronGridCell
- vtkMimxEdgeToPlanarStructuredGrid
- vtkMimxEdgeToStructuredGrid
- vtkMimxEditUnstructuredHexahedronGrid
- vtkMimxEquivalancePoints
- vtkMimxExtractElementNumbersOfaFaceFilter
- vtkMimxExtractStructuredGridEdge
- vtkMimxExtractStructuredGridFace
- vtkMimxExtractSurface
- vtkMimxExtrudePolyData
- vtkMimxFilterWin32Header
- vtkMimxFourPointsToStructuredPlanarMesh
- vtkMimxGenerateHexahedronMesh
- vtkMimxGeometryFilter
- vtkMimxMapOriginalCellAndPointIds
- vtkMimxMergePoints
- vtkMimxMeshSeed
- vtkMimxMirrorUnstructuredHexahedronGridCell
- vtkMimxMorphStructuredGrid
- vtkMimxPatchSurfaceMesh
- vtkMimxPlanarEllipticalInterpolation
- vtkMimxPlanarTransfiniteInterpolation
- vtkMimxPlanarTrilinearInterpolation
- vtkMimxPolyDataSingleSourceShortestPath
- vtkMimxRebinMaterialProperty
- vtkMimxRecalculateInteriorNodes
- vtkMimxRecalculateInteriorNodesTPS
- vtkMimxSelectSurface
- vtkMimxSetStructuredGridEdge
- vtkMimxSetStructuredGridFace
- vtkMimxSmoothUnstructuredGridFilter
- vtkMimxSolidEllipticalInterpolation
- vtkMimxSolidTransfiniteInterpolation
- vtkMimxSolidTrilinearInterpolation
- vtkMimxSplitUnstructuredHexahedronGridCell
- vtkMimxStructuredPlanarToStructuredSolidGrid
- vtkMimxSubdivideBoundingBox
- vtkMimxSubdivideCurve
- vtkMimxUnstructuredGridFromBoundingBox
- vtkMimxUnstructuredGridFromFourPoints
- vtkMimxUnstructuredToStructuredGrid
Adapter
- Widgets
- vtkMimxBoundingBoxWidget
- vtkMimxBWidgetPlusIPWidget
- vtkMimxCreateBuildingBlockFromPickWidget
- vtkMimxCreateElementSetWidgetFEMesh
- vtkMimxExtractCellWidget
- vtkMimxExtractEdgeWidget
- vtkMimxExtractFaceWidget
- vtkMimxExtractMultipleFaceWidget
- vtkMimxModPointWidget
- vtkMimxPlaceLocalAxesWidget
- vtkMimxPolyDataWidget
- vtkMimxSelectCellsWidgetFEMesh
- vtkMimxSelectCellsWidget
- vtkMimxSelectPointsWidget
- vtkMimxTraceContourWidget
- vtkMimxUnstructuredGridExtractWidget
- vtkMimxUnstructuredGridWidget
- vtkMimxViewMergePointsWidget
More Information
Acknowledgment
This work is supported in part by NIH/NIBIB awards R01EB005973 and R21EB001501.
References
- Tadepalli SC, Shivanna KH, Magnotta VA, Kallemeyn NA, Grosland NM, Toward the development of virtual surgical tools to aid orthopaedic FE analyses EURASIP Journal on Advances in Signal Processing, 2009, vol. 2010.
- Devries NA, Shivanna KH, Tadepalli SC, Magnotta VA, Grosland NM. Ia-FEMesh: anatomic fe models--a check of mesh accuracy and validity. Iowa Orthop J. 29:48-54, 2009.
- Kallemeyn NA, Tadepalli SC, Shivanna KH, Grosland NM. An interactive multiblock approach to meshing the spine. Comput Methods Programs Biomed. 95(3):227-35, 2009.
- Grosland NM, Shivanna KH, Magnotta VA, Kallemeyn NA, DeVries NA, Tadepalli SC, Lisle C. IA-FEMesh: an open-source, interactive, multiblock approach to anatomic finite element model development. Comput Methods Programs Biomed. 94(1):96-107, 2009.
- Ramme AJ, Devries N, Kallemyn NA, Magnotta VA, Grosland NM. Semi-automated Phalanx Bone Segmentation Using the Expectation Maximization Algorithm. J Digit Imaging. 2008.
- Grosland NM, Bafna R, Magnotta VA. Automated hexahedral meshing of anatomic structures using deformable registration. Comput Methods Biomech Biomed Engin. 12(1):35-43, 2009.
- DeVries NA, Gassman EE, Kallemeyn NA, Shivanna KH, Magnotta VA, Grosland NM. Validation of phalanx bone three-dimensional surface segmentation from computed tomography images using laser scanning. Skeletal Radiol. 37(1):35-42, 2008.
- Gassman EE, Powell SM, Kallemeyn NA, Devries NA, Shivanna KH, Magnotta VA, Ramme AJ, Adams BD, Grosland NM. Automated bony region identification using artificial neural networks: reliability and validation measurements. Skeletal Radiol. 37(4):313-9, 2008.
- Magnotta V, Li W, Grosland N. Comparison of Displacement-Based and Force-Based Mapped Meshing. Workshop on Computational Biomechanics for Medicine at MICCAI 2008. Insight Journal, http://hdl.handle.net/10380/1490 , 2008.
- Shivanna K, Kallemeyn N, Tadepalli S, DeVries N, Magnotta V, Grosland N. Ia-FeMesh: An Interactive All Hexahedral Mesh Generator For Discrete Anatomic Closed Surfaces. Proceedings of the 2008 Summer Bioengineering Conference, 2008.
- Grosland NM, Lisle C, Shivanna KH, Pieper S, Magnotta VA. A Check Of Mesh Quality, American Society Of Biomechanics, August 22-27, 2007.
- Pébay PP, Thompson D, Shepherd J, Knupp P, Lisle C, Magnotta VA, Grosland NM. New Applications of the Verdict Library for Standardized Mesh Verification Pre, Post, and End-to-End Processing, Proceedings of the 16th International Meshing Roundtable, 2007.
- Shivanna KH, Adams BD, Magnotta VA, Grosland NM. Towards Automating Patient-Specific Finite Element Model Development. Proceedings Computational Biomechanics For Medicine, 2006.