Télécharger konv_impl2ord_murs.dgibi
* fichier : konv_impl2ord_murs.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 **** **** (2nd order consistent) **** **** **** **** Cas gaz monoespece, "calorically perfect" **** **** **** **** Methodes: VLH **** **** **** **** A. BECCANTINI DRN/DMT/SEMT/LTMF SEPT 2000 **** *********************************************************** *********************************************************** 'OPTION' 'ELEM' QUA4 ; 'OPTION' 'ECHO' 0 ; 'OPTION' 'TRAC' 'X' ; 'MESSAGE' 'A eliminer' ; 'FIN' ; * *** GRAPH * GRAPH = FAUX ; * GRAPH = VRAI ; ERRTOL = 1.0D-3 ; ***************************************************** ***************************************************** ******** 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' VNLIM*'CHPOINT' IARN*'CHPOINT' IAVN*'CHPOINT' IAPN*'CHPOINT' LISTINCO*'LISTMOTS' 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 ; GRN IARN0 CHAMRN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN RNCEL ; GPN IAPN0 CHAMPN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN PRES ; GVN IAVN0 CHAMVN = 'PENT' $MODE 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVN VITESSE 'CLIM' VNLIM ; * IARN0, IAPN0, IAVN0 ne sont pas utilisés $MODE RNCEL GRN IARN VITESSE GVN IAVN PRES GPN IAPN GAMN ; $MODE ROF VITF PF GAMF LISTINCO ; 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 ICEL = NDIM '+' 1 ; '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 l'énergie totale 'SI' ('EGA' ICEL 4) ; DELTATOT = (EPSILON * ret0) ; 'NATURE' 'DISCRET') 'ET' RETN ; RNCEL = 'COPIER' RN ; GNCEL = 'COPIER' GN ; 'FINSI' ; GRN IARN0 CHAMRN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN RNCEL ; GPN IAPN0 CHAMPN = 'PENT' $MODE 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN PRES ; GVN IAVN0 CHAMVN = 'PENT' $MODE 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVN VITESSE 'CLIM' VNLIM ; * IARN0, IAPN0, IAVN0 ne sont pas utilisés $MODE RNCEL GRN IARN VITESSE GVN IAVN PRES GPN IAPN GAMN ; $MODE ROF VITF PF GAMF LISTINCO ; VAL1 = 'EXTRAIRE' CHPRES1 PDUAL MOTDUA ; 'FINPROC' ((VAL1 '-' VAL0) '/' DELTATOT) ; ***************************************************** ***************************************************** ******** FIN PROCEDURES ***************************** ***************************************************** ***************************************************** ***************************************************** *************************** ***** DOMAINE SPATIAL **** *************************** A0 = 0.0D0 0.0D0; A1 = 1.0D0 0.0D0; A2 = 2.0D0 0.0D0; A3 = 3.0D0 0.0D0; A0A1 = A0 'DROIT' 1 A1; A1A2 = A1 'DROIT' 1 A2; A2A3 = A2 'DROIT' 1 A3; DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ; DOMTOT = DOM1 ; DOMCON = 'CONTOUR' DOMTOT ; $DOMTOT = 'MODELISER' DOMTOT 'EULER'; $DOMCON = 'MODELISER' DOMCON 'EULER'; MDOMCON = TDOMCON . 'QUAF' ; MDOMTOT = TDOMTOT . 'QUAF' ; 'ELIMINATION' (MDOMTOT ET MDOMCON) 0.0001 ; ************************************** ************************************** ************************************** ***** TEST 1: VNLIM imposée ********** ************************************** ************************************** ************************************** 'UY' 0.0 ; *************************************************** ***** Densité, pression, vitesse, gamma *********** *************************************************** 'NATU' 'DISCRET' ; CSONN = (GAMMAN '*' PN0) '/' RN0 ; UXN0 = 0.2 * CSONN ; UYN0 = 0.3 * CSONN ; ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ; 'NATU' 'DISCRET' ; 'MESSAGE' 'Problem 0' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' GRAPH; 'FINSI' ; * **** 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) * DEBRETN0 le residu concernant l'enrgie totale par unité de volume * * Noms des variables NOMDEN = 'RN ' ; NOMMOX = 'RUXN' ; NOMMOY = 'RUYN' ; NOMRET = 'RETN' ; * Metode METO = 'VLH' ; GRN IARN CHAMRN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN RN0 ; GPN IAPN CHAMPN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN PRES ; GVN IAVN CHAMVN = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVN VITESSE 'CLIM' VNLIM ; IARN = IARN ; 2 'P1' 0.15 'P2' 0.25 ; IAPN = IAPN * 0.75 ; $DOMTOT RN0 GRN IARN VITESSE GVN IAVN PRES GPN IAPN GAMMAN ; $DOMTOT LISTINCO ROF VITF PF GAMF ; $DOMTOT LISTINCO ROF VITF PF GAMF RN0 VITESSE PRES GAMMAN GRN GVN GPN IARN IAVN IAPN CHAMRN CHAMVN CHAMPN VNLIM ; * * On compare le jacobien et la variation du residu * en $DOMTOT . 'CENTRE' par rapport à une variation * infinitésimal en $DOMTOT .'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-5 ; DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMDEN DELTA ; DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMMOX DELTA ; DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMMOY DELTA ; DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMRET DELTA ; DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMDEN DELTA ; DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMMOX DELTA ; DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMMOY DELTA ; DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMRET DELTA ; DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMDEN DELTA ; DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMMOX DELTA ; DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMMOY DELTA ; DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMRET DELTA ; DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMDEN DELTA ; DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMMOX DELTA ; DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMMOY DELTA ; DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMRET DELTA ; * Test des comparaisons jacobien exact-jacobien numerique ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '*' (ro0 '/' (ret0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*' (ro0 / ret0) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*' (ro0 / ret0) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ****************************************** ****************************************** ****************************************** ***** TEST 2: VNLIM non imposée ********** ****************************************** ****************************************** ****************************************** *************************************************** ***** Densité, pression, vitesse, gamma *********** *************************************************** 'NATU' 'DISCRET' ; CSONN = (GAMMAN '*' PN0) '/' RN0 ; UXN0 = 0.2 * CSONN ; UYN0 = 0.3 * CSONN ; ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ; 'NATU' 'DISCRET' ; 'MESSAGE' 'Problem 0' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' GRAPH; 'FINSI' ; * **** 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) * DEBRETN0 le residu concernant l'enrgie totale par unité de volume * * Noms des variables NOMDEN = 'RN ' ; NOMMOX = 'RUXN' ; NOMMOY = 'RUYN' ; NOMRET = 'RETN' ; * Metode METO = 'VLH' ; GRN IARN CHAMRN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN RN0 ; GPN IAPN CHAMPN = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE' NOMRN PRES ; GVN IAVN CHAMVN = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE' NOMVN VITESSE 'CLIM' VNLIM ; IARN = IARN ; 2 'P1' 0.15 'P2' 0.25 ; IAPN = IAPN * 0.75 ; $DOMTOT RN0 GRN IARN VITESSE GVN IAVN PRES GPN IAPN GAMMAN ; $DOMTOT LISTINCO ROF VITF PF GAMF ; $DOMTOT ROF VITF PF GAMF LISTINCO RN0 VITESSE PRES GAMMAN GRN GVN GPN IARN IAVN IAPN CHAMRN CHAMVN CHAMPN VNLIM ; * * On compare le jacobien et la variation du residu * en $DOMTOT 'CENTRE' par rapport à une variation * infinitésimal en $DOMTOT '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-5 ; DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMDEN DELTA ; DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMMOX DELTA ; DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMMOY DELTA ; DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMDEN NOMRET DELTA ; DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMDEN DELTA ; DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMMOX DELTA ; DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMMOY DELTA ; DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOX NOMRET DELTA ; DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMDEN DELTA ; DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMMOX DELTA ; DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMMOY DELTA ; DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMMOY NOMRET DELTA ; DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMDEN DELTA ; DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMMOX DELTA ; DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMMOY DELTA ; DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN VNLIM IARN IAVN IAPN LISTINCO PCEN1 PCEN1 NOMRET NOMRET DELTA ; * Test des comparaisons jacobien exact-jacobien numerique ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '*' (ro0 '/' (ret0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*' (ro0 / ret0) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*' (ro0 / ret0) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales