* fichier : tube2D.dgibi ************************************************************************ ************************************************************************ ****************************************************************** * CALCUL DU TUBE A CHOC 2D * * FORMULATION VF COMPRESSIBLE EXPLICITE * * DIFFERENTS SOLVEURS * * * * A. BECCANTINI TTMF MARS 1998 * ****************************************************************** 'OPTION' 'ELEM' 'QUA4' ; 'OPTION' 'ISOV' 'SULI' ; 'OPTION' 'ECHO' 1 ; 'OPTION' 'TRAC' 'X' ; GRAPH = VRAI ; GRAPH = FAUX ; ************ * MAILLAGE * ************ RAF = 4 ; NX=25 '*' RAF ; NY= RAF ; L1 = 1. ; H1 = (L1 '/' NX) * NY ; A3 = 0.0 0.0 ; A4 = 0.0 H1 ; A3A4 = A3 'DROIT' NY A4 ; DOM1 = A1A2 'REGLER' NX A3A4 ; DOM2 = A3A4 'REGLER' NX A5A6 ; DOMTOT = DOM1 'ET' DOM2 ; MDOMTOT = TDOMTOT . 'QUAF' ; MDOM1 = TDOM1 . 'QUAF' ; MDOM2 = TDOM2 . 'QUAF' ; * ******* Creation de la ligne Utilisée pour le Post-Traitement * reliant les points centres * IAUX = (2 * NX) - 1 ; COURB = PINI 'DROIT' IAUX PFIN; ((H1 '/' NY) '/' 100.) ; ************************************************************ * CONDITIONS INITIALES ET LIMITES. * ************************************************************ gamgd = 1.4D0; * *** Etat gauche * rog = 1.0 ; pg = 1.0 ; reg = pg '/' (gamgd '-' 1.0) ; * *** Etat droite * rod = 1.0D-1 ; pd = 1.0D-1; red = (pd '/' (gamgd '-' 1.0)) ; * * *** gamma * * *** ro * * *** ro u, ro v * * *** ro e * ******************************************************** *** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM *** ******************************************************** * **** Les debits dans le repaire tube * * *** GRAPHIQUE DES C.I. * 'SI' GRAPH ; * *** CREATION DE CHAMELEM * 'FINSI' ; * **** Les variables primitives * VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ; * **** Les gradients * TITI CHLIM COEFG = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' * ************************************************************************* ************************************************************************* *********************** LE CALCUL *************************************** ************************************************************************* ************************************************************************* * *** Methodes possibles : * * 'VANLEER' * 'VLH ' * 'HUSVLH ' * 'GODUNOV' * 'AUSMPLUS' * 'HLLC ' * ... METO = 'HLLC' ; LOGSO = VRAI ; LOGRK2 = VRAI ; SAFFAC = 0.7 ; NITER = 1000 ; TFINAL = 0.2 ; * TPS = 0.0 ; 'TEMPS' 'ZERO' ; 'REPETER' BL1 NITER ; * **** Primitive variables * 'SI' LOGSO ; GRADR ALR = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' GRADP ALP = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' GRADV ALV = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR' $DOMTOT RN GRADR ALR VN GRADV ALV PN GRADP ALP GAMN ; 'SINON' ; $DOMTOT RN VN PN GAMN ; 'FINSI' ; ROF VITF PF GAMF ; DT_CON = SAFFAC '*' DELTAT ; * **** The time step linked to tps * * **** Total time step * * **** Increment of the variables (convection) * SI LOGRK2 ; RESIDU = 0.5 * DTMIN '*' RESIDU ; * RNP = RN '+' DRN ; GNP = GN '+' DGN ; RETNP = RETN '+' DRETN ; 'SI' LOGSO ; GRADR ALR = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' GRADP ALP = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' GRADV ALV = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR' $DOMTOT RNP GRADR ALR VNP GRADV ALV PNP GRADP ALP GAMN ; 'SINON' ; $DOMTOT RNP VNP PNP GAMN ; 'FINSI' ; ROF VITF PF GAMF ; 'FINSI' ; RESIDU = DTMIN '*' RESIDU ; TPS = TPS '+' DTMIN ; RN = RN '+' DRN ; GN = GN '+' DGN ; RETN = RETN '+' DRETN ; 'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ; 'MESSAGE' ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS) ; 'FINSI' ; 'SI' (TPS > TFINAL) ; 'QUITTER' BL1 ; 'FINSI' ; 'FIN' BL1 ; 'TEMPS' ; * ************************************************************************* ************************************************************************* *********************** FIN CALCUL ************************************* ************************************************************************* ************************************************************************* * * **** La vitesse dans le repaire tube * * *** GRAPHIQUE DES SOLUTIONS * 'SI' (GRAPH); * *** CREATION DE CHAMELEM * 'FINSI' ; * *** Objects evolutions * 'SI' LOGSO ; IE = 2 ; 'SINON' ; IE = 1 ; 'FINSI' ; SI LOGRK2 ; IT = 2 ; 'SINON' ; IT = 1 ; 'FINSI' ; xx yy = 'COORDONNEE' Courb; ss = xx ; x0 = 'MINIMUM' lxx; x1 = 'MAXIMUM' lxx; tit = ('CHAINE' '1D ' METO ' IT ' IT ' IE ' IE ' TPS ' TPS) ; SI GRAPH; 'DESSIN' evv 'TITRE' tit 'XBOR' x0 x1; FINSI; ls = lro '**' gamgd; ls = lp '/' ls; ts = CHAINE '1D ' METO ' : s IT ' IT ' IE ' IE ' tmps ' TPS ' elem ' 'CUB8' ; * *** Solution analytique * -0.37000 -0.35000 -0.33000 -0.31000 -0.29000 -0.27000 -0.25000 -0.23000 -0.21000 -0.19000 -0.17000 -0.15000 -0.13000 -0.11000 -9.00000E-2 -7.00000E-2 -5.00000E-2 -3.00000E-2 -1.00000E-2; 1.00000E-02 3.00000E-02 5.00000E-02 7.00000E-02 9.00000E-02 0.11000 0.13000 0.15000 0.17000 0.19000 0.21000 0.23000 0.25000 0.27000 0.29000 0.31000 0.33000 0.35000 0.37000 0.39000 0.41000 0.43000 0.45000 0.47000) ; 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 .99193 .85405 .79151 .69598 .64297 .57841 .51997 .45356 .41754 .37307 .33114 .29475 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .28482 .10000 .10000 .10000 .10000 .10000; 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 .99423 .89343 .84619 .77192 .72945 .67635 .62680 .56851 .53588 .49447 .45410 .41786 .40776 .40776 .40776 .40776 .40776 .40776 .40776 .40776 .40776 .40776 .20444 .20444 .20444 .20444 .20444 .20444 .20444 .20444 .20444 .10000 .10000 .10000 .10000 .10000; 0.0 0.0 6.84663E-03 .13185 .19435 .29851 .36173 .44507 .52768 .63185 .69395 .77728 .86406 .94740 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 .97167 0.0 0.0 0.0 0.0 0.0; lsa = lroa '**' gamgd; lsa = lpa '/' lsa; *PM du fait de la précision du SIN et du COS, (de l'ordre de 10-10) * l'intervalle lxx est plus petit que lxxa. * Comme IPOL fait une erreur dans ce cas, on restreint lxxa dlp = 'MAXIMUM' (ABS ( lper '-' lpa)); dlu = 'MAXIMUM' (ABS ( luer '-' lua)); dlro = 'MAXIMUM' (ABS ( lroer '-' lroa)); dl = (dlp '+' dlu '+' dlro) '/' 3.0D0; * *** Quelque DESSIN * TAB1=TABLE; TAB1.'TITRE'= TABLE ; TAB1.1='MARQ TRIB REGU'; TAB1.2='MARQ CROI REGU'; SI GRAPH; 'DESSIN' (evro 'ET' evroa) 'XBOR' x0 x1 'LEGE' TAB1 'TITRE' tit ; 'DESSIN' (evp 'ET' evpa) 'XBOR' x0 x1 'LEGE' TAB1 'TITRE' tit ; 'DESSIN' (evu 'ET' evua) 'XBOR' x0 x1 'LEGE' TAB1 'TITRE' tit ; 'DESSIN' (evs 'ET' evsa) 'XBOR' x0 x1 'LEGE' TAB1 'TITRE' tit ; FINSI; MESSAGE 'Erreur calcul du tube a choc'; MESSAGE dl; ERREUR 5; FINSI; FIN;
© Cast3M 2003 - Tous droits réservés.
Mentions légales