📄 truss2d_results.m
字号:
%***********************************************************************
% function truss2d_results
%
% calculates and prints 2D truss element results
%***********************************************************************
function [energy] = truss2d_results(ElemData, ElemType, Prop, Nodes, solution_vector)
% determine elemental displacement values from solution vector
elemType = ElemData.elemType;
nnodes = ElemType(elemType).nnodes;
ndofs_node = ElemType(elemType).ndofs_node;
count = 0;
for node = 1:nnodes
dof_pos_0 = (ElemData.connect(node) - 1) * ndofs_node; % assuming all nodes with same num dofs
for dof = 1:ndofs_node
count = count + 1;
dof_pos = dof_pos_0 + dof;
disp_vector(count) = solution_vector(dof_pos);
end
end
% determine stiffness matrix
ke = truss2d_elem(ElemData, Prop, Nodes);
force = ke * disp_vector'; % form matrix-vector product
% strain energy
energy = 0.5 * disp_vector * force;
magnitude = sqrt(force(1)^2 + force(2)^2);
% The only stress in a truss is the axial stress.
% Get its absolute value
stress = magnitude/ Prop( ElemData.propID ).properties(2);
% Fix the sign of stress
d = Nodes(ElemData.connect(2)).coord - Nodes(ElemData.connect(1)).coord;
f = force(1:2);
stress = - sign(d * f) * stress;
fprintf([' ID f1_x f1_y f2_x f2_y',...
' magnitude stress strain energy\n'])
fprintf('%4i %12.5g %12.5g %12.5g %12.5g %12.5g %12.5g %12.5g\n',...
ElemData.elemID, force, magnitude, stress, energy)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -