|
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
|
EIDORS fwd_modelsCreating an FEM and solving a 3D forward problemEIDORS has functions to create common FEM models.
nelec= 8; nrings= 2;
ring_vert_pos = [0.2, 0.5];
fmdl= ng_mk_cyl_models([1,0.3,0.05],[nelec,ring_vert_pos],[0.1,0.05,0.02]);
stim = mk_stim_patterns(nelec,nrings,[0,1],[0,1],{'meas_current'},1);
fmdl.stimulation = stim;
conduct = 1;
img = mk_image( fmdl, conduct );
show_fem(img);
print_convert forward_solver_3d_01a.png '-density 75'
extra={'ball','solid ball = sphere(0,0.2,0.5;0.1);'};
fmdl= ng_mk_cyl_models([1,0.3,0.05],[nelec,ring_vert_pos],[0.1,0.05,0.02], extra);
fmdl.stimulation = stim;
img= mk_image(fmdl, conduct);
img.elem_data(fmdl.mat_idx{2}) = 0.1;
show_fem(img);
print_convert forward_solver_3d_02a.png '-density 75'
Figure: A 3D finite element model (left) and an insulating inclusion (right)
img.fwd_solve.get_all_meas = 1;
img.elem_data(fmdl.mat_idx{2}) = conduct; % Homogenous
vh = fwd_solve(img);
img.elem_data(fmdl.mat_idx{2}) = 0.95*conduct; %Non-conductive inclusion
vi = fwd_solve(img);
plot([vh.meas, 100*(vh.meas-vi.meas)])
axis tight
print_convert forward_solver_3d_03a.png '-density 77'
Figure: Measured voltages pattern from adjacent stimulation img_v = rmfield(img, 'elem_data'); img_v.node_data = vh.volt(:,1); show_slices(img_v,[0.2;0.3;0.4]*[inf,inf,1]) print_convert forward_solver_3d_04a.png '-density 75' img_v.node_data = vh.volt(:,1) - vi.volt(:,1); show_slices(img_v,[0.2;0.3;0.4]*[inf,inf,1]) print_convert forward_solver_3d_04b.png '-density 75'
Figure: The voltage pattern in three vertical slices of medium from adjacent stimulation. (left) voltage pattern. (right) pattern due to a change in conductivity.
img.fwd_model.electrode([2,13]) = img.fwd_model.electrode([13,2]); % flip electrodes
img.elem_data(fmdl.mat_idx{2}) = conduct; % Homogenous
vh = fwd_solve(img);
img.elem_data(fmdl.mat_idx{2}) = 0.95*conduct; %Non-conductive inclusion
vi = fwd_solve(img);
img_v.node_data = vh.volt(:,1);
show_slices(img_v,[0.25;0.35;0.45]*[inf,inf,1])
print_convert forward_solver_3d_05a.png '-density 75'
img_v.node_data = vh.volt(:,1) - vi.volt(:,1);
show_slices(img_v,[0.25;0.35;0.45]*[inf,inf,1])
print_convert forward_solver_3d_05b.png '-density 75'
Figure: The voltage pattern in three vertical slices of medium from opposity stimulation (across two electrode rings). (left) voltage pattern. (right) pattern due to a change in conductivity. |
Last Modified: $Date: 2017-02-28 13:12:08 -0500 (Tue, 28 Feb 2017) $ by $Author: aadler $