Example b221: Excitation wavefront propagation from point stimulus in canine ventricular myocardium.

An eikonal equation is used to model propagation of the region of excitation in a model of canine ventricular myocardium with 60 tri-cubic Hermite elements. The solution describes the excitation time of the tissue following a point basal endocardial stimulus.

The solution method is described in:
Karl A. Tomlinson, Peter J. Hunter, and Andrew J. Pullan (2002), "A Finite Element Method for an Eikonal Equation Model of Mycardial Excitation Wavefront Propagation", SIAM J. Appl. Math., 63(1), 324-350.
and Karl Tomlinson's PhD thesis.


The comfile run by this example is as follows:

fem define parameters;r;petrov-heart;example

fem define coordinates;r;rect3D-c0;example    #3D rect. Cart. with atleast C0 continuity 
fem define bases;r;herm3;example         #tri-cubic hermite bases and others
# geometry:
fem define node;r;heart;example        #99 nodes
fem define element;r;heart;example     #60 elements
# fibres:
fem define fibre;r;heart;example
fem define element;r;heart;example fibre
# miscellaneous fields:
# 1st field is tri-cubic Hermite, used in the solution process for continuity.
# 2nd field determines versions for dep. var.
# cm does not really provide a place to specify the interpolation
# of the dependent variable (activation time in this case) so
# a scalar field (the 2nd) is set up to describe this information.
fem define field;r;c0;example
fem define element;r;c0;example field
# orthotropic eikonal equation, solved with Petrov-Galerkin FEM
fem define equation;r;eik-ort-pet;example
fem define material;r;heart;example       #material parameters
fem define initial;r;lv-free;example   #left ventricular free wall initiation
fem update field eikonal            #calculate continuity field 1
fem update gauss eikonal timing     #calculate gauss point stuff
fem define solve;r;eik-an;example      #analytical derivatives for Newton method
# A continuation method is used here to use a linear (diffusion) problem to
# provide an initial guess of the solution to a non-linear problem
# (eikonal-diffusion).  When the increment parameter is 0 there is no eikonal
# term in the equation.  When the parameter is 1 then the equation is the full
# non-linear problem.  In-between the non-linear term is smaller.

# iterate 1 is specified during the continutation process so as to only do one
# iteration in the Newton method at each step as an accurate solution is only
# required in the final solve.

fem solve iterate 1 increment 0.01; # one iteration with 100x diffusion
if( $TESTING )
  { # check application of boundary conditions
    fem define initial;w;lv-free-iter1
  }

if( 0 )
  { # skip gradual reduction in diffusion to save some time
    fem solve iterate 1 increment 0.03;
    fem solve iterate 1 increment 0.07;
    fem solve iterate 1 increment 0.1;
    fem solve iterate 1 increment 0.14;
    fem solve iterate 1 increment 0.2;
    fem solve iterate 1 increment 0.3;
    fem solve iterate 1 increment 0.4;
    fem solve iterate 1 increment 0.5;
    fem solve iterate 1 increment 0.7;
    # fem solve increment 0.7
    # fem define initial;w;lv-free-0.7;example
  } else
  { # Read in precalculated solution at 1.4x diffusion
    fem define initial;r;lv-free-0.7;example;
  }

fem solve iterate 1 increment 0.8         #one iteration with 1.25x diffusion
fem solve iterate 1 increment 0.9         #one iteration with 1.1x diffusion
fem solve increment 1                     #solve with correct diffusion

# Output results for cmgui
fem export node;heart as heart
fem export elem;heart as heart
fem export node;heart-sol field as heart_sol
fem export elem;heart-sol field as heart_sol

if( $TESTING )
  {
    fem list node;solution solution
  }

Files used by this example are:

Name                 Modified     Size

example_b221.com 16-Mar-2007 3.0k c0.ipelfd 10-Apr-2000 29k c0.ipfiel 10-Apr-2000 71k eik-an.ipsolv 16-Aug-2010 2.3k eik-an.ipsolv.old 13-Apr-2007 2.1k eik-ort-pet.ipequa 10-Apr-2000 1.0k heart.ipelem 10-Apr-2000 58k heart.ipelfb 10-Apr-2000 27k heart.ipfibr 03-Dec-2003 49k heart.ipmate 10-Apr-2000 1.4k heart.ipnode 10-Apr-2000 245k herm3.ipbase 10-Apr-2000 14k lv-free-0.7.ipinit 04-Dec-2003 96k lv-free.ipinit 03-Dec-2003 13k petrov-heart.ippara 12-Nov-2002 5.9k rect3D-c0.ipcoor 10-Apr-2000 688 viewsol.com 03-Dec-2003 1.2k

Download the entire example:

Name                           Modified     Size

examples_b_b2_b22_b221.tar.gz 17-Aug-2010 104k

Testing status by version:

StatusTestedReal time (s)
i686-linux
cmSuccessSun Mar 6 00:05:00 20165
cm-debugSuccessSat Mar 5 00:32:09 201620
mips-irix
cmSuccessSun Aug 19 02:26:24 200752
cm-debugSuccessWed Aug 15 02:13:15 2007112
cm-debug-clear-mallocSuccessSat Aug 18 02:36:18 2007126
cm-debug-clear-malloc7SuccessMon Aug 20 02:39:42 2007128
cm64SuccessSun Aug 19 02:25:44 200753
cm64-debugSuccessTue Aug 21 02:15:58 2007119
cm64-debug-clear-mallocSuccessThu Apr 1 11:23:11 200457
rs6000-aix
cmSuccessWed Mar 4 01:11:36 20095
cm-debugSuccessMon Mar 2 01:12:23 200923
cm64SuccessWed Mar 4 01:11:36 20095
cm64-debugSuccessTue Mar 3 01:18:51 200922
x86_64-linux
cmSuccessSun Mar 6 00:01:20 20165
cm-debugSuccessSat Mar 5 00:03:35 201613

Testing status by file:


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

Input last modified: Mon Aug 16 11:26:28 2010


CMISS Help / Examples / b / b2 / b22 / b221