clc; close all; clear all; format long;

% -------------------------------------------------------------------------

EmissF=0.9; TempeF=1300.; DiameF=0.5; HauteF=1.5; 

% -------------------------------------------------------------------------

Longueur=[0.5:0.01:5.];

Entrees=[EmissF,TempeF,DiameF,HauteF] ;

for i=1:length(Longueur)

    Parametres=[Longueur(i)] ;
   
    DensiteFluxRad(i)=FlammeSolide(Parametres,Entrees);
    
end

plot(Longueur,DensiteFluxRad,'-'); grid on; xlabel('Distance à la flamme [m]'); ylabel('Densité de flux radiatif reçue [W/m²]')

legend('Formule analytique de Beyler')

% -------------------------------------------------------------------------

disp('Appuyer sur Enter pour continuer ...')

pause

% -------------------------------------------------------------------------

% Technique OAT "One factor At a Time" en version normalisée

disp('====== Approche OAT ======')

disp(' ')

Longueur=2;

Parametres=[Longueur];

disp('Point de fonctionnement : ')

Entrees=[EmissF,TempeF,DiameF,HauteF]'

Delta=0.01; % Taux de variation [-]

[IndicesSens]=ApprocheOAT('FlammeSolide',Parametres,Entrees,Delta)

% -------------------------------------------------------------------------

disp('Appuyer sur Enter pour continuer ...')

pause

% -------------------------------------------------------------------------

% Approche de Morris

disp('====== Approche de Morris ======')

disp(' ')

disp('No d''expériences : ')

Nr=1000

disp('No de discrétisation : ')

Nd=30

EspacePhases=[0.1 0.5 ; 1100 1500 ; 0.25 0.75 ; 1.25 1.75];
%             EmissF    TempeF      DiameF      HauteT

ApprocheMorris('FlammeSolide',Parametres,Entrees,EspacePhases,Nd,Nr)

disp(' ')

% -------------------------------------------------------------------------

disp('Appuyer sur Enter pour continuer ...')

pause

% -------------------------------------------------------------------------

% Approche de Sobol

disp('====== Approche de Sobol ======')

disp(' ')

disp('Taille de l''échantillon : ')

Nr=10000

ApprocheSobol('FlammeSolide',Parametres,Entrees,EspacePhases,10000)

% -------------------------------------------------------------------------

disp('Appuyer sur Enter pour continuer ...')

pause

% Fonctions de sensibilité

Longueur=[1.:0.1:3.];

for i=1:length(Longueur)
    
    Parametres=[Longueur(i)]

    [Indice1(:,i),IndiceT(:,i)]=ApprocheSobol('FlammeSolide',Parametres,Entrees,EspacePhases,10000);
    
end

figure; plot(Longueur, Indice1(:,:)); xlabel('Distance du centre de la flamme [m]'); ylabel('Indices de sensibilité du 1er ordre [-]'); grid on; legend('Emissivité','Température','Diamètre','Hauteur')

figure; plot(Longueur, IndiceT(:,:)); xlabel('Distance du centre de la flamme [m]'); ylabel('Indices de sensibilité totaux [-]'); grid on; legend('Emissivité','Température','Diamètre','Hauteur')
