% RUTINA PER EL CÀLCUL D'INDICADORS PER A LA DISTRIBUCIÓ D'UNA MALLA D'ELEMENTS FINITS
% DADES ORIGEN MATRIU: Element number / Von Mises stress [MPa] / Volume
%
% POWERED by jordi.marce@upc.edu

function RESULTATS = Function_StressDistribution(MATRIU, ns, vmmax)

    % Obtinc el número d'NElements
    [NElements,aux]=size(MATRIU); 
    
    % Decidim Subdivisions
    % Tensió Von mises màxima llinda
    
    NSubdivisions = ns;                             
    NMax = vmmax;                                    

    % Agrupació de les tensions de Von Mises
    % ------------------------------------------------

    COMPTADOR(1:5,1:NSubdivisions)=0;           % Posem els comptadors a zero
    SUBDIVISIONS=0:NMax/(NSubdivisions-1):NMax;     % Creem els valors de les subdivisions

    for i = 1:NElements
        for j = 1:NSubdivisions
           if j == 1
               if MATRIU(i,2) <= SUBDIVISIONS(j+1);
                   COMPTADOR(2,j)=COMPTADOR(2,j)+1;
                   COMPTADOR(4,j)=COMPTADOR(4,j)+MATRIU(i,3);
               else
               end
           elseif j > 1 & j < NSubdivisions
               if MATRIU(i,2) > SUBDIVISIONS(j) & MATRIU(i,2) <= SUBDIVISIONS(j+1);
                   COMPTADOR(2,j)=COMPTADOR(2,j)+1;
                   COMPTADOR(4,j)=COMPTADOR(4,j)+MATRIU(i,3);
               else
               end
           elseif j == NSubdivisions
               if MATRIU(i,2) > SUBDIVISIONS(j);
                   COMPTADOR(2,j)=COMPTADOR(2,j)+1;
                   COMPTADOR(4,j)=COMPTADOR(4,j)+MATRIU(i,3);
               else
               end
           end        
        end       
    end

    % Càlcul dels percentatges

    for i = 1:NSubdivisions
        COMPTADOR(1,i)=SUBDIVISIONS(i);
        COMPTADOR(3,i)=100*COMPTADOR(2,i)/NElements;
        COMPTADOR(5,i)=100*COMPTADOR(4,i)/sum(MATRIU(:,3));
    end
    
    
    % Preparo sortida
    for i = 1:NSubdivisions
        RESULTATS(1,i)=100*COMPTADOR(4,i)/sum(MATRIU(:,3));
    end
    

    % Esborrem variables que no volem

    clear NSubdivisions;
    clear aux;
    clear i;
    clear j;
    clear NMax;
    clear SUBDIVISIONS;
    clear COMPTADOR;
end
    




