function hplot = dibujar_criterio_dano1(ce,nu,q,tipo_linea,MDtype,n)
%*************************************************************************************
%*                 PLOT DAMAGE SURFACE CRITERIUM: ISOTROPIC MODEL                             %*
%*                                                                                  %*
%*      function [ce] = tensor_elastico (Eprop, ntype)                    %*
%*                                                                                  %*
%*      INPUTS                                                       %*
%*                                                                                  %*
%*                    Eprop(4)    vector de propiedades de material                 %*
%*                                      Eprop(1)=  E------>modulo de Young          %*
%*                                      Eprop(2)=  nu----->modulo de Poisson        %*
%*                                      Eprop(3)=  H----->modulo de Softening/hard. %*
%*                                      Eprop(4)=sigma_u----->tensiï¿½n ï¿½ltima        %*
%*                     ntype                                 %*
%*                                 ntype=1  plane stress                            %*
%*                                 ntype=2  plane strain                            %*
%*                                 ntype=3  3D                                      %*
%*                     ce(4,4)     Constitutive elastic tensor  (PLANE S.       )    %*
%*                     ce(6,6)                                  ( 3D)                %*
%*************************************************************************************


%*************************************************************************************
%*        Inverse ce                                                                %*
ce_inv=inv(ce);
c11=ce_inv(1,1);
c22=ce_inv(2,2);
c12=ce_inv(1,2);
c21=c12;
c14=ce_inv(1,4);
c24=ce_inv(2,4);
%**************************************************************************************







%**************************************************************************************
% POLAR COORDINATES
if MDtype==1
    tetha=[0:0.01:2*pi];
    %**************************************************************************************
    %* RADIUS
    D=size(tetha);                       %*  Range
    m1=cos(tetha);                       %*
    m2=sin(tetha);                       %*
    Contador=D(1,2);                     %*
    
    
    radio = zeros(1,Contador) ;
    s1    = zeros(1,Contador) ;
    s2    = zeros(1,Contador) ;
    
    for i=1:Contador
        radio(i)= q/sqrt([m1(i) m2(i) 0 nu*(m1(i)+m2(i))]*ce_inv*[m1(i) m2(i) 0 ...
            nu*(m1(i)+m2(i))]');
        
        s1(i)=radio(i)*m1(i);
        s2(i)=radio(i)*m2(i);  
        
    end
    hplot =plot(s1,s2,tipo_linea);
    axis equal
    
elseif MDtype==2
    %Pure tensile
    tetha=[-pi/2:0.1:pi];% Se conservan las mismas variables que en el simétrico, aunque el tamaño del step varía para la calidad de la figura
    m1=cos(tetha);
    m2=sin(tetha);
    D=size(tetha);
    Contador=D(1,2); 
    % Comment/delete lines below once you have implemented this case
    % *******************************************************
    
    radio=zeros(1,Contador-2); %El contador se ve afectado por un menos dos debido a que para el plot, no se tomaron en cuenta el primer y el último valor por que se extendía mucho el plot
    s1    = zeros(1,Contador-2) ;
    s2    = zeros(1,Contador-2) ;
    
        for i=2:Contador-1 %Aqui es donde no se toman en cuenta el primer y último valor 
            sigma=[m1(i) m2(i) 0 nu*(m1(i)+m2(i))];%Sigma normal
            sigma_positive=zeros(size(sigma));%Condición de pure tensile
             for j=1:4 %Recorre el vector(tensor simplificado) de sigma
                if sigma(j)>0
                sigma_positive(j)=sigma(j);
                end
            end
            radio(i-1)= q/sqrt(sigma_positive*ce_inv*sigma');

            s1(i-1)=radio(i-1)*m1(i);
            s2(i-1)=radio(i-1)*m2(i);  

        end 
    
    hplot =plot(s1,s2,tipo_linea);
    axis equal
%     menu({'Damage surface "ONLY-TENSION" has not been implemented yet. '; ...
%         'Modify files "Modelos_de_dano1" and "dibujar_criterio_dano1"' ; ...
%         'to include this option'},  ...
%         'STOP');
%     error('OPTION NOT AVAILABLE')
%      
  
  
    
elseif MDtype==3
    %Non-symmetric
    % Comment/delete lines below once you have implemented this case
    % *******************************************************
     tetha=[0:0.01*pi:2*pi];%El step se multiplica por pi para que cierre la curva
    %**************************************************************************************
    %* RADIUS
    D=size(tetha);                       %*  Range
    m1=cos(tetha);                       %*
    m2=sin(tetha);                       %*
    Contador=D(1,2);                     %*
    
    radio = zeros(1,Contador) ;%El contador ahora no tiene menos 1
    s1    = zeros(1,Contador) ;
    s2    = zeros(1,Contador) ;
    
    for i=1:Contador 
            sigma=[m1(i) m2(i) 0 nu*(m1(i)+m2(i))];%Sigma normal
            sigma_positive=zeros(size(sigma));%Condición de pure tensile
            for j=1:4 %Recorre el vector(tensor simplificado) de sigma
                if sigma(j)>0
                sigma_positive(j)=sigma(j);
                end
            end
            tethanueva=(sum(sigma_positive(1:4)))/(sum(abs(sigma(1:4))));%Tetanueva es la tetha que multiplica en tau para el caso non-symetric
            radio(i)= q/((tethanueva+((1-tethanueva)/n))*sqrt(sigma*ce_inv*sigma'));%Esto cambia nuevamente

            s1(i)=radio(i)*m1(i);
            s2(i)=radio(i)*m2(i);  

     end 
    hplot =plot(s1,s2,tipo_linea);
    axis equal
%     menu({'Damage surface "NON-SYMMETRIC" has not been implemented yet. '; ...
%         'Modify files "Modelos_de_dano1" and "dibujar_criterio_dano1"' ; ...
%         'to include this option'},  ...
%         'STOP');
%     error('OPTION NOT AVAILABLE')
    
end
%**************************************************************************************



%**************************************************************************************
return



