function out=getBF(type,n,u,v,w) %type 1-E 2-curlE %n number of BF 2*NbrEdge+2*NbrFace 2*6+2*4 %(u,v,w) reference coordinate if type==1 %1-(1,0,0) 2-(0,1,0) 3-(0,0,1) 4-(0,0,0) if n==1 out=[v-3*u*v,-u+3*u*u,0]; elseif n==2 out=[v-3*v*v,-u+3*u*v,0]; elseif n==3 out=[w-3*u*w,0,-u+3*u*u]; elseif n==4 out=[w-3*w*w,0,-u+3*u*w]; elseif n==5 out=[1-3*u-v+3*u*v-w+3*u*w,u-3*u*u,u-3*u*u]; elseif n==6 out=[-2+3*u+5*v-3*u*v-3*v*v+5*w-3*u*w-6*v*w-3*w*w,-2*u+3*u*u+3*u*v+3*u*w,-2*u+3*u*u+3*u*v+3*u*w]; elseif n==7 out=[0,w-3*v*w,-v+3*v*v]; elseif n==8 out=[0,w-3*w*w,-v+3*v*w]; elseif n==9 out=[v-3*v*v,1-u-3*v+3*u*v-w+3*v*w,v-3*v*v]; elseif n==10 out=[-2*v+3*u*v+3*v*v+3*v*w,-2+5*u-3*u*u+3*v-3*u*v+5*w-6*u*w-3*v*w-3*w*w,-2*v+3*u*v+3*v*v+3*v*w]; elseif n==11 out=[w-3*w*w,w-3*w*w,1-u-v-3*w+3*u*w+3*v*w]; elseif n==12 out=[-2*w+3*u*w+3*v*w+3*w*w,-2*w+3*u*w+3*v*w+3*w*w,-2+5*u-3*u*u+5*v-6*u*v-3*v*v+3*w-3*u*w-3*v*w]; elseif n==13 %123 out=[-3*v*w,3*u*w,0]; elseif n==14 %312 out=[-3*v*w,0,3*u*v]; elseif n==15 out=[-3*v+3*u*v+3*v*v+3*v*w,3*u-3*u*u-3*u*v-3*u*w,0]; elseif n==16 out=[-3*v+3*v*v+3*v*w,-3*u*v,-3*u*v]; elseif n==17 out=[-3*w+3*u*w+3*v*w+3*w*w,0,3*u-3*u*u-3*u*v-3*u*w]; elseif n==18 out=[-3*w+3*v*w+3*w*w,-3*u*w,-3*u*w]; elseif n==19 out=[0,-3*w+3*u*w+3*v*w+3*w*w,3*v-3*u*v-3*v*v-3*v*w]; elseif n==20 out=[-3*v*w,-3*w+3*u*w+3*w*w,-3*v*w]; end elseif type==2 if n==1 out=[0,0,-2+9*u]; elseif n==2 out=[0,0,-2+9*v]; elseif n==3 out=[0,2-9*u,0]; elseif n==4 out=[0,2-9*w,0]; elseif n==5 out=[0,-2+9*u,2-9*u]; elseif n==6 out=[0,7-9*u-9*v-9*w,-7+9*u+9*v+9*w]; elseif n==7 out=[-2+9*v,0,0]; elseif n==8 out=[-2+9*w,0,0]; elseif n==9 out=[2-9*v,0,-2+9*v]; elseif n==10 out=[-7+9*u+9*v+9*w,0,7-9*u-9*v-9*w]; elseif n==11 out=[-2+9*w,2-9*w,0]; elseif n==12 out=[7-9*u-9*v-9*w,-7+9*u+9*v+9*w,0]; elseif n==13 out=[-3*u,-3*v,6*w]; elseif n==14 out=[3*u,-6*v,3*w]; elseif n==15 out=[3*u,3*v,6-9*u-9*v-6*w]; elseif n==16 out=[-3*u,6*v,3-9*v-3*w]; elseif n==17 out=[-3*u,-6+9*u+6*v+9*w,-3*w]; elseif n==18 out=[3*u,-3+3*v+9*w,-6*w]; elseif n==19 out=[6-6*u-9*v-9*w,3*v,3*w]; elseif n==20 out=[3-3*u-9*w,-3*v,6*w]; end end end