* fichier : lapn_impl.dgibi
************************************************************************
************************************************************************
***********************************************************
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations d'Euler pour un gaz parfait ****
**** OPERATEURS PRIM, PENT, LAPN ****
**** Implicit: calcul du jacobien du residu ****
**** ****
**** Cas gaz monoespece, "calorically perfect" ****
**** ****
**** Methodes: DIAMANT ****
**** ****
**** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2000 ****
**** S. GOUNAND DEN/DM2S/SFME/LTMF AOUT 2001 ****
***********************************************************
***********************************************************
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X' ;
*
*** GRAPH
*
GRAPH = FAUX ;
* GRAPH = VRAI ;
ERRTOL = 1.0D-3 ;
***************************
***** 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) ;
DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ;
DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ;
DOM9 = DOM9 'COULEUR' 'ROUG ' ;
DOM6 = DOM6 'COULEUR' 'VERT' ;
DOM7 = DOM7 'COULEUR' 'JAUN' ;
DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET'
DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ELIMINATION' 0.0001 ;
*
**** On calcule le JACOBIAN dans le centre de DOM9;
* qui doit dependre de la valeur en DOM9, DOM6, mais il ne doit
* pas dependre de DOM7
*
$DOMTOT = 'MODELISER' DOMTOT 'EULER';
$DOM6 = 'MODELISER' DOM6 'EULER';
$DOM7 = 'MODELISER' DOM7 'EULER';
$DOM9 = 'MODELISER' DOM9 'EULER';
MDOM6 = TDOM6 . 'QUAF' ;
MDOM7 = TDOM7 . 'QUAF' ;
MDOM9 = TDOM9 . 'QUAF' ;
**** old stuff $DOMTOT = 'DOMA' DOMTOT ;
MDOMTOT = TDOMTOT . 'QUAF' ;
'ELIMINATION' (MDOMTOT ET MDOM6) 0.0001 ;
'ELIMINATION' (MDOMTOT ET MDOM7) 0.0001 ;
'ELIMINATION' (MDOMTOT ET MDOM9) 0.0001 ;
CSONN = (GAMMAN '*' PN0) '/' RN0 ;
UXN0 = 0.2 * CSONN ;
UYN0 = 0.3 * CSONN ;
'TXX' 1.D0 'TYY' 1.D0 'TXY' 1.D0 ;
*
*** retgd
*
ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
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 $DOM9 '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
* 'TAUI' tauimp
LISTINCO ;
***********************
***** Le residu *******
***********************
DEBRN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
DEBGNX0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
DEBGNY0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
DEBRETN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*****************************************************
*****************************************************
******* TEST1 ***************************************
*****************************************************
*****************************************************
*
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM9 'CENTRE'
*
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 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' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
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
* '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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (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' (DRETRN '-' DRETR)) '*'
(ro0 '/' (ret0 '*' cson0)) ;
'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 4';
'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' ;
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
* '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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
(ro0 / ret0) ;
'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'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) ;
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
* '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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
(ro0 / ret0) ;
'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 12';
'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
* '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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (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 13';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
(ret0 '/' (ro0 '*' cson0 * cson0)) ;
'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
(ret0 '/' (ro0 '*' cson0 * cson0)) ;
'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST2 ***************************************
*****************************************************
*****************************************************
*
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM6 'CENTRE'
*
ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
cson0 = 'EXTRAIRE' CSONN PCELL 'SCAL' ;
ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 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' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
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
LISTINCO ;
***********************
***** Le residu *******
***********************
DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (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' (DRETRN '-' DRETR)) '*'
(ro0 '/' (ret0 '*' cson0)) ;
'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
***************************************************************************
***************************************************************************
***** On calcule les residues pour gnx1 = gnx0 '+' (DELTA ro0 cson0) *****
***************************************************************************
***************************************************************************
DELTA = 1.0D-6 ;
gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRGX=' DRGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '*'
(ro0 / ret0) ;
'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
***************************************************************************
***************************************************************************
***** On calcule les residues pour gny1 = gny0 '+' (DELTA ro0 cson0) ******
***************************************************************************
***************************************************************************
DELTA = 1.0D-6 ;
gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
gny1 = gny0 '+' (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) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0 '*' cson0) ;
DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0 '*' cson0) ;
DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0 '*' cson0) ;
DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0 '*' cson0) ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '*'
(ro0 / ret0) ;
'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 12';
'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
LISTINCO ;
***********************
***** Le residu *******
***********************
DEBRN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 1) ;
DEBGNX1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 2) ;
DEBGNY1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 3) ;
DEBRETN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 4) ;
*
**** On calcule le jacobien numeriquement
*
DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (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 13';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '*'
(ret0 '/' (ro0 '*' cson0 * cson0)) ;
'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '*'
(ret0 '/' (ro0 '*' cson0 * cson0)) ;
'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' cson0 ;
'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST3 ***************************************
*****************************************************
*****************************************************
*
* On observe que la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM7 'CENTRE' doit etre nulle.
* Donc les elements du jacobien relatifs à ça
* doivent etre nuls.
*
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
4 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
'RUXN' 0.0 'RUYN' 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' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
'MESSAGE' ('CHAINE' 'DRR =' DRR ' DGXR =' DGXR) ;
'MESSAGE' ('CHAINE' 'DGYR=' DGYR ' DRETR=' DRETR) ;
'MESSAGE' ('CHAINE' 'DRGX =' DRGX ' DGXGX =' DGXGX) ;
'MESSAGE' ('CHAINE' 'DGYGX=' DGYGX ' DRETGX=' DRETGX) ;
'MESSAGE' ('CHAINE' 'DRGY =' DRGY ' DGXGY =' DGXGY) ;
'MESSAGE' ('CHAINE' 'DGYGY=' DGYGY ' DRETGY=' DRETGY) ;
'MESSAGE' ('CHAINE' 'DRRET =' DRRET ' DGXRET =' DGXRET) ;
'MESSAGE' ('CHAINE' 'DGYRET=' DGYRET ' DRETRET=' DRETRET) ;
'SI' (('MAXIMUM'
('PROG' DRR DGXR DGYR DRETR
DRGX DGXGX DGYGX DRETGX
DRGY DGXGY DGYGY DRETGY
DRRET DGXRET DGYRET DRETRET ) 'ABS' )
> ERRTOL) ;
'MESSAGE' 'Problem 17' ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
					© Cast3M 2003 - Tous droits réservés.
					Mentions légales