Télécharger konv_impl3Dbm.dgibi
* fichier : konv_impl3Dbm.dgibi ************************************************************************ ************************************************************************ *********************************************************** *********************************************************** **** APPROCHE VF "Cell-Centred Formulation" pour la **** **** solution des **** **** Equations d'Euler pour un gaz parfait **** **** OPERATEURS PRIM, PRET, KONV **** **** Implicit: calcul du jacobien du residu **** **** **** **** Cas gaz monoespece, "calorically perfect" **** **** 3D **** **** **** **** Methodes: AUSM+ Low Mach **** **** **** **** This procedure compares the jacobian exact **** **** with jacobian coputed numerically **** **** (using numerical flux function) **** **** A. BECCANTINI SFME/LTMF AOUT 2001 **** *********************************************************** *********************************************************** 'OPTION' 'DIME' 3 'ELEM' 'CUB8' 'ECHO' 0 'TRAC' 'X' ; * *** GRAPH * GRAPH = FAUX ; * GRAPH = VRAI ; ERRTOL = 1.0D-4 ; *************************** ***** DOMAINE SPATIAL **** *************************** 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 ; * **** Perturbation du domaine * 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET') 'ET' 'NATU' 'DISCRET'); 'FORME' CHPBRU ; $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 ; *************************************************** ***** Densité, pression, vitesse, gamma *********** *************************************************** 'NATU' 'DISCRET' ; CSONN = (GAMMAN '*' PN0) '/' RN0 ; UXN0 = 0.003 * CSONN ; UYN0 = -0.001 * CSONN ; UZN0 = 0.002 * CSONN ; *************************************************** 'NATU' 'DISCRET' ; 'NATU' 'DISCRET' ; *************************************************** ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0) '+' (UZN0 * UZN0)) ; 'NATU' 'DISCRET' ; 'MESSAGE' 'Problem 0' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' GRAPH; 'FINSI' ; **************************************************** * Creating a mesh WITHOUT mesh **************************************************** P1 = 0.5 0.5 0.5; * **** Les variables conservative * * RN0 (densité) * GN0 (quantité de mouvement) * RETN0 (énergie totale par unité de volume) * * sont definiés * **************************************************** **************************************************** ******* Calcul du jacobien et du residu ********** **************************************************** **************************************************** * * JACO est le jacobien * * DEBRN0 le residu concernant la densité * DEBGNX0 le residu concernant la quantité de mouvement (axe x) * DEBGNY0 le residu concernant la quantité de mouvement (axe y) * DEBGNZ0 le residu concernant la quantité de mouvement (axe z) * DEBRETN0 le residu concernant l'enrgie totale par unité de volume * * Noms des variables NOMDEN = 'RN ' ; NOMMOX = 'RUXN' ; NOMMOY = 'RUYN' ; NOMMOZ = 'RUZN' ; NOMRET = 'RETN' ; * Metode METO = 'AUSMPLM' ; $DOMTOT RN0 VITESSE PRES GAMMAN ; $DOMTOT ROF VITF PF GAMF LISTINCO MELLIM UINF UPRI ; $DOMTOT LISTINCO MELLIM METO RN0 VITESSE PRES GAMMAN UINF UPRI ; ***************************************************** ***************************************************** ******** PROCEDURES ********************************* ***************************************************** ***************************************************** * * Derivé partielle du residu en un point par rapport * aux variable en un autre point * * PPRIM = point ou est localisé la variable primale * PDUAL = point ou est localisé la variable duale * MOTPRI = nom de la composante concernante la variable primale * MOTDUA = nom de la composante concernante la variable duale ELT1 = 'MANUEL' 'POI1' PPRIM ; 'REPETER' BL1 NDIM ; MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ; 1 MOTCEL 0.0 'NATURE' 'DISCRET') ; 'FIN' BL1 ; SCAL = 'EXTRAIRE' D_DMOT PDUAL MOTDUA ; 'FINPROC' SCAL ; RETN*'CHPOINT' GAMN*'CHPOINT' LISTINCO*'LISTMOTS' UINF*'CHPOINT' UPRI*'CHPOINT' PPRIM*'POINT' PDUAL*'POINT' * PPRIM = point ou est localisé la variable primale * PDUAL = point ou est localisé la variable duale * MOTPRI = nom de la composante concernante la variable primale * MOTDUA = nom de la composante concernante la variable duale * Le valeur dans l'état non-perturbé en PDUAL ; RNCEL = 'COPIER' RN ; GNCEL = 'COPIER' GN ; RETNCEL = 'COPIER' RETN ; $MODE RNCEL VITESSE PRES GAMN ; $MODE ROF VITF PF GAMF LISTINCO UINF UPRI; * 'LISTE' CHPRES0 5 ; VAL0 = 'EXTRAIRE' CHPRES0 PDUAL MOTDUA ; * EPSILON = perturbation * Adimensionalisation dens0 = 'EXTRAIRE' RN PPRIM 'SCAL' ; CN2 = GAMN '*' (PN '/' RN) ; cson0 = ('EXTRAIRE' CN2 PPRIM 'SCAL') '**' 0.5 ; ret0 = ('EXTRAIRE' RETN PPRIM 'SCAL') '**' 0.5 ; * On etabli la variable à perturber 'REPETER' BL1 NDIM ; MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ; 'SI' ('EGA' MOTCEL MOTPRI) ; ICEL = &BL1 ; 'QUITTER' BL1 ; 'FINSI' ; 'FIN' BL1 ; 'SI' (ICEL > NDIM) ; 'MESSAGE' 'Procedure JACNUM' ; 'MESSAGE' 'MOTPRI = ??? '; 'ERREUR' 21 ; 'FINSI' ; ELT1 = 'MANUEL' 'POI1' PPRIM ; * ICEL = 1 -> On perturbe la densité 'SI' ('EGA' ICEL 1) ; DELTATOT = (EPSILON * dens0) ; 'NATURE' 'DISCRET') 'ET' RN ; GNCEL = 'COPIER' GN ; RETNCEL = 'COPIER' RETN ; 'FINSI' ; * ICEL = 2 -> On perturbe la q.d.m. long l'ax x 'SI' ('EGA' ICEL 2) ; DELTATOT = (EPSILON * dens0 * cson0) ; 'NATURE' 'DISCRET') 'ET' GN ; RNCEL = 'COPIER' RN ; RETNCEL = 'COPIER' RETN ; 'FINSI' ; * ICEL = 3 -> On perturbe la q.d.m. long l'ax y 'SI' ('EGA' ICEL 3) ; DELTATOT = (EPSILON * dens0 * cson0) ; 'NATURE' 'DISCRET') 'ET' GN ; RNCEL = 'COPIER' RN ; RETNCEL = 'COPIER' RETN ; 'FINSI' ; * ICEL = 4 -> On perturbe la q.d.m. long l'ax z 'SI' ('EGA' ICEL 4) ; DELTATOT = (EPSILON * dens0 * cson0) ; 'NATURE' 'DISCRET') 'ET' GN ; RNCEL = 'COPIER' RN ; RETNCEL = 'COPIER' RETN ; 'FINSI' ; * ICEL = 4 -> On perturbe l'énergie totale 'SI' ('EGA' ICEL 5) ; DELTATOT = (EPSILON * ret0) ; 'NATURE' 'DISCRET') 'ET' RETN ; RNCEL = 'COPIER' RN ; GNCEL = 'COPIER' GN ; 'FINSI' ; $MODE RNCEL VITESSE PRES GAMN ; $MODE ROF VITF PF GAMF LISTINCO UINF UPRI; VAL1 = 'EXTRAIRE' CHPRES1 PDUAL MOTDUA ; 'FINPROC' ((VAL1 '-' VAL0) '/' DELTATOT) ; ***************************************************** ***************************************************** ******** FIN PROCEDURES ***************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ******* TEST1 *************************************** ***************************************************** * * On compare le jacobien et la variation du residu * en $DOM1 'CENTRE' par rapport à une variation * infinitésimal en $DOM1 'CENTRE' * * Les grandeurs pour adimesionner les erreurs ro0 = 'EXTRAIRE' RN0 PCEN1 'SCAL' ; CN20 = GAMMAN '*' (PN0 '/' RN0) ; cson0 = ('EXTRAIRE' CN20 PCEN1 'SCAL') '**' 0.5 ; ret0 = ('EXTRAIRE' RETN0 PCEN1 'SCAL') '**' 0.5 ; * * Le jacobien exact. * DRR = d(RES_ro)/dro (variable primale en PCEN1, variable duale en PCEN1) ; * DGXR = d(RES_gx)/dro (variable primale en PCEN1, variable duale en PCEN1) ; * ... * Le jacobien numerique DELTA = 1.0D-8 ; DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMDEN NOMDEN DELTA ; DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMDEN NOMMOX DELTA ; DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMDEN NOMMOY DELTA ; DGZRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMDEN NOMMOZ DELTA ; DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMDEN NOMRET DELTA ; * 'OPTI' 'DONN' 5 ; DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOX NOMDEN DELTA ; DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOX NOMMOX DELTA ; DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOX NOMMOY DELTA ; DGZGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOX NOMMOZ DELTA ; DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOX NOMRET DELTA ; DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOY NOMDEN DELTA ; DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOY NOMMOX DELTA ; DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOY NOMMOY DELTA ; DGZGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOY NOMMOZ DELTA ; DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOY NOMRET DELTA ; DRGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOZ NOMDEN DELTA ; DGXGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOZ NOMMOX DELTA ; DGYGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOZ NOMMOY DELTA ; DGZGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOZ NOMMOZ DELTA ; DRETGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMMOZ NOMRET DELTA ; DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMRET NOMDEN DELTA ; DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMRET NOMMOX DELTA ; DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMRET NOMMOY DELTA ; DGZRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMRET NOMMOZ DELTA ; DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN1 PCEN1 NOMRET NOMRET DELTA ; * Test des comparaisons jacobien exact-jacobien numerique * Test des comparaisons jacobien exact-jacobien numerique ************************************************************** 'SI' (('ABS'(DRR)) < DELTA) ; ERR1 = ('ABS' (DRRN '-' DRR)) ; 'SINON' ; ERR1 = ('ABS' (DRRN '-' DRR)) '/' ('ABS' (DRR)) ; 'FINSI' ; * OPTION DONN 5 ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXR)) < DELTA) ; ERR1 = ('ABS' (DGXRN '-' DGXR)) ; 'SINON' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '/' ('ABS' (DGXR)) ; 'FINSI' ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYR)) < DELTA) ; ERR1 = ('ABS' (DGYRN '-' DGYR)) ; 'SINON' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '/' ('ABS' (DGYR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZR)) < DELTA) ; ERR1 = ('ABS' (DGZRN '-' DGZR)) ; 'SINON' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '/' ('ABS' (DGZR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4 T1'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DRETR)) < DELTA) ; ERR1 = ('ABS' (DRETRN '-' DRETR)) ; 'SINON' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '/' ('ABS' (DRETR)) ; 'FINSI' ; ************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** * 'OPTION' DONN 5 ; 'SI' (('ABS'(DRGX)) < DELTA) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'SINON' ; ERR1 = ('ABS' (DRGXN '-' DRGX)) '/' ('ABS' (DRGX)) ; 'FINSI' ; *************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6 T1'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXGX)) < DELTA) ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) ; 'SINON' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' ('ABS' (DGXGX)) ; 'FINSI' ; ***************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGX)) < DELTA) ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) ; 'SINON' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' ('ABS' (DGYGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGX)) < DELTA) ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) ; 'SINON' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' ('ABS' (DGZGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGX)) < DELTA) ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) ; 'SINON' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '/' ('ABS' (DRETGX)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGY)) < DELTA) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'SINON' ; ERR1 = ('ABS' (DRGYN '-' DRGY)) '/' ('ABS' (DRGY)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGY)) < DELTA) ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) ; 'SINON' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' ('ABS' (DGXGY)) ; 'FINSI' ; ******************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGY)) < DELTA) ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) ; 'SINON' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' ('ABS' (DGYGY)) ; 'FINSI' ; * OPTION DONN 5 ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGY)) < DELTA) ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) ; 'SINON' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' ('ABS' (DGZGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGY)) < DELTA) ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) ; 'SINON' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '/' ('ABS' (DRETGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGZ)) < DELTA) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) '/' ('ABS' (DRGZ)) ; 'FINSI' ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGZ)) < DELTA) ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' ('ABS' (DGXGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGZ)) < DELTA) ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' ('ABS' (DGYGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGZ)) < DELTA) ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' ('ABS' (DGZGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGZ)) < DELTA) ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '/' ('ABS' (DRETGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20 T1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRRET)) < DELTA) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) ; 'SINON' ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '/' ('ABS' (DRRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21 T1'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXRET)) < DELTA) ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) ; 'SINON' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '/' ('ABS' (DGXRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22 T1'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGYRET)) < DELTA) ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) ; 'SINON' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '/' ('ABS' (DGYRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23 T1'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGZRET)) < DELTA) ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) ; 'SINON' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '/' ('ABS' (DGZRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24 T1'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DRETRET)) < DELTA) ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) ; 'SINON' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' ('ABS' (DRETRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25 T1'; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST2 *************************************** ***************************************************** ***************************************************** * * On compare le jacobien et la variation du residu * en $DOM1 . 'CENTRE' par rapport à une variation * infinitésimal en $DOM27 . 'CENTRE' * * Les grandeurs pour adimesionner les erreurs ro0 = 'EXTRAIRE' RN0 PCEN1 'SCAL' ; CN20 = GAMMAN '*' (PN0 '/' RN0) ; cson0 = ('EXTRAIRE' CN20 PCEN1 'SCAL') '**' 0.5 ; ret0 = ('EXTRAIRE' RETN0 PCEN1 'SCAL') '**' 0.5 ; * * Le jacobien exact. * DRR = d(RES_ro)/dro (variable primale en PCEN27, variable duale en PCEN1) ; * DGXR = d(RES_gx)/dro (variable primale en PCEN27, variable duale en PCEN1) ; * ... * Le jacobien numerique DELTA = 1.0D-7 ; DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMDEN NOMDEN DELTA ; DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMDEN NOMMOX DELTA ; DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMDEN NOMMOY DELTA ; DGZRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMDEN NOMMOZ DELTA ; DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMDEN NOMRET DELTA ; DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOX NOMDEN DELTA ; DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOX NOMMOX DELTA ; DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOX NOMMOY DELTA ; DGZGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOX NOMMOZ DELTA ; DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOX NOMRET DELTA ; DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOY NOMDEN DELTA ; DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOY NOMMOX DELTA ; DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOY NOMMOY DELTA ; DGZGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOY NOMMOZ DELTA ; DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOY NOMRET DELTA ; DRGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOZ NOMDEN DELTA ; DGXGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOZ NOMMOX DELTA ; DGYGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOZ NOMMOY DELTA ; DGZGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOZ NOMMOZ DELTA ; DRETGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMMOZ NOMRET DELTA ; DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMRET NOMDEN DELTA ; DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMRET NOMMOX DELTA ; DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMRET NOMMOY DELTA ; DGZRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMRET NOMMOZ DELTA ; DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN1 NOMRET NOMRET DELTA ; * Test des comparaisons jacobien exact-jacobien numerique ************************************************************** 'SI' (('ABS'(DRR)) < DELTA) ; ERR1 = ('ABS' (DRRN '-' DRR)) ; 'SINON' ; ERR1 = ('ABS' (DRRN '-' DRR)) '/' ('ABS' (DRR)) ; 'FINSI' ; * OPTION DONN 5 ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXR)) < DELTA) ; ERR1 = ('ABS' (DGXRN '-' DGXR)) ; 'SINON' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '/' ('ABS' (DGXR)) ; 'FINSI' ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYR)) < DELTA) ; ERR1 = ('ABS' (DGYRN '-' DGYR)) ; 'SINON' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '/' ('ABS' (DGYR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZR)) < DELTA) ; ERR1 = ('ABS' (DGZRN '-' DGZR)) ; 'SINON' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '/' ('ABS' (DGZR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4 T2'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DRETR)) < DELTA) ; ERR1 = ('ABS' (DRETRN '-' DRETR)) ; 'SINON' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '/' ('ABS' (DRETR)) ; 'FINSI' ; ************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGX)) < DELTA) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'SINON' ; ERR1 = ('ABS' (DRGXN '-' DRGX)) '/' ('ABS' (DRGX)) ; 'FINSI' ; *************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6 T2'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXGX)) < DELTA) ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) ; 'SINON' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' ('ABS' (DGXGX)) ; 'FINSI' ; ***************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGX)) < DELTA) ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) ; 'SINON' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' ('ABS' (DGYGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGX)) < DELTA) ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) ; 'SINON' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' ('ABS' (DGZGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGX)) < DELTA) ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) ; 'SINON' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '/' ('ABS' (DRETGX)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGY)) < DELTA) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'SINON' ; ERR1 = ('ABS' (DRGYN '-' DRGY)) '/' ('ABS' (DRGY)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGY)) < DELTA) ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) ; 'SINON' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' ('ABS' (DGXGY)) ; 'FINSI' ; ******************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGY)) < DELTA) ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) ; 'SINON' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' ('ABS' (DGYGY)) ; 'FINSI' ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGY)) < DELTA) ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) ; 'SINON' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' ('ABS' (DGZGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGY)) < DELTA) ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) ; 'SINON' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '/' ('ABS' (DRETGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGZ)) < DELTA) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) '/' ('ABS' (DRGZ)) ; 'FINSI' ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGZ)) < DELTA) ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' ('ABS' (DGXGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGZ)) < DELTA) ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' ('ABS' (DGYGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGZ)) < DELTA) ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' ('ABS' (DGZGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGZ)) < DELTA) ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '/' ('ABS' (DRETGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20 T2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRRET)) < DELTA) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) ; 'SINON' ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '/' ('ABS' (DRRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21 T2'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXRET)) < DELTA) ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) ; 'SINON' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '/' ('ABS' (DGXRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22 T2'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGYRET)) < DELTA) ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) ; 'SINON' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '/' ('ABS' (DGYRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23 T2'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGZRET)) < DELTA) ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) ; 'SINON' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '/' ('ABS' (DGZRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24 T2'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DRETRET)) < DELTA) ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) ; 'SINON' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' ('ABS' (DRETRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25 T2'; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST3 *************************************** ***************************************************** ***************************************************** * * On observe la variation du residu en $DOM27 . 'CENTRE' * par rapport à une variation infinitésimal en * $DOM27 . 'CENTRE' (NB : DOM27 est sur le bord!). * * Les grandeurs pour adimesionner les erreurs ro0 = 'EXTRAIRE' RN0 PCEN27 'SCAL' ; CN20 = GAMMAN '*' (PN0 '/' RN0) ; cson0 = ('EXTRAIRE' CN20 PCEN27 'SCAL') '**' 0.5 ; ret0 = ('EXTRAIRE' RETN0 PCEN27 'SCAL') '**' 0.5 ; * * Le jacobien exact. * DRR = d(RES_ro)/dro (variable primale en PCEN27, variable duale en PCEN1) ; * DGXR = d(RES_gx)/dro (variable primale en PCEN27, variable duale en PCEN1) ; * ... * Le jacobien numerique DELTA = 1.0D-7 ; DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMDEN NOMDEN DELTA ; DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMDEN NOMMOX DELTA ; DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMDEN NOMMOY DELTA ; DGZRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMDEN NOMMOZ DELTA ; DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMDEN NOMRET DELTA ; DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOX NOMDEN DELTA ; DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOX NOMMOX DELTA ; DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOX NOMMOY DELTA ; DGZGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOX NOMMOZ DELTA ; DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOX NOMRET DELTA ; DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOY NOMDEN DELTA ; DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOY NOMMOX DELTA ; DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOY NOMMOY DELTA ; DGZGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOY NOMMOZ DELTA ; DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOY NOMRET DELTA ; DRGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOZ NOMDEN DELTA ; DGXGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOZ NOMMOX DELTA ; DGYGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOZ NOMMOY DELTA ; DGZGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOZ NOMMOZ DELTA ; DRETGZN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMMOZ NOMRET DELTA ; DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMRET NOMDEN DELTA ; DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMRET NOMMOX DELTA ; DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMRET NOMMOY DELTA ; DGZRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMRET NOMMOZ DELTA ; DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO UINF UPRI PCEN27 PCEN27 NOMRET NOMRET DELTA ; * Test des comparaisons jacobien exact-jacobien numerique ************************************************************** 'SI' (('ABS'(DRR)) < DELTA) ; ERR1 = ('ABS' (DRRN '-' DRR)) ; 'SINON' ; ERR1 = ('ABS' (DRRN '-' DRR)) '/' ('ABS' (DRR)) ; 'FINSI' ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXR)) < DELTA) ; ERR1 = ('ABS' (DGXRN '-' DGXR)) ; 'SINON' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '/' ('ABS' (DGXR)) ; 'FINSI' ; *********************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYR)) < DELTA) ; ERR1 = ('ABS' (DGYRN '-' DGYR)) ; 'SINON' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '/' ('ABS' (DGYR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZR)) < DELTA) ; ERR1 = ('ABS' (DGZRN '-' DGZR)) ; 'SINON' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '/' ('ABS' (DGZR)) ; 'FINSI' ; ************************ 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DRETR)) < DELTA) ; ERR1 = ('ABS' (DRETRN '-' DRETR)) ; 'SINON' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '/' ('ABS' (DRETR)) ; 'FINSI' ; ************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGX)) < DELTA) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'SINON' ; ERR1 = ('ABS' (DRGXN '-' DRGX)) '/' ('ABS' (DRGX)) ; 'FINSI' ; *************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXGX)) < DELTA) ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) ; 'SINON' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' ('ABS' (DGXGX)) ; 'FINSI' ; ***************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGX)) < DELTA) ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) ; 'SINON' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' ('ABS' (DGYGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGX)) < DELTA) ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) ; 'SINON' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' ('ABS' (DGZGX)) ; 'FINSI' ; ****************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGX)) < DELTA) ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) ; 'SINON' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '/' ('ABS' (DRETGX)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGY)) < DELTA) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'SINON' ; ERR1 = ('ABS' (DRGYN '-' DRGY)) '/' ('ABS' (DRGY)) ; 'FINSI' ; ******************************* 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGY)) < DELTA) ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) ; 'SINON' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' ('ABS' (DGXGY)) ; 'FINSI' ; ******************************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGYGY)) < DELTA) ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) ; 'SINON' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' ('ABS' (DGYGY)) ; 'FINSI' ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGY)) < DELTA) ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) ; 'SINON' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' ('ABS' (DGZGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGY)) < DELTA) ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) ; 'SINON' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '/' ('ABS' (DRETGY)) ; 'FINSI' ; **************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRGZ)) < DELTA) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) '/' ('ABS' (DRGZ)) ; 'FINSI' ; *************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGXGZ)) < DELTA) ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' ('ABS' (DGXGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; * 'OPTION' DONN 5 ; ************************************************************** 'SI' (('ABS'(DGYGZ)) < DELTA) ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' ('ABS' (DGYGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DGZGZ)) < DELTA) ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) ; 'SINON' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' ('ABS' (DGZGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRETGZ)) < DELTA) ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) ; 'SINON' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '/' ('ABS' (DRETGZ)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; ************************************************************** 'SI' (('ABS'(DRRET)) < DELTA) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) ; 'SINON' ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '/' ('ABS' (DRRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************** 'SI' (('ABS'(DGXRET)) < DELTA) ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) ; 'SINON' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '/' ('ABS' (DGXRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGYRET)) < DELTA) ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) ; 'SINON' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '/' ('ABS' (DGYRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DGZRET)) < DELTA) ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) ; 'SINON' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '/' ('ABS' (DGZRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; **************************************************************** 'SI' (('ABS'(DRETRET)) < DELTA) ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) ; 'SINON' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' ('ABS' (DRETRET)) ; 'FINSI' ; ***************** 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ***************************************************************** ***************************************************************** ***************************************************************** 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales