[Master Index] [Index for .]

solve_truss

(./solve_truss.m)


Function Synopsis

[u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof);

Help text

  [u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof)
 does the solving. Truss or frame.

Cross-Reference Information

This function calls
This function is called by

Listing of function ./solve_truss.m

function [u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof);
%  [u,in_sys_k] = solve_truss(nodes,members,active_nodes,loads,dof)
% does the solving. Truss or frame.


[num_members,i] = size(members);           % how many members we have to insert
num_act_nodes = max(size(active_nodes));  % number of active nodes
[num_loads,i] = size(loads);               % How many applied loads

sys_k = zeros(dof*num_act_nodes);      % generates a big empty square matrix
red_load=zeros(dof*num_act_nodes,1);   % generates a reduced empty load
                                       % column vector
disp = zeros(dof*num_act_nodes,1);      % a displacement vector to solve for
[na,nc] = size(nodes);
u = zeros(na,dof);                     % the return displacements

na
for i = 1:num_members
   sys_k = assemble_k (sys_k,members(i,:),nodes,active_nodes,dof) ;
end

for i = 1:num_loads
   red_load = assemble_loads(red_load,loads(i,:),active_nodes,dof);
end
dof
in_sys_k = inv(sys_k);
disp = in_sys_k*red_load;

u(active_nodes,:) = reshape(disp,dof,num_act_nodes)';





Produced by mat2html on Wed Jul 10 14:55:44 US/Pacific 1996
Cross-Directory links are: OFF