1 function [current,divrg]=QDDGOXddcurrent(mesh,Sinodes,data,contacts,options);
3 % [current,divrg]=QDDGOXddcurrent(mesh,Sinodes,data,contacts);
5 Nelements = size(mesh.t,2);
8 mob = Ufielddepmob(mesh,data.un,data.Fn,data.vsatn,data.mubn);
10 if (~isfield("options","FD")|(options.FD==0))
15 An = Uscharfettergummel(mesh,data.V(Sinodes)+data.G+data.FDn,mob);
18 mob = Ufielddepmob(mesh,data.up,data.Fp,data.vsatp,data.mubp);
19 Ap = Uscharfettergummel(mesh,-data.V(Sinodes)-data.Gp-data.FDp,mob);
20 divrg = An * data.n + Ap * data.p;
25 for con = 1:length(contacts)
28 cedges=[cedges,find(mesh.e(5,:)==contacts(con))];
29 cnodes = mesh.e(1:2,cedges);
30 cnodes = [cnodes(1,:) cnodes(2,:)];
31 cnodes = unique(cnodes);
33 current(con) = sum(divrg(cnodes));
37 Is = q*data.us*data.Vs*data.ns;
38 current = current * Is;