Télécharger carre_calper.dgibi
* fichier : carre_calper.dgibi ************************************************************************ ************************************************************************ ****************************************************************** * CALCUL DU QUARRE A CHOC * * Modele: gaz multi-especes "thermally perfect" * * Gaz multi-especes "calorically perfect" * * Controle de la symetrie * * * * A. BECCANTINI, SEMT/LTMF, MARS 1999 * ****************************************************************** 'TRAC' 'X'; GRAPH = FAUX ; * GRAPH = VRAI ; * *** Methodes possibles : * * 'VLH', 'SS' * METO = 'VLH' ; * SAFFAC = safety facton on the CFL SAFFAC = 1.0 ; * LOGSO = second order reconstruction LOGSO = VRAI ; TFINAL = 10. ; NITER = 40 ; ************ * MAILLAGE * ************ PCEN = 0.5 0.5 ; A1 = 0.75 0.5 ; A2 = 1.0 0.5 ; A3 = 1.0 0.75 ; A4 = 1.0 1.0 ; A5 = 0.75 1.0 ; A6 = 0.5 1.0 ; A7 = 0.5 0.75 ; MAIL2 = MAIL1; REPE BL1 3 ; MAIL1 = MAIL1 ET MAIL2 ; FIN BL1 ; VECX = 1.0 0.0 ; VECY = 0.0 1.0 ; NELEM = 1 ; NELEMTOT = (2 * NELEM) + 1 ; IX = (-1 * NELEM) - 1 ; 'REPE' BL1 NELEMTOT ; IX = IX + 1; IY = (-1 * NELEM) - 1 ; 'REPE' BL2 NELEMTOT ; IY = IY + 1; DVECX = IX '*' VECX ; DVECY = IY '*' VECY ; SI ((IX NEG 0) OU (IY NEG 0)) ; MAILTOT = MAILTOT 'ET' MAIL2 ; FINSI ; 'FIN' BL2 ; 'FIN' BL1 ; MDNS = 'EULER' ; MDOMTOT = TAB1 . 'QUAF' ; MDOM1 = TAB2 . 'QUAF' ; 'SI' GRAPH ; 'TRACER' (TAB1 . 'MAILLAGE') 'TITRE' ('CHAINE' 'Maillage '); 'FINSI' ; *********************** **** LA TABLE PGAZ **** *********************** PGAZ = 'TABLE' ; * **** Ordre des polynoms cv_i * PGAZ . 'NORD' = 0 ; * **** Especes qui sont dans les equations d'Euler * * **** Espece qui n'y est pas * PGAZ . 'ESPNEULE' = 'N2 '; * PGAZ . 'H2 ' = 'TABLE' ; PGAZ . 'H2O ' = 'TABLE' ; PGAZ . 'N2 ' = 'TABLE' ; PGAZ . 'O2 ' = 'TABLE' ; * **** R (J/Kg/K) * PGAZ . 'H2 ' . 'R' = 4130.0 ; PGAZ . 'H2O ' . 'R' = 461.4 ; PGAZ . 'N2 ' . 'R' = 296.8 ; PGAZ . 'O2 ' . 'R' = 259.8 ; * **** Regressions polynomials * * * Cas particulier: gaz "calorically perfect" * * **** "Enthalpies" (ou energies) de formations a OK (J/Kg) * Note: ce sont des entites numeriques * h_i = h_i(T0) '-' \int_0^{T0} cp_i(x) dx = * h_i(T0) '-' (\int_0^{T0} cv_i(x) dx '+' R_i * T0) * * Pour H2, H20, O2, N2 on a: * * T0 = 298.15 * PGAZ . 'H2 ' . 'H0K' = -4.195D6 ; PGAZ . 'H2O ' . 'H0K' = -1.395D7 ; PGAZ . 'N2 ' . 'H0K' = -2.953D5 ; PGAZ . 'O2 ' . 'H0K' = -2.634D5 ; * *** Fin PGAZ * * **** ETAT CENTRE * rog = 1.0 ; ung = 0.0 ; utg = 0.0 ; retg = .4291145555695540D+04 ; yh2g = 0.01 ; yo2g = 0.2 ; yh2og = 0.3 ; rouxg = ung '*' rog ; rouyg = utg '*' rog ; * *** Le reste * rod = 1.250D-1 ; und = 0.0D0 ; utd = 0.0D0 ; retd = .3598345082089522D+01 ; yh2d = 0.2 ; yo2d = 0.4 ; yh2od = 0.1 ; rouxd = und '*' rod ; rouyd = utd '*' rod ; RYN = RYH2 'ET' RYO2 'ET' RYH2O ; ******************************************************** *** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM *** ******************************************************** MOD1 = 'MODELISER' (TAB1 . 'MAILLAGE') 'THERMIQUE' ; * *** GRAPHIQUE DES C.I. * 'SI' GRAPH ; * 'SI' FAUX ; * *** CREATION DE CHAMELEM * 'FINSI' ; ********************************************************** RN0 = 'COPIER' RN ; GN0 = 'COPIER' GN ; RETN0 = 'COPIER' RETN ; RYN0 = 'COPIER' RYN ; * **** Parameter for the time loop * * Names of the residuum components * **** Geometrical coefficient to compute gradients * GRADR CACCA COEFSCAL = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN RN ; GRADV CACCA COEFVECT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVN GN ; TPS = 0.0 ; * **** Temporal loop * 'MESSAGE' ; 'MESSAGE' ('CHAINE' 'Methode = ' METO) ; 'MESSAGE' ('CHAINE' 'SAFFAC = ' SAFFAC) ; 'MESSAGE' ; TNM1 = 'COPIER' TN ; 'TEMPS' 'ZERO' ; 'REPETER' BL1 NITER ; * **** Primitive variables * VN PN TN YN GAMMAN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN TNM1 ; TNM1 = 'COPIER' TN ; 'SI' LOGSO ; GRADR ALR = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' NOMRN RN 'GRADGEO' COEFSCAL ; GRADP ALP = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' NOMRN PN 'GRADGEO' COEFSCAL ; GRADV ALV = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR' NOMVN VN 'GRADGEO' COEFVECT ; GRADY ALY = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' NOMY YN 'GRADGEO' COEFSCAL ; $DOMTOT PGAZ RN GRADR ALR VN GRADV ALV PN GRADP ALP YN GRADY ALY ; 'SINON' ; $DOMTOT PGAZ RN VN PN YN ; 'FINSI' ; $DOMTOT PGAZ LISTINCO ROF VITF PF YF ; DT_CON = SAFFAC '*' DELTAT ; * **** The time step linked to tps * * **** Total time step * * **** Increment of the variables (convection) * RESIDU = DTMIN '*' RESIDU ; TPS = TPS '+' DTMIN ; RN = RN '+' DRN ; GN = GN '+' DGN ; RETN = RETN '+' DRETN ; RYN = RYN '+' DRYN ; 'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ; 'MESSAGE' ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS) ; 'FINSI' ; 'SI' (TPS > TFINAL) ; 'QUITTER' BL1 ; 'FINSI' ; 'FIN' BL1 ; 'TEMPS' ; ********************************************************** * **** Les variables primitives * VN PN TN YN GAMN = 'PRIM' 'PERFTEMP' PGAZ RN GN RETN RYN ; CN = (GAMN * (PN / RN)) '**' 0.5 ; * *** GRAPHIQUE DES SOLUTIONS * 'SI' GRAPH ; * *** CREATION DE CHAMELEM * 'FINSI' ; * Tests: invariance par rotation RN1 = COPIER RN ; RETN1 = COPIER RETN ; RYN1 = COPIER RYN ; REPETER BL1 3 ; SI (ERR1 > 1.0D-10); FINSI ; SI (ERR1 > 1.0D-10); FINSI ; SI (ERR1 > 1.0D-10); FINSI ; SI (ERR1 > 1.0D-10); FINSI ; FIN BL1 ; * Symetrie SI (ERR1 > 1.0D-10); FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales