* 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 ;
DOM1 = SUR1 'VOLUME' 'TRAN' 1 (0.0 0.0 1.0) ;
DOM2 = DOM1 'PLUS' (1.0 0.0 0.0) ;
DOM3 = DOM1 'PLUS' (-1.0 0.0 0.0) ;
DOM4 = DOM1 'PLUS' (0.0 1.0 0.0) ;
DOM5 = DOM1 'PLUS' (0.0 -1.0 0.0) ;
DOM6 = DOM1 'PLUS' (1.0 1.0 0.0) ;
DOM7 = DOM1 'PLUS' (-1.0 -1.0 0.0) ;
DOM8 = DOM1 'PLUS' (1.0 -1.0 0.0) ;
DOM9 = DOM1 'PLUS' (-1.0 1.0 0.0) ;
DOM10 = DOM1 'PLUS' (0.0 0.0 1.0) ;
DOM11 = DOM1 'PLUS' (1.0 0.0 1.0) ;
DOM12 = DOM1 'PLUS' (-1.0 0.0 1.0) ;
DOM13 = DOM1 'PLUS' (0.0 1.0 1.0) ;
DOM14 = DOM1 'PLUS' (0.0 -1.0 1.0) ;
DOM15 = DOM1 'PLUS' (1.0 1.0 1.0) ;
DOM16 = DOM1 'PLUS' (-1.0 -1.0 1.0) ;
DOM17 = DOM1 'PLUS' (1.0 -1.0 1.0) ;
DOM18 = DOM1 'PLUS' (-1.0 1.0 1.0) ;
DOM19 = DOM1 'PLUS' (0.0 0.0 -1.0) ;
DOM20 = DOM1 'PLUS' (1.0 0.0 -1.0) ;
DOM21 = DOM1 'PLUS' (-1.0 0.0 -1.0) ;
DOM22 = DOM1 'PLUS' (0.0 1.0 -1.0) ;
DOM23 = DOM1 'PLUS' (0.0 -1.0 -1.0) ;
DOM24 = DOM1 'PLUS' (1.0 1.0 -1.0) ;
DOM25 = DOM1 'PLUS' (-1.0 -1.0 -1.0) ;
DOM26 = DOM1 'PLUS' (1.0 -1.0 -1.0) ;
DOM27 = DOM1 'PLUS' (-1.0 1.0 -1.0) ;
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
*
CHPBRU = ('NOMC' 'UX' ('BRUI' 'BLAN' 'UNIF' 0.0 0.4 DOMTOT)
'NATU' 'DISCRET') 'ET'
('NOMC' 'UY' ('BRUI' 'BLAN' 'UNIF' 0.0 0.2 DOMTOT)
'NATU' 'DISCRET') 'ET'
('NOMC' 'UZ' ('BRUI' 'BLAN' 'UNIF' 0.0 0.3 DOMTOT)
'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';
TDOMTOT = 'DOMA' $DOMTOT 'VF';
TDOM1 = 'DOMA' $DOM1 'VF';
TDOM27 = 'DOMA' $DOM27 'VF';
MDOM1 = TDOM1 . 'QUAF' ;
MDOM27 = TDOM27 . 'QUAF' ;
MDOMTOT = TDOMTOT . 'QUAF' ;
'ELIMINATION' (MDOMTOT ET MDOM1) 0.0001 ;
'ELIMINATION' (MDOMTOT ET MDOM27) 0.0001 ;
RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
RN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 ;
PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA' $DOMTOT 'CENTRE') ;
GAMMAN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' 1.4 ;
CSONN = (GAMMAN '*' PN0) '/' RN0 ;
CSONN = 'KOPS' CSONN '**' 0.5 ;
UXN0 = 0.2 * CSONN ;
UYN0 = 0.3 * CSONN ;
UZN0 = 0.4 * CSONN ;
GN0 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (
('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') 'ET'
('NOMC' (RN0 '*' UZN0) 'UZ' 'NATU' 'DISCRET') ) ;
vitimp = 'KCHT' $DOMTOT 'VECT' 'FACE' (0.D0 0.D0 0.D0) ;
tauimp = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'FACE') 6
'TXX' 0.D0 'TYY' 0.D0 'TZZ' 0.D0
'TXY' 0.D0 'TXZ' 0.D0 'TYZ' 0.D0 ;
fchimp = 'KCHT' $DOMTOT 'VECT' 'FACE' (1.D0 1.D0 1.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)) ;
VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL' 'SCAL')
('MOTS' 'UX' 'UY' 'UZ') ('MOTS' 'UX' 'UY' 'UZ'))) 'ABS' ;
'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
'MESSAGE' 'Problem 0' ;
'ERREUR' 5 ;
'FINSI' ;
'SI' GRAPH;
'TRACER' (('DOMA' $DOMTOT 'MAILLAGE' ) 'ET'
('DOMA' $DOMTOT 'CENTRE')) 'TITRE' 'Domaine et centre' ;
'FINSI' ;
*
***** Les valeurs en $DOM1 'CENTRE'
*
PCON = ('DOMA' $DOM1 'CENTRE') 'POIN' 1 ;
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 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
JACO CHPRES0 DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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'
*
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 5 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 5 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGZ = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM1 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 1.0
'NATURE' 'DISCRET') ;
DDRHO = 'KOPS' JACO 'MULT' UNRO ;
*
*
***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
* dRES_GXN '/' dRN ('RUXN') ;
* dRES_GYN '/' dRN ('RUYN') ;
* dRES_RETN '/' dRN ('RETN') ;
* DDGX contient ...
*
*
DDGX = 'KOPS' JACO 'MULT' UNGX ;
DDGY = 'KOPS' JACO 'MULT' UNGY ;
DDGZ = 'KOPS' JACO 'MULT' UNGZ ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
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) ;
RNDOM1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM1 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
GNDOM1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (gnx1 gny0 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM1 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (gnx0 gny1 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM1 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (gnx0 gny0 gnz1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM1 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
RETNDOM1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM1 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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'
*
PCELL = ('DOMA' $DOM27 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
cson0 = 'EXTRAIRE' CSONN PCELL 'SCAL' ;
ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGZ = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 1.0
'NATURE' 'DISCRET') ;
DDRHO = 'KOPS' JACO 'MULT' UNRO ;
*
*
***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
* dRES_GXN '/' dRN ('RUXN') ;
* dRES_GYN '/' dRN ('RUYN') ;
* dRES_RETN '/' dRN ('RETN') ;
* DDGX contient ...
*
*
DDGX = 'KOPS' JACO 'MULT' UNGX ;
DDGY = 'KOPS' JACO 'MULT' UNGY ;
DDGZ = 'KOPS' JACO 'MULT' UNGZ ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
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) ;
RNDOM27 = 'KCHT' $DOM27 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM27 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx1 gny0 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx0 gny1 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx0 gny0 gnz1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
RETDOM27 = 'KCHT' $DOM27 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETDOM27 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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'
*
PCON = ('DOMA' $DOM27 'CENTRE') 'POIN' 1 ;
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) ;
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNGZ = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 1.0 'RETN' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
5 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM27 'CENTRE') 5 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RUZN' 0.0 'RETN' 1.0
'NATURE' 'DISCRET') ;
DDRHO = 'KOPS' JACO 'MULT' UNRO ;
*
*
***** DDRHO contient: dRES_RN '/' dRN ('RN') ;
* dRES_GXN '/' dRN ('RUXN') ;
* dRES_GYN '/' dRN ('RUYN') ;
* dRES_RETN '/' dRN ('RETN') ;
* DDGX contient ...
*
*
DDGX = 'KOPS' JACO 'MULT' UNGX ;
DDGY = 'KOPS' JACO 'MULT' UNGY ;
DDGZ = 'KOPS' JACO 'MULT' UNGZ ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
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) ;
RNDOM27 = 'KCHT' $DOM27 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM27 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx1 gny0 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx0 gny1 gnz0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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' ;
GNDOM27 = 'KCHT' $DOM27 'VECT' 'CENTRE' (gnx0 gny0 gnz1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM27 ;
RETN = 'COPIER' RETN0 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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) ;
RETNDOM1 = 'KCHT' $DOM27 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM1 ;
V0 PRES = 'PRIM' 'PERFMONO' RN GN RETN GAMMAN ;
CV = PI ;
MU = '*' PI PI ;
KAPPA = '*' ('*' PI PI) PI ;
T0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
((PRES '/' (GAMMAN '-' 1.0)) '/' (RN '*' CV)) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
*
*
*
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RUZN' 'RETN' ;
IJACEL CHPRES DT = 'LAPN' 'VF' 'PROPCOST' 'RESI' 'IMPL'
$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 - All rights reserved.
Disclaimer