## spESTframe3hingeLaheNQM.m
close all 
clear
## 
##dbwhere(470)
disp('==================================================================')
disp(' spESTframe3hingeLaheNQM.m   ')
disp(' Analysis of a plane frame using the EST method. ')
disp(' The EST method finds the displacements and forces. ')
disp(' The equations matrix are non-symmetric sparse matrix. ')
## http://digi.lib.ttu.ee/opik_eme/slaidid/raamEST1en.pdf
##disp('  ')
disp('---  ')
##disp(' http://digi.lib.ttu.ee/opik_eme/slaidid/raamEST1en.pdf ')
disp(' http://digi.lib.ttu.ee/opik_eme/Ehitusmehaanika.pdf#page=419 ')
## GNU octave version >= 3.0.x
##=========================================================================
## This Program is written by Andres Lahe,   2010-07-16
##                    e-mail: andres.lahe@ttu.ee
## LAST MODIFIED: Andres Lahe,   2013-07-21
## Copyright (c)  2010 by Tallinn University of Technology 
##                Department of Mechanics
##                http://www.ttu.ee/
##
## This program is free software; you can redistribute it and/or
## modify it under the terms of the GNU General Public License
## as published by the Free Software Foundation; either version 2
## of the License, or (at your option) any later version.

## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
## http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
##=========================================================================
##
##siireVardaA
 eps1=0.000001;
 epsgraf=0.01;
 global spA 
# global siireVardaA
disp('---  ')
disp(' daf -- the displacements and the forces at the ends of element. ')
disp(' The element of plane frame have 6 daf''s (3+3). ') 
disp(' The number of unknowns are 6*number_of_elements + number_of_support_reactions. ')
disp(' The matrices are assembled into compressed column sparse matrices. ')
disp('---  ')
disp('  ')
#---------  Number of frame nodes ----------
Number_of_frame_nodes=5  #5
                            SolmedeArv=Number_of_frame_nodes;
#---------  Number of elements ----------
Number_of_elements=4
                            ElementideArv=Number_of_elements;
#---------  Number of supports ----------
Number_of_support_reactions=4
                            Ntoerkts=Number_of_support_reactions;
disp('  ')

spNNK=6*ElementideArv+Ntoerkts;
#==========
   The_number_of_unknowns_are=spNNK
disp('---  ')
#==========
disp('--------- Element properties ------------')
#E=2.1E+11  # Elastsusmoodul (E=210GPa) E=2.1E+11 [Pa]
#E=2.1E+05 # kPa
#% I-40  Hristloige=400mm=0.4m   I=1902cm4=1.902E+03cm4=1.902E-05m4
#
#EIp=20000
#EIr=40000
##EAp=4.6*10^6 
#EAp=4.6*10^15
##EAr=6.8*10^6;
#EAr=6.8*10^15 
#GAp=0.4*EAp; 
#GAr=0.4*EAr;

%
F1=3.0;
L2x=sqrt(4.0^2+1.0^2);  # length of the element
Lpunkt=L2x/2;
F2=1.0;
q=2.0;
sinA2=1.0/L2x;
cosA2=4.0/L2x;
qk=2.0*4.0/L2x; % koormus/varda pikkuse kohta
#esQkoormus  qz2 qx2 0.0 L2x
qz2=qk*cosA2;  % projektsioon z-teljele
qx2=-qk*sinA2; % projektsioon x-teljele
%
#esFjoud Fz3 Fx3 aF3
Fz3=F1*cosA2;
Fx3=F1*sinA2;
aF3=L2x/2;
%
#disp('--------- Scaling multiplier for the displacements----------')
#baasi0=EIp/5.6  # scaling multiplier for the displacements
#%baasi0=1.0;
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp(' The displacements and the forces calculated on the parts of the element ''Nmitmeks''.  ')
Nmitmeks=4
Lp=8.0; # graphics axis
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
##Fjoud=esFjoud(:,1:2,i);
#Fjoud=esFjoud(:,1:3,i);
##qkoormus=esQkoormus(:,1:3,i); 
#qkoormus=esQkoormus(:,1:4,i);
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%
## ---- load variants -----
load_variant=1
#load_variant=2
#load_variant=3
        koormusvariant=load_variant
###koormusvariant=2

###koormusvariant=3
##%%%%%%%%%%%%%%%%%%%%%%%%%%%%
switch (koormusvariant)
case{1}
#
disp(' The load variant 1 ')
#disp(' Element load  in local coordinates ')
#disp('    qz     qx     qA      qL ')
# The uniformly distributed load in local coordinate z and x direction kN/m^2
LoadsqONelement=4;
esQkoormu=zeros(LoadsqONelement,4,ElementideArv);
esQkoormus(1,1:4,1)=[0.0 0.0 0.0 4.0];
esQkoormus(1,1:4,2)=[qz2 qx2 0.0 L2x];
esQkoormus(1,1:4,3)=[0.0 0.0 0.0 L2x];
esQkoormus(1,1:4,4)=[0.0 0.0 0.0 4.0];
#esQkoormus
# 
# The point load in local coordinate z and x direction  kN
#  Fz, Fx, aF - the coordinate of the point of force application
LoadsF_on_Element=5; 
esFjoud=zeros(LoadsF_on_Element,2,ElementideArv);
esFjoud(1,1:3,1)=[0.0 0.0 0.0];
esFjoud(1,1:3,2)=[0.0 0.0 0.0];  
esFjoud(1,1:3,3)=[Fz3 Fx3 aF3]; 
esFjoud(1,1:3,4)=[0.0 0.0 0.0];
esFjoud(1,1:3,5)=[0.0 0.0 0.0];
#esFjoud

#disp(' Node forces in global  coordinates ')
# sSolmF(forces,1,nodes); forces=[Fx; Fz; My]
sSolmF = zeros(3,1,SolmedeArv);
#sSolmF = zeros(3,1,SolmedeArv);
#sSolmF(:,1,1)= 0.0
sSolmF(1,1,2)= F2;
#sSolmF(:,1,3)= 0.0
#sSolmF(:,1,4)= 0.0
#sSolmF(:,1,5)= 0.0
%disp(' Kustuta ')
     s1F(:,:) = sSolmF(:,1,1);
     s2F(:,:) = sSolmF(:,1,2);
     s3F(:,:) = sSolmF(:,1,3);
     s4F(:,:) = sSolmF(:,1,4);
     s5F(:,:) = sSolmF(:,1,5);
#%%%%%
# The support shift - tSiire#
# The support shift multiplied by scaling multiplier
tSiire = zeros(3,1,SolmedeArv);
#tSiire(1,1,1)= 0.0
#tSiire(2,1,1)= 0.01*baasi0
#tSiire(1,1,3)= 0.0
#tSiire(2,1,3)= 0.0
#tSiire(3,1,3)= 0.0
#tSiire(1,1,5)= 0.0
#tSiire(2,1,5)= 0.0
##%%%%
case{2}
disp(' The load variant 2 ')
case{3}
disp(' The load variant 3 ')
#%%%%%
#%%%%%
otherwise
disp(' No load variant cases ')
endswitch 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 disp(' Elements loads q in local coordinates ')
#%%%qz=qzZ'
#%%%qx=qxZ'
disp(' qz, qx, qA, qL  ')
disp('  For the element load q = 0,  qL = L - the end of element  ')
esQkoormus
disp(' Elements forces F  in local coordinates  ')                                      
#%%%Fx=FZx'
#%%%Fz=FZz'
esFjoud
disp(' Fz, Fx, aF -- coordinate of the point of force F  application in local coordinates ')
#disp(' x = aL -- coordinate of the point of force F  application in local coordinates ')
disp(' For the element force F = 0,  aL = L - the end of element  ') 
#%aL=aLXx'
esFjoud
#%%%
#disp(' Node 2 forces in global  coordinates ')
#sSolmF(:,:,2)
#%s2F'
#disp(' Node 4 forces in global  coordinates ')
#sSolmF(:,:,4)
#%s4F'
#disp(' Node 6 forces in global  coordinates ')
#sSolmF(:,:,6)
#s6F'
disp('------  ')
disp(' Node forces in global  coordinates ')
disp(' Fx Fz My; : ; Node number; ')
disp('------  ')
sSolmF(:,1,:)=sSolmF(:,1,:)
#
#==========
# Nodal coordinates
#==========
krdn=[#	 x       z 
        0.0     0.0;    # node 1
        0.0    -4.0;    # node 2
        4.0    -5.0;    # node 3
        8.0    -4.0;    # node 4
        8.0     0.0];   # node 5
#==========       
 # disp(' Nr      toel  u  w  fi  N   Q   M ')      
#==========
#  The restrtictions on the support displacements.
# Support  Nr   u   w  fi   hold on - 1, open - 0
#==========       
tsolm=[1       1 1 0;	% node 1
       5       1 1 0];	% node 5       
#==========
# The support shift multiplied by scaling multiplier
#tSiire(1,1,1)= 0.0
#tSiire(2,1,1)= 0.01*baasi0
#tSiire(1,1,3)= 0.0
#tSiire(2,1,3)= 0.0
#tSiire(3,1,3)= 0.0
#tSiire(1,1,5)= 0.0
#tSiire(2,1,5)= 0.0
#==========      
 # ------------- Element properties, topology and hinges ---------
#-----------------------
elasts=[# Element, 
#  n2 - end of the element, 
#       n1 - beginning of the element,
#             N, Q, M hinges at end of the element
#                      N, Q, M hinges at beginning of the element. 
   2     1    0 0 0    0 0 1;    % element 1
   3     2    0 0 1    0 0 0;    % element 2
   4     3    0 0 0    0 0 1;    % element 3
   5     4    0 0 1    0 0 0];   % element 4
# 1-hinge 'true' (axial-, shear-, moment hinge)
#      
#========== 

#==========
SARV=size(krdn);
NSARV=SARV(1,1);
#%%%%%%%%%%%%
for i=1:NSARV
sJrN(i)=i;
end
#
sJrNT=sJrN';
#%%%%%%%%%%%
#disp('-----------------------------')
disp('===============================')
disp(' Nodal coordinates ')
disp('  Node     X        Z  ') 
disp('-----------------------------')
#disp([krdn])
for i=1:NSARV
disp(sprintf('  %2i    %7.4f  %7.4f',sJrNT(i),    krdn(i,1), krdn(i,2)))
endfor
disp('-----------------------------')
#%%%
if ((SolmedeArv-NSARV) != 0)
disp(' ')
disp(' ------- ')
disp(' ')
Number_of_frame_nodes
Error_by_nodes_input=sprintf('Number of nodes must be, but is: %d, %d', SolmedeArv, NSARV)
disp(' ')
error(' Error by nodes input.')
endif
#%%% value 11 out of bound 8

disp('===============================================')
disp('        Topology and  hinges. ')
disp('  End of the element, beginning of the element,  ')
disp('  axial-, shear-, moment hinge; 1 - hinge ''true'' ')
disp('-----------------------------------------------')
elemkinni=elasts(:,1:8);
Topology_and_and_hinges=elemkinni
EARV=size(elemkinni);
NEARV=EARV(1,1);
NEARV;
#
#%%%%%%%%%%%%%%%%%%%%
# --------The displacements and the forces numbers at the end and beginning of element.  ----- -----
slmnr=0;
for i=1:NEARV
 for j=1:6
   slmnr=slmnr+1;
   selemjln(i,j)=slmnr;
 endfor
endfor
#
disp('====================================================')
disp('  The displacements and the forces numbers (daf''s) ')
disp('  at the end and at the beginning of elements.  ')
disp('----------------------------------------------------')
selemjln;
The_displacements_and_the_forces_numbers=selemjln
#value 23 out of bound 14
selemjl=[selemjln elasts];
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#selemjl=[1  2  3   4  5  6     2   1 ;  # element 1
#	  7  8  9  10 11 12     3   2 ;  # element 2
#	 13 14 15  16 17 18     4   3 ;  # element 3
#	 19 20 21  22 23 24     5   4 ]; # element 4
#1:23-6
selem=[selemjl(:,1:14)];
#selem=[selemjl(:,1:23)];
#EARV=size(selem);
#NEARV=EARV(1,1);
#%%%%%%%%%%%%
for i=1:NEARV
JrN(i,1)=i;
endfor
#
JrNT=JrN';
#%%%%%%%%%%%
disp('==================================================================================================')
disp(' Topology of elements                                                    Moment hinge             ')
disp('                                                                         Node number   ''true''=1 ')
disp(' Nr.  At the end:  N, Q, M   At the beginning: N, Q, M    End Beginning            ')
disp('--------------------------------------------------------------------------------------------------')
#
for i=1:NEARV
disp(sprintf('  %2i     %2i   %2i   %2i           %2i   %2i   %2i               %2i    %2i      %2i ',JrN(i,1),    selemjl(i,1), selemjl(i,2), selemjl(i,3),selemjl(i,4), ...
selemjl(i,5), selemjl(i,6), selemjl(i,7), selemjl(i,8), selemjl(i,11), selemjl(i,14)))
endfor
disp('---------------------------------------------------------------------------------------------------')
#%%%value 17 out of bound 14
EARV=size(selem);
NEARV=EARV(1,1);
#%%%
if ((ElementideArv-NEARV)  !=0 )
disp(' ')
disp(' ------- ')
disp(' ')
Number_of_elements
Error_by_elements_input=sprintf(' Number of elements must be, and is  %d, %d',ElementideArv,NEARV)
disp(' ')
error(' Error inserting the topology of elements.')
endif
#%%%
#==========
TSARV=size(tsolm);
NTSARV=TSARV(1,1);
#%%%%%%%%%%%%
for i=1:NTSARV
sJrN(i)=i;
end
#
sTJrNT=sJrN';
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#  The restrtictions on the support displacements.
# disp(' Nr      toel  u  w  fi  N   Q   M ')
%disp('--------------------------------')
disp('==================================================')
disp(' The restrtictions on the support displacements. ')
disp(' Nr    Node Nr   u  w  fi;  hold on-1, open-0')
disp('--------------------------------------------------')
#disp([tsolm])
for i=1:NTSARV
disp(sprintf('  %2i     %5i   %2i %2i %2i %2i %2i %2i',sTJrNT(i),    tsolm(i,1), tsolm(i,2), tsolm(i,3), tsolm(i,4)))
endfor
disp('--------------------------------------------------')
%%%
TOEARV=size(tsolm);
TOARV=TOEARV(1,1);
##%%%%%%%%%%%
ToeSidemeteArv=0;
for i=1:NTSARV
  for j=2:4
     if (tsolm(i,j) == 1)
       ToeSidemeteArv=ToeSidemeteArv+1;
     endif 
  endfor
endfor
#
#%%%
#ToeSidemeteArv
if ((Ntoerkts-ToeSidemeteArv)  !=0 )
disp(' ')
disp(' ------- ')
disp(' ')
Number_of_support_reactions
Error_by_inserting_support_reactions=sprintf('Number of support reactions must be, and is  %d, %d',Ntoerkts,ToeSidemeteArv)
disp(' ')
error(' Error inserting the restrtictions on the support displacements.')
endif
#
#%%%%%%%%%%%%%%
#selem
#
lvarras=VardaPikkusD(NSARV,NEARV,krdn,selem);
#lvarras
#%%%%%%%%%%%
disp('   ')
NEARV;
NNK=6*NEARV+Ntoerkts;

#lvarras
#
#%disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ')
for i=1:NEARV
elemendiN(i,1)=i;
#siireVardaA(i,1:3)=selemjl(i,7:9);
#siireVardaL(i,1:3)=selemjl(i,1:3);
joudVardaA(i,1:3)=selemjl(i,4:6);
joudVardaL(i,1:3)=selemjl(i,1:3);
endfor
#
#siireVardaA;
#siireVardaL;
joudVardaA;
joudVardaL;
#%%%%%%%%%%%%

%%%%%ABB=ABB

#--------- Define a matrix spA to be sparse -----------
disp('-------- The sparse matrix instantiation --------  ')
disp('  spA=sparse(NNK,NNK)  ')
spA=sparse(NNK,NNK) % nullistan võrrandisüsteemi kordajate maatriksi
#--------- Define a vector B ------------
disp('-------- The right-hand side of the equations (RHS). --------  ')
disp('  B=zeros(NNK,1);  ')
B=zeros(NNK,1);   % nullistan võrrandisüsteemi vabaliikmed
disp('   ')
%%%%%%%%%%%%%%%%%%%%%%%%%

disp('  ')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ')
disp(' function AlgParm=LaheFrame3hingeNQM(Ntoerkts,esQkoormus,esFjoud,sSolmF,tsolm,krdn,selem) ')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ')
disp('  ')
AlgParm=LaheFrame3hingeNQM(Ntoerkts,esQkoormus,esFjoud,sSolmF,tsolm,krdn,selem);
disp('  ')
AlgPar=AlgParm;
disp('  ')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ')
disp(' The element displacements and forces  determinated by the transfer matrix ')
disp('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ')
disp('  ')
#-------------The element displacements and forces----------
#
#  suurused=[' displacement u - ';
#            ' displacement w - ';
#            ' rotation    fi - ';
  suurused=[' normal force N - ';
            ' shear force  Q - ';
            ' moment force M - '];
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#i=1
for i=1:NEARV
   krda=i;
   vF=zeros(3,6);
   Li=lvarras(i,1);
#    SII=0.0;
#    qx=qxZ(i,1);
#    qz=qzZ(i,1);
#    aLx=aLXx(i,1);
#    Fz=FZz(i,1);
#    Fx=FZx(i,1);
   
#Fjoud=esFjoud(:,1:2,i);
Fjoud=esFjoud(:,1:3,i);
#%       Fz    Fx     a
#%Fjoud=[0.0    0.0   0.0;
#qkoormus=esQkoormus(:,1:3,i); 
qkoormus=esQkoormus(:,1:4,i);
#%       qz     qx     qA      qL
#%qkoormus=[0.0   0.0   0.0  0.0   0.0];     
   
   xsamm=Li/Nmitmeks; % element is divided into 4-th parts
   xx=0;
   AP=AlgPar(i,:)';
#---------The transfer matrix equation --------
     for ij=1:Nmitmeks+1  # 5 - displacements and forces at x=0.0
     vvF=ylSfhlin(xx);
#       vvF=ylfhlin(1.0,xx,EA,GAr,EI);
#       vvB=yzhqz(1.0,xx,qx,qz,EA,EI);
#       vvFz=yzfzv(1.0,xx,aLx,Fx,Fz,EA,EI);

# Sj=ESTFrKrmus(baasi0,xx,Li,Fjoud,qkoormus,EA,EI); 
# vB=Sj;       
#   Fvv(:,ij)=vvF*AP+vB; 
#       Fvv(:,ij)=vvF*AP+vvB+vvFz;
vvB=ESTSKrmus(xx,Li,Fjoud,qkoormus);
%
Fvv(:,ij)=vvF*AP+vvB;
       xx=xx+xsamm;
     endfor
#-------------The element displacements and forces---------- 
   #
   VardaNr=i;
   disp(sprintf('%13s %2i %15s %5.3f %2s', 'The displacements and forces of element nr',VardaNr,'  length of element ',Li,'m,  '))
   disp('    element is divided into 4-th parts  ')
#
     for i=1:3 
       disp(sprintf('%14s %8.3f   %8.3f   %8.3f   %8.3f  %8.3f',suurused(i,:), Fvv(i,1),   Fvv(i,2),   Fvv(i,3),  Fvv(i,4),  Fvv(i,5)))
     endfor
#
#
   #disp('  ')
#
      disp('----------------------------------------------------------------------------')
#
endfor
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#SF=SisejodPunktis(VardaNr,X,AlgPar,lvarras,selem,qxZ,qzZ,aLXx,FZz,FZx,suurused)
#SF=SisejodPunktis(1,2.0,AlgPar,lvarras,selem,qxZ,qzZ,aLXx,FZz,FZx,suurused);
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#%%%%%%%%%%%%
for i=1:NEARV
LkoordN=selem(i,7);
AkoordN=selem(i,8);
DeltaX(i)=krdn(LkoordN,1)-krdn(AkoordN,1);
DeltaZ(i)=krdn(LkoordN,2)-krdn(AkoordN,2);
VGRx(i,1)=krdn(AkoordN,1);
VGRx(i,2)=krdn(LkoordN,1);
VGRz(i,1)=krdn(AkoordN,2);
VGRz(i,2)=krdn(LkoordN,2);
endfor
#
#%%%%%%%%%%%%
figure(1)
   ax = gca ();
   #axy=[ 0   0   1   0.55];
   #joonepaksus=0.50000
   #joonepaksus=0.75000
   #joonepaksus=3
   #set (ax, "outerposition", axy);
   #set (ax, "outerposition", [ 0   0   1   0.55])
   #ax = gca ();
   #set (ax, "linewidth", joonepaksus);
   #
   grid off
   #
   Lpikk=Lp;
   d=4.0;
   #
     for j=1:NEARV
         IR=j;
         # 
         #   axis([-d Lpikk+d -H-2.0 1.0], "ij")
         axis([-d Lpikk+d  -Lpikk-0.3*d 0.5*d], "ij")
         #
         plot(VGRx(IR,:),VGRz(IR,:),"3")
         hold on
     endfor
   #
   jaotT=2;
   #spESTraam93
   title('spESTframe3hinge',"fontsize",12)
   ax=gca();
      xlabel('x',"fontsize",12)
      ylabel('z',"fontsize",12)
   xticks(1,:)=-d:jaotT:Lpikk+d;
   set (ax, "xtick", xticks)
   #
   #%Sõlmede numbrid
   TTT=' ';
   TST=' ';
   TT1=' ';
   TT1=' ';
   #%%%%%%%%%
    for i=1:NSARV;
      #
      IR=i;
      TTT=eval(sprintf('%i',IR));
      TST=int2str(TTT);
       
      #text(krdn(IR,1), krdn(IR,2)+0.17, TST)
      text(krdn(IR,1), krdn(IR,2)+0.25, TST)
      #
     endfor
#
#%% Varraste numbrid
for j=1:NEARV;
   #
   IR=j;
   TTT=eval(sprintf('%i',IR));
   TST=int2str(TTT);
   text((VGRx(IR,1)+VGRx(IR,2))/2+0.1, (VGRz(IR,1)+VGRz(IR,2))/2, TST)
   #
endfor
#text(L/2-d/2, -H-d/2, 'Raamskeem')
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xvalg=-1.0;
%xvalg=-1.0;
yvalg=-8.0;
%yvalg=-15.5;
sammuga=0.4;
%sammuga=0.8;
text(-1.0, yvalg-1.5*sammuga, 'The forces numbers (daf''s) ')
#TSA=[TSA1 Tyhk TSA2 Tyhk TSA3] ; 
text(-1.5, yvalg, 'N Q M at the beginning')
#%xvalg=xvalg+sammuga;
yvalg=yvalg+sammuga;
for i=1:NEARV;     
   #siireVardaA  joudVardaA(i,1:3)
TTA4=eval(sprintf('%3i',joudVardaA(i,1)));
TTA5=eval(sprintf('%3i',joudVardaA(i,2)));
TTA6=eval(sprintf('%3i',joudVardaA(i,3)));
   TSA4=int2str(TTA4);
   TSA5=int2str(TTA5);   
   TSA6=int2str(TTA6);    
   Tyhk='  ';
TSA=[TSA4 Tyhk TSA5 Tyhk TSA6] ;                                                          
   text(xvalg, yvalg, TSA)
   #%xvalg=xvalg+sammuga;
   yvalg=yvalg+sammuga;
endfor
yvalg=yvalg+sammuga;
text(-1.0, yvalg, 'The support reactions: 25 26 27 28 ')
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
xvalg=6.0;
%xvalg=10.0
yvalg=-8.0;
%yvalg=-15.5;
sammuga=0.4;
%sammuga=0.8;
#TSA=[TSA1 Tyhk TSA2 Tyhk TSA3] ; 
text(5.5, yvalg, 'N Q M at the end')
#%xvalg=xvalg+sammuga;
yvalg=yvalg+sammuga;
for i=1:NEARV;
   #siireVardaL  joudVardaL(i,1:3)
TTA4=eval(sprintf('%3i',joudVardaL(i,1)));
TTA5=eval(sprintf('%3i',joudVardaL(i,2)));
TTA6=eval(sprintf('%3i',joudVardaL(i,3)));
   TSA4=int2str(TTA4);
   TSA5=int2str(TTA5);   
   TSA6=int2str(TTA6);   
   Tyhk='  ';
TSA=[TSA4 Tyhk TSA5 Tyhk TSA6] ;
   text(xvalg, yvalg, TSA)
   #%xvalg=xvalg+sammuga;
   yvalg=yvalg+sammuga;
endfor
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#
###### hold off
#
#Vaata: http://www.gnu.org/software/octave/doc/interpreter/Printing-Plots.html
#
#print('-deps','spESTframe3hinge');
#print('-dpng','spESTframe3hinge');
print('-dfig','-landscape','-mono','-solid','spESTframe3hinge');
refresh
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2)
spy(spA)
title('spy(spA) - the sparse matrix spA(28,28) non zero elements [8.2%] ')
refresh
#
#print('-deps','pESTframe3hinge_sparse_matrix.eps');
#print('-dpng','pESTframe3hinge_sparse_matrix.png');
print('-dfig','-landscape','spESTframe3hinge_sparse_matrix.fig');
%%print('-dfig','-landscape','-mono','-solid','spESTframe3hinge_sparse_matrix.fig');
refresh
#
# octave
##Yy = inv(spA)
##ZZZ=spA*Yy
#disp('-----------------------------------')
disp('  ')
disp(' The END ')
#%%%%%%%%%%%%%%%