function [k,dof] = truss2k(nodes,n1,n2,A,E) % % Return an element stiffness matrix (global coord.) % and a DOF list % % nodes -- list of all node coord. % n1, n2 -- node numbers for this elem % A -- cross-section area % E -- modulus of elasticity % % k -- element stiffness matrix, global coord. % dof -- global DOF list % error(nargchk(5,5,nargin)); %% 5 inputs req'd if n1==n2 error('Distinct node numbers required') end x1 = y1 = x2 = y2 = dx = x2-x1; dy = y2-y1; len = sqrt(dx^2 + dy^2); if len==0 error('Zero length element'); end theta = % % Eq. 3.1.14 % khat = (A*E/len) * [1 -1 -1 1]; C = cos(theta); S = sin(theta); % % Eq. 3.4.8 % Tstar = % % Eq. 3.4.22 % k = % % DOF list, see writeup % dof = [2*n1-1 2*n1 2*n2-1 2*n2];