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

 

Build circular 2D models with distmesh

Distmesh is a FEM building tool written in Matlab by Per-Olof Persson. Is is licenced under the GPL and has been distributed with EIDORS (with some small modifications).

The function function dm_2d_circ_pt_elecs allows building of 2d circular EIDORS models with distmesh and provides a way to refine points.

Create 3 electrode basic model

% Simple model with three electrodes $Id: circ_2d_model01.m 2768 2011-07-14 16:43:03Z bgrychtol $
elec_pts{1} = [1,0]; % Point electrode
elec_pts{2} = [0,1;sin(0.2),cos(0.2)]; % Complete electrode between points
elec_pts{3} = [0.5,0.5]; % Point internal electode

subplot(221);
fmdl= dm_2d_circ_pt_elecs( elec_pts, [], [0.10,10,0.05] );
show_fem(fmdl)
hold on; plot(0.5,0.5,'o','Color',[0,0.5,0]); hold off
axis equal

subplot(222);
fmdl= dm_2d_circ_pt_elecs( elec_pts, [], [0.10,10,0.02] );
show_fem(fmdl)
hold on; plot(0.5,0.5,'o','Color',[0,0.5,0]); hold off
axis equal

print_convert circ_2d_model01.png '-density 125'


Figure: Circular model generated by dm_2d_circ_pt_elecs, for two different mesh densities

Create regular electrode basic model

% Simple model with three electrodes $Id: circ_2d_model01.m 2768 2011-07-14 16:43:03Z bgrychtol $
elec_pts{1} = [1,0]; % Point electrode
elec_pts{2} = [0,1;sin(0.2),cos(0.2)]; % Complete electrode between points
elec_pts{3} = [0.5,0.5]; % Point internal electode

subplot(221);
fmdl= dm_2d_circ_pt_elecs( elec_pts, [], [0.10,10,0.05] );
show_fem(fmdl)
hold on; plot(0.5,0.5,'o','Color',[0,0.5,0]); hold off
axis equal

subplot(222);
fmdl= dm_2d_circ_pt_elecs( elec_pts, [], [0.10,10,0.02] );
show_fem(fmdl)
hold on; plot(0.5,0.5,'o','Color',[0,0.5,0]); hold off
axis equal

print_convert circ_2d_model01.png '-density 125'


Figure: Circular model generated by dm_2d_circ_pt_elecs, for two different mesh densities

Exploring Parameter Choices For Distmesh models

% Simple model with three electrodes $Id: circ_2d_model03.m 2768 2011-07-14 16:43:03Z bgrychtol $
elec_pts= {};
n_elecs= 8;
elec_width= 0.1;

hw= elec_width/2;
th = linspace(0,2*pi,n_elecs+1); th(end)=[];
for i=1:n_elecs;
   ti = th(i) + [hw;-hw];
   elec_pts{i} = [sin(ti),cos(ti)];
end

params = [0.10,10,0.05;
          0.10,10,0.02;
          0.10,10,0.005;
          0.10,30,0.005;
          0.10,50,0.005;
          0.05,10,0.02;
          0.03,10,0.02;
          0.02,10,0.02;
          0.10,10,0.001;
          0.05,10,0.001 ];

clf
for i=1:5; for j=0:1
   param= params(i+5*j,:);
   fmdl= dm_2d_circ_pt_elecs( elec_pts, [], param );

   axes('position',[0.05+0.49*j,(i-1)*0.17+0.10,0.45,0.13]);
   show_fem(fmdl);
   axis([0,1.05,-0.2,0.2]);
   text(0,0.25,sprintf('Params=[%4.2f,%2d,%5.3f]. #Elems= %d ', param, size(fmdl.elems,1)));
   if i>1; set(gca,'XTickLabel',[]); end
end; end

print_convert circ_2d_model03.png '-density 200'


Figure: Eight electrode model for various parameter choices indicated.

Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $