28 lines
728 B
Mathematica
28 lines
728 B
Mathematica
|
|
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
|