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