Example h2: Propagation of pressure waves in elastic tubes

This example illustrates the propagation of waves (pressure, velocity etc.) in a flow of incompressible Newtonian fluid through an elastic tube (e.g. blood vessels). The governing equations of this model are based on 1D Navier-Stokes equations. The distensibility of the tube walls is also included. For the details of the model governing equations refer:

1. Hunter, P.J., M.Eng Thesis, UoA, 1972
2. Smith. N.P., Ph.D Thesis, UoA 1999

The numerical method used to solve the above mentioned governing equations is two-step Lax-Wendroff finite difference method. Further details of the numerical method can be obtained from reference 2. The geometry of the tube is modeled using 1D cubic Hermite finite elements. Since this finite difference scheme is fully explicit, it is conditionally stable. In other words, once the spatial step is decided there is a maximum time step above which the computational algorithm fails due to amplification of the round-off error.

Here we perturb the system from its initial steady state (constant pressure and zero velocity throughout) by introducing a step increase in the inlet pressure from 12.46 kPa to 14.46 kPa while holding the exit pressure at 12.46 kPa. This perturbation travels at a finite velocity known as 'wave propagation velocity' or 'acoustic velocity'. Since the exit pressure is held at a constant level, the wave moves back and forth and eventually reaches its new steady state.

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

Simulation of step increase in pressure at the inlet


The comfile run by this example is as follows:

fem define parameter;r;tube;example      # Declares array dimensions
fem reallocate;
fem define coordinate;r;tube;example     # Defines the coordinate system
fem define node;r;tube;example           # Reads in nodal information
fem define base;r;tube;example           # Defines basis function (02 funcns : 1. 1D cubic hermite 2. 1D linear)
fem define element;r;tube;example        # Reads in element information
fem define field;r;tube;example          # Reads in fields. Only first field (unstressed radius at nodes) is necessary for this problem
fem define element;r;tube;example field  # Defines interpolation of field variables (linear)
fem define grid;r;tube;example coronary  # Defines grid points with coronary option to discretise the spatial computational domain. 
fem update grid geometry;
fem define equation;r;tube;example       # Defines equations                          
fem define material;r;tube;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;step;example           # Define boundary conditions. Step increase in press. at inlet. Constant press. at outlet
fem define initial;r;tube;example        # Defines initial conditions
fem define solve;r;tube;example          # Defines solution parameters

$time_initial=0.00;                      # Sets the initial time
$time_final=0.04;                        # Sets the final time
$time_step=0.0001;                       # Sets the time step time
$write_out_period=0.001;                 # Sets the results write out period

fem export points;$time_initial grid as vessel offset 0;         
fem export grid;vessel as vessel offset_node 0 elastic_tube; 

# Results output loop

for ($time=$time_initial;$time<$time_final;$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           
}                                                                           

Additional testing commands:

fem list nodes

Files used by this example are:

Name             Modified     Size

example_h2.com 05-Oct-2001 2.1k 0.001.exnode 26-Aug-2004 5.6k 0.002.exnode 26-Aug-2004 5.6k 0.003.exnode 26-Aug-2004 5.6k 0.004.exnode 26-Aug-2004 5.6k 0.005.exnode 26-Aug-2004 5.6k 0.006.exnode 29-Nov-2001 5.6k 0.007.exnode 29-Nov-2001 5.6k 0.008.exnode 29-Nov-2001 5.6k 0.009.exnode 29-Nov-2001 5.6k 0.01.exnode 29-Nov-2001 5.6k 0.011.exnode 29-Nov-2001 5.6k 0.012.exnode 29-Nov-2001 5.6k 0.013.exnode 29-Nov-2001 5.6k 0.014.exnode 29-Nov-2001 5.6k 0.015.exnode 29-Nov-2001 5.6k 0.016.exnode 29-Nov-2001 5.6k 0.017.exnode 29-Nov-2001 5.6k 0.018.exnode 29-Nov-2001 5.6k 0.019.exnode 29-Nov-2001 5.6k 0.02.exnode 29-Nov-2001 5.6k 0.021.exnode 29-Nov-2001 5.6k 0.022.exnode 29-Nov-2001 5.6k 0.023.exnode 29-Nov-2001 5.6k 0.024.exnode 29-Nov-2001 5.6k 0.025.exnode 29-Nov-2001 5.6k 0.026.exnode 29-Nov-2001 5.6k 0.027.exnode 29-Nov-2001 5.6k 0.028.exnode 29-Nov-2001 5.6k 0.029.exnode 29-Nov-2001 5.6k 0.03.exnode 29-Nov-2001 5.6k 0.031.exnode 29-Nov-2001 5.6k 0.032.exnode 29-Nov-2001 5.6k 0.033.exnode 29-Nov-2001 5.6k 0.034.exnode 29-Nov-2001 5.6k 0.035.exnode 29-Nov-2001 5.6k 0.036.exnode 29-Nov-2001 5.6k 0.037.exnode 29-Nov-2001 5.6k 0.038.exnode 29-Nov-2001 5.6k 0.039.exnode 29-Nov-2001 5.6k 0.04.exnode 29-Nov-2001 5.6k 0.exnode 29-Nov-2001 5.6k step.iptime 05-Oct-2001 1.4k test_output.com 05-Oct-2001 15 tube.ipbase 05-Oct-2001 2.0k tube.ipcoor 05-Oct-2001 570 tube.ipelem 05-Oct-2001 786 tube.ipelfd 05-Oct-2001 576 tube.ipequa 22-Nov-2005 1.3k tube.ipfiel 05-Oct-2001 1.0k tube.ipgrid 27-Nov-2001 216 tube.ipinit 01-Dec-2005 676 tube.ipmate 05-Oct-2001 6.8k tube.ipnode 05-Oct-2001 1.5k tube.ippara 12-Nov-2002 5.9k tube.ipsolv 27-Aug-2002 751 vessel.exelem 05-Oct-2001 8.2k view.com 26-Aug-2004 2.3k

Download the entire example:

Name                  Modified     Size

examples_h_h2.tar.gz 19-Aug-2006 614k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmSuccessSun Mar 6 00:02:49 20161
cm-debugSuccessSat Mar 5 00:04:50 20160
mips-irix
cmSuccessSun Aug 19 01:32:19 20076
cm-debugSuccessWed Aug 15 01:27:17 200710
cm-debug-clear-mallocSuccessSat Aug 18 01:32:57 200715
cm-debug-clear-malloc7SuccessMon Aug 20 01:30:31 200715
cm64SuccessSun Aug 19 01:32:24 20075
cm64-debugSuccessTue Aug 21 01:25:58 200711
cm64-debug-clear-mallocSuccessThu Apr 1 12:31:36 20046
rs6000-aix
cmSuccessWed Mar 4 01:08:38 20092
cm-debugSuccessMon Mar 2 01:07:23 20092
cm64SuccessWed Mar 4 01:09:03 20091
cm64-debugSuccessTue Mar 3 01:12:22 20092
x86_64-linux
cmSuccessSun Mar 6 00:01:08 20160
cm-debugSuccessSat Mar 5 00:01:39 20161

Testing status by file:


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

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


CMISS Help / Examples / h / h2