function [out]=BF_curlEdge(type,num,u,v,w) %type 网格类型 1为四面体 2为三棱柱 %num 第几个基函数 %u v w 对应坐 out=zeros(3,1); if type==1 if num==1 %41 out(1)=0; out(2)=0; out(3)=2; elseif num==2 %42 out(1)=0; out(2)=-2; out(3)=0; elseif num==3 %43 out(1)=0; out(2)=2; out(3)=-2; elseif num==4 %12 out(1)=2; out(2)=0; out(3)=0; elseif num==5 %13 out(1)=-2; out(2)=0; out(3)=2; elseif num==6 %23 out(1)=2; out(2)=-2; out(3)=0; else disp("基函数旋度获取错误"); end elseif type==2 if num==1 out(1)=u/2; out(2)=(v-1)/2; out(3)=1-w; elseif num==2 out(1)=(1-u)/2; out(2)=-v/2; out(3)=w-1; elseif num==3 out(1)=-1/2; out(2)=1/2; out(3)=0; elseif num==4 out(1)=u/2; out(2)=v/2; out(3)=1-w; elseif num==5 out(1)=0; out(2)=-1/2; out(3)=0; elseif num==6 out(1)=1; out(2)=0; out(3)=0; elseif num==7 out(1)=-u/2; out(2)=(1-v)/2; out(3)=1+w; elseif num==8 out(1)=(u-1)/2; out(2)=v/2; out(3)=-1-w; elseif num==9 out(1)=-u/2; out(2)=-v/2; out(3)=1+w; else disp("基函数旋度获取错误"); end else disp("基函数旋度获取错误"); end end