Télécharger lapn_impl3D_mel.dgibi
* fichier : lapn_impl3D_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) **** **** 3D **** **** **** **** Methodes: DIAMANT **** **** **** **** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2000 **** **** S. GOUNAND DEN/DM2S/SFME/LTMF MARS 2002 **** *********************************************************** *********************************************************** *;; Options 'OPTION' 'ELEM' CUB8 ; '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 0.0D0; A1 = 1.0D0 0.0D0 0.0D0; A2 = 1.0D0 1.0D0 0.0D0; A3 = 0.0D0 1.0D0 0.0D0; SUR1 = 'MANUEL' 'QUA4' A0 A1 A2 A3 ; DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET' DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ET' DOM10 'ET' DOM11 'ET' DOM12 'ET' DOM13 'ET' DOM14 'ET' DOM15 'ET' DOM16 'ET' DOM17 'ET' DOM18 'ET' DOM19 'ET' DOM20 'ET' DOM21 'ET' DOM22 'ET' DOM23 'ET' DOM24 'ET' DOM25 'ET' DOM26 'ET' DOM27 ; 'ELIMINATION' DOMTOT 0.0001 ; 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET'); 'FORME' CHPBRU ; **** On calcule le JACOBIAN au centre de DOM27; $DOMTOT = 'MODELISER' DOMTOT 'EULER'; $DOM1 = 'MODELISER' DOM1 'EULER'; $DOM27 = 'MODELISER' DOM27 'EULER'; MDOM1 = TDOM1 . 'QUAF' ; MDOM27 = TDOM27 . 'QUAF' ; MDOMTOT = TDOMTOT . 'QUAF' ; 'ELIMINATION' (MDOMTOT ET MDOM1) 0.0001 ; 'ELIMINATION' (MDOMTOT ET MDOM27) 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 ; UZN0 = 1.3 ; * 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) '+' (UZN0 '*' UZN0)) ; * 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) ; ERR2 = '/' ('MAXIMUM' (GN0 '-' (RN0 '*' VN0 ('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 $DOM1 'CENTRE' ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; 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) ; DEBGNZ0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *; Test1 : J(DOM1->DOM1) 'MESSAGE' '************************' ; 'MESSAGE' ' Test1 : J(DOM1->DOM1) ' ; 'MESSAGE' '************************' ; * On compare le jacobien et la variation du residu * en $DOM1 'CENTRE' par rapport à une variation * infinitésimal en $DOM1 'CENTRE' * *;; Extraction des valeurs du jacobien de référence 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 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' ; DGZR = 'EXTRAIRE' DDRHO PCON 'RUZN' ; 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' ; DGZGX = 'EXTRAIRE' DDGX PCON 'RUZN' ; 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' ; DGZGY = 'EXTRAIRE' DDGY PCON 'RUZN' ; DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ; DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ; DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ; DRGZ = 'EXTRAIRE' DDGZ PCON 'RN' ; DGXGZ = 'EXTRAIRE' DDGZ PCON 'RUXN' ; DGYGZ = 'EXTRAIRE' DDGZ PCON 'RUYN' ; DGZGZ = 'EXTRAIRE' DDGZ PCON 'RUZN' ; DRETGZ = 'EXTRAIRE' DDGZ PCON 'RETN' ; DRYHGZ = 'EXTRAIRE' DDGZ PCON 'RYH2' ; DRYOGZ = 'EXTRAIRE' DDGZ PCON 'RYO2' ; DRRET = 'EXTRAIRE' DDRET PCON 'RN' ; DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ; DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ; DGZRET = 'EXTRAIRE' DDRET PCON 'RUZN' ; 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' ; DGZRYO = 'EXTRAIRE' DDRYO PCON 'RUZN' ; 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' ; DGZRYH = 'EXTRAIRE' DDRYH PCON 'RUZN' ; 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ; DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ; DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ; DGZRN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 DGZR DGZRN ; 'MESSAGE' ('CHAINE' 'DGZRN=' DGZRN ' DGZR=' DGZR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETR DRETRN ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHR DRYHRN ; 'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOR DRYORN ; 'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 7'; '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 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ; DGZGXN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 ' DRGX=' DRGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGX DGXGXN ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGX DGYGXN ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGX DGZGXN ; 'MESSAGE' ('CHAINE' 'DGZGXN=' DGZGXN ' DGZGX=' DGZGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGX DRETGXN ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGX DRYHGXN ; 'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGX DRYOGXN ; 'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 14'; '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 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ; DGZGYN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGY DGXGYN ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGY DGYGYN ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGY DGZGYN ; 'MESSAGE' ('CHAINE' 'DGZGYN=' DGZGYN ' DGZGY=' DGZGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGY DRETGYN ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGY DRYHGYN ; 'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGY DRYOGYN ; 'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.4 J(ref) et J(appr) pour gnz1 = gnz0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.4 gnz1 = gnz0 + delta ' ; *;;; Calcul du residu pour gnz1 = gnz0 * (1.'+' DELTA) gnz1 = gnz0 '*' (1 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGZN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnz0) ; DGXGZN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnz0) ; DGYGZN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnz0) ; DGZGZN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' gnz0) ; DRETGZN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnz0) ; DRYHGZN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnz0) ; DRYOGZN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnz0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGZ DRGZN ; 'MESSAGE' ('CHAINE' 'DRGZN=' DRGZN ' DRGZ=' DRGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGZ DGXGZN ; 'MESSAGE' ('CHAINE' 'DGXGZN=' DGXGZN ' DGXGZ=' DGXGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGZ DGYGZN ; 'MESSAGE' ('CHAINE' 'DGYGZN=' DGYGZN ' DGYGZ=' DGYGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGZ DGZGZN ; 'MESSAGE' ('CHAINE' 'DGZGZN=' DGZGZN ' DGZGZ=' DGZGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGZ DRETGZN ; 'MESSAGE' ('CHAINE' 'DRETGZN=' DRETGZN ' DRETGZ=' DRETGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 26'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGZ DRYHGZN ; 'MESSAGE' ('CHAINE' 'DRYHGZN=' DRYHGZN ' DRYHGZ=' DRYHGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 27'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGZ DRYOGZN ; 'MESSAGE' ('CHAINE' 'DRYOGZN=' DRYOGZN ' DRYOGZ=' DRYOGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 28'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.5 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.5 ret1 = ret0 + delta ' ; *;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA) ret1 = ret0 '*' (1 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ; DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ; DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ; DGZRETN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 29'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRET DGXRETN ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 30'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRET DGYRETN ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 31'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRET DGZRETN ; 'MESSAGE' ('CHAINE' 'DGZRETN=' DGZRETN ' DGZRET=' DGZRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 32'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRET DRETRETN ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 33'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRET DRYHRETN ; 'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 34'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORET DRYORETN ; 'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 35'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.6 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.6 ryh1 = ryh0 + delta ' ; *;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA) ryh1 = ryh0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYHDOM1) '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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ; DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ; DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ; DGZRYHN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 36'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYH DGXRYHN ; 'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 37'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYH DGYRYHN ; 'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 38'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRYH DGZRYHN ; 'MESSAGE' ('CHAINE' 'DGZRYHN=' DGZRYHN ' DGZRYH=' DGZRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 39'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYH DRETRYHN ; 'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 40'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYH DRYHRYHN ; 'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 41'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYH DRYORYHN ; 'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 42'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 1.7 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA) 'MESSAGE' 'Test 1.7 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 ; RYODOM1) '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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ; DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ; DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ; DGZRYON = (DEBGNZ1 '-' DEBGNZ0) '/' (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 43'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYO DGXRYON ; 'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 44'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYO DGYRYON ; 'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 45'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRYO DGZRYON ; 'MESSAGE' ('CHAINE' 'DGZRYON=' DGZRYON ' DGZRYO=' DGZRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 46'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYO DRETRYON ; 'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 47'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYO DRYHRYON ; 'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 48'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYO DRYORYON ; 'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 49'; 'ERREUR' 5 ; 'FINSI' ; *; Test2: J(DOM27->DOM1) 'MESSAGE' '************************' ; 'MESSAGE' ' Test2 : J(DOM27->DOM1) ' ; 'MESSAGE' '************************' ; * On compare le jacobien et la variation du residu * en $DOM1 'CENTRE' par rapport à une variation * infinitésimal en $DOM27 'CENTRE' * *;; Extraction des valeurs du jacobien de référence * Les valeurs en $DOM27 'CENTRE' ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; gnz0 = 'EXTRAIRE' GN0 PCELL 'UZ' ; ryh0 = 'EXTRAIRE' RYH20 PCELL 'H2 ' ; ryo0 = 'EXTRAIRE' RYO20 PCELL 'O2 ' ; ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0 'NATURE' 'DISCRET') ; 7 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 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' ; DGZR = 'EXTRAIRE' DDRHO PCON 'RUZN' ; 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' ; DGZGX = 'EXTRAIRE' DDGX PCON 'RUZN' ; 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' ; DGZGY = 'EXTRAIRE' DDGY PCON 'RUZN' ; DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ; DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ; DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ; DRGZ = 'EXTRAIRE' DDGZ PCON 'RN' ; DGXGZ = 'EXTRAIRE' DDGZ PCON 'RUXN' ; DGYGZ = 'EXTRAIRE' DDGZ PCON 'RUYN' ; DGZGZ = 'EXTRAIRE' DDGZ PCON 'RUZN' ; DRETGZ = 'EXTRAIRE' DDGZ PCON 'RETN' ; DRYHGZ = 'EXTRAIRE' DDGZ PCON 'RYH2' ; DRYOGZ = 'EXTRAIRE' DDGZ PCON 'RYO2' ; DRRET = 'EXTRAIRE' DDRET PCON 'RN' ; DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ; DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ; DGZRET = 'EXTRAIRE' DDRET PCON 'RUZN' ; 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' ; DGZRYO = 'EXTRAIRE' DDRYO PCON 'RUZN' ; 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' ; DGZRYH = 'EXTRAIRE' DDRYH PCON 'RUZN' ; 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ; DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ; DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ; DGZRN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 DGZR DGZRN ; 'MESSAGE' ('CHAINE' 'DGZRN=' DGZRN ' DGZR=' DGZR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETR DRETRN ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHR DRYHRN ; 'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOR DRYORN ; 'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 7'; '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 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ; DGZGXN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 ' DRGX=' DRGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGX DGXGXN ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGX DGYGXN ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGX DGZGXN ; 'MESSAGE' ('CHAINE' 'DGZGXN=' DGZGXN ' DGZGX=' DGZGX ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGX DRETGXN ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGX DRYHGXN ; 'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGX DRYOGXN ; 'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 14'; '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 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ; DGZGYN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGY DGXGYN ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGY DGYGYN ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGY DGZGYN ; 'MESSAGE' ('CHAINE' 'DGZGYN=' DGZGYN ' DGZGY=' DGZGY ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGY DRETGYN ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGY DRYHGYN ; 'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGY DRYOGYN ; 'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.4 J(ref) et J(appr) pour gnz1 = gnz0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.4 gnz1 = gnz0 + delta ' ; *;;; Calcul du residu pour gnz1 = gnz0 * (1.'+' DELTA) gnz1 = gnz0 '*' (1 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRGZN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnz0) ; DGXGZN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnz0) ; DGYGZN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnz0) ; DGZGZN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' gnz0) ; DRETGZN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnz0) ; DRYHGZN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnz0) ; DRYOGZN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnz0) ; *;;; Comparaison Jacobien référence et approché ERR1 = CALCERR DRGZ DRGZN ; 'MESSAGE' ('CHAINE' 'DRGZN=' DRGZN ' DRGZ=' DRGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXGZ DGXGZN ; 'MESSAGE' ('CHAINE' 'DGXGZN=' DGXGZN ' DGXGZ=' DGXGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYGZ DGYGZN ; 'MESSAGE' ('CHAINE' 'DGYGZN=' DGYGZN ' DGYGZ=' DGYGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZGZ DGZGZN ; 'MESSAGE' ('CHAINE' 'DGZGZN=' DGZGZN ' DGZGZ=' DGZGZ ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETGZ DRETGZN ; 'MESSAGE' ('CHAINE' 'DRETGZN=' DRETGZN ' DRETGZ=' DRETGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRTO2) ; 'MESSAGE' 'Problem 26'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHGZ DRYHGZN ; 'MESSAGE' ('CHAINE' 'DRYHGZN=' DRYHGZN ' DRYHGZ=' DRYHGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 27'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYOGZ DRYOGZN ; 'MESSAGE' ('CHAINE' 'DRYOGZN=' DRYOGZN ' DRYOGZ=' DRYOGZ ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 28'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.5 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.5 ret1 = ret0 + delta ' ; *;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA) ret1 = ret0 '*' (1 '+' 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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ; DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ; DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ; DGZRETN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 29'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRET DGXRETN ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 30'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRET DGYRETN ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 31'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRET DGZRETN ; 'MESSAGE' ('CHAINE' 'DGZRETN=' DGZRETN ' DGZRET=' DGZRET ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 32'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRET DRETRETN ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 33'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRET DRYHRETN ; 'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 34'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORET DRYORETN ; 'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 35'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.6 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.6 ryh1 = ryh0 + delta ' ; *;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA) ryh1 = ryh0 '*' (1 '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; RYHDOM27) '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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ; DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ; DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ; DGZRYHN = (DEBGNZ1 '-' DEBGNZ0) '/' (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 36'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYH DGXRYHN ; 'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 37'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYH DGYRYHN ; 'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 38'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRYH DGZRYHN ; 'MESSAGE' ('CHAINE' 'DGZRYHN=' DGZRYHN ' DGZRYH=' DGZRYH ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 39'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYH DRETRYHN ; 'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 40'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYH DRYHRYHN ; 'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 41'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYH DRYORYHN ; 'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 42'; 'ERREUR' 5 ; 'FINSI' ; *;; Test 2.7 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA) 'MESSAGE' 'Test 2.7 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 ; RYODOM27) '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) ; DEBGNZ1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ; DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ; DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 7) ; *;;; Jacobien approché DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ; DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ; DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ; DGZRYON = (DEBGNZ1 '-' DEBGNZ0) '/' (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 43'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGXRYO DGXRYON ; 'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 44'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGYRYO DGYRYON ; 'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 45'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DGZRYO DGZRYON ; 'MESSAGE' ('CHAINE' 'DGZRYON=' DGZRYON ' DGZRYO=' DGZRYO ' ERR=' ERR1); 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 46'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRETRYO DRETRYON ; 'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTO3) ; 'MESSAGE' 'Problem 47'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYHRYO DRYHRYON ; 'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRZER) ; 'MESSAGE' 'Problem 48'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = CALCERR DRYORYO DRYORYON ; 'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO ' ERR=' ERR1) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 49'; 'ERREUR' 5 ; 'FINSI' ; 'FIN' bcl ; 'MESSAGE' ('CHAINE' 'Tout sest bien passe') ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales