Eidors-logo    

EIDORS: Electrical Impedance Tomography and Diffuse Optical Tomography Reconstruction Software

EIDORS (mirror)
Main
Documentation
Tutorials
− Image Reconst
− Data Structures
− Applications
− FEM Modelling
− GREIT
− Old tutorials
Workshop
Download
Contrib Data
GREIT
Browse Docs
Browse SVN

News
Mailing list
(archive)
FAQ
Developer
                       

 

Hosted by
SourceForge.net Logo

 

Workshop: Introduction to EIDORS

Instructions

  1. Compile and install a copy of netgen 5.0
    mkdir src
    cd src
    wget http://downloads.sf.net/project/netgen-mesher/netgen-mesher/5.0/netgen-5.0.0.zip
    unzip netgen-5.0.0.zip
    cd netgen-5.0.0
    # ENSURE we have apt-get install tk-dev tcl-dev libtogl-dev
    ./configure --prefix=$HOME/local
    make
    make install
    
  2. Download and unzip the latest EIDORS release
  3. Start Matlab, in a terminal
    export NETGENDIR=$HOME/local/bin
    export PATH=$HOME/local/bin:$PATH
    matlab
    
  4. In matlab, do
    • run ~/Desktop/eidors-v3.7RC/eidors/startup.m
    • compare_2d_algs(1)
      (this tests if eidors is working)
    • show_fem(ng_mk_cyl_models(3,[0],[])) (this tests if netgen is working)
  5. Get svn version of eidors
    cd 
    svn co svn://svn.code.sf.net/p/eidors3d/code/trunk eidors-svn
    
    In matlab run the new startup file
    run ~/eidors-svn/eidors/startup.m
    

Challenge problem:

  1. Create a 3D elliptical cylinder with 16 circular electrodes (see here)
    fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1]); show_fem(fmdl);
  2. Put a ball into the elliptical cylinder
    extra={'ball','solid ball = sphere(0.5,0.5,0.5;0.1);'};
    fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
    show_fem(fmdl);
  3. Put two balls into the elliptical cylinder
    extra={'ball','solid ball = sphere(0.5,0.5,0.5;0.1) or sphere(0.5,-0.5,0.5;0.1);'};
    fmdl= ng_mk_ellip_models([1,1.2,0.8],[16,0.5],[0.1],extra);
    show_fem(fmdl);
  4. Set the model to use adjacent current patterns
    stim = mk_stim_patterns(16,1,[0,1],[0,1],{}); fmdl.stimulation = stim;
  5. Simulate homogeneous voltages (background conductivity = 0.5);
    img = mk_image(fmdl, 0.5); vh = fwd_solve(img);
    show_fem(img);
  6. Simulate inhomogeneous voltages (ball conductivity = 1.0);
    img.elem_data(fmdl.mat_idx{2})= 1.0; vi = fwd_solve(img);
    show_fem(img);
  7. Reconstruct the image using GREITv1
    imdl= mk_common_gridmdl('GREITc1'); img= inv_solve(imdl,vh,vi);
    show_fem(img);
  8. Create a GREIT model for the ellipse (see here)
    opt.noise_figure = 0.5; %other options are defaults
    imdl = mk_GREIT_model(mk_image(fmdl,0.5), 0.25, [], opt);
    img= inv_solve(imdl,vh,vi);
    show_fem(img);
  9. Compare images for different stimulation patterns (see here)

Last Modified: $Date: 2017-03-01 09:38:55 -0500 (Wed, 01 Mar 2017) $ by $Author: aadler $