Difference between revisions of "Modules:IA FEMesh-Documentation-3.6"

From Slicer Wiki
Jump to: navigation, search
Line 166: Line 166:
 
Doxygen documentation:
 
Doxygen documentation:
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxAbaqusFileWriter]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxAbaqusFileWriter]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classmimxApplyNodeElementNumbers.html mimxApplyNodeElementNumbers]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkAbstractIterator.html vtkAbstractIterator]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxCheckTypeOfFile]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkAbstractList.html vtkAbstractList]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxCommonDefine]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkContainer.html vtkContainer]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxCreateIntervertebralDiscElementSets]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkFESurfaceList.html vtkFESurfaceList]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxFileNames]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkFiniteElementBuildingBlockList.html vtkFiniteElementBuildingBlockList]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxIncludeFileNames]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkFiniteElementMeshList.html vtkFiniteElementMeshList]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxLinkedList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLinkedList.html vtkLinkedList]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxMatrixTemplate]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLinkedListIterator.html vtkLinkedListIterator]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxMergeNodesPointAndCellData]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLinkedListWrapper.html vtkLinkedListWrapper]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxMeshSeed]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLinkedListWrapperTree.html vtkLinkedListWrapperTree]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxRegisterBSplineFilter]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLocalAxesActor.html vtkLocalAxesActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxRegisterVersorRigidFilter]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkLocalLinkedListWrapper.html vtkLocalLinkedListWrapper]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html mimxTransformIO]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMeshQualityClass.html vtkMeshQualityClass]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkAbstractIterator]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxActorBase.html vtkMimxActorBase]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkAbstractList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxApplyNodeElementNumbers.html vtkMimxApplyNodeElementNumbers]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkContainer]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxBoundaryConditionActor.html vtkMimxBoundaryConditionActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkFESurfaceList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxBoundingBoxSource.html vtkMimxBoundingBoxSource]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkFiniteElementBuildingBlockList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxColorCodeMeshSeedActor.html vtkMimxColorCodeMeshSeedActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkFiniteElementMeshList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxCurve.html vtkMimxCurve]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLinkedList]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxEntryValueChangedCallback.html vtkMimxEntryValueChangedCallback]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLinkedListIterator]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxErrorCallback.html vtkMimxErrorCallback]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLinkedListWrapper]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxImageActor.html vtkMimxImageActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLinkedListWrapperTree]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxInteractorStyleUser.html vtkMimxInteractorStyleUser]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLocalAxesActor]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxMergeNodesPointAndCellData.html vtkMimxMergeNodesPointAndCellData]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkLocalLinkedListWrapper]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxMeshActor.html vtkMimxMeshActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMeshQualityClass]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxMeshSeed.html vtkMimxMeshSeed]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxActorBase]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxPlanarStructuredGridSource.html vtkMimxPlanarStructuredGridSource]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxApplyNodeElementNumbers]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxSolidStructuredGridSource.html vtkMimxSolidStructuredGridSource]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxBoundaryConditionActor]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxSTLSource.html vtkMimxSTLSource]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxBoundingBoxSource]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxSurfacePolyDataActor.html vtkMimxSurfacePolyDataActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxColorCodeMeshSeedActor]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxTestErrorCallback.html vtkMimxTestErrorCallback]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxCommonWin32Header]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxUGrid.html vtkMimxUGrid]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxCreateIntervertebralDiscElementSets]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxUnstructuredGridActor.html vtkMimxUnstructuredGridActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxCurve]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLFESurfaceNode.html vtkMRMLFESurfaceNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxEntryValueChangedCallback]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLFiniteElementBuildingBlockDisplayNode.html vtkMRMLFiniteElementBuildingBlockDisplayNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxErrorCallback]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLFiniteElementBuildingBlockNode.html vtkMRMLFiniteElementBuildingBlockNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxImageActor]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLFiniteElementMeshDisplayNode.html vtkMRMLFiniteElementMeshDisplayNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxInteractorStyleUser]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLFiniteElementMeshNode.html vtkMRMLFiniteElementMeshNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxMergeNodesPointAndCellData]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMRMLNullDisplayNode.html vtkMRMLNullDisplayNode]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxMeshActor]
+
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkPVAxesActor.html vtkPVAxesActor]
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxMeshSeed]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxPlanarStructuredGridSource]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxSolidStructuredGridSource]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxSTLSource]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxSurfacePolyDataActor]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxTestErrorCallback]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxUGrid]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMimxUnstructuredGridActor]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLFESurfaceNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLFiniteElementBuildingBlockDisplayNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLFiniteElementBuildingBlockNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLFiniteElementMeshDisplayNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLFiniteElementMeshNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkMRMLNullDisplayNode]
 
*[http://www.na-mic.org/Slicer/Documentation/Slicer3-doc/html/classvtkMimxAbaqusFileWriter.html vtkPVAxesActor]
 
  
 
== More Information ==  
 
== More Information ==  

Revision as of 14:34, 26 March 2010

Home < Modules:IA FEMesh-Documentation-3.6

Return to Slicer 3.6 Documentation

Gallery of New Features


IA_FEMesh

IA-FEMesh

User Interface
Phalanx Bone Mesh
Caption

General Information

Module Type & Category

Type: Interactive

Category: Wizard

Authors, Collaborators & Contact


Iowa - MIMX
Isomics
KnowledgeViz

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.

  • Image:
    • Load
    • Delete
  • Surface:
    • Load
    • Delete
    • Save
  • Block(s):
    • Create
    • Load
    • Build/Edit
    • Delete
    • Save
  • Mesh:
    • Assign/Edit Mesh Seeds
    • Create
    • Load
    • Renumber Nodes/Elements
    • Export ABAQUS File
    • Delete
    • Save
  • Quality:
    • Evaluate/Display Mesh Quality
    • Mesh Improvement
    • Export Abaqus File
    • Save
  • Materials:
    • User-Defined
    • Image Based
    • Display Material Properties
    • Export ABAQUS File
    • Save
  • Load/BC:
    • Step - Load/BC Assignments
    • Export ABAQUS File
    • Save
IA-FEMesh Tabbed Wizard Interface

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:

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:

More Information

Acknowledgment

This work is supported in part by NIH/NIBIB awards R01EB005973 and R21EB001501.

References

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Ramme AJ, Devries N, Kallemyn NA, Magnotta VA, Grosland NM. Semi-automated Phalanx Bone Segmentation Using the Expectation Maximization Algorithm. J Digit Imaging. 2008.
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Grosland NM, Lisle C, Shivanna KH, Pieper S, Magnotta VA. A Check Of Mesh Quality, American Society Of Biomechanics, August 22-27, 2007.
  12. 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.
  13. Shivanna KH, Adams BD, Magnotta VA, Grosland NM. Towards Automating Patient-Specific Finite Element Model Development. Proceedings Computational Biomechanics For Medicine, 2006.