59 lines
1.6 KiB
Matlab
59 lines
1.6 KiB
Matlab
function FemModel(filename)
|
|
% 定义有限元模型
|
|
% 该函数定义平面问题的有限元模型数据:
|
|
% gNode ------- 节点定义
|
|
% gElement ---- 单元定义
|
|
% gMaterial --- 材料定义,包括弹性模量,梁的截面积和梁的抗弯惯性矩
|
|
% gBC1 -------- 约束条件
|
|
% gDF --------- 分布力
|
|
|
|
global gNode gElement gMaterial gBC1 gDF
|
|
|
|
% 打开文件
|
|
fid = fopen( filename, 'r' ) ;
|
|
|
|
% 读取节点坐标
|
|
node_number = fscanf( fid, '%d', 1 ) ;
|
|
gNode = zeros( node_number, 2 ) ;
|
|
for i=1:node_number
|
|
dummy = fscanf( fid, '%d', 1 ) ;
|
|
gNode( i, : ) = fscanf( fid, '%f', [1, 2] ) ;
|
|
end
|
|
|
|
% 读取单元定义
|
|
element_number = fscanf( fid, '%d', 1 ) ;
|
|
gElement = zeros( element_number, 4 ) ;
|
|
for i=1:element_number
|
|
dummy = fscanf( fid, '%d', 1 ) ;
|
|
gElement( i, : ) = fscanf( fid, '%d', [1, 4] ) ;
|
|
end
|
|
|
|
% 读取荷载信息
|
|
load_number = fscanf( fid, '%d', 1 ) ;
|
|
gDF = zeros( load_number, 4 ) ;
|
|
for i=1:load_number
|
|
dummy = fscanf( fid, '%d', 1 ) ;
|
|
gDF( i, : ) = fscanf( fid, '%f', [1, 4] ) ;
|
|
end
|
|
|
|
% 读取材料信息
|
|
material_number = fscanf( fid, '%d', 1 ) ;
|
|
gMaterial = zeros( material_number, 4 ) ;
|
|
for i=1:material_number
|
|
dummy = fscanf( fid, '%d', 1 ) ;
|
|
gMaterial( i, : ) = fscanf( fid, '%f', [1,4] ) ;
|
|
end
|
|
|
|
% 读取边界条件
|
|
bc1_number = fscanf( fid, '%d', 1 ) ;
|
|
gBC1 = zeros( bc1_number, 3 ) ;
|
|
for i=1:bc1_number
|
|
gBC1( i, 1 ) = fscanf( fid, '%d', 1 ) ;
|
|
gBC1( i, 2 ) = fscanf( fid, '%d', 1 ) ;
|
|
gBC1( i, 3 ) = fscanf( fid, '%f', 1 ) ;
|
|
end
|
|
|
|
% 关闭文件
|
|
fclose( fid ) ;
|
|
return
|