2.8 The truss element

Let us now apply the local coordinate system (x, z) to the truss element shown in Fig. 2.20 (X, Z is the global coordinate system).

Figure 2.20: Truss element
\includegraphics[width=95mm]{./joonised/svarrasESTelm.eps}

For this frame element, the rigid body translations and rigid body rotation at the ends of the element of Eq. (1.1) are shown in Fig.1.1.

The truss element displacements are described in local coordinates in Fig. 2.20.

$\displaystyle u_{L}$ $\displaystyle u_{A} + \Delta u = u_{L} + \frac{LN}{EA}$ (2.54)
$\displaystyle w_{L}$ $\displaystyle w_{A} - L\varphi_{A}$ (2.55)
$\displaystyle \varphi_{L}$ $\displaystyle \varphi_{A}$ (2.56)

where
$u_{A}$, $u_{L}$ - axial displacements at the beginning and at the end of the element, respectively;
$w_{A}$, $w_{L}$ - transverse displacements at the beginning and at the end of the element, respectively;
$\varphi_{A}$, $\varphi_{L}$ - rotation at the beginning and at the end of the element, respectively (free degrees of freedom);
$\Delta u = {LN}/{EA}$ - axial deformation of the element (internal displacement [KW90]),
$EA$ - axial stiffness of the element;
$L$ - length of the element.

Rigid body displacements and rotations of an element can be large. The axial deformation of an element is described in the basic coordinate system (in the co-rotational coordinate system []).

The truss element equilibrium equation:

$\displaystyle N_{L}$ $\textstyle =$ $\displaystyle - N_{A}$ (2.57)

The basic equations of the truss element:

$\displaystyle \mathbf{I_{4\times 4}\cdot Z_{L}} - \mathbf{U}\cdot\mathbf{Z_{A}} = 0$     (2.58)

where , are the displacements and contact forces at the beginning and at the end of the element, respectively,
$\displaystyle \mathbf{Z_{L}} =
\left[\begin{array}{c}
u_{L} \\
w_{L} \\
\varp...
...ray}{c}
u_{A} \\
w_{A} \\
\varphi_{A} \\
\ldots \\
N_{A}
\end{array}\right]$     (2.59)

and the transfer matrix is given as
$\displaystyle \mathbf{U} = \left[ \begin{array}{ccccc}
1 & 0 & 0 & \vdots & - i...
...\ldots & \vdots & \ldots \\
0 & 0 & 0 & \vdots & - 1
\end{array} \right]
\quad$     (2.60)

Here, is the scaling multiplier for the displacements.

Let us rewrite the basic equations of the truss element of Eq. (2.58) in the following form:


$\displaystyle \mathbf{\widehat{IU}}_{4\times 8}\cdot\mathbf{\widehat{Z}} = 0$     (2.61)

where
$\displaystyle \mathbf{\widehat{Z}} =
\left[\begin{array}{c}
\mathbf{Z_{L}} \\
\mathbf{Z_{A}}
\end{array}\right]$     (2.62)

Equations (2.61) are inserted into the system of Eq. (2.1) with the GNU Octave function yspSRmhvI.m. This function uses the GNU Octave function yspSRhlin.m

In excerpt 2.14 from the computing diary, GNU Octave commands for compiling the EST method equations can be found.

Computing diary excerpt 2.14 (spESTframe93LaheWFI.m)  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-------- Sparse matrix instantiation --------  
  spA=sparse(NNK,NNK)  
spA =

Compressed Column Sparse (rows = 67, cols = 67, nnz = 0 [0%])

-------- Right-hand side of the equations (RHS). --------  
  B=zeros(NNK,1);  
   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
----- Writing basic equations of frame ----  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
--------The basic equations are inserted into spA  --------  
rows = rows_of_basic_equations: 30
col = cols_of_basic_equations: 60
spA_nnz = non_zero_elements_in_the_basic_equations: 95
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 Compatibility equations of displacements at nodes 
From_row = Compatibility equations begin from row: 31
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
Node =  1
Node =  2
cmd = spA=spInsertBtoA(spA,31,19,SpTM3x3);
cmd = spA=spInsertBtoA(spA,31,1,SpTM3x3m);
Node =  3
Node =  4
cmd = spA=spInsertBtoA(spA,34,43,SpTM3x3);
cmd = spA=spInsertBtoA(spA,34,25,SpTM3x3m);
cmd = spA=spInsertBtoA(spA,37,43,SpTM3x3);
cmd = spA=spInsertBtoA(spA,37,13,SpTM3x3m);
Node =  5
Node =  6
cmd = spA=spInsertBtoA(spA,40,55,SpTM3x3);
cmd = spA=spInsertBtoA(spA,40,37,SpTM3x3m);
----- 
 
spA_rows =  42
spA_cols =  60
spA_nnz = non_zero_elements_in_spA: 129
  
 Compatibility equations of displacements are inserted into spA 
  
compatibility_equations_rows =  12
non_zero_elements_in_compatibility_equations =  34
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 Joint equilibrium equations at nodes 
From_rows = Joint equilibrium equations begin from row: 43
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
---------------------------------------------------------
Node =  1 
---------------------------------------------------------
Number_of_reactions = The number of reactions at the node (node_no, reactions):  1, 2
cmd = spA=spInsertBtoA(spA,43,10,SpTM2x2);
cmd = spA=spInsertBtoA(spA,43,61,SpTM2x2xz);
---------------------------------------------------------
Node =  2
---------------------------------------------------------
cmd = spA=spInsertBtoA(spA,45,22,SpTM3x3);
cmd = spA=spInsertBtoA(spA,45,4,SpTM3x3);
cmd = B(45:47,1)=sF(1:3,1);
---------------------------------------------------------
Node =  3
---------------------------------------------------------
Number_of_reactions = The number of reactions at the node (node_no, reactions):  3, 3
cmd = spA=spInsertBtoA(spA,48,34,SpTM3x3);
cmd = spA=spInsertBtoA(spA,48,63,SpTM3x3xz);
---------------------------------------------------------
Node =  4
---------------------------------------------------------
cmd = spA=spInsertBtoA(spA,51,46,SpTM3x3);
cmd = spA=spInsertBtoA(spA,51,28,SpTM3x3);
cmd = spA=spInsertBtoA(spA,51,16,SpTM3x3);
cmd = B(51:53,1)=sF(1:3,1);
---------------------------------------------------------
Node =  5
---------------------------------------------------------
Number_of_reactions = The number of reactions at the node (node_no, reactions):  5, 2
cmd = spA=spInsertBtoA(spA,54,52,SpTM2x2);
cmd = spA=spInsertBtoA(spA,54,66,SpTM2x2xz);
---------------------------------------------------------
Node =  6
---------------------------------------------------------
cmd = spA=spInsertBtoA(spA,56,58,SpTM3x3);
cmd = spA=spInsertBtoA(spA,56,40,SpTM3x3);
cmd = B(56:58,1)=sF(1:3,1);
----- 
 
spA_rows =  58
spA_cols =  67
spA_nnz = non_zero_elements_in_spA: 172
  
-----Equilibrium equations are inserted into spA  ----  
  
equilibrium_equations_rows =  16
non_zero_elements_in_equilibrium_equations =  43
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 Side conditions  (hinges) 
From_rows = Side conditions begin from row: 59
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
cmd = spA=spSisestaArv(spA,59,12,1);
cmd = spA=spSisestaArv(spA,60,54,1);
----- 
 
spA_rows =  60
spA_cols =  67
spA_nnz = non_zero_elements_in_spA: 174
  
-----Side conditions are inserted into spA  ----  
  
side_condition_rows =  2
non_zero_elements_in_side_condition =  2
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 Restrictions on support displacements 
From_rows = Restrictions on support displacements  begin from row: 61
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
   
cmd = spA=spInsertBtoA(spA,61,7,SpTUv);
Support shift  tSiire(1,1,1) = 0  in x direction at node 1
cmd = B(61,1)=tSiire(1,1,1);
  
cmd = spA=spInsertBtoA(spA,62,7,SpTWv);
Support shift  tSiire(2,1,1) = 0  in z direction at node 1
cmd = B(62,1)=tSiire(2,1,1);
  
cmd = spA=spInsertBtoA(spA,63,31,SpTUv);
Support shift  tSiire(1,1,3) = 0  in x direction at node 3
cmd = B(63,1)=tSiire(1,1,3);
  
cmd = spA=spInsertBtoA(spA,64,31,SpTWv);
Support shift  tSiire(2,1,3) = 0  in z direction at node 3
cmd = B(64,1)=tSiire(2,1,3);
  
cmd = spA=spInsertBtoA(spA,65,31,SpTFiV);
Support shift  tSiire(3,1,3) = 0  in y direction at node 3
cmd = B(65,1)=tSiire(3,1,3);
  
cmd = spA=spInsertBtoA(spA,66,49,SpTUv);
Support shift  tSiire(1,1,5) = 0  in x direction at node 5
cmd = B(66,1)=tSiire(1,1,5);
  
cmd = spA=spInsertBtoA(spA,67,49,SpTWv);
Support shift  tSiire(2,1,5) = 0  in z direction at node 5
cmd = B(67,1)=tSiire(2,1,5);
  
----- 
 
spA_rows =  67
spA_cols =  67
spA_nnz = non_zero_elements_in_spA: 181
  
-----Restrictions equations are inserted into spA  ----  
  
restrictions_equations_rows =  7
non_zero_elements_in_restrictions_equations =  7
  
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
spA_rank =  67
spA =

Compressed Column Sparse (rows = 67, cols = 67, nnz = 181 [4%])

andres
2014-09-09