Example h6: Flow simulation in a simple bifurcation network with trees of non-identical geometries.

This example illustrates simulation of flow in a simple bifurcation network consisting of both arterial and venous trees. The geometries of the trees are non-identical. Also illustrated is the discretisation of the physical domain with uniform spatial steps. If the discretisation of the element (1D arc) is performed with equal xi spacing, one would end up with non-uniform grid spacing in the physical space, specially in the vicinity of sharp changes within and between the elements. The difference in the two approaches is depicted in figures 1 & 2. As we implement fully explicit finite difference scheme, which is conditionally stable, the ratio between the time step and the spatial step plays a pivotal role in the stability and convergence of the numerical method. It is therefore important to have uniform grid spacing to ensure convergence of the algorithm as well as the accuracy of the results for a given time step. Discretisation with uniform arc length spacing is done using the Trapezoidal rule.

The pressure at the arterial entry is linearly increased from 12.5 to 14.0 kPa over a period of 0.1 seconds while the pressure at the venous exit is held at 12.5 kPa constant. The points where the transition occurs from arteries to veins are treated as reservoirs and represented by a simple lumped parameter model with a capacitance term and two resistance terms(up-stream & down-stream).

To create a movie in order to visualise the results of the simulation, use view.com

NOTE : For the grid points in the vicinity of the transition points, NXQ is used to determine neighbouring grid points instead of CONECT in the XPFD30 (fe30.f)

Fig. 1 Discretisation based on uniform xi spacing Fig. 2 Discretisation based on uniform arc spacing (approximately 1.0 mm) Fig. 3 Pressure variation


The comfile run by this example is as follows:

fem define parameter;r;artery_vein;example      # Declares array dimensions
fem reallocate;
fem define coordinate;r;artery_vein;example     # Defines the coordinate system
fem define node;r;artery_vein;example           # Reads in nodal information
fem define base;r;artery_vein;example           # Defines basis function (02 funcns : 1. 1D cubic hermite 2. 1D linear)
fem define element;r;artery_vein;example        # Reads in element information
fem define field;r;artery_vein;example          # Reads in fields. Only first field (unstressed radius at nodes) is necessary for this problem
fem define element;r;artery_vein;example field  # Defines interpolation of field variables (linear)
fem define grid;r;artery_vein;example coronary  # Defines grid points with coronary option to discretise the spatial computational domain.
                                                # Also used the equal arc-length spacing 
fem update grid geometry;
fem define equation;r;artery_vein;example       # Defines equations                          
fem define material;r;artery_vein;example       # Reads in physical & mechanical properties
fem update material field material 4 no_field 1;
#                                               # Updates unstressed radius (mat 4) from field 1
fem define time;r;artery_vein;example           # Define boundary conditions. Step increase in press. at inlet. Constant press. at outlet
fem define initial;r;artery_vein;example        # Defines initial conditions
fem define solve;r;artery_vein;example          # Defines solution parameters

$time_initial=0.000;                            # Sets the initial time
$time_final=0.100;                              # Sets the final time
$time_step=0.0001;                              # Sets the time step time
$write_out_period=0.010;                        # Sets the results write out period
$eps=0.000001;

fem export points;$time_initial grid as vessel offset 0 pressure velocity radius;         
fem export grid;vessel as vessel offset_node 0 offset_elem 0 pressure velocity radius; 

# Results output loop

for ($time=$time_initial;$time<$time_final-$eps;$time=$time+$write_out_period)       
{                                                                           
fem solve restart to $write_out_period delta_t $time_step;
fem export points;$time+$write_out_period grid as vessel offset 0 pressure velocity radius;           
}                                                                           

Additional testing commands:

fem list nodes

Files used by this example are:

Name                Modified     Size

example_h6.com 13-Dec-2001 2.4k 0.01.exnode 26-Aug-2004 14k 0.02.exnode 13-Dec-2001 14k 0.03.exnode 13-Dec-2001 14k 0.04.exnode 13-Dec-2001 14k 0.05.exnode 13-Dec-2001 14k 0.06.exnode 13-Dec-2001 14k 0.07.exnode 13-Dec-2001 14k 0.08.exnode 13-Dec-2001 14k 0.09.exnode 13-Dec-2001 14k 0.1.exnode 13-Dec-2001 14k 0.exnode 13-Dec-2001 14k artery_vein.ipbase 13-Dec-2001 2.0k artery_vein.ipcoor 13-Dec-2001 570 artery_vein.ipelem 13-Dec-2001 2.1k artery_vein.ipelfd 13-Dec-2001 1.5k artery_vein.ipequa 22-Nov-2005 1.3k artery_vein.ipfiel 13-Dec-2001 1.7k artery_vein.ipgrid 13-Dec-2001 216 artery_vein.ipinit 01-Dec-2005 980 artery_vein.ipmate 13-Dec-2001 7.2k artery_vein.ipnode 13-Dec-2001 2.4k artery_vein.ippara 12-Nov-2002 5.9k artery_vein.ipsolv 27-Aug-2002 760 artery_vein.iptime 13-Dec-2001 1.4k test_output.com 13-Dec-2001 15 vessel.exelem 13-Dec-2001 20k

Download the entire example:

Name                  Modified     Size

examples_h_h6.tar.gz 19-Aug-2006 269k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmSuccessSun Mar 6 00:02:51 20160
cm-debugSuccessSat Mar 5 00:06:01 20162
mips-irix
cmSuccessSun Aug 19 01:35:36 20077
cm-debugSuccessWed Aug 15 01:34:57 200727
cm-debug-clear-mallocSuccessSat Aug 18 01:55:11 200794
cm-debug-clear-malloc7SuccessMon Aug 20 01:56:50 200752
cm64SuccessSun Aug 19 01:35:56 20077
cm64-debugSuccessTue Aug 21 01:35:10 200727
cm64-debug-clear-mallocSuccessThu Apr 1 12:32:56 200451
rs6000-aix
cmSuccessWed Mar 4 01:09:05 20092
cm-debugSuccessMon Mar 2 01:09:35 20095
cm64SuccessWed Mar 4 01:08:30 20092
cm64-debugSuccessTue Mar 3 01:14:19 20096
x86_64-linux
cmSuccessSun Mar 6 00:01:48 20169
cm-debugSuccessSat Mar 5 00:03:14 201610

Testing status by file:


Html last generated: Sun Mar 6 05:51:37 2016

Input last modified: Thu Dec 1 15:39:57 2005


CMISS Help / Examples / h / h6