* fichier : konv_implbm.dgibi
***********************************************************
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations d'Euler pour un gaz parfait ****
**** OPERATEURS PRIM, PRET, KONV ****
**** Implicit: calcul du jacobien du residu ****
**** ****
**** Cas gaz monoespece, "calorically perfect" ****
**** ****
**** Methodes: AUSMLM ****
**** ****
**** S.V. KUDRIAKOV DM2S/SFME/LTMF JUNE 2002 ****
***********************************************************
***********************************************************
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X' ;
*
*** GRAPH
*
GRAPH = FAUX ;
* GRAPH = VRAI ;
ERRTOL = 1.0D-4 ;
***************************
***** DOMAINE SPATIAL ****
***************************
A0 = 0.0D0 0.0D0;
A1 = 1.0D0 0.0D0;
A2 = 2.0D0 0.0D0;
A3 = 3.0D0 0.0D0;
A0A1 = A0 'DROIT' 1 A1;
A1A2 = A1 'DROIT' 1 A2;
A2A3 = A2 'DROIT' 1 A3;
DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ;
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) ;
DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET'
DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ELIMINATION' 0.0001 ;
$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 ;
***************************************************
***** Densité, pression, vitesse, gamma ***********
***************************************************
RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA '$DOMTOT 'CENTRE') ;
PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA '$DOMTOT 'CENTRE') ;
GAMMAN = 'MANUEL' 'CHPO' ('DOMA '$DOMTOT 'CENTRE') 1 'SCAL' 1.4
'NATU' 'DISCRET' ;
CSONN = (GAMMAN '*' PN0) '/' RN0 ;
CSONN = 'KOPS' CSONN '**' 0.5 ;
UXN0 = 0.05 * CSONN ;
UYN0 = 0.01 * CSONN ;
***************************************************
UINF = 'MANUEL' 'CHPO' ('DOMA '$DOMTOT 'CENTRE') 1 'SCAL' 0.01
'NATU' 'DISCRET' ;
UPRI = 'MANUEL' 'CHPO' ('DOMA '$DOMTOT 'CENTRE') 1 'SCAL' 0.0001
'NATU' 'DISCRET' ;
***************************************************
GN0 = ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') ;
ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
'NATU' 'DISCRET' ;
VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) '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 variables conservative
*
* RN0 (densité)
* GN0 (quantité de mouvement)
* RETN0 (énergie totale par unité de volume)
*
* sont definiés
*
****************************************************
* Creating a mesh WITHOUT mesh
****************************************************
P1 = 0.5 0.5 ;
ELP1 = 'MANU' 'POI1' P1 ;
MELLIM = 'DIFF' ELP1 ELP1 ;
****************************************************
****************************************************
******* Calcul du jacobien et du residu **********
****************************************************
****************************************************
*
* JACO est le jacobien
*
* DEBRN0 le residu concernant la densité
* DEBGNX0 le residu concernant la quantité de mouvement (axe x)
* DEBGNY0 le residu concernant la quantité de mouvement (axe y)
* DEBRETN0 le residu concernant l'enrgie totale par unité de volume
*
* Noms des variables
NOMDEN = 'RN ' ;
NOMMOX = 'RUXN' ;
NOMMOY = 'RUYN' ;
NOMRET = 'RETN' ;
* Metode
METO = 'AUSMPLM' ;
LISTINCO = 'MOTS' NOMDEN NOMMOX NOMMOY NOMRET ;
VITESSE PRES = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$DOMTOT RN0 VITESSE PRES GAMMAN ;
CHPRES0 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' METO
$DOMTOT ROF VITF PF GAMF LISTINCO
MELLIM UINF UPRI ;
JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTINCO MELLIM
METO RN0 VITESSE PRES GAMMAN
UINF UPRI ;
DEBRN0 = 'EXCO' NOMDEN CHPRES0 ;
DEBGNX0 = 'EXCO' NOMMOX CHPRES0 ;
DEBGNY0 = 'EXCO' NOMMOY CHPRES0 ;
DEBRETN0 = 'EXCO' NOMRET CHPRES0 ;
*****************************************************
*****************************************************
******** PROCEDURES *********************************
*****************************************************
*****************************************************
*
* Derivé partielle du residu en un point par rapport
* aux variable en un autre point
*
'DEBPROC' JACOVA JACO*'MATRIK' $MODE*'MMODEL' LISTINCO*'LISTMOTS'
PPRIM*'POINT' PDUAL*'POINT' MOTPRI*'MOT' MOTDUA*'MOT';
* PPRIM = point ou est localisé la variable primale
* PDUAL = point ou est localisé la variable duale
* MOTPRI = nom de la composante concernante la variable primale
* MOTDUA = nom de la composante concernante la variable duale
ELT1 = 'MANUEL' 'POI1' PPRIM ;
NDIM = 'DIME' LISTINCO ;
CHPUN = 'MANUEL' 'CHPO' ELT1 1 MOTPRI 1.0 'NATURE' 'DISCRET' ;
'REPETER' BL1 NDIM ;
MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
CHPUN = CHPUN 'ET' ('MANUEL' 'CHPO' ('DOMA' $MODE 'CENTRE')
1 MOTCEL 0.0 'NATURE' 'DISCRET') ;
'FIN' BL1 ;
D_DMOT = 'KOPS' JACO 'MULT' CHPUN ;
SCAL = 'EXTRAIRE' D_DMOT PDUAL MOTDUA ;
'FINPROC' SCAL ;
'DEBPROC' JACNUM $MODE*'MMODEL' NOMMET*'MOT' RN*'CHPOINT' GN*'CHPOINT'
RETN*'CHPOINT' GAMN*'CHPOINT'
LISTINCO*'LISTMOTS' MELLIM*'MAILLAGE' UINF*'CHPOINT' UPRI*'CHPOINT'
PPRIM*'POINT' PDUAL*'POINT'
MOTPRI*'MOT' MOTDUA*'MOT' EPSILON*'FLOTTANT';
* PPRIM = point ou est localisé la variable primale
* PDUAL = point ou est localisé la variable duale
* MOTPRI = nom de la composante concernante la variable primale
* MOTDUA = nom de la composante concernante la variable duale
* Le valeur dans l'état non-perturbé en PDUAL ;
RNCEL = 'COPIER' RN ;
GNCEL = 'COPIER' GN ;
RETNCEL = 'COPIER' RETN ;
VITESSE PRES = 'PRIM' 'PERFMONO' RNCEL GNCEL RETNCEL GAMN ;
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$MODE RNCEL VITESSE PRES GAMN ;
CHPRES0 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' NOMMET
$MODE ROF VITF PF GAMF LISTINCO MELLIM UINF UPRI ;
* 'LISTE' DT ;
VAL0 = 'EXTRAIRE' CHPRES0 PDUAL MOTDUA ;
* EPSILON = perturbation
* Adimensionalisation
dens0 = 'EXTRAIRE' RN PPRIM 'SCAL' ;
VN PN = 'PRIM' 'PERFMONO' RN GN RETN GAMN ;
CN2 = GAMN '*' (PN '/' RN) ;
cson0 = ('EXTRAIRE' CN2 PPRIM 'SCAL') '**' 0.5 ;
ret0 = ('EXTRAIRE' RETN PPRIM 'SCAL') '**' 0.5 ;
* On etabli la variable à perturber
NDIM = 'DIME' LISTINCO ;
'REPETER' BL1 NDIM ;
MOTCEL = 'EXTRAIRE' LISTINCO &BL1 ;
'SI' ('EGA' MOTCEL MOTPRI) ;
ICEL = &BL1 ;
'QUITTER' BL1 ;
'FINSI' ;
'FIN' BL1 ;
'SI' (ICEL > NDIM) ;
'MESSAGE' 'Procedure JACNUM' ;
'MESSAGE' 'MOTPRI = ??? ';
'ERREUR' 21 ;
'FINSI' ;
ELT1 = 'MANUEL' 'POI1' PPRIM ;
* ICEL = 1 -> On perturbe la densité
'SI' ('EGA' ICEL 1) ;
DELTATOT = (EPSILON * dens0) ;
RNCEL = ('MANUEL' 'CHPO' ELT1 1 'SCAL' DELTATOT
'NATURE' 'DISCRET') 'ET' RN ;
GNCEL = 'COPIER' GN ;
RETNCEL = 'COPIER' RETN ;
'FINSI' ;
* ICEL = 2 -> On perturbe la q.d.m. long l'ax x
'SI' ('EGA' ICEL 2) ;
DELTATOT = (EPSILON * dens0 * cson0) ;
GNCEL = ('MANUEL' 'CHPO' ELT1 1 'UX' DELTATOT
'NATURE' 'DISCRET') 'ET' GN ;
RNCEL = 'COPIER' RN ;
RETNCEL = 'COPIER' RETN ;
'FINSI' ;
* ICEL = 3 -> On perturbe la q.d.m. long l'ax y
'SI' ('EGA' ICEL 3) ;
DELTATOT = (EPSILON * dens0 * cson0) ;
GNCEL = ('MANUEL' 'CHPO' ELT1 1 'UY' DELTATOT
'NATURE' 'DISCRET') 'ET' GN ;
RNCEL = 'COPIER' RN ;
RETNCEL = 'COPIER' RETN ;
'FINSI' ;
* ICEL = 4 -> On perturbe l'énergie totale
'SI' ('EGA' ICEL 4) ;
DELTATOT = (EPSILON * ret0) ;
RETNCEL = ('MANUEL' 'CHPO' ELT1 1 'SCAL' DELTATOT
'NATURE' 'DISCRET') 'ET' RETN ;
RNCEL = 'COPIER' RN ;
GNCEL = 'COPIER' GN ;
'FINSI' ;
VITESSE PRES = 'PRIM' 'PERFMONO' RNCEL GNCEL RETNCEL GAMN ;
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$MODE RNCEL VITESSE PRES GAMN ;
CHPRES1 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' NOMMET
$MODE ROF VITF PF GAMF LISTINCO MELLIM UINF UPRI;
VAL1 = 'EXTRAIRE' CHPRES1 PDUAL MOTDUA ;
'FINPROC' ((VAL1 '-' VAL0) '/' DELTATOT) ;
*****************************************************
*****************************************************
******** FIN PROCEDURES *****************************
*****************************************************
*****************************************************
*****************************************************
*****************************************************
******* TEST1 ***************************************
*****************************************************
*
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM9 'CENTRE'
*
PCEN9 = 'POIN' 1 ('DOMA' $DOM9 'CENTRE') ;
* Les grandeurs pour adimesionner les erreurs
ro0 = 'EXTRAIRE' RN0 PCEN9 'SCAL' ;
VN0 PN0 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
CN20 = GAMMAN '*' (PN0 '/' RN0) ;
cson0 = ('EXTRAIRE' CN20 PCEN9 'SCAL') '**' 0.5 ;
ret0 = ('EXTRAIRE' RETN0 PCEN9 'SCAL') '**' 0.5 ;
*
* Le jacobien exact.
* DRR = d(RES_ro)/dro (variable primale en PCEN9, variable duale en PCEN9) ;
* DGXR = d(RES_gx)/dro (variable primale en PCEN9, variable duale en PCEN9) ;
* ...
DRR = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMDEN NOMDEN ;
DGXR = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMDEN NOMMOX ;
DGYR = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMDEN NOMMOY ;
DRETR = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMDEN NOMRET ;
DRGX = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOX NOMDEN ;
DGXGX = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOX NOMMOX ;
DGYGX = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOX NOMMOY ;
DRETGX = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOX NOMRET ;
DRGY = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOY NOMDEN ;
DGXGY = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOY NOMMOX ;
DGYGY = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOY NOMMOY ;
DRETGY = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMMOY NOMRET ;
DRRET = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMRET NOMDEN ;
DGXRET = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMRET NOMMOX ;
DGYRET = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMRET NOMMOY ;
DRETRET = JACOVA JACO $DOMTOT LISTINCO PCEN9 PCEN9 NOMRET NOMRET ;
* Le jacobien numerique
DELTA = 1.0D-6 ;
DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMDEN NOMDEN DELTA ;
DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMDEN NOMMOX DELTA ;
DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMDEN NOMMOY DELTA ;
DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMDEN NOMRET DELTA ;
DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOX NOMDEN DELTA ;
DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOX NOMMOX DELTA ;
DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOX NOMMOY DELTA ;
DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOX NOMRET DELTA ;
DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOY NOMDEN DELTA ;
DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOY NOMMOX DELTA ;
DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOY NOMMOY DELTA ;
DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMMOY NOMRET DELTA ;
DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMRET NOMDEN DELTA ;
DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMRET NOMMOX DELTA ;
DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN9 PCEN9 NOMRET NOMMOY DELTA ;
DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM
UINF UPRI PCEN9 PCEN9 NOMRET NOMRET DELTA ;
* Test des comparaisons jacobien exact-jacobien numerique
**************************************************************
'SI' (('ABS'(DRR)) < DELTA) ;
ERR1 = ('ABS' (DRRN '-' DRR)) ;
'SINON' ;
ERR1 = ('ABS' (DRRN '-' DRR)) '/' ('ABS' (DRR)) ;
'FINSI' ;
***********************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 1';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGXR)) < DELTA) ;
ERR1 = ('ABS' (DGXRN '-' DGXR)) ;
'SINON' ;
ERR1 = ('ABS' (DGXRN '-' DGXR)) '/' ('ABS' (DGXR)) ;
'FINSI' ;
***********************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 2';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGYR)) < DELTA) ;
ERR1 = ('ABS' (DGYRN '-' DGYR)) ;
'SINON' ;
ERR1 = ('ABS' (DGYRN '-' DGYR)) '/' ('ABS' (DGYR)) ;
'FINSI' ;
************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 3';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRETR)) < DELTA) ;
ERR1 = ('ABS' (DRETRN '-' DRETR)) ;
'SINON' ;
ERR1 = ('ABS' (DRETRN '-' DRETR)) '/' ('ABS' (DRETR)) ;
'FINSI' ;
**************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRGX)) < DELTA) ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
'SINON' ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) '/' ('ABS' (DRGX)) ;
'FINSI' ;
***************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGXGX)) < DELTA) ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) ;
'SINON' ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' ('ABS' (DGXGX)) ;
'FINSI' ;
*****************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGYGX)) < DELTA) ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) ;
'SINON' ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' ('ABS' (DGYGX)) ;
'FINSI' ;
******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DRETGX)) < DELTA) ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) ;
'SINON' ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '/' ('ABS' (DRETGX)) ;
'FINSI' ;
*******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRGY)) < DELTA) ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
'SINON' ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) '/' ('ABS' (DRGY)) ;
'FINSI' ;
*******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGXGY)) < DELTA) ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) ;
'SINON' ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' ('ABS' (DGXGY)) ;
'FINSI' ;
********************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGYGY)) < DELTA) ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) ;
'SINON' ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' ('ABS' (DGYGY)) ;
'FINSI' ;
***************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DRETGY)) < DELTA) ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) ;
'SINON' ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '/' ('ABS' (DRETGY)) ;
'FINSI' ;
****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 12';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRRET)) < DELTA) ;
ERR1 = ('ABS' (DRRETN '-' DRRET)) ;
'SINON' ;
ERR1 = ('ABS' (DRRETN '-' DRRET)) '/' ('ABS' (DRRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 13';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGXRET)) < DELTA) ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) ;
'SINON' ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '/' ('ABS' (DGXRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGYRET)) < DELTA) ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) ;
'SINON' ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '/' ('ABS' (DGYRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRETRET)) < DELTA) ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) ;
'SINON' ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' ('ABS' (DRETRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST2 ***************************************
*****************************************************
*****************************************************
*
* On compare le jacobien et la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM6 'CENTRE'
*
PCEN6 = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCEN6 'SCAL' ;
cson0 = ('EXTRAIRE' CN20 PCEN6 'SCAL') '**' 0.5 ;
ret0 = 'EXTRAIRE' RETN0 PCEN6 'SCAL' ;
*
* Le jacobien exact.
*
DRR = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMDEN NOMDEN ;
DGXR = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMDEN NOMMOX ;
DGYR = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMDEN NOMMOY ;
DRETR = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMDEN NOMRET ;
DRGX = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOX NOMDEN ;
DGXGX = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOX NOMMOX ;
DGYGX = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOX NOMMOY ;
DRETGX = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOX NOMRET ;
DRGY = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOY NOMDEN ;
DGXGY = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOY NOMMOX ;
DGYGY = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOY NOMMOY ;
DRETGY = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMMOY NOMRET ;
DRRET = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMRET NOMDEN ;
DGXRET = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMRET NOMMOX ;
DGYRET = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMRET NOMMOY ;
DRETRET = JACOVA JACO $DOMTOT LISTINCO PCEN6 PCEN9 NOMRET NOMRET ;
* Le jacobien numerique
DELTA = 1.0D-6 ;
DRRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMDEN NOMDEN DELTA ;
DGXRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMDEN NOMMOX DELTA ;
DGYRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMDEN NOMMOY DELTA ;
DRETRN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMDEN NOMRET DELTA ;
DRGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOX NOMDEN DELTA ;
DGXGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOX NOMMOX DELTA ;
DGYGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOX NOMMOY DELTA ;
DRETGXN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOX NOMRET DELTA ;
DRGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOY NOMDEN DELTA ;
DGXGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOY NOMMOX DELTA ;
DGYGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOY NOMMOY DELTA ;
DRETGYN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMMOY NOMRET DELTA ;
DRRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMRET NOMDEN DELTA ;
DGXRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMRET NOMMOX DELTA ;
DGYRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM UINF
UPRI PCEN6 PCEN9 NOMRET NOMMOY DELTA ;
DRETRETN = JACNUM $DOMTOT METO RN0 GN0 RETN0 GAMMAN LISTINCO MELLIM
UINF UPRI PCEN6 PCEN9 NOMRET NOMRET DELTA ;
* Test des comparaisons jacobien exact-jacobien numerique
**************************************************************
'SI' (('ABS'(DRR)) < DELTA) ;
ERR1 = ('ABS' (DRRN '-' DRR)) ;
'SINON' ;
ERR1 = ('ABS' (DRRN '-' DRR)) '/' ('ABS' (DRR)) ;
'FINSI' ;
***********************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 1';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGXR)) < DELTA) ;
ERR1 = ('ABS' (DGXRN '-' DGXR)) ;
'SINON' ;
ERR1 = ('ABS' (DGXRN '-' DGXR)) '/' ('ABS' (DGXR)) ;
'FINSI' ;
***********************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 2';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGYR)) < DELTA) ;
ERR1 = ('ABS' (DGYRN '-' DGYR)) ;
'SINON' ;
ERR1 = ('ABS' (DGYRN '-' DGYR)) '/' ('ABS' (DGYR)) ;
'FINSI' ;
************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 3';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRETR)) < DELTA) ;
ERR1 = ('ABS' (DRETRN '-' DRETR)) ;
'SINON' ;
ERR1 = ('ABS' (DRETRN '-' DRETR)) '/' ('ABS' (DRETR)) ;
'FINSI' ;
**************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 4';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRGX)) < DELTA) ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) ;
'SINON' ;
ERR1 = ('ABS' (DRGXN '-' DRGX)) '/' ('ABS' (DRGX)) ;
'FINSI' ;
***************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 5';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGXGX)) < DELTA) ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) ;
'SINON' ;
ERR1 = ('ABS' (DGXGXN '-' DGXGX)) '/' ('ABS' (DGXGX)) ;
'FINSI' ;
*****************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 6';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGYGX)) < DELTA) ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) ;
'SINON' ;
ERR1 = ('ABS' (DGYGXN '-' DGYGX)) '/' ('ABS' (DGYGX)) ;
'FINSI' ;
******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 7';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DRETGX)) < DELTA) ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) ;
'SINON' ;
ERR1 = ('ABS' (DRETGXN '-' DRETGX)) '/' ('ABS' (DRETGX)) ;
'FINSI' ;
*******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 8';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRGY)) < DELTA) ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) ;
'SINON' ;
ERR1 = ('ABS' (DRGYN '-' DRGY)) '/' ('ABS' (DRGY)) ;
'FINSI' ;
*******************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 9';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGXGY)) < DELTA) ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) ;
'SINON' ;
ERR1 = ('ABS' (DGXGYN '-' DGXGY)) '/' ('ABS' (DGXGY)) ;
'FINSI' ;
********************************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 10';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGYGY)) < DELTA) ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) ;
'SINON' ;
ERR1 = ('ABS' (DGYGYN '-' DGYGY)) '/' ('ABS' (DGYGY)) ;
'FINSI' ;
***************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 11';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DRETGY)) < DELTA) ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) ;
'SINON' ;
ERR1 = ('ABS' (DRETGYN '-' DRETGY)) '/' ('ABS' (DRETGY)) ;
'FINSI' ;
****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 12';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRRET)) < DELTA) ;
ERR1 = ('ABS' (DRRETN '-' DRRET)) ;
'SINON' ;
ERR1 = ('ABS' (DRRETN '-' DRRET)) '/' ('ABS' (DRRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 13';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DGXRET)) < DELTA) ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) ;
'SINON' ;
ERR1 = ('ABS' (DGXRETN '-' DGXRET)) '/' ('ABS' (DGXRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 14';
'ERREUR' 5 ;
'FINSI' ;
*************************************************************
'SI' (('ABS'(DGYRET)) < DELTA) ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) ;
'SINON' ;
ERR1 = ('ABS' (DGYRETN '-' DGYRET)) '/' ('ABS' (DGYRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 15';
'ERREUR' 5 ;
'FINSI' ;
**************************************************************
'SI' (('ABS'(DRETRET)) < DELTA) ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) ;
'SINON' ;
ERR1 = ('ABS' (DRETRETN '-' DRETRET)) '/' ('ABS' (DRETRET)) ;
'FINSI' ;
*****************
'SI' (ERR1 > ERRTOL) ;
'MESSAGE' 'Problem 16';
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST3 ***************************************
*****************************************************
*****************************************************
*
* On observe que la variation du residu
* en $DOM9 'CENTRE' par rapport à une variation
* infinitésimal en $DOM7 'CENTRE' doit etre nulle.
*
PCEN7 = ('DOMA' $DOM7 'CENTRE') 'POIN' 1 ;
ro0 = 'EXTRAIRE' RN0 PCEN7 'SCAL' ;
cson0 = ('EXTRAIRE' CN20 PCEN7 'SCAL') '**' 0.5 ;
ret0 = 'EXTRAIRE' RETN0 PCEN7 'SCAL' ;
*
* Le jacobien exact.
*
DRR = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMDEN NOMDEN ;
DGXR = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMDEN NOMMOX ;
DGYR = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMDEN NOMMOY ;
DRETR = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMDEN NOMRET ;
DRGX = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOX NOMDEN ;
DGXGX = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOX NOMMOX ;
DGYGX = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOX NOMMOY ;
DRETGX = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOX NOMRET ;
DRGY = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOY NOMDEN ;
DGXGY = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOY NOMMOX ;
DGYGY = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOY NOMMOY ;
DRETGY = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMMOY NOMRET ;
DRRET = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMRET NOMDEN ;
DGXRET = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMRET NOMMOX ;
DGYRET = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMRET NOMMOY ;
DRETRET = JACOVA JACO $DOMTOT LISTINCO PCEN7 PCEN9 NOMRET NOMRET ;
'SI' (('MAXIMUM'
('PROG' DRR DGXR DGYR DRETR
DRGX DGXGX DGYGX DRETGX
DRGY DGXGY DGYGY DRETGY
DRRET DGXRET DGYRET DRETRET ) 'ABS' )
> ERRTOL) ;
'MESSAGE' 'Problem final' ;
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST4 ***************************************
*****************************************************
*****************************************************
* AUSMPLUS = AUSMPBM in the following cases:
* 1) VN0 > CN
* 2) UINF1 > CN
* 3) UINF2 > CN
*
* Let us start from RN0, VN0, PN0, GAMMAN
*
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$DOMTOT RN0 VN0 PN0 GAMMAN ;
ECIN = 0.5D0 * RN0 * ('PSCAL' VN0 VN0 ('MOTS' 'UX' 'UY')
('MOTS' 'UX' 'UY')) ;
RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
'NATU' 'DISCRET' ;
GN0 = VN0 '*' RN0 ('MOTS' 'UX' 'UY') ('MOTS' 'SCAL' 'SCAL')
('MOTS' 'UX' 'UY');
CN0 = (GAMMAN '*' (PN0 '/' RN0)) '**' 0.5 ;
UINF2 = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
UINF1 = CN0 * 1.17 ;
CHPRES DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'AUSMPLM'
$DOMTOT ROF VITF PF GAMF LISTINCO
MELLIM UINF1 UINF2 ;
JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTINCO MELLIM
'AUSMPLM' RN0 VN0 PN0 GAMMAN
UINF2 UINF1 ;
CHPRES1 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'AUSMPLUS'
$DOMTOT ROF VITF PF GAMF LISTINCO
MELLIM ;
JACO1 = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTINCO MELLIM
'AUSMPLUS' RN0 VN0 PN0 GAMMAN ;
ERRO = 'MAXIMUM' (CHPRES1 '-' CHPRES) 'ABS' ;
'SI' (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final 2' ;
'ERREUR' 5 ;
'FINSI' ;
UNTEST = ('NOMC' RN0 NOMDEN 'NATU' 'DISCRET') 'ET'
('NOMC' GN0 ('MOTS' 'UX' 'UY') ('MOTS' NOMMOX NOMMOY)
'NATU' 'DISCRET') 'ET'
('NOMC' RETN0 NOMRET 'NATU' 'DISCRET') ;
ERRO = 'MAXIMUM' (('KOPS' 'MULT' JACO UNTEST) '-'
('KOPS' 'MULT' JACO1 UNTEST)) 'ABS' ;
SI (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final 2' ;
'ERREUR' 5 ;
'FINSI' ;
* Redefinition of VN0
CN0 = (GAMMAN '*' (PN0 '/' RN0)) '**' 0.5 ;
VN0 = ('NOMC' (CN0 * 1.11) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (CN0 * 2.11) 'UY' 'NATU' 'DISCRET') ;
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$DOMTOT RN0 VN0 PN0 GAMMAN ;
UINF2 = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
UINF1 = UINF2 ;
CHPRES DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'AUSMPLM'
$DOMTOT ROF VITF PF GAMF LISTINCO
MELLIM UINF1 UINF2 ;
JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTINCO MELLIM
'AUSMPLM' RN0 VN0 PN0 GAMMAN
UINF2 UINF1 ;
CHPRES1 DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'AUSMPLUS'
$DOMTOT ROF VITF PF GAMF LISTINCO
MELLIM ;
JACO1 = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTINCO MELLIM
'AUSMPLUS' RN0 VN0 PN0 GAMMAN ;
ERRO = 'MAXIMUM' (CHPRES1 '-' CHPRES) 'ABS' ;
'SI' (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final 2' ;
'ERREUR' 5 ;
'FINSI' ;
UNTEST = ('NOMC' RN0 NOMDEN 'NATU' 'DISCRET') 'ET'
('NOMC' GN0 ('MOTS' 'UX' 'UY') ('MOTS' NOMMOX NOMMOY)
'NATU' 'DISCRET') 'ET'
('NOMC' RETN0 NOMRET 'NATU' 'DISCRET') ;
ERRO = 'MAXIMUM' (('KOPS' 'MULT' JACO UNTEST) '-'
('KOPS' 'MULT' JACO1 UNTEST)) 'ABS' ;
SI (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final 3' ;
'ERREUR' 5 ;
'FINSI' ;
*****************************************************
*****************************************************
******* TEST5 ***************************************
*****************************************************
*****************************************************
* Primitive variables
* Redefinition of VN0
*
UINF2 = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 0.0 ;
UINF1 = UINF2 ;
RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
PN0 = 'BRUI' 'BLAN' 'UNIF' 1234.1 800 ('DOMA' $DOMTOT 'CENTRE') ;
GAMMAN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
'NATU' 'DISCRET' ;
CN0 = (GAMMAN '*' PN0) '/' RN0 ;
CN0 = 'KOPS' CSONN '**' 0.5 ;
VN0 = ('NOMC' (CN0 * 0.11) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (CN0 * 2.11) 'UY' 'NATU' 'DISCRET') ;
LISTCONS = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' ;
JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTCONS METO RN0 VN0 PN0 GAMMAN
UINF1 UINF2;
LISTPRIM = 'MOTS' 'RN' 'UX' 'UY' 'PN' ;
DUDV = 'PRIM' 'CONSPRIM' ('DOMA' $DOMTOT 'CENTRE')
LISTCONS LISTPRIM RN0 VN0 PN0 GAMMAN ;
JACOP = 'KONV' 'VF' 'PERFMONO' 'JACOPRIM'
$DOMTOT LISTCONS LISTPRIM METO RN0 VN0 PN0 GAMMAN
UINF1 UINF2;
UNP = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 4 'RN' 0.11
'UX' 0.15 'UY' 0.19 'PN' 0.21 ;
* JACOP * UNP = JACO * DUDV * UNP, \forall UNP
ERRO = 'MAXIMUM' (
('KOPS' 'MULT' JACOP UNP) '-'
('KOPS' 'MULT' JACO ('KOPS' 'MULT' DUDV UNP))
) ;
'SI' (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final' ;
'ERREUR' 5 ;
'FINSI' ;
*
UINF2 = CN0 ;
UINF1 = UINF2 ;
JACO = 'KONV' 'VF' 'PERFMONO' 'JACOCONS'
$DOMTOT LISTCONS METO RN0 VN0 PN0 GAMMAN
UINF1 UINF2;
JACOP = 'KONV' 'VF' 'PERFMONO' 'JACOPRIM'
$DOMTOT LISTCONS LISTPRIM METO RN0 VN0 PN0 GAMMAN
UINF1 UINF2;
* JACOP * UNP = JACO * DUDV * UNP, \forall UNP
ERRO = 'MAXIMUM' (
('KOPS' 'MULT' JACOP UNP) '-'
('KOPS' 'MULT' JACO ('KOPS' 'MULT' DUDV UNP))
) ;
'SI' (ERRO > ERRTOL) ;
'MESSAGE' 'Problem final' ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer