0001 function [fwd_mdl]=set_fwd_model(vtx,simp,srf,elec,zc,gnd_ind,Ib,indH,df,perm_sym);
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 if nargin<10
0016 perm_sym= '{y}';
0017 end
0018 if isempty( srf)
0019 srf= find_boundary( simp );
0020 end
0021 fwd_mdl= eidors_obj('fwd_model','FWD_MDL created by set_fwd_model');
0022 fwd_mdl.nodes=vtx;
0023 fwd_mdl.elems=simp;
0024 fwd_mdl.boundary=srf;
0025 fwd_mdl.gnd_node=gnd_ind;
0026
0027 elec_mdl=[];
0028 for loop1=1:size(elec,1);
0029 elec_mdl(loop1,1).z_contact=zc(loop1);
0030 elec_mdl(loop1,1).nodes=elec(loop1,:);
0031 end
0032
0033 fwd_mdl.electrode=elec_mdl;
0034
0035 stim_mdl=[];
0036 for loop1=1:size(df,1)
0037 stim_mdl(loop1,1).stimulation=abs(max(Ib(:,loop1)));
0038 stim_mdl(loop1,1).stim_pattern=Ib(:,loop1);
0039 meas=zeros(df(loop1),size(elec,1));
0040 loop3=1;
0041 for loop2=sum(df(1:loop1))-df(loop1)+1:sum(df(1:loop1))
0042 meas(loop3,indH(loop2,1))=1;
0043 meas(loop3,indH(loop2,2))=-1;
0044 loop3=loop3+1;
0045 end
0046 stim_mdl(loop1,1).meas_pattern=meas;
0047 end
0048
0049 fwd_mdl.stimulation=stim_mdl;
0050 fwd_mdl.misc.perm_sym=perm_sym;
0051 fwd_mdl.solve='np_fwd_solve';
0052 fwd_mdl.jacobian='np_calc_jacobian';
0053 fwd_mdl.system_mat='np_calc_system_mat';