[Master Index]
[Index for .]
beam_installK
(./beam_installK.m)
Function Synopsis
[sys_K] = Beam_InstallK(index,elts,nodes,sys_K);
Help text
function [sys_K] = Beam_InstallK(index,elts,nodes,sys_K);
Installs all of the individual beam k's into the global
stiffness matrix
Cross-Reference Information
This function calls
Listing of function ./beam_installK.m
function [sys_K] = Beam_InstallK(index,elts,nodes,sys_K);
%function [sys_K] = Beam_InstallK(index,elts,nodes,sys_K);
% Installs all of the individual beam k's into the global
% stiffness matrix
% For interpreting nodal data
yes = 1; no = 0; isActive = 5; activeID = 6;
%%---To make the following slightly easier to read and maintain:
node_i = 1; node_j = 2; beta = 3; A = 4; Iss = 5; Itt = 6;
J = 7; E = 8; G = 9;
%--this element's row of data
myData = elts(index,:);
% Nodal data
node_i_data = nodes(myData(node_i),:);
node_j_data = nodes(myData(node_j),:);
% End points
P_i = node_i_data(2:4)';
P_j = node_j_data(2:4)';
% Compute the stiffness tensors
[kfu,kmu,kmt,kmtp] = beam_k(P_i,P_j,myData(beta),myData(A),...
myData(Iss),myData(Itt),myData(J),myData(E),myData(G));
% Now install into the system stiffness
% The local->global map
global_i = 6*(node_i_data(activeID)-1)+1;
global_j = 6*(node_j_data(activeID)-1)+1;
% Work out the tensor ranges:
u_i = global_i:global_i+2;
u_j = global_j:global_j+2;
t_i = global_i+3:global_i+5;
t_j = global_j+3:global_j+5;
% Now add stuff together
if node_i_data(isActive) == yes
sys_K(u_i,u_i) = kfu + sys_K(u_i,u_i);
sys_K(u_i,t_i) = kmu' + sys_K(u_i,t_i);
sys_K(t_i,u_i) = kmu + sys_K(t_i,u_i);
sys_K(t_i,t_i) = kmt + sys_K(t_i,t_i);
if node_j_data(isActive) == yes
sys_K(u_i,u_j) = -kfu + sys_K(u_i,u_j);
sys_K(u_i,t_j) = kmu' + sys_K(u_i,t_j);
sys_K(t_i,u_j) = -kmu + sys_K(t_i,u_j);
sys_K(t_i,t_j) = kmtp + sys_K(t_i,t_j);
end
end
if node_j_data(isActive) == yes
sys_K(u_j,u_j) = kfu + sys_K(u_j,u_j);
sys_K(u_j,t_j) = -kmu' + sys_K(u_j,t_j);
sys_K(t_j,u_j) = -kmu + sys_K(t_j,u_j);
sys_K(t_j,t_j) = kmt + sys_K(t_j,t_j);
if node_i_data(isActive) == yes
sys_K(u_j,u_i) = -kfu + sys_K(u_j,u_i);
sys_K(u_j,t_i) = -kmu' + sys_K(u_j,t_i);
sys_K(t_j,u_i) = kmu + sys_K(t_j,u_i);
sys_K(t_j,t_i) = kmtp + sys_K(t_j,t_i);
end
end
Produced by mat2html on Wed Jul 10 14:55:44 US/Pacific 1996
Cross-Directory links are: OFF