1、编写程序,对下图几何区域按有限元法进行网格划分,确定单元中结点数目及位置,并对单元和结点分别进行编号。二、程序思路基于 MATLAB 软件平台,首先画出几何图形,然后对几何区域按照有限元法思想进行三角形网格剖分,最后按顺序依次输出单元及结点编号和坐标。三、编写源程序:clear;%第一步:画出几何区域%为按逆时针顺序绘制几何区域x_up=3.5,0;y_up=2,2; %上固体边界数组x_l=0,0;y_l=2,0; %入流左边界数组x_low=0,2.5;y_low=0,0; %下固体边界数组n=9; %圆弧等分变量 nc=linspace(pi,pi/2,n);r=1; %圆弧半径变量 r
2、x_c=r*cos(c)+3.5;y_c=r*sin(c); %三角函数表示圆柱左上部分x_r=3.5,3.5;y_r=1,2; %出流右边界数组x=x_low,x_c ,x_r,x_up,x_l; %整体边界 X 坐标数组y=y_low,y_c ,y_r,y_up,y_l; %整体边界 Y 坐标数组plot(x,y, m); %绘制几何区域xlabel(x 轴);ylabel(y 轴);title(几何区域);hold onl=k*(pi/2)*r; x_up(3)=3.5-l; y_up(3)=2; cut_point=x_up(3), y_up(3); x_up(3)=x_up(2);y
3、_up(3)=y_up(2);x_up(2)= cut_point(1); y_up(2)= cut_point(2); %将上边界点坐标按顺序重排x_cutline= x_up(2),x_low(2);y_cutline= y_up(2),y_low(2); %分割线数组plot(x_cutline, y_cutline); %绘制分割线n1=6; %上边界左半部分 n1 等分变量x_upcp1=linspace(x_up(2),x_up(3),n1+1); %上边界左半部分 n1 等分y_upcp1=linspace(y_up(2),y_up(3),n1+1);x_lowcp1=linsp
4、ace(x_low(2),x_low(1),n1+1); %下边界 n1 等分y_lowcp1=linspace(y_low(2),y_low(1),n1+1);x_upcp2=linspace(x_up(1),x_up(2),n+1); %上边界右半部分 n 等分y_upcp2=linspace(y_up(1),y_up(2),n+1);x_upper= x_upcp2,x_upcp1; %上固体边界坐标数组y_upper= y_upcp2,y_upcp1;c1=linspace(pi*3/2,pi,n+1); x_c1=cos(c1)+3.5; y_c1=abs(sin(c1) ;x_lo
5、wer=x_c1,x_lowcp1; y_lower=y_c1,y_lowcp1;for i=1:n1+n+2 %画竖线plot(x_upper(i) x_lower(i), y_upper(i) y_lower(i),m);endm=7; for i=n+n1+2:-1:1 plot(x_upper(i) x_lower(i), y_upper(i) y_lower(i),m);%绘制竖线x1(i,:)=linspace(x_upper(i),x_lower(i),m+1); %竖线 m 等分y1(i,:)=linspace(y_upper(i),y_lower(i),m+1); endfo
6、r i=1:mfor j=n+n1+2:-1:2 plot(x1(j,i) x1(j-1,i),y1(j,i) y1(j-1,i),m); %plot(x1(j,i) x1(j-1,i+1),y1(j,i) y1(j-1,i+1),m);endendfor j=1:n+n1for i=1:mp1=i+(j-1)*(m+1);p2=i+1+j*(m+1);p3=i+j*(m+1);t=2*i+2*(j-1)*m;p4=i+(j-1)*(m+1);p5=i+1+(j-1)*(m+1);p6=i+1+j*(m+1);e(t-1,:)=p1,p2,p3; %整体编号与局部编号关系e(t,:)=p4,p5,p6;endend四、程序各步运行结果:具体程序如上所写第一步:画出几何区域