FEM-Course-Matlab/7.小孔应力集中问题matlab有限元编程/stress_calculate.m

23 lines
1.0 KiB
Mathematica
Raw Normal View History

2024-01-28 16:46:36 +00:00
function sgm=stress_calculate(element,node,ele_id,A,D,t,a)
i=ele_id;
a1=node(element(i,2),1)*node(element(i,3),2)-node(element(i,3),1)*node(element(i,2),2);
a2=node(element(i,3),1)*node(element(i,1),2)-node(element(i,1),1)*node(element(i,3),2);
a3=node(element(i,1),1)*node(element(i,2),2)-node(element(i,2),1)*node(element(i,1),2);
b1=node(element(i,2),2)-node(element(i,3),2);
b2=node(element(i,3),2)-node(element(i,1),2);
b3=node(element(i,1),2)-node(element(i,2),2);
c1=-node(element(i,2),1)+node(element(i,3),1);
c2=-node(element(i,3),1)+node(element(i,1),1);
c3=-node(element(i,1),1)+node(element(i,2),1);
B(:,:,i)=1/(2*A(i))*[b1,0,b2,0 ,b3,0;0,c1,0,c2,0,c3;c1,b1,c2,b2,c3,b3];
ae(1,i)=a(2*element(i,1)-1);
ae(2,i)=a(2*element(i,1));
ae(3,i)=a(2*element(i,2)-1);
ae(4,i)=a(2*element(i,2));
ae(5,i)=a(2*element(i,3)-1);
ae(6,i)=a(2*element(i,3));
yps(:,i)=B(:,:,i)*ae(:,i);%<EFBFBD><EFBFBD>ԪӦ<EFBFBD><EFBFBD>
sgm=D*yps(:,i);%<EFBFBD><EFBFBD>ԪӦ<EFBFBD><EFBFBD>
end