function [xx,yy,normEE]=get_ele2(triIndex,mesh,solver) nbr=length(triIndex); xx=zeros(3,nbr); yy=zeros(3,nbr); normEE=zeros(3,nbr); for n=1:nbr numTet=mesh.ConnOfTri(triIndex(n),1); numFace=mesh.ConnOfTri(triIndex(n),2); %vertex x=mesh.Vertex(mesh.Tet(numTet,:),1); y=mesh.Vertex(mesh.Tet(numTet,:),2); z=mesh.Vertex(mesh.Tet(numTet,:),3); if numFace==1 %123 x2=[1;0;0]; y2=[0;1;0]; z2=[0;0;1]; xx(:,n)=[x(1);x(2);x(3)]; yy(:,n)=[y(1);y(2);y(3)]; elseif numFace==2 %124 x2=[1;0;0]; y2=[0;1;0]; z2=[0;0;0]; xx(:,n)=[x(1);x(2);x(4)]; yy(:,n)=[y(1);y(2);y(4)]; elseif numFace==3 %134 x2=[1;0;0]; y2=[0;0;0]; z2=[0;1;0]; xx(:,n)=[x(1);x(3);x(4)]; yy(:,n)=[y(1);y(3);y(4)]; elseif numFace==4 %234 x2=[0;0;0]; y2=[1;0;0]; z2=[0;1;0]; xx(:,n)=[x(2);x(3);x(4)]; yy(:,n)=[y(2);y(3);y(4)]; end %jac Jac=zeros(3,3); Jac(1,1)=x(1)-x(4);Jac(1,2)=y(1)-y(4);Jac(1,3)=z(1)-z(4); Jac(2,1)=x(2)-x(4);Jac(2,2)=y(2)-y(4);Jac(2,3)=z(2)-z(4); Jac(3,1)=x(3)-x(4);Jac(3,2)=y(3)-y(4);Jac(3,3)=z(3)-z(4); %bf E=zeros(3,6,3); %3*基函数数目6*节点数3 for i=1:3 for j=1:6 E(:,j,i)=getBF(1,j,x2(i),y2(i),z2(i)); E(:,j,i)=Jac\E(:,j,i); end end %计算电场 Ex=zeros(3,1);Ey=zeros(3,1);Ez=zeros(3,1); for i=1:3 for j=1:6 Ex(i)=Ex(i)+E(1,j,i)*solver.x(mesh.EdgeOfTet(numTet,j)); Ey(i)=Ey(i)+E(2,j,i)*solver.x(mesh.EdgeOfTet(numTet,j)); Ez(i)=Ez(i)+E(3,j,i)*solver.x(mesh.EdgeOfTet(numTet,j)); end end normE=sqrt(abs(Ex.*conj(Ex)+Ey.*conj(Ey)+Ez.*conj(Ez))); normEE(:,n)=normE; end end