FEM-Course-Matlab/18. 材料非线性问题matlab有限元编程/elastic/ElementStress.m

26 lines
841 B
Mathematica
Raw Permalink Normal View History

2024-01-28 16:46:36 +00:00
function es = ElementStress( ie )
% <EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
% ie ----- <EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
% es ----- <EFBFBD><EFBFBD>ԪӦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>6<EFBFBD><EFBFBD><EFBFBD><EFBFBD> [sx, sy, txy, s1, s2, tmax]
global gElement gDelta gMaterial
es = zeros( 1, 6 ) ; % <EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
de = zeros( 6, 1 ) ; % <EFBFBD><EFBFBD>Ԫ<EFBFBD>ڵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
E = gMaterial( gElement(ie, 4), 1 ) ;
mu = gMaterial( gElement(ie, 4), 2 ) ;
D = [ 1-mu mu 0
mu 1-mu 0
0 0 (1-2*mu)/2] ;
D = D*E/(1-2*mu)/(1+mu) ;
B = MatrixB( ie ) ;
for j=1:1:3
de( 2*j-1 ) = gDelta( 2*gElement( ie, j )-1 ) ;
de( 2*j ) = gDelta( 2*gElement( ie, j ) ) ;
end
es(1:3) = D * B * de ;
es(6) = 0.5*sqrt((es(1)-es(2))^2 + 4*es(3)^2 ) ;
es(4) = 0.5*(es(1)+es(2)) + es(6) ;
es(5) = 0.5*(es(1)+es(2)) - es(6) ;
return