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

31 lines
779 B
Matlab

function enf = EquivalentNodeForce( ie, aa, bb, ps )
% 计算线性分布荷载的等效节点力
% 输入参数:
% ie ----- 单元号
% aa ----- 终点节点号
% bb ----- 起点节点号
% ps ----- 荷载分布集度值
% 返回值:
% enf ----- 等效节点力向量
global gElement gNode gMaterial
enf = zeros(6,1) ;
h = gMaterial( gElement( ie, 4 ), 3 ) ;
xj = gNode( aa, 1 ) ;
yj = gNode( aa, 2 ) ;
xi = gNode( bb, 1 ) ;
yi = gNode( bb, 2 ) ;
f1 = h*ps*(yi-yj)/2 ;
f2 = h*ps*(xj-xi)/2 ;
f3 = h*ps*(yi-yj)/2 ;
f4 = h*ps*(xj-xi)/2 ;
% 弥补前处理中的节点乱序
switch ie
case 446
enf = [f1; f2; f3; f4; 0; 0] ;
case {492, 449, 456, 458, 460, 462}
enf = [0; 0; f1; f2; f3; f4] ;
case 437
enf = [f3; f4; 0; 0; f1; f2] ;
end
return