* fichier : lapn_impl3D.dgibi ************************************************************************ ************************************************************************ *********************************************************** *********************************************************** **** APPROCHE VF "Cell-Centered Formulation" pour la **** **** solution des **** **** Equations d'Euler pour un gaz parfait **** **** OPERATEURS PRIM, PRET, LAPN **** **** Implicit: calcul du jacobien du residu **** **** **** **** Cas gaz monoespece, "calorically perfect" **** **** 3D **** **** **** **** Methodes: DIAMANT **** **** **** **** A. BECCANTINI SFME/LTMF AOUT 2001 **** **** S. GOUNAND DEN/DM2S/SFME/LTMF AOUT 2001 **** *********************************************************** *********************************************************** 'OPTION' 'DIME' 3 'ELEM' 'CUB8' 'ECHO' 0 'TRAC' 'X' ; * *** GRAPH * GRAPH = FAUX ; * GRAPH = VRAI ; ERRTOL = 1.0D-3 ; *************************** ***** 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 ; * **** On calcule le JACOBIAN dans le 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 ; CSONN = (GAMMAN '*' PN0) '/' RN0 ; UXN0 = 0.2 * CSONN ; UYN0 = 0.3 * CSONN ; UZN0 = 0.4 * CSONN ; 'TXX' 0.D0 'TYY' 0.D0 'TZZ' 0.D0 'TXY' 0.D0 'TXZ' 0.D0 'TYZ' 0.D0 ; * *** retgd * ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0) '+' (UZN0 * UZN0)) ; RETN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN) ; CV=PI ; TN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' ((PN0 '/' (GAMMAN '-' 1.0)) '/' (RN0 '*' CV)) ; 'MESSAGE' 'Problem 0' ; 'ERREUR' 5 ; 'FINSI' ; 'SI' GRAPH; 'FINSI' ; * ***** Les valeurs en $DOM1 'CENTRE' * ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ; cson0 = 'EXTRAIRE' CSONN PCON 'SCAL' ; ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ; *********************** **** Les CHPOINTs **** *********************** RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** Le residu ******* *********************** DEBRN0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 3) ; DEBGNZ0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 5) ; ***************************************************** ***************************************************** ******* TEST1 *************************************** ***************************************************** ***************************************************** 'MESSAGE' '**************' ; 'MESSAGE' ' TEST 1 ' ; 'MESSAGE' '**************' ; * * On compare le jacobien et la variation du residu * en $DOM1 'CENTRE' par rapport à une variation * infinitésimal en $DOM1 'CENTRE' * 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 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' ; 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' ; 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' ; 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' ; 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' ; ********************************************************************* ********************************************************************* ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) ******* ********************************************************************* ********************************************************************* DELTA = 1.0D-6 ; ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT * 'VIMP' vitimp * 'TAUI' tauimp LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRN=' DGZRN ' DGZR=' DGZR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '*' (ro0 '/' (ret0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-6 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT * 'VIMP' vitimp * 'TAUI' tauimp LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGXN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGXN=' DGZGXN ' DGZGX=' DGZGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-6 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT * 'VIMP' vitimp * 'TAUI' tauimp LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGYN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGYN=' DGZGYN ' DGZGY=' DGZGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnz1 = gnz0 '+' (DELTA ro0 cson0) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-6 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; gnz1 = gnz0 '+' (ro0 '*' cson0 '*' DELTA) ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT * 'VIMP' vitimp * 'TAUI' tauimp LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGZN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGZN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGZN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGZN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGZN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'MESSAGE' ('CHAINE' 'DRGZN=' DRGZN ' DRGZ=' DRGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGZN=' DGXGZN ' DGXGZ=' DGXGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGZN=' DGYGZN ' DGYGZ=' DGYGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGZN=' DGZGZN ' DGZGZ=' DGZGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGZN=' DRETGZN ' DRETGZ=' DRETGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-6 ; ret1 = ret0 '*' (1. '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT * 'VIMP' vitimp * 'TAUI' tauimp LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRETN=' DGZRETN ' DGZRET=' DGZRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST2 *************************************** ***************************************************** ***************************************************** 'MESSAGE' '**************' ; 'MESSAGE' ' TEST 2 ' ; 'MESSAGE' '**************' ; * * On compare le jacobien et la variation du residu * en $DOM1 . 'CENTRE' par rapport à une variation * infinitésimal en $DOM27 'CENTRE' * ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ; cson0 = 'EXTRAIRE' CSONN PCELL 'SCAL' ; ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 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' ; 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' ; 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' ; 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' ; 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' ; ********************************************************************* ********************************************************************* ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) ******* ********************************************************************* ********************************************************************* DELTA = 1.0D-8 ; ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRN=' DGZRN ' DGZR=' DGZR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '*' (ro0 '/' (ret0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; gnz0 = 'EXTRAIRE' GN0 PCELL 'UZ' ; gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGXN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGXN=' DGZGXN ' DGZGX=' DGZGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ; gnz0 = 'EXTRAIRE' GN0 PCELL 'UZ' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGYN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGYN=' DGZGYN ' DGZGY=' DGZGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnz1 = gnz0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ; gnz0 = 'EXTRAIRE' GN0 PCELL 'UZ' ; gnz1 = gnz0 '+' (ro0 '*' cson0 '*' DELTA) ; gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGZN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGZN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGZN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGZN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGZN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'MESSAGE' ('CHAINE' 'DRGZN=' DRGZN ' DRGZ=' DRGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGZN=' DGXGZN ' DGXGZ=' DGXGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGZN=' DGYGZN ' DGYGZ=' DGYGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGZN=' DGZGZN ' DGZGZ=' DGZGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGZN=' DRETGZN ' DRETGZ=' DRETGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; ret1 = ret0 '*' (1. '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRETN=' DGZRETN ' DGZRET=' DGZRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; ***************************************************** ***************************************************** ******* TEST3 *************************************** ***************************************************** ***************************************************** 'MESSAGE' '**************' ; 'MESSAGE' ' TEST 3 ' ; 'MESSAGE' '**************' ; * * 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 valeurs en $DOM1 . 'CENTRE' * ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ; cson0 = 'EXTRAIRE' CSONN PCON 'SCAL' ; ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ; *********************** ***** Le residu ******* *********************** DEBRN0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 1) ; DEBGNX0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 2) ; DEBGNY0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 3) ; DEBGNZ0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 4) ; DEBRETN0 = 'EXTRAIRE' CHPRES0 PCON ('EXTRAIRE' LISTINCO 5) ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0 'NATURE' 'DISCRET') ; 5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0 'NATURE' 'DISCRET') 'ET' 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 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' ; 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' ; 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' ; 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' ; 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' ; ********************************************************************* ********************************************************************* ***** On calcule les residues pour ro1 = ro0 * (1.'+' DELTA) ******* ********************************************************************* ********************************************************************* DELTA = 1.0D-8 ; ro1 = ro0 '*' (1 '+' DELTA) ; GN = 'COPIER' GN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRN '-' DRR)) '*' (ro0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 1'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRN '-' DGXR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 2'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRN '-' DGYR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 3'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRN '-' DGZR)) '*' (ro0 '/' (ro0 '*' cson0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRN=' DGZRN ' DGZR=' DGZR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 4'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRN '-' DRETR)) '*' (ro0 '/' (ret0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 5'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; gnx1 = gnx0 '+' (ro0 '*' cson0 '*' DELTA) ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGXN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGXN '-' DRGX)) ; 'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 6'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 7'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 8'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGXN '-' DGZGX)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGXN=' DGZGXN ' DGZGX=' DGZGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 9'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 10'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; gny1 = gny0 '+' (ro0 '*' cson0 '*' DELTA) ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGYN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGYN '-' DRGY)) ; 'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 11'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 12'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 13'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGYN '-' DGZGY)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGYN=' DGZGYN ' DGZGY=' DGZGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 14'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 15'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour gnz1 = gnz0 '+' (DELTA ro0 cson0) ***** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ; gnz0 = 'EXTRAIRE' GN0 PCON 'UZ' ; gnz1 = gnz0 '+' (ro0 '*' cson0 '*' DELTA) ; gny0 = 'EXTRAIRE' GN0 PCON 'UY' ; RN = 'COPIER' RN0 ; RETN = 'COPIER' RETN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * DRGZN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ; DGXGZN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ; DGYGZN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ; DGZGZN = (DEBGNZ1 '-' DEBGNZ0) '/' (DELTA '*' ro0 '*' cson0) ; DRETGZN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ; ERR1 = ('ABS' (DRGZN '-' DRGZ)) ; 'MESSAGE' ('CHAINE' 'DRGZN=' DRGZN ' DRGZ=' DRGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 16'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXGZN '-' DGXGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGXGZN=' DGXGZN ' DGXGZ=' DGXGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 17'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYGZN '-' DGYGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGYGZN=' DGYGZN ' DGYGZ=' DGYGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 18'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZGZN '-' DGZGZ)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DGZGZN=' DGZGZN ' DGZGZ=' DGZGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 19'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETGZN '-' DRETGZ)) '*' (ro0 / ret0) ; 'MESSAGE' ('CHAINE' 'DRETGZN=' DRETGZN ' DRETGZ=' DRETGZ) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 20'; 'ERREUR' 5 ; 'FINSI' ; *************************************************************************** *************************************************************************** ***** On calcule les residues pour ret1 = ret0 '*' (1. '+' DELTA) ****** *************************************************************************** *************************************************************************** DELTA = 1.0D-8 ; ret1 = ret0 '*' (1. '+' DELTA) ; RN = 'COPIER' RN0 ; GN = 'COPIER' GN0 ; CV = PI ; MU = '*' PI PI ; KAPPA = '*' ('*' PI PI) PI ; T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' * * * $DOMTOT MU KAPPA CV RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT LISTINCO ; *********************** ***** 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) ; * **** On calcule le jacobien numeriquement * 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) ; ERR1 = ('ABS' (DRRETN '-' DRRET)) '*' (ret0 '/' (ro0 '*' cson0)) ; 'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 21'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 22'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 23'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DGZRETN '-' DGZRET)) '*' (ret0 '/' (ro0 '*' cson0 * cson0)) ; 'MESSAGE' ('CHAINE' 'DGZRETN=' DGZRETN ' DGZRET=' DGZRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 24'; 'ERREUR' 5 ; 'FINSI' ; ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ; 'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ; 'SI' (ERR1 > ERRTOL) ; 'MESSAGE' 'Problem 25'; 'ERREUR' 5 ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales