* fichier : tube_multi.dgibi
******************************************************************
* CALCUL DU TUBE A CHOC; CAS MULTIESPECE *
* *
* FORMULATION VF COMPRESSIBLE EXPLICITE *
* DIFFERENTS SOLVEURS *
* *
* A. BECCANTINI TTMF NOVEMBRE 1998 *
******************************************************************
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' 'QUA4' ;
'OPTION' 'ISOV' 'SULI' ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X';
GRAPH = FAUX ;
* GRAPH = VRAI ;
*
*** Methodes possibles :
*
* 'VANLEER'
* 'VLH '
* 'HUSVL '
* 'HUSVLH '
* 'GODUNOV'
*
METO = 'VLH' ;
************
* MAILLAGE *
************
RAF = 4 ;
NY = RAF ;
NX = 12 '*' RAF ;
L = 1.0D0 ;
DX = L '/' NX '/' 2.0D0;
H = NY '*' DX ;
xD = 0.5D0 '*' L ;
xG = -1.0D0 '*' xD ;
yH = 0.5D0 '*' H ;
yB = -1.0D0 '*' yH ;
A1 = xG yB ;
A2 = 0.0D0 yB ;
A3 = xD yB ;
A4 = xD yH ;
A5 = 0.0D0 yH ;
A6 = xG yH ;
VECTG = XG 0.0D0 ;
VECTD = XD 0.0D0 ;
xBG = xG '-' DX;
XBD = xD '+' DX;
B1 = xBG yB;
B2 = xBG yH;
B3 = xBD yB;
B4 = xBD yH;
BAS1 = A1 'DROI' NX A2 ;
BAS2 = A2 'DROI' NX A3 ;
HAU2 = A4 'DROI' NX A5 ;
HAU1 = A5 'DROI' NX A6 ;
LATG = B1 'DROI' NY B2 ;
LAT1 = A1 'DROI' NY A6 ;
LAT12 = A2 'DROI' NY A5 ;
LAT2 = A3 'DROI' NY A4 ;
LATD = B3 'DROI' NY B4 ;
DOM1 = LAT12 'TRANSLATION' NX VECTG ;
DOM2 = LAT12 'TRANSLATION' NX VECTD ;
VECTFG = (-1.0D0 '*' DX) 0.0D0;
VECTFD = DX 0.0D0;
FRONTG = LAT1 'TRANSLATION' 1 VECTFG;
FRONTG = FRONTG 'COUL' ROUG ;
FRONTD = LAT2 'TRANSLATION' 1 VECTFD;
FRONTD = FRONTD 'COUL' VERT ;
*
*** Rotation
*
ANGLE = 30.0D0;
ORIG = 0.0D0 0.0D0;
'MESSAGE';
'MESSAGE' (CHAIN 'ANGLE = ' ANGLE);
'MESSAGE';
DOM1 = DOM1 'TOURNER' ANGLE ORIG;
DOM2 = DOM2 'TOURNER' ANGLE ORIG;
FRONTG = FRONTG 'TOURNER' ANGLE ORIG;
FRONTD = FRONTD 'TOURNER' ANGLE ORIG;
DOMINT = DOM1 'ET' DOM2 ;
'ELIMINATION' DOMINT 1D-6;
FRONT = FRONTG 'ET' FRONTD ;
'ELIMINATION' FRONT 1D-6;
DOMTOT = DOMINT 'ET' FRONT;
'ELIMINATION' DOMTOT 1D-6;
MAILVID = 'DIFF' DOM1 DOM1 ;
**********************
*** OBJETS MODELES ***
**********************
'SI' VRAI ;
$DOMTOT = 'MODE' DOMTOT 'EULER' ;
$DOMINT = 'MODE' DOMINT 'EULER' ;
$DOM1 = 'MODE' DOM1 'EULER' ;
$DOM2 = 'MODE' DOM2 'EULER' ;
$FRONTG = 'MODE' FRONTG 'EULER' ;
$FRONTD = 'MODE' FRONTD 'EULER' ;
$FRONT = 'MODE' FRONT 'EULER' ;
TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
TDOMINT = 'DOMA' $DOMINT 'VF' ;
TDOM1 = 'DOMA' $DOM1 'VF' ;
TDOM2 = 'DOMA' $DOM2 'VF' ;
TFRONTG = 'DOMA' $FRONTG 'VF' ;
TFRONTD = 'DOMA' $FRONTD 'VF' ;
TFRONT = 'DOMA' $FRONT 'VF' ;
MDOMTOT = TDOMTOT . 'QUAF' ;
MDOMINT = TDOMINT . 'QUAF' ;
MDOM1 = TDOM1 . 'QUAF' ;
MDOM2 = TDOM2 . 'QUAF' ;
MFRONTG = TFRONTG . 'QUAF' ;
MFRONTD = TFRONTD . 'QUAF' ;
MFRONT = TFRONT . 'QUAF' ;
'ELIM' (MDOMTOT 'ET' MDOMINT 'ET' MDOM1 'ET' MDOM2 'ET'
MFRONTG 'ET' MFRONTD 'ET' MFRONT) 1.E-5 ;
'SINON' ;
MDOMTOT = 'CHANGER' DOMTOT 'QUAF' ;
MDOMINT = 'CHANGER' DOMINT 'QUAF' ;
MDOM1 = 'CHANGER' DOM1 'QUAF' ;
MDOM2 = 'CHANGER' DOM2 'QUAF' ;
MFRONTG = 'CHANGER' FRONTG 'QUAF' ;
MFRONTD = 'CHANGER' FRONTD 'QUAF' ;
MFRONT = 'CHANGER' FRONT 'QUAF' ;
'ELIM' (MDOMTOT 'ET' MDOMINT 'ET' MDOM1 'ET' MDOM2 'ET'
MFRONTG 'ET' MFRONTD 'ET' MFRONT) 1.E-5;
$DOMTOT = 'MODE' MDOMTOT 'NAVIER_STOKES' 'LINE' ;
$DOMINT = 'MODE' MDOMINT 'NAVIER_STOKES' 'LINE' ;
$DOM1 = 'MODE' MDOM1 'NAVIER_STOKES' 'LINE' ;
$DOM2 = 'MODE' MDOM2 'NAVIER_STOKES' 'LINE' ;
$FRONTG = 'MODE' MFRONTG 'NAVIER_STOKES' 'LINE' ;
$FRONTD = 'MODE' MFRONTD 'NAVIER_STOKES' 'LINE' ;
$FRONT = 'MODE' MFRONT 'NAVIER_STOKES' 'LINE' ;
'FINSI' ;
*
******* Creation de la ligne Utilisée pour le Post-Traitement
* reliant les points centres
*
XINIT = XG '+' (0.5D0 '*' DX) ;
YINIT = YB '+' (0.5D0 '*' DX) ;
XFIN = XD '-' (0.5D0 '*' DX) ;
YFIN = YINIT ;
PINI = XINIT YINIT;
PFIN = XFIN YFIN ;
IAUX = (2 '*' NX) '-' 1 ;
COURB = PINI 'DROIT' IAUX PFIN;
COURB = COURB 'TOURNER' ANGLE ORIG;
COURB = COURB 'COULEUR' 'VERT';
'ELIMINATION' 0.001 Courb ('DOMA' $DOMTOT 'CENTRE') ;
'SI' GRAPH ;
'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET' COURB)
'TITRE' ('CHAINE' 'Maillage ');
'FINSI' ;
************************************************************
* CONDITIONS INITIALES ET LIMITES. *
************************************************************
*
**** Proprietes de gaz
*
*
*** GAZ: H_2, O_2, H_2O, N_2
*
* CP, CV en J/Kg/K @ T = 3000
*
PGAZ = 'TABLE' ;
PGAZ . 'CP' = 'TABLE' ;
PGAZ . 'CP' . 'H2 ' = .18729066D+05 ;
PGAZ . 'CP' . 'O2 ' = .11886820D+04 ;
PGAZ . 'CP' . 'H2O ' = .31209047D+04 ;
PGAZ . 'CP' . 'N2 ' = .12993995D+04 ;
PGAZ . 'CV' = 'TABLE' ;
PGAZ . 'CV' . 'H2 ' = .14571861D+05 ;
PGAZ . 'CV' . 'O2 ' = .92885670D+03 ;
PGAZ . 'CV' . 'H2O ' = .26589930D+04 ;
PGAZ . 'CV' . 'N2 ' = .10024563D+04;
*
**** Especes qui sont dans les equations d'Euler
*
PGAZ . 'ESPEULE' = 'MOTS' 'H2 ' 'O2 ' 'H2O ' ;
*
**** Espece qui n'y est pas
*
PGAZ . 'ESPNEULE' = 'N2 ';
*
*** Etat gauche
*
rog = 1.0 ;
ung = 0.0 ;
utg = 0.0 ;
pg = 1.0D3 ;
yg = 'PROG' 0.01 0.2 0.3 ;
*
*** gamg
*
YTOT = 0.0 ;
CPTOT = 0.0 ;
CVTOT = 0.0 ;
'REPETER' BL1 ('DIME' (PGAZ . 'ESPEULE') );
CELCAR = 'EXTRAIRE' &BL1 (PGAZ . 'ESPEULE');
CPCEL = PGAZ . 'CP' . CELCAR ;
CVCEL = PGAZ . 'CV' . CELCAR ;
YCEL = 'EXTRAIRE' &BL1 yg ;
YTOT = YTOT '+' YCEL ;
CPTOT = CPTOT '+' (YCEL '*' CPCEL) ;
CVTOT = CVTOT '+' (YCEL '*' CVCEL) ;
'FIN' BL1 ;
CELCAR = (PGAZ . 'ESPNEULE') ;
CPCEL = PGAZ . 'CP' . CELCAR ;
CVCEL = PGAZ . 'CV' . CELCAR ;
YCEL = 1.0D0 '-' YTOT;
CPTOT = CPTOT '+' (YCEL '*' CPCEL) ;
CVTOT = CVTOT '+' (YCEL '*' CVCEL) ;
gamg = CPTOT '/' CVTOT ;
*
rouxg = ((ung '*' ('COS' ANGLE)) '-'
(utg '*' ('SIN' ANGLE))) '*' rog ;
rouyg = ((ung '*' ('SIN' ANGLE)) '+'
(utg '*' ('COS' ANGLE))) '*' rog;
recing = 0.5D0 '*' rog '*' ((ung '*' ung) '+' (utg '*' utg));
retg = (pg '/' (gamg '-' 1.0)) '+' recing;
*
*** Etat droite
*
rod = 1.250D-1 ;
und = 0.0D0 ;
utd = 0.0D0 ;
pd = 1.0D0 ;
yd = 'PROG' 0.2 0.4 0.1;
*
*** gamd
*
YTOT = 0.0 ;
CPTOT = 0.0 ;
CVTOT = 0.0 ;
'REPETER' BL1 ('DIME' (PGAZ . 'ESPEULE') );
CELCAR = 'EXTRAIRE' &BL1 (PGAZ . 'ESPEULE');
CPCEL = PGAZ . 'CP' . CELCAR ;
CVCEL = PGAZ . 'CV' . CELCAR ;
YCEL = 'EXTRAIRE' &BL1 yd ;
YTOT = YTOT '+' YCEL ;
CPTOT = CPTOT '+' (YCEL '*' CPCEL) ;
CVTOT = CVTOT '+' (YCEL '*' CVCEL) ;
'FIN' BL1 ;
CELCAR = (PGAZ . 'ESPNEULE') ;
CPCEL = PGAZ . 'CP' . CELCAR ;
CVCEL = PGAZ . 'CV' . CELCAR ;
YCEL = 1.0D0 '-' YTOT;
CPTOT = CPTOT '+' (YCEL '*' CPCEL) ;
CVTOT = CVTOT '+' (YCEL '*' CVCEL) ;
gamd = CPTOT '/' CVTOT ;
*
rouxd = ((und '*' ('COS' ANGLE)) '-'
(utd '*' ('SIN' ANGLE))) '*' rod;
rouyd = ((und '*' ('SIN' ANGLE)) '+'
(utd '*' ('COS' ANGLE))) '*' rod;
recind = 0.5D0 '*' rod '*' ((und '*' und) '+' (utd '*' utd));
retd = (pd '/' (gamd '-' 1.0)) '+' recind;
*
*** ro
*
RO_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' rog ;
RO_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' rod ;
RO_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RO_f1 'ET' RO_f2) ;
RO_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' rog;
RO_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' rod;
RO_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RO_i1 'ET' RO_i2);
RN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RO_i 'ET' RO_f) ;
*
*** ro u, ro v
*
GN_f1 = 'KCHT' $FRONTG 'VECT' 'CENTRE' (rouxg rouyg);
GN_f2 = 'KCHT' $FRONTD 'VECT' 'CENTRE' (rouxd rouyd);
GN_f = 'KCHT' $FRONT 'VECT' 'CENTRE' (GN_f1 'ET' GN_f2);
GN_i1 = 'KCHT' $DOM1 'VECT' 'CENTRE' (rouxg rouyg);
GN_i2 = 'KCHT' $DOM2 'VECT' 'CENTRE' (rouxd rouyd);
GN_i = 'KCHT' $DOMINT 'VECT' 'CENTRE' (GN_i1 'ET' GN_i2);
GN = 'KCHT' $DOMTOT 'VECT' 'CENTRE' (GN_i 'ET' GN_f) ;
*
*** ro e
*
RE_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE' retg ;
RE_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE' retd ;
RE_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' (RE_f1 'ET' RE_f2) ;
RE_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE' retg ;
RE_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE' retd ;
RE_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' (RE_i1 'ET' RE_i2);
RETN = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' (RE_i ET RE_f) ;
*
*** ro y
*
'REPETER' BL1 ('DIME' (PGAZ . 'ESPEULE') );
CELCAR = 'EXTRAIRE' &BL1 (PGAZ . 'ESPEULE');
YCELG = 'EXTRAIRE' &BL1 yg ;
YCELD = 'EXTRAIRE' &BL1 yd ;
ROY_f1 = 'KCHT' $FRONTG 'SCAL' 'CENTRE'
'COMP' CELCAR (rog '*' ycelg);
ROY_f2 = 'KCHT' $FRONTD 'SCAL' 'CENTRE'
'COMP' CELCAR (rod '*' yceld);
ROY_i1 = 'KCHT' $DOM1 'SCAL' 'CENTRE'
'COMP' CELCAR (rog '*' ycelg);
ROY_i2 = 'KCHT' $DOM2 'SCAL' 'CENTRE'
'COMP' CELCAR (rod '*' yceld);
'SI' (&BL1 'EGA' 1);
ROY_f = 'KCHT' $FRONT 'SCAL' 'CENTRE' 'COMP' CELCAR
(ROY_f1 'ET' ROY_f2) ;
ROY_i = 'KCHT' $DOMINT 'SCAL' 'CENTRE' 'COMP' CELCAR
(ROY_i1 'ET' ROY_i2);
'SINON' ;
ROY_f = ROY_f 'ET'
('KCHT' $FRONT 'SCAL' 'CENTRE' 'COMP' CELCAR
(ROY_f1 'ET' ROY_f2)) ;
ROY_i = ROY_I 'ET'
('KCHT' $DOMINT 'SCAL' 'CENTRE' 'COMP' CELCAR
(ROY_i1 'ET' ROY_i2));
'FINSI' ;
'FIN' BL1 ;
RYNLIM = ROY_f ;
RYN = ROY_i 'ET' ROY_f ;
********************************************************
*** CREATION DE 'MODE' POUR GRAPHIQUER LE CHAMELEM ***
********************************************************
MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
*
**** Les debits dans le repaire tube
*
GNX = 'EXCO' 'UX' GN;
GNY = 'EXCO' 'UY' GN;
GNN = (GNX * ('COS' ANGLE)) '+'
(GNY * ('SIN' ANGLE));
GNT = (GNY * ('COS' ANGLE)) '-'
(GNX * ('SIN' ANGLE));
*
*** GRAPHIQUE DES C.I.
*
'SI' GRAPH ;
*
*** CREATION DE CHAMELEM
*
CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN ;
CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
CHM_RETN = 'KCHA' $DOMTOT 'CHAM' RETN ;
TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' 0.0);
TRAC CHM_RETN MOD1 'TITR' ('CHAINE' 'ROET at t=' 0.0);
TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' 0.0);
TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' 0.0);
'FINSI' ;
******************************************
************* Computation ****************
******************************************
SAFFAC = 0.3D0 ;
NITER = 1000 ;
TFINAL = 0.0075 ;
LOGSO = VRAI ;
*
**** Les variables primitives
*
VN PN TN YN GAMN = 'PRIM' 'PERFMULT' PGAZ RN GN RETN RYN ;
*
**** Les gradients
*
CACCA CHLIM COEFSCAL = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
('MOTS' 'SCAL') RN ;
CACCA CHLIM COEFVECT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
('MOTS' 'UX' 'UY') VN ;
* Names of the residuum components
LISTINCO = 'MOTS' 'RN' 'RUX' 'RUY' 'RETN' 'H2 ' 'O2 ' 'H2O ' ;
TPS = 0.0 ;
ZERO = 1.0D-12 ;
'TEMPS' 'ZERO' ;
'REPETER' BL1 NITER ;
VN PN TN YN GAMN = 'PRIM' 'PERFMULT' PGAZ
RN GN RETN RYN ;
'SI' LOGSO ;
GRADR ALR = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
('MOTS' 'SCAL') RN 'GRADGEO' COEFSCAL ;
GRADP ALP = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
('MOTS' 'SCAL') PN 'GRADGEO' COEFSCAL ;
GRADV ALV = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
('MOTS' 'UX' 'UY') VN 'GRADGEO' COEFVECT ;
GRADY ALY = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
PGAZ . 'ESPEULE' YN 'GRADGEO' COEFSCAL ;
ROF VITF PF YF GAMF = 'PRET' 'PERFMULT' 2 1
$DOMTOT PGAZ
RN GRADR ALR
VN GRADV ALV
PN GRADP ALP
YN GRADY ALY
GAMN ;
'SINON' ;
ROF VITF PF YF GAMF = 'PRET' 'PERFMULT' 1 1
$DOMTOT
RN
VN
PN
YN
GAMN ;
'FINSI' ;
RESIDU DELTAT = 'KONV' 'VF' 'PERFMULT' 'RESI' METO
$DOMTOT PGAZ LISTINCO ROF VITF PF GAMF YF MAILVID ;
DT_CON = SAFFAC '*' DELTAT ;
*
**** The time step linked to tps
*
DTTPS = (TFINAL '-' TPS) * (1. '+' ZERO) ;
*
**** Total time step
*
DTMIN = 'MINIMUM' ('PROG' DT_CON DTTPS) ;
*
**** Increment of the variables (convection)
*
RESIDU = DTMIN '*' RESIDU ;
DRN = 'EXCO' 'RN' RESIDU 'SCAL' ;
DGN = 'EXCO' ('MOTS' 'RUX' 'RUY') RESIDU
('MOTS' 'UX' 'UY') ;
DRETN = 'EXCO' 'RETN' RESIDU 'SCAL' ;
DRYN = 'EXCO' (PGAZ . 'ESPEULE') RESIDU
(PGAZ . 'ESPEULE') ;
TPS = TPS '+' DTMIN ;
RN = RN '+' DRN ;
GN = GN '+' DGN ;
RETN = RETN '+' DRETN ;
RYN = RYN '+' DRYN ;
'SI' (((&BL1 '/' 20) '*' 20) 'EGA' &BL1) ;
'MESSAGE' ('CHAINE' 'ITER =' &BL1 ' TPS =' TPS) ;
'FINSI' ;
'SI' (TPS > TFINAL) ;
'QUITTER' BL1 ;
'FINSI' ;
'FIN' BL1 ;
'TEMPS' ;
*
***** On calcule les variables primitive
*
*
**** Les variables primitives
*
VN PN TN YN GAMN = 'PRIM' 'PERFMULT' PGAZ
RN GN RETN RYN ;
*
**** La vitesse dans le repaire tube
*
VNX = 'EXCO' 'UX' VN;
VNY = 'EXCO' 'UY' VN;
VNN = (VNX * ('COS' ANGLE)) '+'
(VNY * ('SIN' ANGLE));
VNT = (VNY * ('COS' ANGLE)) '-'
(VNX * ('SIN' ANGLE));
GNN = VNN * RN;
GNT = VNT * RN;
*
*** GRAPHIQUE DES SOLUTIONS
*
'SI' GRAPH ;
*
*** CREATION DE CHAMELEM
*
CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN;
CHM_GNN = 'KCHA' $DOMTOT 'CHAM' GNN ;
CHM_GNT = 'KCHA' $DOMTOT 'CHAM' GNT ;
CHM_RETN = 'KCHA' $DOMTOT 'CHAM' RETN;
TRAC CHM_RN MOD1 'TITR' ('CHAINE' 'RO at t=' TFIN);
TRAC CHM_RETN MOD1 'TITR' ('CHAINE' 'ROET at t=' TFIN);
TRAC CHM_GNN MOD1 'TITR' ('CHAINE' 'ROUN at t=' TFIN);
TRAC CHM_GNT MOD1 'TITR' ('CHAINE' 'ROUT at t=' TFIN);
'FINSI' ;
*
*** Objects evolutions
*
xx yy = 'COORDONNEE' Courb;
ss = 'KOPS' ('KOPS' ('COS' ANGLE) '*' xx) '+'
('KOPS' ('SIN' ANGLE) '*' yy);
evxx = 'EVOL' 'CHPO' ss Courb ;
lxx = 'EXTRAIRE' evxx 'ORDO' ;
x0 = 'MINIMUM' lxx;
x1 = 'MAXIMUM' lxx ;
* ro
evro = 'EVOL' 'CHPO' RN Courb ;
lro = 'EXTRAIRE' evro 'ORDO' ;
evro = 'EVOL' 'MANU' 'x' lxx 'ro' lro;
tro = CHAINE '1D ' METO ' : RO IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* u
evu = 'EVOL' 'CHPO' VNN Courb ;
lu = 'EXTRAIRE' evu 'ORDO' ;
evu = 'EVOL' 'MANU' 'x' lxx 'u' lu ;
tu = CHAINE '1D ' METO ' : U IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* v
evv = 'EVOL' 'CHPO' VNT Courb ;
lv = 'EXTRAIRE' evv 'ORDO' ;
evv = 'EVOL' 'MANU' 'x' lxx 'v' lv ;
tv = CHAINE '1D ' METO ' : V IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
'SI' GRAPH ;
'DESSIN' evv 'TITRE' tv 'XBOR' x0 x1;
'FINSI' ;
* p
evp = 'EVOL' 'CHPO' PN Courb ;
lp = 'EXTRAIRE' evp 'ORDO' ;
evp = 'EVOL' 'MANU' 'x' lxx 'p' lp ;
tp = CHAINE '1D ' METO ' : P IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* gamma
evgam = 'EVOL' 'CHPO' GAMN Courb ;
lgam = 'EXTRAIRE' evgam 'ORDO' ;
evgam = 'EVOL' 'MANU' 'x' lxx 'gamma' lgam ;
tgam = CHAINE '1D ' METO ' : GAMMA IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* s
ls = 'PROG' ;
'REPETER' BL1 ('DIME' lro);
rocel = 'EXTRAIRE' &BL1 lro ;
pcel = 'EXTRAIRE' &BL1 lp ;
gamcel = 'EXTRAIRE' &BL1 lgam ;
scel = pcel '/' (rocel '**' gamcel) ;
ls = ls 'ET' ('PROG' scel) ;
'FIN' BL1 ;
evs = 'EVOL' 'MANU' 'x' lxx 's' ls ;
ts = CHAINE '1D ' METO ' : s IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
* Fractions massiques
EVY = 'TABLE' ;
TY = CHAINE '1D ' METO ' : Y IT ' IT ' IE ' IE
' tmps ' TFIN ' elem ' 'QUA4' ;
YOLD = 'COPIER' YN ;
NOMECO = 'EXTR' YOLD 'COMP';
NUMECO = 'DIME' NOMECO ;
'REPETER' BLOCCO NUMECO;
NOMCEL = 'EXTRAIRE' NOMECO &BLOCCO ;
Y0 = 'KCHT' $DOMTOT 'SCAL' 'CENTRE'
'COMP' NOMCEL
('EXCO' NOMCEL YOLD NOMCEL) ;
N0 = NOMCEL ;
EVY0 = 'EVOL' 'CHPO' Y0 Courb ;
LY0 = 'EXTRAIRE' EVY0 'ORDO' ;
EVY0 = 'EVOL' 'MANU' 'x' lxx N0 LY0 ;
EVY . &BLOCCO = EVY0;
'FIN' BLOCCO;
lroan = 'PROG'
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 9.72615E-01 9.38586E-01
9.05613E-01 8.73668E-01 8.42723E-01 8.12749E-01 7.83722E-01
7.55614E-01 7.28401E-01 7.02057E-01 6.76559E-01 6.51882E-01 ;
lroan = lroan 'ET' ('PROG'
6.28004E-01 6.04902E-01 5.82554E-01 5.60938E-01 5.40035E-01
5.19822E-01 5.00281E-01 4.81392E-01 4.63135E-01 4.45493E-01
4.28448E-01 4.11981E-01 3.96075E-01 3.80715E-01 3.65884E-01
3.51565E-01 3.37744E-01 3.24404E-01 3.11533E-01 2.99115E-01
2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01
2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01
2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01);
lroan = lroan 'ET' ('PROG'
2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01 2.98571E-01
2.98571E-01 2.98571E-01 9.89151E-01 9.89151E-01 9.89151E-01
9.89151E-01 1.25000E-01 1.25000E-01 1.25000E-01 1.25000E-01
1.25000E-01 1.25000E-01 1.25000E-01 1.25000E-01 1.25000E-01
1.25000E-01 1.25000E-01 1.25000E-01 1.25000E-01 1.25000E-01
1.25000E-01) ;
lpan = 'PROG'
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 9.66342E+02 9.24825E+02
8.84930E+02 8.46600E+02 8.09779E+02 7.74414E+02 7.40454E+02
7.07847E+02 6.76547E+02 6.46505E+02 6.17676E+02 5.90016E+02 ;
lpan = lpan 'ET' ('PROG'
5.63482E+02 5.38033E+02 5.13630E+02 4.90233E+02 4.67806E+02
4.46312E+02 4.25715E+02 4.05984E+02 3.87084E+02 3.68984E+02
3.51654E+02 3.35065E+02 3.19187E+02 3.03993E+02 2.89458E+02
2.75555E+02 2.62259E+02 2.49546E+02 2.37395E+02 2.25781E+02
2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02
2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02
2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02) ;
lpan = lpan 'ET' ('PROG'
2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02
2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02 2.25275E+02
2.25275E+02 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00 1.00000E+00
1.00000E+00) ;
luan = 'PROG'
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 9.73439E-01 2.21738E+00
3.46133E+00 4.70528E+00 5.94922E+00 7.19317E+00 8.43711E+00
9.68106E+00 1.09250E+01 1.21689E+01 1.34129E+01 1.46568E+01 ;
luan = luan 'ET' ('PROG'
1.59008E+01 1.71447E+01 1.83887E+01 1.96326E+01 2.08766E+01
2.21205E+01 2.33645E+01 2.46084E+01 2.58524E+01 2.70963E+01
2.83402E+01 2.95842E+01 3.08281E+01 3.20721E+01 3.33160E+01
3.45600E+01 3.58039E+01 3.70479E+01 3.82918E+01 3.95358E+01
3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01
3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01
3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01) ;
luan = luan 'ET' ('PROG'
3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01
3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01 3.95913E+01
3.95913E+01 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00 0.00000E+00
0.00000E+00) ;
lsan = 'PROG'
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 ;
lsan = lsan 'ET' ('PROG'
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03);
lsan = lsan 'ET' ('PROG'
1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03 1.00000E+03
1.00000E+03 1.00000E+03 2.28438E+02 2.28438E+02 2.28438E+02
2.28438E+02 1.42582E+01 1.42582E+01 1.42582E+01 1.42582E+01
1.42582E+01 1.42582E+01 1.42582E+01 1.42582E+01 1.42582E+01
1.42582E+01 1.42582E+01 1.42582E+01 1.42582E+01 1.42582E+01
1.42582E+01) ;
lgaman = 'PROG'
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 ;
lgaman = lgaman 'ET' ('PROG'
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00) ;
lgaman = lgaman 'ET' ('PROG'
1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00 1.23304E+00
1.23304E+00 1.23304E+00 1.27791E+00 1.27791E+00 1.27791E+00
1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00
1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00
1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00 1.27791E+00
1.27791E+00) ;
lyan = 'TABLE' ;
lyan . 1 = 'PROG'
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 ;
lyan . 1 = lyan . 1 'ET' ('PROG'
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 );
lyan . 1 = lyan . 1 'ET' ('PROG'
1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02 1.00000E-02
1.00000E-02 1.00000E-02 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01) ;
lyan . 2 = 'PROG'
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 ;
lyan . 2 = lyan . 2 'ET' ('PROG'
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 );
lyan . 2 = lyan . 2 'ET' ('PROG'
2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01 2.00000E-01
2.00000E-01 2.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01
4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01
4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01
4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01 4.00000E-01
4.00000E-01 ) ;
lyan . 3 = 'PROG'
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 ;
lyan . 3 = lyan . 3 'ET' ('PROG'
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01);
lyan . 3 = lyan . 3 'ET' ('PROG'
3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01 3.00000E-01
3.00000E-01 3.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01
1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01
1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01
1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01 1.00000E-01
1.00000E-01 ) ;
ERRO = 'ABS' (LRO '-' LROAN) ;
ERP = 'ABS' (LP '-' LPAN) ;
ERU = 'ABS' (LU '-' LUAN) ;
ERS = 'ABS' (LS '-' LSAN) ;
L1RO = 0.0 ;
L1P = 0.0 ;
L1U = 0.0 ;
L1S = 0.0 ;
NDIM = 'DIME' erro ;
'REPETER' BL1 NDIM ;
L1RO = L1RO '+' ('EXTRAIRE' &BL1 ERRO) ;
L1P = L1P '+' ('EXTRAIRE' &BL1 ERP) ;
L1U = L1U '+' ('EXTRAIRE' &BL1 ERU) ;
L1S = L1S '+' ('EXTRAIRE' &BL1 ERS) ;
'FIN' BL1 ;
L1RO = L1RO '/' (NDIM * ('MAXIMUM' lroan)) ;
L1P = L1P '/' (NDIM * ('MAXIMUM' lpan)) ;
L1U = L1U '/' (NDIM * ('MAXIMUM' luan)) ;
L1S = L1S '/' (NDIM * ('MAXIMUM' lsan)) ;
'SI' (L1RO > 5.0D-2);
'ERREUR' 5 ;
'FINSI' ;
'SI' (L1P > 1.0D-2);
'ERREUR' 5 ;
'FINSI' ;
'SI' (L1U > 5.0D-2);
'ERREUR' 5 ;
'FINSI' ;
'SI' (L1S > 5.0D-2);
'ERREUR' 5 ;
'FINSI' ;
'SI' (('MAXIMUM' LV 'ABS') > 1.0D-6) ;
'ERREUR' 5 ;
'FINSI' ;
*
*** Quelque DESSIN
*
'SI' GRAPH ;
evroa = 'EVOL' 'MANU' 'x' lxx 'ro' lroan ;
evpa = 'EVOL' 'MANU' 'x' lxx 'p' lpan ;
evua = 'EVOL' 'MANU' 'x' lxx 'ua' luan ;
evsa = 'EVOL' 'MANU' 'x' lxx 's' lsan ;
evgama = 'EVOL' 'MANU' 'x' lxx 'gamma' lgaman ;
TAB1=TABLE;
TAB1.'TITRE'= TABLE ;
TAB1.1='MARQ TRIB REGU';
TAB1.'TITRE' . 1 = MOT 'Numerique' ;
TAB1.2='MARQ CROI REGU';
TAB1.'TITRE' . 2 = MOT 'Exacte' ;
'DESSIN' (evp 'ET' evpa) 'TITRE' tp 'XBOR' x0 x1
'LEGE' TAB1;
'DESSIN' (evu 'ET' evua) 'TITRE' tu 'XBOR' x0 x1
'LEGE' TAB1;
'DESSIN' (evgam 'ET' evgama) 'TITRE' tgam 'XBOR' x0 x1
'LEGE' TAB1;
'DESSIN' (evs 'ET' evsa) 'TITRE' ts 'XBOR' x0 x1
'LEGE' TAB1;
'REPETER' BL 3 ;
NOMCEL = 'EXTRAIRE' NOMECO &BL ;
evyacel = 'EVOL' 'MANU' 'x' lxx nomcel
(lyan . &BL ) ;
'DESSIN' ((evy . &BL) 'ET' evyacel) 'TITRE' TY
'XBOR' x0 x1 'YBOR' -0.01 1.01 'LEGE' TAB1;
'FIN' BL;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer