//  Programme qui resoud   -div(mu*(gradU) = graP sur une ligne
// de dimension lx et des cl de Neuman sur le bord

clear  // detruit les anciennes variables
//
//  function scilab  que l'on va utiliser 
//
   getf('maillage_1D.sci');  getf('cond_limit_1D.sci'); 
   getf('gauss.sci');
   getf('P2.sci'); getf('P1.sci');
   getf('assemblage.sci');   getf('cal_sol_lin.sci');
//
// pour calculer le debit (Ecrit dans la seance3)
//
      getf('cal_debit_1D.sci');

//   calcul du systeme elementaire sur l'element
//   (Ecrit en Seance 2)
//
   getf('cal_Melm_1D.sci'); 

//  on utilise des variables globales pour 
//    COOR, CONNEC, ADRESS, NUMER et  NI
//  et
//    XG et PG
//
   global CONNEC COOR NUMER ADRESS UC Nelt Nno Npt NI;
   global XG PG Ng
//
//  nbre de points pour l'integration numerique
   Ng = 3;
   gauss(Ng); 
//
   nx = 10;   // nbre d'element dans les directions x 
//
// maillage
   maillage_1D(1,nx);
   cond_limit_1D();
//
//     Debut Cacul
//
// valeur initiale
   U = zeros(Npt,1); gradP = 1; 
//
//  calcul de la solution pour gradP fixe
//
   U = cal_sol_lin(cal_Melm_1D,gradP,U);

   q = cal_debit_1D(U)    


// Trace de la solution
//
x = COOR(:,1);
u_cal = [U(Npt-1); U(1:NI); U(Npt)];
u_poiseuille = x .* (1 - x)/2.; 

erreur = norm(u_cal-u_poiseuille)

xbasc();
plot2d(x,u_cal,style=-1);
x = linspace(0,1,100);
u_poiseuille = x .* (1 - x)/2.; 
plot2d(x,u_poiseuille,style=1);
xtitle('Solution de Poiseuille; Nelt ='+string(Nelt)+', Npt ='+string(Npt),'x','u');


