Télécharger sinebum_fmm4.dgibi
* fichier : sinebum_fmm4.dgibi ************************************************************************* * * * SINE-SHAPED BUMP * * * * CALCUL DE L'ECOULEMENT SUBSONIQUE ISENTROPIQUE STATIONNAIRE DANS * * UN CANAL * * * * Methode implicite sans matrice pour les equations d'Euler * * (bas Mach) * * * * BECCANTINI A., SFME/LTMF, DEC 2003 * * * * * ************************************************************************* ************************************************************************* ************************************************************************* *********** SOLUTION OF THE EULER EQUATIONS **************************** *********** FMM **************************** ************************************************************************* ************************************************************************* * * * RVX . 'MODEL' : model object * RVX . 'RN0' : density * RVX . 'GN0' : qdm * RVX . 'RET0' : total energy * * RVX . 'PGAS' : gas model * RVX . 'PGAS' . 'GAMN' : gamma * * RVX . 'GRAVITY' : gravity * * RVX . 'LISTCONS' : name of the conservative variables * RVX . 'LISTPRIM' : name of the primitive variables * * RVX . 'LISTERR' : name of the error variables * * RVX . 'METHOD' : numerical scheme * RVX . 'CUTOFF' : cut off speed * * RVX . 'SPACEA' : space accuracy * RVX . 'LIMITER' : limiter type * RVX . 'TIMEA' : time accuracy * * RVX . 'T0' : initial time * RVX . 'TFINAL' : final time * RVX . 'DTPS' ('CFL') : time step or CFL number * * RVX . 'DCFL' : CFL number for dual time * * Error criteria for dual time loop: * RVX . 'NDTITER' : number of iterations * RVX . 'EPSDT' : relative error * * RVX . 'NJAC' : Jacobi iterations * 'DEBPROC' PEUSM ; 'ARGUMENT' RVX*TABLE ; * 'SI' ('EXISTE' RVX 'RESULTS') ; 'MESS' 'Table RESULTS already exists' ; 'SINON' ; RVX . 'RESULTS' = 'TABLE' ; RVX . 'RESULTS' . 'TPS' = RVX . 'T0' ; RVX . 'RESULTS' . 'RN' = 'COPIER' (RVX . 'RN0') ; RVX . 'RESULTS' . 'GN' = 'COPIER' (RVX . 'GN0') ; RVX . 'RESULTS' . 'RET' = 'COPIER' (RVX . 'RET0') ; RVX . 'RESULTS' . 'NITER' = 0 ; 'FINSI' ; MDOMINT = RVX . 'MODEL' ; GAMN = RVX . 'PGAS' . 'GAMN' ; * LISTINCO = RVX . 'LISTCONS' ; LISTPRIM = RVX . 'LISTPRIM' ; LISTERR = RVX . 'LISTERR' ; * * Upwind scheme * METO = RVX . 'METHOD' ; * Space accuracy (1 or 2) and limiter * Time accuracy (1 or 2) ORDESP = RVX . 'SPACEA' ; TYPELIM = RVX . 'LIMITER' ; ORDTPS = RVX . 'TIMEA' ; * Initial/final time * Deltat or CFL TPS = RVX . 'RESULTS' . 'TPS' ; TFINAL = RVX . 'TFINAL' ; 'SI' ('EXISTE' RVX 'DTPS') ; 'MESSAGE' 'DTPS or CFL ???' ; 'ERREUR' 21 ; 'FINSI' ; DTPS = RVX . 'DTPS' ; 'SINON' ; 'FINSI' ; * Dual time iterations NDT = RVX . 'NDTITER' ; * Relative error EPSDT = RVX . 'EPSDT' ; * Jacobi iterations * NJAC = RVX . 'NJAC' ; * Cut off speed ICO = RVX . 'CUTOFF' ; * **** Conservative variables * * MOT1 = 'EXTRAIRE' LISTINCO 1 ; NOMMOM = 'EXTRAIRE' LISTINCO MOT2 = 'EXTRAIRE' LISTINCO 4 ; 'SINON' ; NOMMOM = 'EXTRAIRE' LISTINCO MOT2 = 'EXTRAIRE' LISTINCO 5 ; 'FINSI' ; * **** Primitive variables * MOTRN = 'EXTRAIRE' LISTPRIM 1 ; MOTVN = 'EXTRAIRE' LISTPRIM MOTPN = 'EXTRAIRE' LISTPRIM 4 ; 'SINON' ; MOTVN = 'EXTRAIRE' LISTPRIM MOTPN = 'EXTRAIRE' LISTPRIM 5 ; 'FINSI' ; * **** Coeff to compute gradients (MCHSCA, MCHVEC) * Boundary conditions have to be taken into account * RCHLIM RESLIM = PROLIM (RVX . 'PROLIM') MDOMINT LISTINCO LISTPRIM RN0 VN0 PN0 GAMN ; MAILLIM = 'EXTRAIRE' RCHLIM 'MAILLAGE' ; 'SI' (MAILLIM 'EGA' 0) ; GRADRN ALRN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE' GRADVN ALVN MCHVEC = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVEL GN0 ; 'SINON' ; VECTBC = 'MANUEL' 'CHPO' MAILLIM 2 'UX' 0.0 'UY' 0.0 ; * Same name as NOMVEL 'SINON' ; VECTBC = 'MANUEL' 'CHPO' MAILLIM 3 'UX' 0.0 'UY' 0.0 'UZ' ; 'FINSI' ; GRADRN ALRN MCHSCA = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' 'NOLIMITE' 'CLIM' SCALBC ; GRADVN ALVN MCHVEC = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVEL VN0 'CLIM' VECTBC ; 'FINSI' ; * * *** After each dual time loop, we could display * the evolution of the error in the dual time loop * the evolution of the dual time step (the safety factor) * LISTLINF = RVX . 'RESULTS' . 'LISTLINF' ; LISTITDT = RVX . 'RESULTS' . 'LISTITDT' ; LISTITER = RVX . 'RESULTS' . 'LISTITER' ; * 'MESSAGE' ; 'MESSAGE' ('CHAINE' 'Methode = ' METO) ; 'MESSAGE' ; 'TEMPS' ; ************************************************************************ ************************************************************************ **** Temporal loop ***************************************************** ************************************************************************ ************************************************************************ RN_N1M1 = 'COPIER' RN0 ; GN_N1M1 = 'COPIER' GN0 ; RET_N1M1 = 'COPIER' RET0 ; 'SI' (AA > 0) ; PTITER = 'EXTRAIRE' LISTITER AA ; 'SINON' ; PTITER = 0 ; 'FINSI' ; DUSDT = 0.0D0 ; 'REPETER' BLITER -1 ; PTITER = PTITER '+' 1 ; * **** Personal procedure * PROCPT RVX ; * * **** _N1M = (t^n,\tau^m) * _N1M1 = (t^n,\tau^{m+1}) * * ************************************************************************ ****** Loop on dual time*********************************************** ************************************************************************ * * *** DUSDT0 is the increment of DUSDT in the previous (physical) time * iteration. * DUSDT0 = DUSDT ; DUSDT = 0.0D0 ; 'REPETER' BLDT NDT ; RN_N1M = RN_N1M1 ; GN_N1M = GN_N1M1 ; RET_N1M = RET_N1M1 ; * **** Primitive variables * * *** Boundary conditions * RCHLIM RESLIM = PROLIM (RVX . 'PROLIM') MDOMINT LISTINCO LISTPRIM RN_N1M VN_N1M PN_N1M GAMN ; * ****** First/second order reconstruction * 'SI' (ORDESP 'EGA' 2) ; GRADRN ALRN0 = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' TYPELIM GRADPN ALPN0 = 'PENT' MDOMINT 'CENTRE' 'EULESCAL' TYPELIM GRADVN ALVN0 = 'PENT' MDOMINT 'CENTRE' 'EULEVECT' TYPELIM * 'SI' (&BLDT < NLCB) ; * ALRN0 = 'COPIER' ALRN ; * ALPN0 = 'COPIER' ALPN ; * ALVN0 = 'COPIER' ALVN ; * 'SINON' ; * 'SI' (&BLDT 'EGA' NLCB) ; * 'MESSAGE' ; * 'MESSAGE' 'On gele les limiteurs!!!' ; * 'MESSAGE' ; * 'FINSI' ; * 'FINSI' ; MDOMINT RN_N1M GRADRN ALRN0 VN_N1M GRADVN ALVN0 PN_N1M GRADPN ALPN0 GAMN ; 'SINON' ; MDOMINT RN_N1M VN_N1M PN_N1M GAMN ; 'FINSI' ; MDOMINT LISTINCO ROF VITF PF GAMF MAILLIM ICO ICO ; RESIDU = RESIDU '+' RESLIM ; * **** La gravite * RN_N1M GN_N1M1 (RVX . 'GRAVITY') ; RESIDU = RESIDU '+' RESGRA ; * ****** Residuum for dual tims stepping also involved the * variation of the conserved variables with respect * to time 'SI' ((&BLITER 'EGA' 1) 'OU' (ORDTPS 'EGA' 1)) ; RESIDU = RESIDU '-' DUSDT ; 'SINON' ; RESIDU = RESIDU '-' ((1.5 '*' DUSDT) '-' (0.5 '*' DUSDT0)) ; 'FINSI' ; * *** Time step at the first iteration/jacobi iteration * 'SI' (&BLDT 'EGA' 1) ; 'SINON' ; DTPS = RVX . 'DTPS' ; 'FINSI' ; TPS = TPS '+' DTPS ; * NJAC = 'ENTIER' ('MINIMUM' (RVX . 'NJACITER')) ; NJAC0 = NJAC ; 'SINON' ; (RVX . 'NJACLERR') (RVX . 'NJACITER') ; NJAC = 'ENTIER' NJAC ; NJAC0 = NJAC ; 'FINSI' ; * *** JACOBI * 'SI' ('NON' ('EXISTE' RVX 'TYPEJAC')) ; LOGBF = (&BLDT '/' 2 '*' 2) 'EGA' &BLDT ; 'SI' LOGBF ; RVX . 'TYPEJAC' = 'LJACOF' ; 'SINON' ; RVX . 'TYPEJAC' = 'LJACOB' ; 'FINSI' ; 'FINSI' ; * **** CFL dual * 'SI' (&BLDT 'EGA' 1) ; SAFFACD = ('MINIMUM' (RVX . 'DCFL')) '*' 2 ; 'SINON' ; (RVX . 'DCFLERR') (RVX . 'DCFL')) '*' 2 ; 'FINSI' ; 'SI' ((&BLITER 'EGA' 1) 'OU' (ORDTPS 'EGA' 1)) ; * DUN IPRO = 'DETO' (RVX . 'TYPEJAC') LISTINCO MDOMINT RESIDU RN_N1M GN_N1M RET_N1M GAMN ICO DTPS SAFFACD NJAC 'CLIM' LISTPRIM RCHLIM (RN_N1M '*' 0) ; 'SINON' ; * DUN IPRO = 'DETO' (RVX . 'TYPEJAC') LISTINCO MDOMINT RESIDU RN_N1M GN_N1M RET_N1M GAMN ICO (DTPS '/' 1.5) SAFFACD NJAC 'CLIM' LISTPRIM RCHLIM (RN_N1M '*' 0) ; 'FINSI' ; * 'FINSI' ; 'SI' (IPRO 'NEG' 0) ; 'MESSAGE' ; 'MESSAGE' 'Probleme dans FMM' ; 'MESSAGE' ; 'ERREUR' 21 ; 'FINSI' ; * **** We compute DUSDT for the future loop * DUSDT = DUSDT '+' (DUN '/' DTPS) ; * **** We evaluate the conservative variables at t^{n+1}, \tau^{m+1} * RN_N1M1 = RN_N1M '+' DRN ; GN_N1M1 = GN_N1M '+' DGN ; RET_N1M1 = RET_N1M '+' DRET ; ERRINF = 'MAXIMUM' DUN 'ABS' LISTERR ; 'SI' (RVX . 'RELERR') ; * Relative error 'SI' (&BLDT 'EGA' 1) ; ERRINF0 = ERRINF ; 'SINON' ; 'SI' (ERRINF < (EPSDT '*' ERRINF0)) ; 'QUITTER' BLDT ; 'FINSI' ; 'FINSI' ; 'SINON' ; 'SI' (ERRINF < EPSDT) ; 'QUITTER' BLDT ; 'FINSI' ; 'FINSI' ; 'SI' ((&BLDT 'EGA' 1) 'OU' (((&BLDT '/' 20) '*' 20) 'EGA' &BLDT)) ; 'MESSAGE' ; 'MESSAGE' ('CHAINE' 'ITER =' PTITER ' TPS =' TPS ' DTITER =' &BLDT ' LINF =' ERRINF ' DCFL =' SAFFACD ' NJAC =' NJAC) ; 'MESSAGE' ; 'FINSI' ; 'FIN' BLDT ; ************************************************************************ ****** End of the loop on dual time************************************* ************************************************************************ * *** Update of RVX . 'RESULTS' * RVX . 'RESULTS' . 'RN' = RN_N1M1 ; RVX . 'RESULTS' . 'GN' = GN_N1M1 ; RVX . 'RESULTS' . 'RET' = RET_N1M1 ; RVX . 'RESULTS' . 'LISTLINF' = LISTLINF ; RVX . 'RESULTS' . 'LISTITDT' = LISTITDT ; RVX . 'RESULTS' . 'LISTITER' = LISTITER ; RVX . 'RESULTS' . 'TPS' = TPS ; RVX . 'RESULTS' . 'NITER' = (RVX . 'RESULTS' . 'NITER') '+' 1 ; * 'SI' (TPS '>EG' TFINAL) ; 'QUITTER' BLITER ; 'FINSI' ; 'FIN' BLITER ; TCPU = 'TEMPS' 'NOEC' ; RVX . 'RESULTS' . 'TCPU' = TCPU ; 'FINPROC' ; ************************************************************************* ************************************************************************* ************************************************************************* ************************************************************************* TYEL = 'TRI3' ; * TYEL = 'QUA4' ; * GRAPH = VRAI ; GRAPH = FAUX ; ****************** ****************** ****************** **** MAILLAGE **** ****************** ****************** ****************** ****************** * * RAF = 2 ; NY = 5 '*' RAF ; NX1 = 4 '*' RAF ; NX2 = 2 '*' NX1 ; NX3 = NX1 ; NX = (NX1 '+' NX2 '+' NX3) ; DX = (4.0 '/' NX) ; A0 = -2.0 0.0 ; A1 = -1.0 0.0 ; A2 = 1.0 0.0 ; A3 = 2.0 0.0 ; A4 = 2.0 1.0 ; A5 = -2.0 1.0 ; * **** LIGB * LIGB1 = A0 'DROIT' NX1 A1 ; * LIGB2 xcel = ('COORDONNEE' 1 A1) '+' DX ; ycel = 0.1 '*' ( 1.0 '+' ('COS' (180 '*' xcel))); ACEL = xcel ycel ; LIGB2 = A1 'DROIT' 1 ACEL ; 'REPETER' BL1 (NX2 '-' 2) ; ACEL0 = ACEL ; xcel = xcel '+' DX ; ycel = 0.1 '*' ( 1.0 '+' ('COS' (180 '*' xcel))); ACEL = xcel ycel ; LIGB2 = LIGB2 'ET' (ACEL0 'DROIT' 1 ACEL) ; 'FIN' BL1; LIGB2 = LIGB2 'ET' (ACEL 'DROIT' 1 A2) ; LIGB3 = A2 'DROIT' NX3 A3 ; LIGB = LIGB1 'ET' LIGB2 'ET' LIGB3 ; * **** LIGH * LIGH = A4 'DROIT' NX A5 ; * **** DOMINT * DOMINT = LIGH 'REGLER' NY ('INVERSE' LIGB) ; * DOMINT = LIGB 'REGLER' NY ('INVERSE' LIGH) ; LIGCON = 'CONTOUR' DOMINT ; * *** LIGG * * **** LIGD * 'SI' GRAPH ; 'TRACER' DOMINT 'TITRE' 'FINSI' ; * **** Creation of MODELS * MDOMINT = 'MODELISER' DOMINT 'EULER' ; MLIGG = 'MODELISER' LIGG 'EULER' ; MLIGD = 'MODELISER' LIGD 'EULER' ; QDOMINT = TDOMINT . 'QUAF' ; QLIGD = TLIGD . 'QUAF' ; QLIGG = TLIGG . 'QUAF' ; 'ELIMINATION' QDOMINT (1.0D-3 '/' RAF) QLIGG ; 'ELIMINATION' QDOMINT (1.0D-3 '/' RAF) QLIGD ; *************************************************************** *************************************************************** *************************************************************** ************** Initial conditions ***************************** *************************************************************** *************************************************************** *************************************************************** GAMAIR = 1.4 ; RO = 1.4 ; P = 1.0 ; U = 0.01 ; UCO = 1.0D-3*U ; *************************************************************** *************************************************************** *************************************************************** ************** Boundary Conditions **************************** *************************************************************** *************************************************************** *************************************************************** * * Subsonic inlet. * We impose the total enthalpy and the entropy. * The velocity direction is supposed to be 90 degrees * HTIN = (GAMAIR '/' (GAMAIR '-' 1.0)) '*' P ; ECIN = 0.5 '*' RO '*' U '*' U ; HTIN = HTIN '+' ECIN ; HTIN = HTIN '/' RO ; SINL = P '/' (RO '**' GAMAIR) ; 'S' sinl ; * * Subsonic outlet * We impose the pressure * *************************************************************** ***** PROCEDURE POUR CALCULER LES VARIABLES CONSERVATIVES ***** *************************************************************** 'DEBPROC' CONS ; 'ARGUMENT' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ; RECIN = 0.5 '*' CELL ; REIN = PN '/' (GAMN '-' 1.0) ; RETN = RECIN '+' REIN ; DETR CELL ; DETR RECIN ; DETR REIN ; 'RESPRO' RVN RETN ; 'FINPROC' ; *************************************************************** *************************************************************** *************************************************************** 'NATURE' 'DISCRET' ; 'UY' 0.0 'NATURE' 'DISCRET' ; 'NATURE' 'DISCRET' ; 'NATURE' 'DISCRET' ; GN0 RET0 = CONS RN0 VN0 PN0 GAMN ; ERRO = 'MAXIMUM' (PN1 '-' PN0) 'ABS' ; 'SI' (ERRO > 1.0D-6) ; 'MESSAGE' 'Problem in the ic file!!!' 'ERREUR' 5 ; 'FINSI' ; * **** Plot of IC * 'SI' GRAPH ; 'TRACER' CHM_RN MOD1 'TRACER' CHM_PN MOD1 'TRACER' CHM_VN MOD1 'FINSI' ; ************************************************************************* ************************************************************************* ************************************************************************* ************************************************************************* ************ COMPUTATION OF THE SOLUTION ***************************** ************************************************************************* ************************************************************************* ************************************************************************* ************************************************************************* ************************************************************************* ******PROCEDURE PROCPT ************************************************** ************************************************************************* * * 'DEBPROC' PROCPT ; 'FINPROC' ; * ************************************************************************* ******PROCEDURE PROLIM ************************************************** ************************************************************************* * 'DEBPROC' PROLIM ; 'ARGUMENT' RVX*'TABLE' MDOMINT*'MMODEL' LISTINCO*'LISTMOTS' LISTPRIM*'LISTMOTS' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ; * *** Boundary conditions * Subsonic inlet and subsonic outlet * MDOMINT (RVX . 'MODLI1') LISTINCO LISTPRIM RN VN PN GAMN (RVX. 'CHPLI1') 'INSU' ; MDOMINT (RVX . 'MODLI2') LISTINCO LISTPRIM RN VN PN GAMN (RVX. 'CHPLI2') 'OUTP' ; * RCHLIM = primitive variables on the boundary * RESLIM = contribution of boundary conditions to the residuum RESLIM = RESLIM1 '+' RESLIM2 ; RCHLIM = RCHLIM1 '+' RCHLIM2 ; 'RESPRO' RCHLIM RESLIM ; 'FINPROC' ; ************************************************************************* ****** FIN PROCEDURE PROLIM ********************************************* ************************************************************************* ********************************************************** ********************************************************** ********************************************************** ************** COMPUTATION OF THE SOLUTION *************** ********************************************************** ********************************************************** ********************************************************** ********************************************************** * RV = 'TABLE' ; RV . 'MODEL' = MDOMINT ; * **** Conservative variables / primitive variables * MOTRN = 'RN' ; MOTGNX = 'RUX' ; MOTGNY = 'RUY' ; MOTVNX = 'UX' ; MOTVNY = 'UY' ; MOTRET = 'RETN' ; MOTPN = 'PN' ; * * RV . 'RN0' = RN0 ; RV . 'GN0' = GN0 ; RV . 'RET0' = RET0 ; * **** Gas property/gravity * RV . 'PGAS' = 'TABLE' ; RV . 'PGAS' . 'GAMN' = GAMN ; 'UY' 0.0 ; * * Table for BC * RV . 'PROLIM' = 'TABLE' ; RV . 'PROLIM' . 'MODLI1' = MLIGG ; RV . 'PROLIM' . 'MODLI2' = MLIGD ; RV . 'PROLIM' . 'CHPLI1' = CHPINL ; RV . 'PROLIM' . 'CHPLI2' = CHPOUT ; * **** Numerical parameters * * * Variable to compute L2 error * * RV . 'LISTERR' = 'MOTS' MOTRN ; * RV . 'LISTERR' = 'MOTS' MOTRET ; * * Upwind scheme * * RV . 'METHOD' = 'RUSANOLM' ; * RV . 'METHOD' = 'HLLCLM' ; * RV . 'METHOD' = 'ROELM' ; RV . 'METHOD' = 'AUSMPUP' ; 'NATURE' 'DISCRET' ; * * Reconstruction/limiter * Time accuracy (1 or 2) * Iterations * Final time RV . 'SPACEA' = 2 ; RV . 'LIMITER' = 'NOLIMITE' ; * RV . 'LIMITER' = 'LIMITEUR' ; RV . 'TIMEA' = 1 ; * **** Phisical time * RV . 'T0' = 0 ; RV . 'TFINAL' = 1.0D6 ; * RV . 'CFL' = 20. ; RV . 'DTPS' = 1.0D16 ; * **** Dual time * * Safety factor for the dual time step * Max. Dual time iterations * Relative error * RV . 'NDTITER' = 2000 ; RV . 'RELERR' = FAUX ; RV . 'EPSDT' = 1.0D-13 ; **** Jacobi iterations RV . 'TYPEJAC' = 'PJACO' ; * RV . 'TYPEJAC' = 'LJACOF' ; * RV . 'TYPEJAC' = 'LJACOB' ; * RV . 'TYPEJAC' = 'LJACOFB' ; * **** Parameters for PROCPT * * 'TEMPS' 'ZERO' ; PEUSM RV ; 'TEMPS' ; * 'TEMPS' 'IMPR' ; RN = RV . 'RESULTS' . 'RN' ; GN = RV . 'RESULTS' . 'GN' ; RET = RV . 'RESULTS' . 'RET' ; LISTITER = RV . 'RESULTS' . 'LISTITER' ; LISTITDT = RV . 'RESULTS' . 'LISTITDT' ; LISTLINF = RV . 'RESULTS' . 'LISTLINF' ; ********************************************************** ********************************************************** ********************************************************** ************** PLOTS ************************************* ********************************************************** ********************************************************** ********************************************************** ********************************************************** * *** Convergence evolution inside of each iteration * 'SI' (VRAI) ; I1 = 1 ; 'REPETER' BLITER NITERE ; I0 = I1 ; I1 = 'EXTRAIRE' LISTITER &BLITER ; 'SI' (I1 'EGA' I0) ; 'SINON' ; ('LOG' 10.)) ; 'SI' GRAPH ; 'DESSIN' everr 'TITRE' ('CHAINE' 'Convergence at iter ' (I1 '-' 1)) ; 'FINSI' ; 'FINSI' ; 'FIN' BLITER ; ('LOG' 10.)) ; 'SI' GRAPH ; 'DESSIN' everr 'TITRE' ('CHAINE' 'Convergence at iter ' (I1)) ; 'FINSI' ; 'FINSI' ; * **** The 2D graphics * CN2 = GAMN '*' (PN '/' RN) ; VN2 = 'PSCAL' VN VN MOTVN MOTVN ; MACHN2 = VN2 '/' CN2 ; MACHN = MACHN2 '**' 0.5 ; HTN = (GAMN '/' (GAMN '-' 1.0)) '*' (PN '/' RN) ; ECIN = 0.5 '*' ('PSCAL' VN VN MOTVN MOTVN) ; HTN = HTN '+' ECIN ; SN = PN '/' (RN '**' GAMAIR) ; tps = RV . 'RESULTS' . 'TPS' ; 'SI' GRAPH ; 'TRACER' DOMINT RNV ('CONTOUR' DOMINT) 15 'TITRE' 'ro'; 'TRACER' DOMINT PNV ('CONTOUR' DOMINT) 15 'TITRE' 'p' ; 'TRACER' DOMINT MNV ('CONTOUR' DOMINT) 15 'TITRE' 'Mach' ; 'FINSI' ; * TEST AA = 10. '**' ('EXTRAIRE' LERR 1) ; 'SI' ((BB '/' AA) '>' 1.0D-5) ; 'ERREUR' 'Probleme de convergence' ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales