Download rayo-3D-1.dgibi

Back to the list

* fichier :  rayo-3D-1.dgibi
****************************************************************
*
*  test 3D couplage conduction-rayonnement
*  REFERENCE: cas TPNV 02/89 du guide VPCS
*
*  DONNEES
*  cavité cubique de cote 1.
*
*            1000K e=1.0
*            -----
*     e=0.5 |     | e=0.5
*           |     |
*            -----
*            2000K e=0.1
*
*
*  RESULTATS
*    temperature de la surface latérale : 1214K (solution analytique)
*  Remarques :
*   2 types d'éléments pour décrire la cavité
*   option convexe pour FFOR
*
****************************************************************

*** Options ...

    option echo 1 dime 3 elem cub8 ;

    graph = faux ;

*** Paramètres ...

*  proprietes physiques
   lam = 20. ;
   e_sup=1.0 ; e_inf=0.1 ; e_late = 0.5 ;
   T_sup = 1000. ; T_inf = 2000. ;

*** Points ...

    dens 1. ;

    p1 = -0.5 -0.5  0.  ;  p2 =  0.5 -0.5 0. ;
    p3 =  0.5  0.5  0.  ;  p4 = -0.5  0.5 0. ;
    p1p2 = droi 1 p1 p2 ; p2p3 = droi 1 p2 p3 ;
    p3p4 = droi 1 p3 p4 ; p4p1 = droi 1 p4 p1 ;

*** Surfaces ...

*   plan inferieur
    sbase  = p1p2 p2p3 p3p4 p4p1 dall plan ;

*   plan supérieur
    opti elem tri3 ;
    cbase = p1p2 et p2p3 et p3p4 et p4p1 ;
    sb_tri3 = surf cbase plane ;
    shaut = inve( sb_tri3 plus (0. 0. 1. ));

    opti elem qua4 ;
*   surface laterale
sfron = inve( sbase tour (0.5 -0.5 0.) (0.5  0.5  0.)    90. ) ;
sarri = inve( sbase tour (-0.5 -0.5 0.) (-0.5  0.5  0.) -90. ) ;
sdroi = inve( sbase tour ( 0.5  0.5 0.) (-0.5  0.5  0.)  90. ) ;
sgauc = inve( sbase tour ( 0.5 -0.5 0.) (-0.5 -0.5  0.) -90. ) ;
    slate =  sfron et sarri et sdroi et sgauc ;
    elim 0.01 slate ;

    cavite =  sbase et shaut et slate ;

*   centre du cube ;
    c = 0. 0. 0.5 ;


*   epaisseur des parois : dz=10mmm
    dz = 0.01 ; r = 1.01 ;

    sbase_e = sbase homo r c ;
    shaut_e = shaut homo r c ;
    slate_e = slate homo r c ;

*** Volumes ...

   opti elem cub8 ;
    z1 = volu 1  sbase sbase_e ;
    z2 = volu 1  shaut shaut_e ;
    zl = volu 1  slate slate_e ;
    tout = z1 et z2 et zl ;

    titr 'Le maillage de la cavite' ;
    si(graph) ; trac tout ; finsi ;

*** Modélisation ...

*   conduction
    lamb = lam/dz ;

    mcd  = modl tout thermique  ;
    k = mate mcd 'K' lamb ;
    cnd = cond mcd k ;

    mr1= modl sbase thermique  rayonnement  'CAVITE' 'CONVEXE'
        CONS 'CAV1';
    mr2= modl shaut thermique rayonnement 'CAVITE' 'CONVEXE'
        CONS 'CAV1';
    mrl= modl slate thermique  rayonnement 'CAVITE' 'CONVEXE'
        CONS 'CAV1'; 
    mrt = mr1 et mr2 et mrl ;
    e1 = mate mr1 'EMIS' e_inf ;
    e2 = mate mr2 'EMIS' e_sup ;
    el = mate mrl 'EMIS' e_late ;
    e = e1 et e2 et el ;

 
*** Matrice de  rayonnement ...

*    opti 'IMPI' 2 ;
     tta= prray mrt;
   
*opti donn 5;




    fft = ffor  mrt  e ;
*    opti 'IMPI' 0 ;

    chamr = raye mrt  fft e ;

*** Conditions aux limites ...

    c1 = bloq z1   'T' ;
    tim1 = depi c1 T_inf ;
    c2 = bloq z2   'T' ;
    tim2 = depi c2 T_sup ;

*** Initialisation de la température ...

    tp = manu chpo tout 1 'T' T_inf natu 'DIFFUS' ;

*** Résolution (par itérations) ...

*   Coeff. de relaxation ...
    alfa = 0.4 ;

    nbpsup = nbno tout ;

    listemp = prog ;
    listres = prog ;

    maxiter =  100 ;
    critconv = 1.e-5 ;
    opti echo 0 ;
    REPE bloc1 ;

       nbiter = &bloc1 ;

       t_cavi   = redu tp cavite ;
       te_cavi   =  chan 'CHAM' t_cavi   mrt 'GRAVITE' ;
       cr = rayn mrt  chamr te_cavi    ;

       cndtot = cnd et cr et c1 et c2 ;

       residu = cndtot * tp ;
       normres = ((xtx (exco 'Q' residu)) / nbpsup) ** 0.5 ;
*      mess '   La norme du flux résiduel = ' normres ;
       si((nbiter > 1) et (normres < critconv)) ;
          mess 'Convergence à l itération ' (nbiter-1) ;
          quitter bloc1 ;
       finsi ;
       si(nbiter > maxiter) ;
          mess 'Erreur ! Pas de convergence après ' (nbiter-1)
               ' itérations !' ;
          erre 2 ;
          quitter bloc1 ;
       finsi ;
       listres = listres et (prog normres) ;

*      mess '-----------------------------------------' ;
*      mess 'Itération N° ' &bloc1 ;

       tt = resou cndtot (tim1 et tim2) ;

       dt = exco 'T' (tt - tp) 'T' ;
       normdt = ((xtx dt) / nbpsup) ** 0.5 ;
*      mess '   La norme de delta t = ' normdt ;

       tn = (alfa * tt) + ((1.-alfa) * tp) ;
       tp =tn ;

*      mess '   Température obtenue = ' (maxi(redu tt slate)) ;

    FIN bloc1 ;
*   opti echo 1 ;

*** Post-traitement ...

    t = exco 'T' tt 'T' ;
    si(graph) ;
       titr 'Le champ de temperature final' ;
       trac tout t ;
    finsi ;
    tlate = redu t slate ;

    tsol = maxi(tlate) ;
    mess 'La solution obtenue = ' tsol ;
    tana = 1214.0 ;

    RESI=ABS((tsol - tana)/tana) ;
    mess 'Erreur relative ' (100*RESI) '%' ;
    SI(RESI <EG 1E-4);
      ERRE  0;
    SINO;
      ERRE  5;
    FINSI;

*** Bye ...

    FIN;
 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer