Example 93: Generating an asymmetric model of the conducting airways using a

This example generates an asymmetric conducting airway model into the right upper and right middle lobes of a fitted lung. The fitted lobes are host volumes for airway generation from some defined central airways. The host volume is filled with a grid of uniformly xi-spaced points. Branches are generated a defined fraction of the distance from the end of a parent branch towards the centre of mass of the set of points. The points are split based on the plane defined by the parent and daughter branch. Branching continues down to a defined length limit. In this example an angle limit of 60 degrees is used to limit the size of the angle between the directions of the parent and daughter branches.

Created by Merryn Howatson Tawhai.

Surfaces of RUL (green) and RML (red)

Data (seed) points for airway generation

Example of generated airway centerlines

These three figures show the host geometry (tri-cubic Hermite elements for lobe geometry); data points generated within the host regions using uniform xi spacing (uniform global coordinate spacing can also be used but is slower, so the data files should be written out the first time that the seed points are created, for reading in subsequent times); and a mesh generated into the two lobes using a bifurcating-distributive algorithm (see Tawhai et al., Ann. Biomed. Eng. (2000) for a description of the method).


The comfile run by this example is as follows:

fem de param;r;fitted;example; #parameters for array dimensioning
fem de coor 3,1; #3D rectangular cartesian
fem de reg;r;six;example; #Six regions, 5 host lobes and 1 airway region
fem de base;r;3dlungs_ch;example; #cubic Hermite basis functions for host
                                  # mesh geometry, and 1D linear basis function for airways.

#READ IN NODE AND ELEMENT FILES FOR HOST GEOMETRY
fem de node;r;right_upper_fitted;example as reg 1; #read in nodes for RUL
fem de elem;r;right_upper_fitted;example as reg 1; #read in elements for RUL
fem de node;r;right_middle_fitted;example as reg 2; #read in nodes for RML
fem de elem;r;right_middle_fitted;example as reg 2; #read in elements for RML

#READ IN NODE AND ELEMENT FILES FOR CENTRAL AIRWAYS
fem de node;r;central;example as reg 6; #Nodes for central airways
fem de elem;r;central;example as reg 6; #Elements for central airways

#USE THE BIFURCATING-DISTRIBUTIVE ALGORITHM TO GENERATE INTO THE RUL AND RML
#use a bifurcating-distributive algorithm to generate airways from parent
#elements 1112..1115 into host region 1, and put the generated elements 
#into target region 6.  The elements will use basis function # 3 (which is 
#linear 1D).  The 'stem' element is defined so that the mesh can orient 
#itself.  Density of the generated points is approximately 0.015, the angle 
#limit is 60 degrees, length limit is 1.2 mm (from Haefeli-Bleuer and Weibel), 
#and the  branching fraction is 0.4.
fem de mesh;c bifur elem 1112..1115 region 1 target_region 6 basis 3 stem 1 density 0.015 angle 60 length 1.2 frac 0.4; #RUL
fem de mesh;c bifur elem 1108 region 2 target_region 6 basis 3 stem 1 density 0.015 angle 60 length 1.2 frac 0.4; #RML

#GROUP ELEMENTS FOR EXPORTING
fem group element all parent 1112; #Group all elements arising from element 1112
fem group element all parent 1113; #Group all elements arising from element 1113
fem group element all parent 1114; #Group all elements arising from element 1114
fem group element all parent 1115; #Group all elements arising from element 1115

#USE THE FOLLOWING TO EXPORT TO VIEW IN CMGUI
#fem export data;rul_data; #seed points are stored as 'data', so can export to view
#fem export node;fitted_lung as fitted reg all; #Export all host and airway nodes
#fem export elem;rul as rul reg 1;
#fem export elem;rml as rml reg 2;
#fem export elem;branch as branch reg 6; #Export all airway elements
#fem export elem;bps12 as bps12 elem parent1112 reg 6; #Export the element group
#fem export elem;bps13 as bps13 elem parent1113 reg 6; #Export the element group
#fem export elem;bps14 as bps14 elem parent1114 reg 6; #Export the element group
#fem export elem;bps15 as bps15 elem parent1115 reg 6; #Export the element group
fem export node;test reg 6;
fem export elem;test reg 6
fem quit

Additional testing commands:

fem list node reg 6


Files used by this example are:

Name                        Modified     Size

example_93.com 26-Feb-2003 2.7k 3dlungs_ch.ipbase 21-Feb-2003 6.8k central.ipelem 21-Feb-2003 4.8k central.ipnode 21-Feb-2003 3.7k fitted.ippara 21-Feb-2003 5.8k right_middle_fitted.ipelem 21-Feb-2003 7.0k right_middle_fitted.ipnode 21-Feb-2003 99k right_upper_fitted.ipelem 21-Feb-2003 11k right_upper_fitted.ipnode 21-Feb-2003 148k six.ipregi 21-Feb-2003 115 test_output.com 19-Feb-2003 21

Download the entire example:

Name                  Modified     Size

examples_9_93.tar.gz 19-Aug-2006 287k

Html last generated: Sun Mar 6 05:50:34 2016

Input last modified: Wed Feb 26 11:39:35 2003


CMISS Help / Examples / 9 / 93