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

28 lines
728 B
Mathematica
Raw Normal View History

2024-01-28 16:46:36 +00:00
function B = MatrixB( ie )
% <EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
% ie ---- <EFBFBD><EFBFBD>Ԫ<EFBFBD><EFBFBD>
% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ:
% B ---- <EFBFBD><EFBFBD>ԪӦ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
global gNode gElement
xi = gNode( gElement( ie, 1 ), 1 ) ;
yi = gNode( gElement( ie, 1 ), 2 ) ;
xj = gNode( gElement( ie, 2 ), 1 ) ;
yj = gNode( gElement( ie, 2 ), 2 ) ;
xm = gNode( gElement( ie, 3 ), 1 ) ;
ym = gNode( gElement( ie, 3 ), 2 ) ;
ai = xj*ym - xm*yj ;
aj = xm*yi - xi*ym ;
am = xi*yj - xj*yi ;
bi = yj - ym ;
bj = ym - yi ;
bm = yi - yj ;
ci = -(xj-xm) ;
cj = -(xm-xi) ;
cm = -(xi-xj) ;
area = abs((ai+aj+am)/2) ;
B = [bi 0 bj 0 bm 0
0 ci 0 cj 0 cm
ci bi cj bj cm bm] ;
B = B/2/area ;
return