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 |
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; }
fem list nodes
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
Name Modified Size
examples_h_h6.tar.gz 19-Aug-2006 269k
Status | Tested | Real time (s) | |
i686-linux | |||
cm | Success | Sun Mar 6 00:02:51 2016 | 0 |
cm-debug | Success | Sat Mar 5 00:06:01 2016 | 2 |
mips-irix | |||
cm | Success | Sun Aug 19 01:35:36 2007 | 7 |
cm-debug | Success | Wed Aug 15 01:34:57 2007 | 27 |
cm-debug-clear-malloc | Success | Sat Aug 18 01:55:11 2007 | 94 |
cm-debug-clear-malloc7 | Success | Mon Aug 20 01:56:50 2007 | 52 |
cm64 | Success | Sun Aug 19 01:35:56 2007 | 7 |
cm64-debug | Success | Tue Aug 21 01:35:10 2007 | 27 |
cm64-debug-clear-malloc | Success | Thu Apr 1 12:32:56 2004 | 51 |
rs6000-aix | |||
cm | Success | Wed Mar 4 01:09:05 2009 | 2 |
cm-debug | Success | Mon Mar 2 01:09:35 2009 | 5 |
cm64 | Success | Wed Mar 4 01:08:30 2009 | 2 |
cm64-debug | Success | Tue Mar 3 01:14:19 2009 | 6 |
x86_64-linux | |||
cm | Success | Sun Mar 6 00:01:48 2016 | 9 |
cm-debug | Success | Sat Mar 5 00:03:14 2016 | 10 |
i686-linux | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
mips-irix | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
Success | cm-debug-clear-malloc: | cmiss_test.log.retain. | |
Success | cm-debug-clear-malloc7: | cmiss_test.log.retain. | |
Success | cm64: | cmiss_test.log.retain. | |
Success | cm64-debug: | cmiss_test.log.retain. | |
Success | cm64-debug-clear-malloc: | cmiss_test.log.retain. | |
rs6000-aix | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. | |
Success | cm64: | cmiss_test.log.retain. | |
Success | cm64-debug: | cmiss_test.log.retain. | |
x86_64-linux | |||
Success | cm: | cmiss_test.log.retain. | |
Success | cm-debug: | cmiss_test.log.retain. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc7: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. |
i686-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
mips-irix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug-clear-malloc7: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug-clear-malloc: | ndiff test: no significant differences with generic answer. | |
rs6000-aix | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. | |
Success | cm64: | ndiff test: no significant differences with generic answer. | |
Success | cm64-debug: | ndiff test: no significant differences with generic answer. | |
x86_64-linux | |||
Success | cm: | ndiff test: no significant differences with generic answer. | |
Success | cm-debug: | ndiff test: no significant differences with generic answer. |
Html last generated: Sun Mar 6 05:51:37 2016
Input last modified: Thu Dec 1 15:39:57 2005