% FEMSET-Berechnung: Ebenes Fachwerk (Kranmodell mit 55 Staeben und 29 Knoten)
clear all
%    Knotenkoordinaten:
%      1      2      3      4     5      6      7     8     9     10    11     12     13      14     15
xy = [0 0 ; 6  0 ; 2  4 ; 3  4 ; 4  4 ; 1  5 ; 3 5 ; 5 5 ; 2 6 ; 4 6 ;  2 7 ;  4 7 ;  2 8 ;  4  8  ; 2 9 ;
      4 9 ; 2 10 ; 4 10 ; 2 11 ; 4 11 ; 2 12 ; 6 6 ; 7 5 ; 8 6 ; 9 5 ; 10 6 ; 11 5 ; 12 6 ; 13  5] ; 
%     16     17      18     19    20     21     22    23    24    25    26     27     28     29
%    Verhinderte Verschiebungen:
kr = [1 1 ;  0 1 ; 0  0 ; 0  0 ; 0  0 ; 0  0 ; 0 0 ; 0 0 ; 0 0 ; 0 0 ;  0 0 ;  0 0 ;  0 0 ;  0  0  ; 0 0 ;
      0 0 ;  0 0 ; 0  0 ; 0  0 ; 0  0 ; 0  0 ; 0 0 ; 0 0 ; 0 0 ; 0 0 ;  0 0 ;  0 0 ;  0 0 ;  0  0] ; 
%    Kraefte:  
bk = [0 0 ;  0 0 ; 0  0 ; 0  0 ; 0  0 ;  0 0 ; 0 0 ; 0 0 ; 0 0 ; 0 0 ;  0 0 ;  0 0 ;  0 0 ;  0  0  ; 0 0 ;
      0 0 ;  0 0 ; 0  0 ; 0  0 ; 0  0 ; -1 0 ; 0 0 ; 0 0 ; 0 0 ; 0 0 ;  0 0 ;  0 0 ;  0 0 ;  0 -1] ;
%    Koinzidenzmatrix ("An welchen Knoten sind die Staebe angeschlossen?"):
%       1       2       3       4       5       6       7       8       9      10              
km = [21 19 ; 21 20 ; 19 20 ; 19 17 ; 19 18 ; 20 18 ; 17 18 ; 17 15 ; 17 16 ; 18 16 ;
      15 16 ; 15 13 ; 15 14 ; 16 14 ; 13 14 ; 13 11 ; 13 12 ; 14 12 ; 11 12 ; 11  9 ;
      11 10 ; 12 10 ;  9 10 ;  6  9 ;  9  7 ;  7 10 ; 10  8 ;  6  7 ;  7  8 ;  3  7 ;
       7  5 ;  3  4 ;  4  5 ;  1  6 ;  1  3 ;  1  4 ;  2  4 ;  2  5 ;  2  8 ;  8 22 ;
       8 23 ; 22 23 ; 22 24 ; 23 24 ; 23 25 ; 24 25 ; 24 26 ; 25 26 ; 25 27 ; 26 27 ;
      26 28 ; 27 28 ; 27 29 ; 28 29 ; 16 28 ] ;                                         
% Dehnsteifigkeiten (fuer Statik-Problem nicht relevant, aber formal erforderlich):
nelem = 55 ; ep(1:nelem,1) = 1 ;                              

% Finite-Elemente-Algorithmus:
[succ uv] = feskal_m (xy , km , ep , kr , bk) ;

if succ == 1                                           % Nach erfolgreicher Rechnung: 
    sk = Stabkraefte2D (xy , km , ep , uv) ;           % Berechnung der Stabkraefte ...
    for i = 1:nelem
       disp (['Stab ',num2str(i), ': Stabkraft F = ',num2str(sk(i))]) ;
    end
    clf ;
    drawfw2dsk (xy , km , kr , bk , sk , 'e') ;        % ... und in Graphik-Fenster darstellen
end