📄 truss.m
字号:
function truss % (定义新的函数truss)
% This function analyze the problem of plane stress use triangle elements
% the variables lists:
% node ------- node definition
% element ----- element definition
% material ---- material definition
% K ----------- global stiffness matrix -|
% f ----------- global node force vector | [K]{delta}={f}
% delta ------- global node displacement vector -|
% bc ---------- boundary condition
% nf ---------- node force
% file_in ----- input file name
% file_out ---- output file name
% fid_in ------ input file ID
% fid_out ----- output file ID
global node element material K bc bc_number nf_number nf node_number element_number %(定义全局变量)
file_in='myinput.txt'; %input('input file name:','s' );
file_out='myoutput.txt'; %input('output file name:','s');
fid_in = fopen( file_in, 'r' ) ; % open input file
inputdata(fid_in);
fclose( fid_in ) ; %close the input file which has been opened
K=sparse(node_number*3,node_number*3);%(创建稀疏矩阵K)
f = zeros(node_number*3,1) ;%(创建f)
for ie=1:1:element_number
k=StiffnessMatrix( ie ) ; % (调用函数StiffnessMatrix)
AssembleStiffnessMatrix( ie, k ) ;% (调用函数AssembleStiffnessMatrix)
end
for inf=1:1:nf_number
n = nf( inf, 1 ) ;
d = nf( inf, 2 ) ;
f( (n-1)*3 + d ) = nf( inf, 3 ) ;
end
for ibc=1:1:bc_number
n = bc(ibc, 1 ) ;
d = bc(ibc, 2 ) ;
m = (n-1)*3 + d ;
f(m) = bc(ibc, 3)* K(m,m) * 1e20 ;
K(m, m) = K(m, m) * 1e20 ;
end
delta = K \ f ;%(解方程组,得位移delta)
fid_out = fopen( file_out, 'w' ) ; % open the output file
fprintf( fid_out, '节点位移\n');
for i=1:1:node_number
fprintf( fid_out, 'node = %5d, x = %.8e, y = %.8e, z = %.8e\n', ...
i, delta((i-1)*3+1), delta((i-1)*3+2) , delta((i-1)*3+3)) ; % output the node displacement
end
fclose(fid_out) ; % close the output file
return ;%(function truss结束)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -