CIBC:Project:MeshRefinement

From NCRR Biomedical Software Development, Engineering, and Dissemination Wiki

Jump to: navigation, search

Contents

Motivation and Overview

A common bioelectric field simulation involves inserting a stimulating electrode into a volume conductor model and measuring the potentials at specific locations on the outer surface of the volume. The collaboration with John Triedman is one example of a project requiring such simulations. Geometrically, the above scenario requires mesh refinement. Specifically, the tetrahedral volume mesh (TetVolMesh) must be refined to incorporate the nodes and elements of the inserted electrode model (e.g. a CurveMesh or a TriSurfMesh). Similarly, for recording electrodes placed on the outer surface of the volume, the outer surface model (TriSurfMesh) needs to support refinement to include specific points (PointCloudMesh). The goal of this project is to add the mesh refinement methods necessary to accomodate these modeling requirements.

Design

Rather than implement the full cross-product of mesh combinations (e.g. support for inserting any type of mesh into any other type of mesh), this project will restrict itself to just the combinations that are required for our current collaborations. Specifically: 1) inserting a PointCloudMesh, CurveMesh, or TriSurfMesh into a TetVolMesh; and 2) inserting a PointCloudMesh or CurveMesh into a TriSurfMesh.

When one mesh is inserted into another, the nodes and elements from the first mesh will be faithfully represented in the new refined mesh. For example, when inserting a CurveMesh into a TetVolMesh, all of the edges (and nodes) from the CurveMesh will show up as edges (and nodes) in the refined TetVolMesh. It may be necessary to subdivide edges into smaller linear segments, though.

As output from the mesh refinement, we will need to know the new node numbers for the nodes from the inserted mesh. Using the example above, when the CurveMesh is inserted into the TetVolMesh, we will need an output vector specifying which nodes in the new TetVolMesh correspond to the nodes from the CurveMesh.

The result of this project will be a new set of refinement/insertion methods in the appropriate mesh classes. We will also create a refinement module that exposes this functionality in dataflow. The module will take in two meshes and output both a refined mesh and a mapping vector.

Implementation

Insert description of how this was implemented (along with diagrams if appropriate) here. Specifically, refer to files in the source tree, assumptions that were made during implementation, etc.

Results

Place description of results here. For example: images, pointers to example networks, timings, etc.

Personal tools