* fichier : lapn_impl_mel.dgibi
*; Préambule
*;; Description du cas-test
***********************************************************
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations de Navier-Stokes pour un gaz parfait ****
**** OPERATEURS PRIM, PENT, LAPN ****
**** Implicit: calcul du jacobien du residu ****
**** ****
**** Cas multiespeces avec 3 esp. différentes (O2, N2, H2) ****
**** ****
**** Methodes: DIAMANT ****
**** ****
**** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2000 ****
**** S. GOUNAND DEN/DM2S/SFME/LTMF FEVRIER 2002 ****
***********************************************************
***********************************************************
*;; Options
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X' ;
GRAPH = FAUX ;
* GRAPH = VRAI ;
*;; Procédures perso
'DEBPROC' CALCERR rcalc*'FLOTTANT' rref*'FLOTTANT' ;
toto = 'MINIMUM' ('PROG' ('ABS' rref) ('ABS' rcalc)) ;
'SI' ('<EG' ('ABS' toto) 1.D-12) ;
fref = 1.D0 ;
'SINON' ;
fref = 'ABS' toto ;
'FINSI' ;
'FINPROC' ('/' ('ABS' ('-' rcalc rref)) fref) ;
DELTA = 1.0D-6 ;
ERRZER = 1.0D-11 ;
ERRNIV0 = 1.0D-4 ;
ERRNIV1 = 2.0D0 ;
ERRNIV2 = 1.0D+4 ;
* CHPUNIF=Vrai si les champs de variables sont constants en espace
* CSTUNIQ=Vrai si les constituants sont identiques
'REPETER' bcl 4 ;
'SI' ('EGA' &bcl 1) ;
CHPUNIF = VRAI ;
CSTUNIQ = VRAI ;
ERRTOL = ERRNIV0 ;
ERRTO2 = ERRNIV0 ;
ERRTO3 = ERRNIV0 ;
'FINSI' ;
'SI' ('EGA' &bcl 2) ;
CHPUNIF = FAUX ;
CSTUNIQ = VRAI ;
ERRTOL = ERRNIV0 ;
ERRTO2 = ERRNIV1 ;
ERRTO3 = ERRNIV0 ;
'FINSI' ;
'SI' ('EGA' &bcl 3) ;
CHPUNIF = VRAI ;
CSTUNIQ = FAUX ;
ERRTOL = ERRNIV0 ;
ERRTO2 = ERRNIV1 ;
ERRTO3 = ERRNIV1 ;
'FINSI' ;
'SI' ('EGA' &bcl 4) ;
CHPUNIF = FAUX ;
CSTUNIQ = FAUX ;
ERRTOL = ERRNIV0 ;
ERRTO2 = ERRNIV1 ;
ERRTO3 = ERRNIV2 ;
'FINSI' ;
'SI' ('>EG' &bcl 5) ;
'MESSAGE' 'Erreur de programmation' ;
'ERREUR' 5 ;
'FINSI' ;
'MESSAGE' ('CHAINE' '****************************************') ;
'SI' (CHPUNIF) ;
'MESSAGE' 'Champoints constants en espace' ;
'SINON' ;
'MESSAGE' 'Champoints bruites en espace' ;
'FINSI' ;
'SI' (CSTUNIQ) ;
'MESSAGE' 'Les constituants sont identiques (=hydrogene)' ;
'SINON' ;
'MESSAGE' 'Les constituants sont distincts (H2,O2,N2)' ;
'FINSI' ;
'MESSAGE' ('CHAINE' '****************************************') ;
*;; Géométrie
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) ;
DOM2 = DOM1 'PLUS' (0.0 1.0) ;
DOM3 = DOM2 'PLUS' (0.0 1.0) ;
DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ;
DOM5 = DOM4 'PLUS' (0.0 1.0) ;
DOM6 = DOM5 'PLUS' (0.0 1.0) ;
DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ;
DOM8 = DOM7 'PLUS' (0.0 1.0) ;
DOM9 = DOM8 'PLUS' (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' DOMTOT 0.0001 ;
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') ;
'FORME' CHPBRU ;
* DOM9 et DOM6 ont un point en commun
* DOM9 et DOM n ont pas de points en commun
$DOMTOT = 'MODELISER' DOMTOT 'EULER';
$DOM6 = 'MODELISER' DOM6 'EULER';
$DOM7 = 'MODELISER' DOM7 'EULER';
$DOM9 = 'MODELISER' DOM9 'EULER';
TDOMTOT = 'DOMA' $DOMTOT 'VF';
TDOM6 = 'DOMA' $DOM6 'VF';
TDOM7 = 'DOMA' $DOM7 'VF';
TDOM9 = 'DOMA' $DOM9 'VF';
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 ;
*;; Physique
*
* Valeurs physiques pour l oxygène (O), l azote (N) et l hydrogène (H)
* vitesse du mélange
UXN0 = 1.1 ;
UYN0 = 1.2 ;
* température
TN0 = 573.15 ;
* capacités calorifiques, masses molaires et constantes des gaz parfaits
*(Raloc)
'SI' ('NON' CSTUNIQ) ;
CPH = 14.53E3 ;
CPO = 0.962E3 ;
CPN = 1.089E3 ;
MMH = 0.2E-2 ;
MMO = 3.2E-2 ;
MMN = 2.8E-2 ;
* conductivité thermique, diffusivité thermique et viscosité dynamique
LAMBDAH = 2.86E-1 ;
LAMBDAO = 4.57E-2 ;
LAMBDAN = 4.06E-2 ;
MUH = 1.38E-5 ;
MUO = 3.29E-5 ;
MUN = 2.83E-5 ;
'SINON' ;
CPH = 14.53E3 ;
CPO = CPH ;
CPN = CPH ;
MMH = 0.2E-2 ;
MMO = MMH ;
MMN = MMH ;
LAMBDAH = 2.86E-1 ;
LAMBDAO = LAMBDAH ;
LAMBDAN = LAMBDAH ;
MUH = 1.38E-5 ;
MUO = MUH ;
MUN = MUH ;
'FINSI' ;
RGP = 8.314 ;
* fractions massiques
YH20 = 0.13D0 ;
YO20 = 0.19D0 ;
*
* Fin de définition des propriétés physiques
*
* Conneries de champoints...
*
RN0 = 1.5D0 ;
'SI' (CHPUNIF) ;
RN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 ;
UXN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' UXN0 ;
UYN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' UYN0 ;
TN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' TN0 ;
YH20 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' YH20 ;
YO20 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' YO20 ;
'SINON' ;
RN0 = 'BRUI' 'BLAN' 'UNIF' RN0 (RN0 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE') ;
UXN0 = 'BRUI' 'BLAN' 'UNIF' UXN0 (UXN0 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE');
UYN0 = 'BRUI' 'BLAN' 'UNIF' UYN0 (UYN0 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE');
TN0 = 'BRUI' 'BLAN' 'UNIF' TN0 (TN0 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE') ;
YH20 = 'BRUI' 'BLAN' 'UNIF' YH20 (YH20 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE');
YO20 = 'BRUI' 'BLAN' 'UNIF' YO20 (YO20 '/' 10.D0)
('DOMA' $DOMTOT 'CENTRE');
'FINSI' ;
*;
YN20 = '*' (-1.D0) ('-' ('+' YH20 YO20) 1.D0) ;
CP = '+' ('+' ('*' YH20 CPH) ('*' YO20 CPO)) ('*' YN20 CPN) ;
LAMBDA = '+' ('+' ('*' YH20 LAMBDAH) ('*' YO20 LAMBDAO))
('*' YN20 LAMBDAN) ;
MU = '+' ('+' ('*' YH20 MUH) ('*' YO20 MUO)) ('*' YN20 MUN) ;
MMG = 'INVERSE' ('+' ('+' ('*' YH20 ('/' 1.D0 MMH))
('*' YO20 ('/' 1.D0 MMO)))
('*' YN20 ('/' 1.D0 MMN)) ) ;
CPG = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' CP ;
LAMBDAG = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' LAMBDA ;
MUH = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' MUH ;
MUO = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' MUO ;
MUN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' MUN ;
MUG = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' MU ;
*
* Propriétés déduites des autres
*
* capa. calo. à volume constant et constante Gamma
CVH = '-' CPH ('/' RGP MMH) ;
CVO = '-' CPO ('/' RGP MMO) ;
CVN = '-' CPN ('/' RGP MMN) ;
CVG = '-' CPG ('*' RGP ('INVERSE' MMG)) ;
GAMMAG = '/' CPG CVG ;
* diffusivité thermique et enthalpie de formation à 0K
KAPPAG = '/' LAMBDAG ('*' RN0 CPG) ;
H0KH = -4.195D6 ;
H0KO = -2.634D5 ;
H0KN = -2.953D5 ;
* fractions volumiques
RYH20 = '*' RN0 YH20 ;
RYH20 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' RYH20) 'H2 ' ;
RYO20 = '*' RN0 YO20 ;
RYO20 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' RYO20) 'O2 ' ;
* pression
PRESG = '*' RN0 ('*' ('*' RGP ('INVERSE' MMG)) TN0) ;
*
GN0 = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (
('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET')) ;
*;; Test 0 (Opérateur PRIM)
ETHE = RN0 '*' CVG '*' TN0 ;
ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
* ECCC = RN0 '*' ( ('*' (TGAZ . 'H2 ' . 'H0K') YH20)
* '+' ('*' (TGAZ . 'N2 ' . 'H0K') YN20)
* ) ;
RETN0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
* (ETHE '+' ECIN '+' ECCC) ;
(ETHE '+' ECIN) ;
*
* Propriétés physiques demandées par les opérateurs
* stockées dans la table TGAZ
*
TGAZ = 'TABLE' ;
TGAZ . 'ESPNEULE' = 'N2 ' ;
TGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' ;
TGAZ . 'NORD' = 0 ;
TGAZ . 'N2 ' = 'TABLE' ;
TGAZ . 'H2 ' = 'TABLE' ;
TGAZ . 'O2 ' = 'TABLE' ;
TGAZ . 'CP ' = 'TABLE' ;
TGAZ . 'CV ' = 'TABLE' ;
**** Regressions polynomials
TGAZ . 'H2 ' . 'A' = 'PROG' CVH ;
TGAZ . 'O2 ' . 'A' = 'PROG' CVO ;
TGAZ . 'N2 ' . 'A' = 'PROG' CVN ;
TGAZ . 'CV' . 'H2 ' = CVH ;
TGAZ . 'CV' . 'O2 ' = CVO ;
TGAZ . 'CV' . 'N2 ' = CVN ;
**** R (J/Kg/K)
TGAZ . 'H2 ' . 'R' = ('/' RGP MMH) ;
TGAZ . 'O2 ' . 'R' = ('/' RGP MMO) ;
TGAZ . 'N2 ' . 'R' = ('/' RGP MMN) ;
TGAZ . 'CP' . 'H2 ' = CPH ;
TGAZ . 'CP' . 'O2 ' = CPO ;
TGAZ . 'CP' . 'N2 ' = CPN ;
**** "Enthalpies" (ou energies) de formations a OK (J/Kg)
TGAZ . 'H2 ' . 'H0K' = H0KH ;
TGAZ . 'O2 ' . 'H0K' = H0KO ;
TGAZ . 'N2 ' . 'H0K' = H0KN ;
**** Coeff diffusion
TGAZ . 'H2 ' . 'CDIFF' = MUH ;
TGAZ . 'O2 ' . 'CDIFF' = MUO ;
TGAZ . 'N2 ' . 'CDIFF' = MUN ;
*
VN0 PRES TMPR FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN0 GN0 RETN0
('+' RYH20 RYO20) ;
ERR1 = '/' ('MAXIMUM' (PRES '-' PRESG) 'ABS')
('MAXIMUM' PRESG) ;
ERR2 = '/' ('MAXIMUM' (GN0 '-' (RN0 '*' VN0 ('MOTS' 'SCAL' 'SCAL')
('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS')
('MAXIMUM' GN0) ;
ERR3 = '/' ('MAXIMUM' (TMPR '-' TN0) 'ABS')
('MAXIMUM' TN0) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
ERR4 = '/' ('MAXIMUM' (FMH2 '-' YH20) 'ABS')
('MAXIMUM' YH20) ;
ERR4B = '/' ('MAXIMUM' (FMO2 '-' YO20) 'ABS')
('MAXIMUM' YO20) ;
ERR5 = '/' ('MAXIMUM' (GAM2 '-' GAMMAG) 'ABS')
('MAXIMUM' GAMMAG) ;
'MESSAGE' ('CHAINE' 'ERR1=' ERR1) ;
'MESSAGE' ('CHAINE' 'ERR2=' ERR2) ;
'MESSAGE' ('CHAINE' 'ERR3=' ERR3) ;
'MESSAGE' ('CHAINE' 'ERR4=' ERR4) ;
'MESSAGE' ('CHAINE' 'ERR4B=' ERR4B) ;
'MESSAGE' ('CHAINE' 'ERR5=' ERR5) ;
'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ERR3 ERR4 ERR4B ERR5) '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' ;
*; Calcul du résidu et du jacobien de référence
* Les valeurs en $DOM9 'CENTRE'
PCON = ('DOMA' $DOM9 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCON 'SCAL' ;
gnx0 = 'EXTRAIRE' GN0 PCON 'UX' ;
gny0 = 'EXTRAIRE' GN0 PCON 'UY' ;
ryh0 = 'EXTRAIRE' RYH20 PCON 'H2 ' ;
ryo0 = 'EXTRAIRE' RYO20 PCON 'O2 ' ;
ret0 = 'EXTRAIRE' RETN0 PCON 'SCAL' ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRYH20 CGRYH20 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRYO20 CGRYO20 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRYN20 CGRYN20 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRYH20 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRYH20 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRYO20 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRYO20 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRYN20 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRYN20 ;
*
JACO CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
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) ;
DEBRYHN0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON0 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*; Test1 : J(DOM9->DOM9)
'MESSAGE' '************************' ;
'MESSAGE' ' Test1 : J(DOM9->DOM9) ' ;
'MESSAGE' '************************' ;
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM9 'CENTRE'
*
*;; Extraction des valeurs du jacobien de référence
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0
'RYO2' 0.0 'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYH = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM9 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 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 ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
DDRYH = 'KOPS' JACO 'MULT' UNRYH ;
DDRYO = 'KOPS' JACO 'MULT' UNRYO ;
DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ;
DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ;
DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ;
DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ;
DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ;
DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ;
DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ;
DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ;
DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ;
DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ;
DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ;
DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ;
DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ;
DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ;
DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ;
DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ;
DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ;
*;; Test 1.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.1 ro1 = ro0 + delta ' ;
*;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA)
ro1 = ro0 '*' (1 '+' DELTA) ;
RNDOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM9 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ;
DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRR DRRN ;
'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 1';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXR DGXRN ;
'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 2';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYR DGYRN ;
'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 3';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETR DRETRN ;
'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHR DRYHRN ;
'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOR DRYORN ;
'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 1.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.2 gnx1 = gnx0 + delta ' ;
*;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA)
gnx1 = gnx0 '*' (1.D0 '+' DELTA) ;
GNDOM9 = 'KCHT' $DOM9 'VECT' 'CENTRE' (gnx1 gny0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM9 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ;
DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ;
DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ;
DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ;
DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ;
DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGX DRGXN ;
'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGX DGXGXN ;
'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGX DGYGXN ;
'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGX DRETGXN ;
'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1);
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGX DRYHGXN ;
'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGX DRYOGXN ;
'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 12';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 1.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.3 gny1 = gny0 + delta ' ;
*;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA)
gny1 = gny0 '*' (1.D0 '+' DELTA) ;
GNDOM9 = 'KCHT' $DOM9 'VECT' 'CENTRE' (gnx0 gny1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM9 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ;
DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ;
DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ;
DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ;
DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ;
DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGY DRGYN ;
'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 13';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGY DGXGYN ;
'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGY DGYGYN ;
'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGY DRETGYN ;
'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1);
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGY DRYHGYN ;
'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 17';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGY DRYOGYN ;
'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 18';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 1.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.4 ret1 = ret0 + delta ' ;
*;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA)
ret1 = ret0 '*' (1.D0 '+' DELTA) ;
RETNDOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM9 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ;
DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRET DRRETN ;
'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 19';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRET DGXRETN ;
'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 20';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRET DGYRETN ;
'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 21';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRET DRETRETN ;
'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 22';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRET DRYHRETN ;
'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 23';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORET DRYORETN ;
'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 24';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 1.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.5 ryh1 = ryh0 + delta ' ;
*;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA)
ryh1 = ryh0 '*' (1 '+' DELTA) ;
RYHDOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ryh1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYH20 'SCAL')
RYHDOM9) 'H2 ' ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ;
DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ;
DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ;
DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ;
DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ;
DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYH DRRYHN ;
'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 25';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYH DGXRYHN ;
'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 26';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYH DGYRYHN ;
'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 27';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYH DRETRYHN ;
'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 28';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYH DRYHRYHN ;
'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 29';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYH DRYORYHN ;
'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 30';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 1.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA)
'MESSAGE' 'Test 1.6 ryo1 = ryo0 + delta ' ;
*;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA)
ryo1 = ryo0 '*' (1 '+' DELTA) ;
RYODOM9 = 'KCHT' $DOM9 'SCAL' 'CENTRE' ryo1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYO20 'SCAL')
RYODOM9) 'O2 ' ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ;
DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ;
DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ;
DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ;
DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ;
DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYO DRRYON ;
'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 31';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYO DGXRYON ;
'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 32';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYO DGYRYON ;
'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 33';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYO DRETRYON ;
'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 34';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYO DRYHRYON ;
'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 35';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYO DRYORYON ;
'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 36';
'ERREUR' 5 ;
'FINSI' ;
*; Test2 : J(DOM6->DOM9)
'MESSAGE' '************************' ;
'MESSAGE' ' Test2 : J(DOM6->DOM9) ' ;
'MESSAGE' '************************' ;
* On compare le jacobien et la variation du residu
* en $DOM9 . 'CENTRE' par rapport à une variation
* infinitésimal en $DOM6 . 'CENTRE'
*
*;; Extraction des valeurs du jacobien de référence
* Les valeurs en $DOM6 'CENTRE'
PCELL = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
ryh0 = 'EXTRAIRE' RYH20 PCELL 'H2 ' ;
ryo0 = 'EXTRAIRE' RYO20 PCELL 'O2 ' ;
ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0
'RYO2' 0.0 'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYH = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM6 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 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 ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
DDRYH = 'KOPS' JACO 'MULT' UNRYH ;
DDRYO = 'KOPS' JACO 'MULT' UNRYO ;
DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ;
DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ;
DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ;
DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ;
DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ;
DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ;
DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ;
DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ;
DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ;
DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ;
DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ;
DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ;
DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ;
DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ;
DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ;
DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ;
DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ;
*;; Test 2.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.1 ro1 = ro0 + delta ' ;
*;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA)
ro1 = ro0 '*' (1 '+' DELTA) ;
RNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM6 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ;
DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRR DRRN ;
'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 1';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXR DGXRN ;
'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 2';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYR DGYRN ;
'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 3';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETR DRETRN ;
'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHR DRYHRN ;
'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOR DRYORN ;
'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 2.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.2 gnx1 = gnx0 + delta ' ;
*;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA)
gnx1 = gnx0 '*' (1.D0 '+' DELTA) ;
GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx1 gny0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ;
DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ;
DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ;
DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ;
DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ;
DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGX DRGXN ;
'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGX DGXGXN ;
'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGX DGYGXN ;
'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGX DRETGXN ;
'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1);
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGX DRYHGXN ;
'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGX DRYOGXN ;
'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 12';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 2.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.3 gny1 = gny0 + delta ' ;
*;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA)
gny1 = gny0 '*' (1.D0 '+' DELTA) ;
GNDOM6 = 'KCHT' $DOM6 'VECT' 'CENTRE' (gnx0 gny1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM6 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ;
DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ;
DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ;
DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ;
DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ;
DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGY DRGYN ;
'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 13';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGY DGXGYN ;
'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGY DGYGYN ;
'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGY DRETGYN ;
'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1);
'SI' (ERR1 > ERRTO2) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGY DRYHGYN ;
'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 17';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGY DRYOGYN ;
'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 18';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 2.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.4 ret1 = ret0 + delta ' ;
*;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA)
ret1 = ret0 '*' (1.D0 '+' DELTA) ;
RETNDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM6 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ;
DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRET DRRETN ;
'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 19';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRET DGXRETN ;
'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 20';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRET DGYRETN ;
'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 21';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRET DRETRETN ;
'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 22';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRET DRYHRETN ;
'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 23';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORET DRYORETN ;
'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 24';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 2.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.5 ryh1 = ryh0 + delta ' ;
*;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA)
ryh1 = ryh0 '*' (1 '+' DELTA) ;
RYHDOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ryh1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYH20 'SCAL')
RYHDOM6) 'H2 ' ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ;
DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ;
DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ;
DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ;
DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ;
DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYH DRRYHN ;
'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 25';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYH DGXRYHN ;
'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 26';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYH DGYRYHN ;
'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 27';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYH DRETRYHN ;
'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 28';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYH DRYHRYHN ;
'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 29';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYH DRYORYHN ;
'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 30';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 2.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA)
'MESSAGE' 'Test 2.6 ryo1 = ryo0 + delta ' ;
*;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA)
ryo1 = ryo0 '*' (1 '+' DELTA) ;
RYODOM6 = 'KCHT' $DOM6 'SCAL' 'CENTRE' ryo1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYO20 'SCAL')
RYODOM6) 'O2 ' ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ;
DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ;
DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ;
DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ;
DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ;
DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYO DRRYON ;
'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 31';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYO DGXRYON ;
'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 32';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYO DGYRYON ;
'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 33';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYO DRETRYON ;
'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTO3) ;
'MESSAGE' 'Problem 34';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYO DRYHRYON ;
'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 35';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYO DRYORYON ;
'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 36';
'ERREUR' 5 ;
'FINSI' ;
*; Test3 : J(DOM7->DOM9)
'MESSAGE' '************************' ;
'MESSAGE' ' Test3 : J(DOM7->DOM9) ' ;
'MESSAGE' '************************' ;
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM7 'CENTRE'
* Elle doit etre nulle car les deux cellules ne se touchent pas
*
*;; Extraction des valeurs du jacobien de référence
* Les valeurs en $DOM7 'CENTRE'
PCELL = ('DOMA' $DOM7 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCELL 'SCAL' ;
gnx0 = 'EXTRAIRE' GN0 PCELL 'UX' ;
gny0 = 'EXTRAIRE' GN0 PCELL 'UY' ;
ryh0 = 'EXTRAIRE' RYH20 PCELL 'H2 ' ;
ryo0 = 'EXTRAIRE' RYO20 PCELL 'O2 ' ;
ret0 = 'EXTRAIRE' RETN0 PCELL 'SCAL' ;
UNRO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0
'RYO2' 0.0 'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 1.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGX = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 0.0
'RUXN' 1.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNGY = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 1.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRET = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 1.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYH = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 1.0 'RYO2' 0.0
'NATURE' 'DISCRET') ;
UNRYO = ('MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE')
6 'RN' 0.0 'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 0.0
'NATURE' 'DISCRET') 'ET'
('MANUEL' 'CHPO' ('DOMA' $DOM7 'CENTRE') 6 'RN' 0.0
'RUXN' 0.0 'RUYN' 0.0 'RETN' 0.0 'RYH2' 0.0 'RYO2' 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 ;
DDRET = 'KOPS' JACO 'MULT' UNRET ;
DDRYH = 'KOPS' JACO 'MULT' UNRYH ;
DDRYO = 'KOPS' JACO 'MULT' UNRYO ;
DRR = 'EXTRAIRE' DDRHO PCON 'RN' ;
DGXR = 'EXTRAIRE' DDRHO PCON 'RUXN' ;
DGYR = 'EXTRAIRE' DDRHO PCON 'RUYN' ;
DRETR = 'EXTRAIRE' DDRHO PCON 'RETN' ;
DRYHR = 'EXTRAIRE' DDRHO PCON 'RYH2' ;
DRYOR = 'EXTRAIRE' DDRHO PCON 'RYO2' ;
DRGX = 'EXTRAIRE' DDGX PCON 'RN' ;
DGXGX = 'EXTRAIRE' DDGX PCON 'RUXN' ;
DGYGX = 'EXTRAIRE' DDGX PCON 'RUYN' ;
DRETGX = 'EXTRAIRE' DDGX PCON 'RETN' ;
DRYHGX = 'EXTRAIRE' DDGX PCON 'RYH2' ;
DRYOGX = 'EXTRAIRE' DDGX PCON 'RYO2' ;
DRGY = 'EXTRAIRE' DDGY PCON 'RN' ;
DGXGY = 'EXTRAIRE' DDGY PCON 'RUXN' ;
DGYGY = 'EXTRAIRE' DDGY PCON 'RUYN' ;
DRETGY = 'EXTRAIRE' DDGY PCON 'RETN' ;
DRYHGY = 'EXTRAIRE' DDGY PCON 'RYH2' ;
DRYOGY = 'EXTRAIRE' DDGY PCON 'RYO2' ;
DRRET = 'EXTRAIRE' DDRET PCON 'RN' ;
DGXRET = 'EXTRAIRE' DDRET PCON 'RUXN' ;
DGYRET = 'EXTRAIRE' DDRET PCON 'RUYN' ;
DRETRET = 'EXTRAIRE' DDRET PCON 'RETN' ;
DRYHRET = 'EXTRAIRE' DDRET PCON 'RYH2' ;
DRYORET = 'EXTRAIRE' DDRET PCON 'RYO2' ;
DRRYO = 'EXTRAIRE' DDRYO PCON 'RN' ;
DGXRYO = 'EXTRAIRE' DDRYO PCON 'RUXN' ;
DGYRYO = 'EXTRAIRE' DDRYO PCON 'RUYN' ;
DRETRYO = 'EXTRAIRE' DDRYO PCON 'RETN' ;
DRYHRYO = 'EXTRAIRE' DDRYO PCON 'RYH2' ;
DRYORYO = 'EXTRAIRE' DDRYO PCON 'RYO2' ;
DRRYH = 'EXTRAIRE' DDRYH PCON 'RN' ;
DGXRYH = 'EXTRAIRE' DDRYH PCON 'RUXN' ;
DGYRYH = 'EXTRAIRE' DDRYH PCON 'RUYN' ;
DRETRYH = 'EXTRAIRE' DDRYH PCON 'RETN' ;
DRYHRYH = 'EXTRAIRE' DDRYH PCON 'RYH2' ;
DRYORYH = 'EXTRAIRE' DDRYH PCON 'RYO2' ;
*;; Test 3.1 J(ref) et J(appr) pour ro1 = ro0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.1 ro1 = ro0 + delta ' ;
*;;; Calcul du residu pour ro1 = ro0 * (1.'+' DELTA)
ro1 = ro0 '*' (1 '+' DELTA) ;
RNDOM7 = 'KCHT' $DOM7 'SCAL' 'CENTRE' ro1 ;
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RN0 RNDOM7 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ro0) ;
DGXRN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ro0) ;
DGYRN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ro0) ;
DRETRN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ro0) ;
DRYHRN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ro0) ;
DRYORN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ro0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRR DRRN ;
'MESSAGE' ('CHAINE' 'DRRN=' DRRN ' DRR=' DRR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 1';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXR DGXRN ;
'MESSAGE' ('CHAINE' 'DGXRN=' DGXRN ' DGXR=' DGXR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 2';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYR DGYRN ;
'MESSAGE' ('CHAINE' 'DGYRN=' DGYRN ' DGYR=' DGYR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 3';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETR DRETRN ;
'MESSAGE' ('CHAINE' 'DRETRN=' DRETRN ' DRETR=' DRETR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHR DRYHRN ;
'MESSAGE' ('CHAINE' 'DRYHRN=' DRYHRN ' DRYHR=' DRYHR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOR DRYORN ;
'MESSAGE' ('CHAINE' 'DRYORN=' DRYORN ' DRYOR=' DRYOR ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 3.2 J(ref) et J(appr) pour gnx1 = gnx0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.2 gnx1 = gnx0 + delta ' ;
*;;; Calcul du residu pour gnx1 = gnx0 * (1.'+' DELTA)
gnx1 = gnx0 '*' (1.D0 '+' DELTA) ;
GNDOM7 = 'KCHT' $DOM7 'VECT' 'CENTRE' (gnx1 gny0) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM7 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGXN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gnx0) ;
DGXGXN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gnx0) ;
DGYGXN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gnx0) ;
DRETGXN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gnx0) ;
DRYHGXN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gnx0) ;
DRYOGXN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gnx0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGX DRGXN ;
'MESSAGE' ('CHAINE' 'DRGXN=' DRGXN ' DRR=' DRGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGX DGXGXN ;
'MESSAGE' ('CHAINE' 'DGXGXN=' DGXGXN ' DGXGX=' DGXGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGX DGYGXN ;
'MESSAGE' ('CHAINE' 'DGYGXN=' DGYGXN ' DGYGX=' DGYGX ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGX DRETGXN ;
'MESSAGE' ('CHAINE' 'DRETGXN=' DRETGXN ' DRETGX=' DRETGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGX DRYHGXN ;
'MESSAGE' ('CHAINE' 'DRYHGXN=' DRYHGXN ' DRYHGX=' DRYHGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGX DRYOGXN ;
'MESSAGE' ('CHAINE' 'DRYOGXN=' DRYOGXN ' DRYOGX=' DRYOGX ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 12';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 3.3 J(ref) et J(appr) pour gny1 = gny0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.3 gny1 = gny0 + delta ' ;
*;;; Calcul du residu pour gny1 = gny0 * (1.'+' DELTA)
gny1 = gny0 '*' (1.D0 '+' DELTA) ;
GNDOM7 = 'KCHT' $DOM7 'VECT' 'CENTRE' (gnx0 gny1) ;
RN = 'COPIER' RN0 ;
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' GN0 GNDOM7 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRGYN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' gny0) ;
DGXGYN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' gny0) ;
DGYGYN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' gny0) ;
DRETGYN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' gny0) ;
DRYHGYN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' gny0) ;
DRYOGYN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' gny0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRGY DRGYN ;
'MESSAGE' ('CHAINE' 'DRGYN=' DRGYN ' DRGY=' DRGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 13';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXGY DGXGYN ;
'MESSAGE' ('CHAINE' 'DGXGYN=' DGXGYN ' DGXGY=' DGXGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYGY DGYGYN ;
'MESSAGE' ('CHAINE' 'DGYGYN=' DGYGYN ' DGYGY=' DGYGY ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETGY DRETGYN ;
'MESSAGE' ('CHAINE' 'DRETGYN=' DRETGYN ' DRETGY=' DRETGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHGY DRYHGYN ;
'MESSAGE' ('CHAINE' 'DRYHGYN=' DRYHGYN ' DRYHGY=' DRYHGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 17';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYOGY DRYOGYN ;
'MESSAGE' ('CHAINE' 'DRYOGYN=' DRYOGYN ' DRYOGY=' DRYOGY ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 18';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 3.4 J(ref) et J(appr) pour ret1 = ret0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.4 ret1 = ret0 + delta ' ;
*;;; Calcul du residu pour ret1 = ret0 * (1.'+' DELTA)
ret1 = ret0 '*' (1.D0 '+' DELTA) ;
RETNDOM7 = 'KCHT' $DOM7 'SCAL' 'CENTRE' ret1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' RETN0 RETNDOM7 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRETN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ret0) ;
DGXRETN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ret0) ;
DGYRETN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ret0) ;
DRETRETN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ret0) ;
DRYHRETN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ret0) ;
DRYORETN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ret0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRET DRRETN ;
'MESSAGE' ('CHAINE' 'DRRETN=' DRRETN ' DRRET=' DRRET ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 19';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRET DGXRETN ;
'MESSAGE' ('CHAINE' 'DGXRETN=' DGXRETN ' DGXRET=' DGXRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 20';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRET DGYRETN ;
'MESSAGE' ('CHAINE' 'DGYRETN=' DGYRETN ' DGYRET=' DGYRET ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 21';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRET DRETRETN ;
'MESSAGE' ('CHAINE' 'DRETRETN=' DRETRETN ' DRETRET=' DRETRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 22';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRET DRYHRETN ;
'MESSAGE' ('CHAINE' 'DRYHRETN=' DRYHRETN ' DRYHRET=' DRYHRET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 23';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORET DRYORETN ;
'MESSAGE' ('CHAINE' 'DRYORETN=' DRYORETN ' DRYORET=' DRYORET
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 24';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 3.5 J(ref) et J(appr) pour ryh1 = ryh0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.5 ryh1 = ryh0 + delta ' ;
*;;; Calcul du residu pour ryh1 = ryh0 * (1.'+' DELTA)
ryh1 = ryh0 '*' (1 '+' DELTA) ;
RYHDOM7 = 'KCHT' $DOM7 'SCAL' 'CENTRE' ryh1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYH20 'SCAL')
RYHDOM7) 'H2 ' ;
RYO2 = 'COPIER' RYO20 ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYHN = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryh0) ;
DGXRYHN = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryh0) ;
DGYRYHN = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryh0) ;
DRETRYHN = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryh0) ;
DRYHRYHN = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryh0) ;
DRYORYHN = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryh0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYH DRRYHN ;
'MESSAGE' ('CHAINE' 'DRRYHN=' DRRYHN ' DRRYH=' DRRYH ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 25';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYH DGXRYHN ;
'MESSAGE' ('CHAINE' 'DGXRYHN=' DGXRYHN ' DGXRYH=' DGXRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 26';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYH DGYRYHN ;
'MESSAGE' ('CHAINE' 'DGYRYHN=' DGYRYHN ' DGYRYH=' DGYRYH ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 27';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYH DRETRYHN ;
'MESSAGE' ('CHAINE' 'DRETRYHN=' DRETRYHN ' DRETRYH=' DRETRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 28';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYH DRYHRYHN ;
'MESSAGE' ('CHAINE' 'DRYHRYHN=' DRYHRYHN ' DRYHRYH=' DRYHRYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 29';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYH DRYORYHN ;
'MESSAGE' ('CHAINE' 'DRYORYHN=' DRYORYHN ' DRYORYH=' DRYORYH
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 30';
'ERREUR' 5 ;
'FINSI' ;
*;; Test 3.6 J(ref) et J(appr) pour ryo1 = ryo0 * (1.'+' DELTA)
'MESSAGE' 'Test 3.6 ryo1 = ryo0 + delta ' ;
*;;; Calcul du residu pour ryo1 = ryo0 * (1.'+' DELTA)
ryo1 = ryo0 '*' (1 '+' DELTA) ;
RYODOM7 = 'KCHT' $DOM7 'SCAL' 'CENTRE' ryo1 ;
RN = 'COPIER' RN0 ;
GN = 'COPIER' GN0 ;
RETN = 'COPIER' RETN0 ;
RYH2 = 'COPIER' RYH20 ;
RYO2 = 'NOMC' ('KCHT' $DOMTOT 'SCAL' 'CENTRE' ('NOMC' RYO20 'SCAL')
RYODOM7) 'O2 ' ;
LISTINCO = 'MOTS' 'RN' 'RUXN' 'RUYN' 'RETN' 'RYH2' 'RYO2' ;
V0 P0 T0 FMHO2 GAM2 = PRIM 'PERFMULT' TGAZ RN GN RETN
('+' RYH2 RYO2) ;
FMH2 = 'EXCO' 'H2' FMHO2 ;
FMO2 = 'EXCO' 'O2' FMHO2 ;
FMN2 = '*' (-1.D0) ('-' ('+' FMH2 FMO2) 1.D0) ;
GRADT0 MCHAMT = 'PENT' $DOMTOT 'FACE' 'DIAMANT' T0 ;
GRADV0 MCHAMV = 'PENT' $DOMTOT 'FACE' 'DIAMANT' V0 ;
GRFMH2 CGRFMH2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMH2 ;
GRFMO2 CGRFMO2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMO2 ;
GRFMN2 CGRFMN2 = 'PENT' $DOMTOT 'FACE' 'DIAMANT' FMN2 ;
TGAZ . 'H2 ' . 'YK' = FMH2 ;
TGAZ . 'H2 ' . 'GRADYK' = GRFMH2 ;
TGAZ . 'H2 ' . 'CGRYK' = CGRFMH2 ;
TGAZ . 'O2 ' . 'YK' = FMO2 ;
TGAZ . 'O2 ' . 'GRADYK' = GRFMO2 ;
TGAZ . 'O2 ' . 'CGRYK' = CGRFMO2 ;
TGAZ . 'N2 ' . 'YK' = FMN2 ;
TGAZ . 'N2 ' . 'GRADYK' = GRFMN2 ;
TGAZ . 'N2 ' . 'CGRYK' = CGRFMN2 ;
*
IJACEL CHPRES DT = 'LAPN' 'VF' 'PERFMULT' 'RESI' 'IMPL'
$DOMTOT TGAZ MUG KAPPAG CVG RN V0 T0 GRADV0 GRADT0 MCHAMV MCHAMT
LISTINCO ;
*;;; Extraction des composantes du résidu
***********************
***** 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) ;
DEBRYHN1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 5) ;
DEBRYON1 = 'EXTRAIRE' CHPRES PCON ('EXTRAIRE' LISTINCO 6) ;
*;;; Jacobien approché
DRRYON = (DEBRN1 '-' DEBRN0) '/' (DELTA '*' ryo0) ;
DGXRYON = (DEBGNX1 '-' DEBGNX0) '/' (DELTA '*' ryo0) ;
DGYRYON = (DEBGNY1 '-' DEBGNY0) '/' (DELTA '*' ryo0) ;
DRETRYON = (DEBRETN1 '-' DEBRETN0) '/' (DELTA '*' ryo0) ;
DRYHRYON = (DEBRYHN1 '-' DEBRYHN0) '/' (DELTA '*' ryo0) ;
DRYORYON = (DEBRYON1 '-' DEBRYON0) '/' (DELTA '*' ryo0) ;
*;;; Comparaison Jacobien référence et approché
ERR1 = CALCERR DRRYO DRRYON ;
'MESSAGE' ('CHAINE' 'DRRYON=' DRRYON ' DRRYO=' DRRYO ' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 31';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGXRYO DGXRYON ;
'MESSAGE' ('CHAINE' 'DGXRYON=' DGXRYON ' DGXRYO=' DGXRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 32';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DGYRYO DGYRYON ;
'MESSAGE' ('CHAINE' 'DGYRYON=' DGYRYON ' DGYRYO=' DGYRYO ' ERR=' ERR1);
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 33';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRETRYO DRETRYON ;
'MESSAGE' ('CHAINE' 'DRETRYON=' DRETRYON ' DRETRYO=' DRETRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 34';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYHRYO DRYHRYON ;
'MESSAGE' ('CHAINE' 'DRYHRYON=' DRYHRYON ' DRYHRYO=' DRYHRYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 35';
'ERREUR' 5 ;
'FINSI' ;
ERR1 = CALCERR DRYORYO DRYORYON ;
'MESSAGE' ('CHAINE' 'DRYORYON=' DRYORYON ' DRYORYO=' DRYORYO
' ERR=' ERR1) ;
'SI' (ERR1 > ERRZER) ;
'MESSAGE' 'Problem 36';
'ERREUR' 5 ;
'FINSI' ;
'FIN' bcl ;
'MESSAGE' ('CHAINE' 'Tout sest bien passe') ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer