Differences between revisions 2 and 3
 ⇤ ← Revision 2 as of 2014-01-07 12:50:18 → Size: 1925 Editor: aerdemir Comment: ← Revision 3 as of 2015-09-15 20:38:16 → ⇥ Size: 5665 Editor: craigbennetts Comment: Deletions are marked like this. Additions are marked like this. Line 16: Line 16: ---- Line 19: Line 21: ---- Line 32: Line 36: ---- Line 35: Line 41: === Tetrahedral Meshing ====== Quadrilateral Meshing ===Model components: rigid bodies (i.e. bone: femur, tibia, patella)==== IA-FEMesh + STL: ======= Hexahedral Meshing ===Model components: deformable bodies==== IA-FEMesh + STL: ====Limitations: not able to control projection of edge elements corners in block ==== Salome Sub-Meshing + Hex-topology IGES: ====Software: Salome 7.5.1Method: Sub-MeshingInput: IGES parametric surface/volume geometry with hexahedral topology (i.e. 8 nodes, 12 edges, 6 faces)Example Files:attachment:lat_tibial_cartilage.igs, attachment:lat_tibial_cartilage_Salome_HEX.py 1. Run Salome. 1. Activate "New" Geometry Module. 1. Load IGES file:  * File -> Import -> IGES (e.g. lat_tibial_cartilage.igs)  * If warned to "take units in account", select "Yes". 1. If geometry is not visible in OCC 3D scene viewer:  * click 'Global Panning" button in OCC viewer. 1. if 3D view manipulation shortcut + mouse button control is not working:  * click "Rotation" button in OCC viewer and rotate view a little, then shorcut + mouse will work. 1. To volumetrically render the geometry, select:  * View -> Display Mode -> Shading With Edges 1. Check geometry information:  * Measures -> What is  * Need to REPAIR the geometry IF:   a. faces are not watertight   a. it is NOT a solid.   a. it does NOT have: 8 vertices, 12 edges, 6 wires, 6 faces. 1. IF geometry REPAIR is needed:  a. IF edges of faces are not watertight, SEW the geometry:   * Repair -> Sewing   * Select shape: loaded geometry (e.g. lat_tibial_cartilage_1)   * Iteratively reduce the tolerance (from 1e-7) one order of magnitude at a time until geometry is valid:    * Check "What is" geometry until the result has: 6 wires, 6 faces, 1 shell.    * e.g. 1e-5 works with example geometry (lat_tibial_cartilage_1)   * OUTPUT GEOMETRY NAME: Sewing_#  a. IF geometry is NOT SOLID:   * New Entity -> Build -> Solid   * Select sewing: Sewing_#   * Check "What is" geometry: 6 wires, 6 faces, 1 shell, 1 solid.   * OUTPUT GEOMETRY NAME: Solid_1  a. IF geometry has MORE THAN 8 vertices OR 6 edges:   * Repair -> Remove Extra Edges   * Select: Solid_1   * Check "What is" geometry: 8 vertices, 12 edges, 6 wires, 6 faces, 1 shell, 1 solid.   * OUTPUT GEOMETRY NAME: !NoExtraEdges_1 1. Explode edges from solid geometry:  * New Entity -> Explode  * Select Sub-shape Types: Edge 1. Activate the Mesh module. 1. Create a new mesh:  * Mesh -> Create Mesh  * Geometry: !NoExtraEdges_1  * Mesh type: Hexahedral  * 3D tab:   * Algorithm: Hexahedron (i,j,k)  * 2D tab:   * Algorithm: Quadrangle (Mapping)   * Hypothesis:    * Transition: Standard 1. Create 3 sub-meshes for each set of 4 matching hex-mesh block dimension edges:  * Mesh -> Create Sub-mesh  * Name: !SubMesh_ (e.g. !SubMesh_z -or- !SubMesh_3)  * Mesh: Mesh_1  * Geometry: interactively select 4 corresponding edges in Geometry hierarchy window   * use Shift or Ctrl to select multiple edges at once   * e.g. for !SubMesh_z, select: Edge_1, Edge_2, Edge_1, Edge_10   * e.g. for !SubMesh_x, select: Edge_3, Edge_4, Edge_11, Edge_12   * e.g. for !SubMesh_y, select: Edge_5, Edge_6, Edge_7, Edge_8  * 1D tab:   * Algorithm: Wire Discretisation   * Hypothesis: Nb. Segments    * Name: Nb. Segments_ (e.g. Nb. Segments_z)    * Number of Segments: (e.g. z = 3, x = 50, y = 50)    * Type of distribution: Equidistant distribution    * NOTE: create new Hypothesis for each block dimension: x,y,z 1. Calculate mesh:  * Mesh -> Compute==== Salome + STL: ====----

# Target Outcome

Finite element mesh of a tissue of interest ready for model development:

• node definitions
• element definitions
• node set definitions
• element set definitions
• surface set definitions

# Prerequisites

## Previous Protocols

For more details, see ["Specifications/GeometryGeneration"].

# Protocols

## Input

• Explicit surface representation of tissue of interest; in STL format in MRI coordinate system (processed with volume preserving smoothing)
• Parametric surface representation of tissue of interest in IGES & STP format in MRI coordinate system (processed with volume preserving smoothing)

• Parametric solid model of tissue of interest in IGES & STP format in MRI coordinate system (processed with volume preserving smoothing)

## Procedures

-- ["aerdemir"] DateTime(2013-12-30T15:14:36Z) This section may list general purpose procedures and alternatives to utilize the same input to reach the same output. Procedures optimized for specific tissues should also be provided in here.

### Tetrahedral Meshing

Model components: rigid bodies (i.e. bone: femur, tibia, patella)

### Hexahedral Meshing

Model components: deformable bodies

#### IA-FEMesh + STL:

Limitations: not able to control projection of edge elements corners in block

#### Salome Sub-Meshing + Hex-topology IGES:

Software: Salome 7.5.1

Method: Sub-Meshing

Input: IGES parametric surface/volume geometry with hexahedral topology (i.e. 8 nodes, 12 edges, 6 faces)

Example Files: attachment:lat_tibial_cartilage.igs, attachment:lat_tibial_cartilage_Salome_HEX.py

1. Run Salome.
2. Activate "New" Geometry Module.
• File -> Import -> IGES (e.g. lat_tibial_cartilage.igs)

• If warned to "take units in account", select "Yes".
4. If geometry is not visible in OCC 3D scene viewer:
• click 'Global Panning" button in OCC viewer.
5. if 3D view manipulation shortcut + mouse button control is not working:
• click "Rotation" button in OCC viewer and rotate view a little, then shorcut + mouse will work.
6. To volumetrically render the geometry, select:
• View -> Display Mode -> Shading With Edges

7. Check geometry information:
• Measures -> What is

• Need to REPAIR the geometry IF:
1. faces are not watertight
2. it is NOT a solid.
3. it does NOT have: 8 vertices, 12 edges, 6 wires, 6 faces.
8. IF geometry REPAIR is needed:
1. IF edges of faces are not watertight, SEW the geometry:
• Repair -> Sewing

• Select shape: loaded geometry (e.g. lat_tibial_cartilage_1)
• Iteratively reduce the tolerance (from 1e-7) one order of magnitude at a time until geometry is valid:
• Check "What is" geometry until the result has: 6 wires, 6 faces, 1 shell.
• e.g. 1e-5 works with example geometry (lat_tibial_cartilage_1)
• OUTPUT GEOMETRY NAME: Sewing_#
2. IF geometry is NOT SOLID:
• New Entity -> Build -> Solid

• Select sewing: Sewing_#
• Check "What is" geometry: 6 wires, 6 faces, 1 shell, 1 solid.
• OUTPUT GEOMETRY NAME: Solid_1
3. IF geometry has MORE THAN 8 vertices OR 6 edges:
• Repair -> Remove Extra Edges

• Select: Solid_1
• Check "What is" geometry: 8 vertices, 12 edges, 6 wires, 6 faces, 1 shell, 1 solid.
• OUTPUT GEOMETRY NAME: NoExtraEdges_1

9. Explode edges from solid geometry:
• New Entity -> Explode

• Select Sub-shape Types: Edge
10. Activate the Mesh module.
11. Create a new mesh:
• Mesh -> Create Mesh

• Geometry: NoExtraEdges_1

• Mesh type: Hexahedral
• 3D tab:
• Algorithm: Hexahedron (i,j,k)
• 2D tab:
• Hypothesis:
• Transition: Standard
12. Create 3 sub-meshes for each set of 4 matching hex-mesh block dimension edges:
• Mesh -> Create Sub-mesh

• Name: SubMesh_<dim> (e.g. SubMesh_z -or- SubMesh_3)

• Mesh: Mesh_1
• Geometry: interactively select 4 corresponding edges in Geometry hierarchy window
• use Shift or Ctrl to select multiple edges at once
• e.g. for SubMesh_z, select: Edge_1, Edge_2, Edge_1, Edge_10

• e.g. for SubMesh_x, select: Edge_3, Edge_4, Edge_11, Edge_12

• e.g. for SubMesh_y, select: Edge_5, Edge_6, Edge_7, Edge_8

• 1D tab:
• Algorithm: Wire Discretisation
• Hypothesis: Nb. Segments
• Name: Nb. Segments_<dim> (e.g. Nb. Segments_z)

• Number of Segments: <desired #> (e.g. z = 3, x = 50, y = 50)

• Type of distribution: Equidistant distribution
• NOTE: create new Hypothesis for each block dimension: x,y,z
13. Calculate mesh:
• Mesh -> Compute

## Output

• Finite element mesh of tissue of interest; in human readable format, e.g., Abaqus input (INP) file, XML file, or as open format binary files, e.g., MED file, including
• node definitions (numbering and coordinates)
• element definitions (numbering, element-specific node numbers and connectivity)
• node set definitions (set name(s) and relevant node numbers)
• element set definitions (set name(s) and relevant element numbers)
• face definitions (numbering, face-specific node numbers and connectivity)
• surface set definitions (set name(s) and relevant face numbers)

Specifications/MeshGeneration (last edited 2019-06-25 17:20:14 by klonowe)