Télécharger lapn_impl_mel.dgibi
* fichier : lapn_impl_mel.dgibi *; Préambule *;; Description du cas-test *********************************************************** *********************************************************** **** APPROCHE VF "Cell-Centred Formulation" pour la **** **** solution des **** **** Equations de Navier-Stokes pour un gaz parfait **** **** OPERATEURS PRIM, PENT, LAPN **** **** Implicit: calcul du jacobien du residu **** **** **** **** Cas multiespeces avec 3 esp. différentes (O2, N2, H2) **** **** **** **** Methodes: DIAMANT **** **** **** **** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2000 **** **** S. GOUNAND DEN/DM2S/SFME/LTMF FEVRIER 2002 **** *********************************************************** *********************************************************** *;; Options 'OPTION' 'ELEM' QUA4 ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X' ; GRAPH = FAUX ; * GRAPH = VRAI ; *;; Procédures perso 'DEBPROC' CALCERR rcalc*'FLOTTANT' rref*'FLOTTANT' ; 'SI' ('<EG' ('ABS' toto) 1.D-12) ; fref = 1.D0 ; 'SINON' ; fref = 'ABS' toto ; 'FINSI' ; 'FINPROC' ('/' ('ABS' ('-' rcalc rref)) fref) ; DELTA = 1.0D-6 ; ERRZER = 1.0D-11 ; ERRNIV0 = 1.0D-4 ; ERRNIV1 = 2.0D0 ; ERRNIV2 = 1.0D+4 ; * CHPUNIF=Vrai si les champs de variables sont constants en espace * CSTUNIQ=Vrai si les constituants sont identiques 'REPETER' bcl 4 ; 'SI' ('EGA' &bcl 1) ; CHPUNIF = VRAI ; CSTUNIQ = VRAI ; ERRTOL = ERRNIV0 ; ERRTO2 = ERRNIV0 ; ERRTO3 = ERRNIV0 ; 'FINSI' ; 'SI' ('EGA' &bcl 2) ; CHPUNIF = FAUX ; CSTUNIQ = VRAI ; ERRTOL = ERRNIV0 ; ERRTO2 = ERRNIV1 ; ERRTO3 = ERRNIV0 ; 'FINSI' ; 'SI' ('EGA' &bcl 3) ; CHPUNIF = VRAI ; CSTUNIQ = FAUX ; ERRTOL = ERRNIV0 ; ERRTO2 = ERRNIV1 ; ERRTO3 = ERRNIV1 ; 'FINSI' ; 'SI' ('EGA' &bcl 4) ; CHPUNIF = FAUX ; CSTUNIQ = FAUX ; ERRTOL = ERRNIV0 ; ERRTO2 = ERRNIV1 ; ERRTO3 = ERRNIV2 ; 'FINSI' ; 'SI' ('>EG' &bcl 5) ; 'MESSAGE' 'Erreur de programmation' ; 'ERREUR' 5 ; 'FINSI' ; 'MESSAGE' ('CHAINE' '****************************************') ; 'SI' (CHPUNIF) ; 'MESSAGE' 'Champoints constants en espace' ; 'SINON' ; 'MESSAGE' 'Champoints bruites en espace' ; 'FINSI' ; 'SI' (CSTUNIQ) ; 'MESSAGE' 'Les constituants sont identiques (=hydrogene)' ; 'SINON' ; 'MESSAGE' 'Les constituants sont distincts (H2,O2,N2)' ; 'FINSI' ; 'MESSAGE' ('CHAINE' '****************************************') ; *;; Géométrie A0 = 0.0D0 0.0D0; A1 = 1.0D0 0.0D0; A2 = 2.0D0 0.0D0; A3 = 3.0D0 0.0D0; A0A1 = A0 'DROIT' 1 A1; A1A2 = A1 'DROIT' 1 A2; A2A3 = A2 'DROIT' 1 A3; DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ; DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ; DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ; DOM9 = DOM9 'COULEUR' 'ROUG ' ; DOM6 = DOM6 'COULEUR' 'VERT' ; DOM7 = DOM7 'COULEUR' 'JAUN' ; DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET' DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 ; 'ELIMINATION' DOMTOT 0.0001 ; 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET') ; 'FORME' CHPBRU ; * DOM9 et DOM6 ont un point en commun * DOM9 et DOM n ont pas de points en commun $DOMTOT = 'MODELISER' DOMTOT 'EULER'; $DOM6 = 'MODELISER' DOM6 'EULER'; $DOM7 = 'MODELISER' DOM7 'EULER'; $DOM9 = 'MODELISER' DOM9 'EULER'; MDOM6 = TDOM6 . 'QUAF' ; MDOM7 = TDOM7 . 'QUAF' ; MDOM9 = TDOM9 . 'QUAF' ; **** old stuff $DOMTOT = 'DOMA' DOMTOT ; MDOMTOT = TDOMTOT . 'QUAF' ; 'ELIMINATION' (MDOMTOT ET MDOM6) 0.0001 ; 'ELIMINATION' (MDOMTOT ET MDOM7) 0.0001 ; 'ELIMINATION' (MDOMTOT ET MDOM9) 0.0001 ; *;; Physique * * Valeurs physiques pour l oxygène (O), l azote (N) et l hydrogène (H) * vitesse du mélange UXN0 = 1.1 ; UYN0 = 1.2 ; * température TN0 = 573.15 ; * capacités calorifiques, masses molaires et constantes des gaz parfaits *(Raloc) 'SI' ('NON' CSTUNIQ) ; CPH = 14.53E3 ; CPO = 0.962E3 ; CPN = 1.089E3 ; MMH = 0.2E-2 ; MMO = 3.2E-2 ; MMN = 2.8E-2 ; * conductivité thermique, diffusivité thermique et viscosité dynamique LAMBDAH = 2.86E-1 ; LAMBDAO = 4.57E-2 ; LAMBDAN = 4.06E-2 ; MUH = 1.38E-5 ; MUO = 3.29E-5 ; MUN = 2.83E-5 ; 'SINON' ; CPH = 14.53E3 ; CPO = CPH ; CPN = CPH ; MMH = 0.2E-2 ; MMO = MMH ; MMN = MMH ; LAMBDAH = 2.86E-1 ; LAMBDAO = LAMBDAH ; LAMBDAN = LAMBDAH ; MUH = 1.38E-5 ; MUO = MUH ; MUN = MUH ; 'FINSI' ; RGP = 8.314 ; * fractions massiques YH20 = 0.13D0 ; YO20 = 0.19D0 ; * * Fin de définition des propriétés physiques * * Conneries de champoints... * RN0 = 1.5D0 ; 'SI' (CHPUNIF) ; 'SINON' ; 'FINSI' ; *; YN20 = '*' (-1.D0) ('-' ('+' YH20 YO20) 1.D0) ; CP = '+' ('+' ('*' YH20 CPH) ('*' YO20 CPO)) ('*' YN20 CPN) ; LAMBDA = '+' ('+' ('*' YH20 LAMBDAH) ('*' YO20 LAMBDAO)) ('*' YN20 LAMBDAN) ; MU = '+' ('+' ('*' YH20 MUH) ('*' YO20 MUO)) ('*' YN20 MUN) ; MMG = 'INVERSE' ('+' ('+' ('*' YH20 ('/' 1.D0 MMH)) ('*' YO20 ('/' 1.D0 MMO))) ('*' YN20 ('/' 1.D0 MMN)) ) ; * * Propriétés déduites des autres * * capa. calo. à volume constant et constante Gamma CVH = '-' CPH ('/' RGP MMH) ; CVO = '-' CPO ('/' RGP MMO) ; CVN = '-' CPN ('/' RGP MMN) ; CVG = '-' CPG ('*' RGP ('INVERSE' MMG)) ; GAMMAG = '/' CPG CVG ; * diffusivité thermique et enthalpie de formation à 0K KAPPAG = '/' LAMBDAG ('*' RN0 CPG) ; H0KH = -4.195D6 ; H0KO = -2.634D5 ; H0KN = -2.953D5 ; * fractions volumiques RYH20 = '*' RN0 YH20 ; RYO20 = '*' RN0 YO20 ; * pression PRESG = '*' RN0 ('*' ('*' RGP ('INVERSE' MMG)) TN0) ; * *;; Test 0 (Opérateur PRIM) ETHE = RN0 '*' CVG '*' TN0 ; ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ; * ECCC = RN0 '*' ( ('*' (TGAZ . 'H2 ' . 'H0K') YH20) * '+' ('*' (TGAZ . 'N2 ' . 'H0K') YN20) * ) ; RETN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * (ETHE '+' ECIN '+' ECCC) ; (ETHE '+' ECIN) ; * * Propriétés physiques demandées par les opérateurs * stockées dans la table TGAZ * TGAZ = 'TABLE' ; TGAZ . 'ESPNEULE' = 'N2 ' ; TGAZ . 'NORD' = 0 ; TGAZ . 'N2 ' = 'TABLE' ; TGAZ . 'H2 ' = 'TABLE' ; TGAZ . 'O2 ' = 'TABLE' ; TGAZ . 'CP ' = 'TABLE' ; TGAZ . 'CV ' = 'TABLE' ; **** Regressions polynomials TGAZ . 'CV' . 'H2 ' = CVH ; TGAZ . 'CV' . 'O2 ' = CVO ; TGAZ . 'CV' . 'N2 ' = CVN ; **** R (J/Kg/K) TGAZ . 'H2 ' . 'R' = ('/' RGP MMH) ; TGAZ . 'O2 ' . 'R' = ('/' RGP MMO) ; TGAZ . 'N2 ' . 'R' = ('/' RGP MMN) ; TGAZ . 'CP' . 'H2 ' = CPH ; TGAZ . 'CP' . 'O2 ' = CPO ; TGAZ . 'CP' . 'N2 ' = CPN ; **** "Enthalpies" (ou energies) de formations a OK (J/Kg) TGAZ . 'H2 ' . 'H0K' = H0KH ; TGAZ . 'O2 ' . 'H0K' = H0KO ; TGAZ . 'N2 ' . 'H0K' = H0KN ; **** Coeff diffusion TGAZ . 'H2 ' . 'CDIFF' = MUH ; TGAZ . 'O2 ' . 'CDIFF' = MUO ; TGAZ . 'N2 ' . 'CDIFF' = MUN ; * ('+' RYH20 RYO20) ; ('MAXIMUM' PRESG) ; ('MAXIMUM' GN0) ; ERR3 = '/' ('MAXIMUM' (TMPR '-' TN0) 'ABS') ('MAXIMUM' TN0) ; ERR4 = '/' ('MAXIMUM' (FMH2 '-' YH20) 'ABS') ('MAXIMUM' YH20) ; ERR4B = '/' ('MAXIMUM' (FMO2 '-' YO20) 'ABS') ('MAXIMUM' YO20) ; ERR5 = '/' ('MAXIMUM' (GAM2 '-' GAMMAG) 'ABS') ('MAXIMUM' GAMMAG) ; 'MESSAGE' ('CHAINE' 'ERR1=' ERR1) ; 'MESSAGE' ('CHAINE' 'ERR2=' ERR2) ; 'MESSAGE' ('CHAINE' 'ERR3=' ERR3) ; 'MESSAGE' ('CHAINE' 'ERR4=' ERR4) ; 'MESSAGE' ('CHAINE' 'ERR4B=' ERR4B) ; 'MESSAGE' ('CHAINE' 'ERR5=' ERR5) ; '>' 1.0D-6) ; 'MESSAGE' 'Problem 0' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' GRAPH; 'FINSI' ; *; Calcul du résidu et du jacobien de référence * Les valeurs en $DOM9 'CENTRE' ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; ryh0 = 'EXTRAIRE' RYH20 PCON 'H2 ' ; ryo0 = 'EXTRAIRE' RYO20 PCON 'O2 ' ; ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRYH20 ; TGAZ . 'H2 ' . 'CGRYK' = CGRYH20 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRYO20 ; TGAZ . 'O2 ' . 'CGRYK' = CGRYO20 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRYN20 ; TGAZ . 'N2 ' . 'CGRYK' = CGRYN20 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** Le residu ******* *********************** DEBRN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *; Test1 : J(DOM9->DOM9) 'MESSAGE' '************************' ; 'MESSAGE' ' Test1 : J(DOM9->DOM9) ' ; 'MESSAGE' '************************' ; * On compare le jacobien et la variation du residu * en $DOM9 'CENTRE' par rapport à une variation * infinitésimal en $DOM9 'CENTRE' * *;; Extraction des valeurs du jacobien de référence 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 1.0 'NATURE' 'DISCRET') ; * * ***** DDRHO contient: dRES_RN '/' dRN ('RN') ; * dRES_GXN '/' dRN ('RUXN') ; * dRES_GYN '/' dRN ('RUYN') ; * dRES_RETN '/' dRN ('RETN') ; * DDGX contient ... * * DRR = 'EXTRAIRE' DDRHO PCON 'RN' ; DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ; DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ; DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ; DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ; DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ; DRGX = 'EXTRAIRE' DDGX PCON 'RN' ; DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ; DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ; DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ; DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ; DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ; DRGY = 'EXTRAIRE' DDGY PCON 'RN' ; DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ; DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ; DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ; DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ; DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ; DRRET = 'EXTRAIRE' DDRET PCON 'RN' ; DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ; DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ; DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ; DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ; DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ; DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ; DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ; DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ; DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ; DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ; DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ; DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ; DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ; DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ; DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ; DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ; DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ; *;; Test 1.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.1 ro1 = ro0 + delta ' ; *;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA) ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ; DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ; DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ; DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ; DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ; DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRR DRRN ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXR DGXRN ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYR DGYRN ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETR DRETRN ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHR DRYHRN ; 'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOR DRYORN ; 'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.2 gnx1 = gnx0 + delta ' ; *;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA) gnx1 = gnx0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ; DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ; DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGX DRGXN ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGX DGXGXN ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGX DGYGXN ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGX DRETGXN ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGX DRYHGXN ; 'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGX DRYOGXN ; 'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.3 gny1 = gny0 + delta ' ; *;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA) gny1 = gny0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ; DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ; DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGY DRGYN ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGY DGXGYN ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGY DGYGYN ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGY DRETGYN ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGY DRYHGYN ; 'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGY DRYOGYN ; 'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.4 ret1 = ret0 + delta ' ; *;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA) ret1 = ret0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ; DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ; DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ; DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ; DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ; DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRET DRRETN ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRET DGXRETN ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRET DGYRETN ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRET DRETRETN ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRET DRYHRETN ; 'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORET DRYORETN ; 'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.5 ryh1 = ryh0 + delta ' ; *;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA) ryh1 = ryh0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYHDOM9) 'H2 ' ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ; DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ; DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ; DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ; DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ; DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYH DRRYHN ; 'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYH DGXRYHN ; 'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 26'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYH DGYRYHN ; 'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 27'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYH DRETRYHN ; 'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 28'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYH DRYHRYHN ; 'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 29'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYH DRYORYHN ; 'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 30'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.6 ryo1 = ryo0 + delta ' ; *;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA) ryo1 = ryo0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYODOM9) 'O2 ' ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ; DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ; DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ; DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ; DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ; DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYO DRRYON ; 'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 31'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYO DGXRYON ; 'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 32'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYO DGYRYON ; 'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 33'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYO DRETRYON ; 'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 34'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYO DRYHRYON ; 'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 35'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYO DRYORYON ; 'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 36'; 'ERREUR' 5 ; 'FINSI' ; *; Test2 : J(DOM6->DOM9) 'MESSAGE' '************************' ; 'MESSAGE' ' Test2 : J(DOM6->DOM9) ' ; 'MESSAGE' '************************' ; * On compare le jacobien et la variation du residu * en $DOM9 . 'CENTRE' par rapport à une variation * infinitésimal en $DOM6 . 'CENTRE' * *;; Extraction des valeurs du jacobien de référence * Les valeurs en $DOM6 'CENTRE' ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; ryh0 = 'EXTRAIRE' RYH20 PCELL 'H2 ' ; ryo0 = 'EXTRAIRE' RYO20 PCELL 'O2 ' ; ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 1.0 'NATURE' 'DISCRET') ; * * ***** DDRHO contient: dRES_RN '/' dRN ('RN') ; * dRES_GXN '/' dRN ('RUXN') ; * dRES_GYN '/' dRN ('RUYN') ; * dRES_RETN '/' dRN ('RETN') ; * DDGX contient ... * * DRR = 'EXTRAIRE' DDRHO PCON 'RN' ; DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ; DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ; DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ; DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ; DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ; DRGX = 'EXTRAIRE' DDGX PCON 'RN' ; DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ; DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ; DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ; DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ; DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ; DRGY = 'EXTRAIRE' DDGY PCON 'RN' ; DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ; DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ; DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ; DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ; DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ; DRRET = 'EXTRAIRE' DDRET PCON 'RN' ; DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ; DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ; DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ; DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ; DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ; DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ; DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ; DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ; DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ; DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ; DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ; DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ; DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ; DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ; DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ; DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ; DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ; *;; Test 2.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.1 ro1 = ro0 + delta ' ; *;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA) ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ; DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ; DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ; DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ; DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ; DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRR DRRN ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXR DGXRN ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYR DGYRN ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETR DRETRN ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHR DRYHRN ; 'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOR DRYORN ; 'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.2 gnx1 = gnx0 + delta ' ; *;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA) gnx1 = gnx0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ; DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ; DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGX DRGXN ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGX DGXGXN ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGX DGYGXN ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGX DRETGXN ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGX DRYHGXN ; 'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGX DRYOGXN ; 'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.3 gny1 = gny0 + delta ' ; *;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA) gny1 = gny0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ; DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ; DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGY DRGYN ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGY DGXGYN ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGY DGYGYN ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGY DRETGYN ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGY DRYHGYN ; 'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGY DRYOGYN ; 'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.4 ret1 = ret0 + delta ' ; *;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA) ret1 = ret0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ; DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ; DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ; DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ; DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ; DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRET DRRETN ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRET DGXRETN ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRET DGYRETN ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRET DRETRETN ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRET DRYHRETN ; 'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORET DRYORETN ; 'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.5 ryh1 = ryh0 + delta ' ; *;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA) ryh1 = ryh0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYHDOM6) 'H2 ' ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ; DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ; DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ; DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ; DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ; DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYH DRRYHN ; 'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYH DGXRYHN ; 'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 26'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYH DGYRYHN ; 'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 27'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYH DRETRYHN ; 'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 28'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYH DRYHRYHN ; 'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 29'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYH DRYORYHN ; 'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 30'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.6 ryo1 = ryo0 + delta ' ; *;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA) ryo1 = ryo0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYODOM6) 'O2 ' ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ; DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ; DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ; DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ; DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ; DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYO DRRYON ; 'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 31'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYO DGXRYON ; 'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 32'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYO DGYRYON ; 'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 33'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYO DRETRYON ; 'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 34'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYO DRYHRYON ; 'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 35'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYO DRYORYON ; 'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 36'; 'ERREUR' 5 ; 'FINSI' ; *; Test3 : J(DOM7->DOM9) 'MESSAGE' '************************' ; 'MESSAGE' ' Test3 : J(DOM7->DOM9) ' ; 'MESSAGE' '************************' ; * On compare le jacobien et la variation du residu * en $DOM9 'CENTRE' par rapport à une variation * infinitésimal en $DOM7 'CENTRE' * Elle doit etre nulle car les deux cellules ne se touchent pas * *;; Extraction des valeurs du jacobien de référence * Les valeurs en $DOM7 'CENTRE' ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; ryh0 = 'EXTRAIRE' RYH20 PCELL 'H2 ' ; ryo0 = 'EXTRAIRE' RYO20 PCELL 'O2 ' ; ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 1.0 'NATURE' 'DISCRET') ; * * ***** DDRHO contient: dRES_RN '/' dRN ('RN') ; * dRES_GXN '/' dRN ('RUXN') ; * dRES_GYN '/' dRN ('RUYN') ; * dRES_RETN '/' dRN ('RETN') ; * DDGX contient ... * * DRR = 'EXTRAIRE' DDRHO PCON 'RN' ; DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ; DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ; DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ; DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ; DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ; DRGX = 'EXTRAIRE' DDGX PCON 'RN' ; DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ; DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ; DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ; DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ; DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ; DRGY = 'EXTRAIRE' DDGY PCON 'RN' ; DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ; DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ; DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ; DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ; DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ; DRRET = 'EXTRAIRE' DDRET PCON 'RN' ; DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ; DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ; DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ; DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ; DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ; DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ; DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ; DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ; DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ; DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ; DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ; DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ; DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ; DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ; DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ; DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ; DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ; *;; Test 3.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.1 ro1 = ro0 + delta ' ; *;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA) ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ; DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ; DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ; DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ; DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ; DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRR DRRN ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXR DGXRN ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYR DGYRN ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETR DRETRN ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHR DRYHRN ; 'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOR DRYORN ; 'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 3.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.2 gnx1 = gnx0 + delta ' ; *;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA) gnx1 = gnx0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ; DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ; DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGX DRGXN ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGX DGXGXN ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGX DGYGXN ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGX DRETGXN ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGX DRYHGXN ; 'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGX DRYOGXN ; 'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 3.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.3 gny1 = gny0 + delta ' ; *;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA) gny1 = gny0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ; DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ; DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGY DRGYN ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGY DGXGYN ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGY DGYGYN ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGY DRETGYN ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGY DRYHGYN ; 'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGY DRYOGYN ; 'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 3.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.4 ret1 = ret0 + delta ' ; *;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA) ret1 = ret0 '*' (1.D0 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RYH2 = 'COPIER' RYH20 ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ; DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ; DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ; DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ; DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ; DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRET DRRETN ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRET DGXRETN ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRET DGYRETN ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRET DRETRETN ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRET DRYHRETN ; 'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORET DRYORETN ; 'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 3.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.5 ryh1 = ryh0 + delta ' ; *;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA) ryh1 = ryh0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYHDOM7) 'H2 ' ; RYO2 = 'COPIER' RYO20 ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ; DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ; DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ; DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ; DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ; DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYH DRRYHN ; 'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYH DGXRYHN ; 'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 26'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYH DGYRYHN ; 'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 27'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYH DRETRYHN ; 'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 28'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYH DRYHRYHN ; 'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 29'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYH DRYORYHN ; 'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 30'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 3.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA) 'MESSAGE' 'Test 3.6 ryo1 = ryo0 + delta ' ; *;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA) ryo1 = ryo0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYH2 = 'COPIER' RYH20 ; RYODOM7) 'O2 ' ; V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN ('+' RYH2 RYO2) ; FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ; TGAZ . 'H2 ' . 'YK' = FMH2 ; TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ; TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ; TGAZ . 'O2 ' . 'YK' = FMO2 ; TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ; TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ; TGAZ . 'N2 ' . 'YK' = FMN2 ; TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ; TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ; * $DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *;;; Extraction des composantes du résidu *********************** ***** Le residu ******* *********************** DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; *;;; Jacobien approché DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ; DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ; DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ; DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ; DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ; DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRRYO DRRYON ; 'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 31'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYO DGXRYON ; 'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 32'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYO DGYRYON ; 'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 33'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYO DRETRYON ; 'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 34'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYO DRYHRYON ; 'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 35'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYO DRYORYON ; 'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 36'; 'ERREUR' 5 ; 'FINSI' ; 'FIN' bcl ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe') ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales