* fichier : t_HISTOG.dgibi
************************************************************************
************************************************************************
*---------------------------------------------------------------------*
* Cas-test de l'operateur 'HIST' : *
* *
* Description : HIST renvoie une EVOLUTIOn de type HISTogramme repre- *
* sentant la densite de distribution des valeurs d'un *
* MCHALM sur un maillage. *
* *
* Synthaxe : HIST1 = HIST (COUL) MOD1 CHAM1 (ABS) PROG1 |(MOT1) | ; *
* |(LMOT1)| *
* *
* Options : Pas defaut, ce cas-test verifie le fonctionnement de *
* l'operateur sur 2 cas (2D et 3D). En options : *
* - l'indicateur logique IDESS1 permet d'activer les traces ; *
* - l'indicateur logique ITEST1 permet d'activer le test du trai- *
* tement des erreurs ; *
* - l'indicateur logique ILIST1 permet d'afficher la valeur cou- *
* rante de l'erreur ; *
* - l'indicateur logique IPETI1 permet d'effectuer une serie de *
* test elementaires de fonctionnement de l'operateur. *
* *
*---------------------------------------------------------------------*
* *
* IDESS1 = VRAI => trace des EVOLUTIOns : *
IDESS1 = FAUX ;
* ITEST1 = VRAI => test messages d'erreur : *
ITEST1 = FAUX ;
* ILIST1 = VRAI => on liste la valeur de l'erreur : *
ILIST1 = FAUX ;
* IPETI1 = VRAI => test elementaires : *
IPETI1 = FAUX ;
* *
* *
* Tables pour trace dessins : *
TDESS1 .
1 = '
MOT' 'MARQ CARR PLEI NOLI'
;TDESS2 .
1 = '
MOT' 'MARQ CARR PLEI NOLI'
;TDESS2 .
2 = '
MOT' 'MARQ LOSA PLEI NOLI'
;* *
ERR1 = 0. ;
* *
*---------------------- TEST TYPAGE EVOLUTIONS -----------------------*
* *
* *
EV0 = EV1 + EV3 ;
ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV0
- EV0REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
EV0 = (EV1 'ET' EV4) + (EV2 'ET' EV3) ;
EV0REF = EV0REF 'ET' (EV2 + EV4) ;
ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV0
- EV0REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Test dessin d une courbe
et de
2 histogrammes'
;'FINS' ;
'SI' ITEST1 ;
* Addition d'une courbe et d'un histogramme ? *
EV0 = EV1 + EV2 ;
* Addition de 2 courbes avec une courbe et un histogramme ? *
EV0 = (EV1 'ET' EV3) + (EV2 'ET' EV1) ;
* Si pas meme nombre de courbe ? *
EV0 = (EV1 'ET' EV5) + EV1 ;
* Test addition 2 EVOL dont une de Type pas autorise pour l'addition ?*
EV0 = EV1 + EV5 ;
'FINS' ;
* *
*---------------------------------------------------------------------*
* *
* TESTS OPERATEUR "HIST" *
* *
*---------------------------------------------------------------------*
* *
'SI' IPETI1 ;
* *
*---------------------------------------------------------------------*
* *
* <<~PETITS TESTS~>> *
* *
*---------------------------------------------------------------------*
* *
*-------------------------------- 1D ---------------------------------*
* *
* *
MOD1
= '
MODE' L1 'MECANIQUE'
;* *
* Champ a 1 composante : *
CH1
= '
MANU' 'CHML' MOD1 'SCAL'
-1.0 'STRESSES'
;* *
* Test fonctionnement : *
EV1
= '
HIST' MOD1 CH1
('
PROG'
-2.
PAS 0.25 0.
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
'SI' IDESS1 ;
'
TITR' 'test valeurs negatives'
; '
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
* Test affectation couleur : *
CH1
= '
MANU' 'CHML' MOD1 'SCAL'
-0.5 'STRESSES'
;EV1
= '
HIST' 'ROUG' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Ca marche partout ?
EV1
= '
HIST' MOD1 'ROUG' CH1
('
PROG'
-1.
PAS 0.25 0.
) ;EV1
= '
HIST' MOD1 CH1 'ROUG'
('
PROG'
-1.
PAS 0.25 0.
) ;EV1
= '
HIST' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) 'ROUG'
;* *
'SI' IDESS1 ;
'
TITR' 'Affectation couleur rouge a l"histogramme'
; '
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
* Test option 'ABS' : *
EV1
= '
HIST' MOD1 CH1 '
ABS'
('
PROG'
0.
PAS 0.25 1.
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Ca marche avec couleur ?
EV1
= '
HIST' 'VERT' MOD1 CH1 '
ABS'
('
PROG'
0.
PAS 0.25 1.
) ;* *
'SI' IDESS1 ;
'
TITR' 'Test mot
-cle
ABS + affectation couleur VERTE'
; '
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
* Test donnee nom de composante ?
EV1
= '
HIST' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Avec un listmots ?
EV1
= '
HIST' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) ('
MOTS' 'SCAL'
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Si plusieurs Mots ?
EV1
= '
HIST' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) ('
MOTS' 'SCAL' 'YOUN'
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Avec couleur ?
EV1
= '
HIST' 'ORAN' MOD1 CH1
('
PROG'
-1.
PAS 0.25 0.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Et Mot-cle ABS ?
EV1
= '
HIST' MOD1 CH1 '
ABS'
('
PROG'
0.
PAS 0.25 1.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Toutes options MOT ?
EV1
= '
HIST' 'ORAN' MOD1 CH1 '
ABS'
('
PROG'
0.
PAS 0.25 1.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* Toutes options + LISTMOTS ?
EV1
= '
HIST' 'ORAN' MOD1 CH1 '
ABS'
('
PROG'
0.
PAS 0.25 1.
) ('
MOTS' 'SCAL' 'NU'
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Test donnee nom composante
+ couleur ORANGE
+ mot
-cle
ABS'
; '
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
* Tests Hachage : *
CH1
= '
MANU' 'CHML' MOD1 'SCAL'
0.5 'RIGIDITE'
;EV1
= '
HIST' 'ROUG' MOD1 CH1
('
PROG'
0.
0.3 0.5 0.52 0.67 0.93) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
CH1
= '
MANU' 'CHML' MOD1 'SCAL'
-0.5 'RIGIDITE'
;EV1
= '
HIST' 'ROUG' MOD1 CH1 '
ABS'
('
PROG'
0.
0.3 0.5 0.52 0.67 0.93) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
CH1
= '
MANU' 'CHML' MOD1 'SCAL'
-0.5 'RIGIDITE'
;EV1
= '
HIST' 'ROUG' MOD1 CH1
('
PROG'
-1.1 -0.67 -0.52 -0.5 0.22) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1REF
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
*-------------------------------- 2D ---------------------------------*
* *
* *
* Maillage : *
P0 = 0. 0. ;
P1 = 1. 0. ;
P2 = 0. 1. ;
P3 = 1. 1. ;
* *
*---------------- Test sur un champ a une composante -----------------*
* *
S1
= '
MANU' 'TRI3' P0 P1 P2
;MOD1
= '
MODE' S1 'MECANIQUE'
;* *
* Par defaut, definir aux rigidites car pas d'appel a CHASUP : *
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'RIGIDITE'
;EV1
= '
HIST' 'ROUG' MOD1 CHE1
('
PROG'
0.9 PAS
0.02 1.1) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Aux stresses ?
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'STRESSES'
;EV2
= '
HIST' 'ORAN' MOD1 CHE1
('
PROG'
0.9 PAS
0.02 1.1) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV2
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Au centre de gravite ?
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'GRAVITE'
;EV3
= '
HIST' 'VERT' MOD1 CHE1
('
PROG'
0.9 PAS
0.02 1.1) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV3
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Aux noeuds ?
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'NOEUD'
;EV4
= '
HIST' 'BLEU' MOD1 CHE1
('
PROG'
0.9 PAS
0.02 1.1) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV4
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'MASSE'
;EV5
= '
HIST' 'JAUN' MOD1 CHE1
('
PROG'
0.9 PAS
0.02 1.1) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV5
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Champ avec
1 composante : aux points supports des RIGIDITEs'
; '
DESS' TDESS1
(EVREF1 '
ET' EV1
) 'XBOR'
0.88 1.12 'YBOR'
-5.0 55.
; '
TITR' 'Champ avec
1 composante : aux points supports des STRESSES'
; '
DESS' TDESS1
(EVREF1 '
ET' EV2
) 'XBOR'
0.88 1.12 'YBOR'
-5.0 55.
; '
TITR' 'Champ avec
1 composante : au centre de GRAVITE'
; '
DESS' TDESS1
(EVREF1 '
ET' EV3
) 'XBOR'
0.88 1.12 'YBOR'
-5.0 55.
; '
TITR' 'Champ avec
1 composante : aux NOEUDs'
; '
DESS' TDESS1
(EVREF1 '
ET' EV4
) 'XBOR'
0.88 1.12 'YBOR'
-5.0 55.
; '
TITR' 'Champ avec
1 composante : aux points supports de la MASSE'
; '
DESS' TDESS1
(EVREF1 '
ET' EV5
) 'XBOR'
0.88 1.12 'YBOR'
-5.0 55.
;'FINS' ;
* *
*------------- Test sur un champ a plusieurs composantes -------------*
* *
* On en profite pour tester sur des elements TRI6 : *
MOD1
= '
MODE' S1 'MECANIQUE'
;* *
CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1.1 'TITI'
0.5 'RIGIDITE'
;* *
* Traitement de toutes les composantes ?
EV1
= '
HIST' 'ROUG' MOD1 CHE1
('
PROG'
0.
PAS 0.2 2.
) ;* *
'SI' ILIST1 ;
'FINS' ;
* *
* Avec un LISMOTS :
CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1. 'GRAVITE'
;CHE1
= CHE1 '
ET'
('
MANU' 'CHML' MOD1 'TITI'
0.5 'GRAVITE'
) ;EV2
= '
HIST' 'GRIS' MOD1 CHE1
('
PROG'
0.
PAS 0.2 2.
) ('
MOTS' 'TITI' 'TOTO' 'TATA'
) ;'SI' ILIST1 ;
'FINS' ;
EVREF1 = EVREF1 + EVREF2 ;
* *
* Une seule composante demande avec un MOT : *
CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1. 'NOEUD'
;CHE1
= CHE1 '
ET'
('
MANU' 'CHML' MOD1 'TITI'
0.5 'NOEUD'
) ;EV3
= '
HIST' 'AZUR' MOD1 CHE1
('
PROG'
0.
PAS 0.1 1.
) 'TITI'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF2
- EV3
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Une seule composante demande avec un LISTMOTS : *
CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1. 'MASSE'
;CHE1
= CHE1 '
ET'
('
MANU' 'CHML' MOD1 'TITI'
0.5 'MASSE'
) ;EV4
= '
HIST' 'VIOL' MOD1 CHE1
('
PROG'
0.
PAS 0.1 1.
) ('
MOTS' 'TITI' 'SCAL'
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF2
- EV4
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Champ a
2 composantes : sans les preciser'
; '
DESS' TDESS1
(EVREF1 '
ET' EV1
) ; '
TITR' 'Champ a
2 composantes : en les precisant avec un Listmots'
; '
DESS' TDESS1
(EVREF1 '
ET' EV2
) ; '
TITR' 'Champ a
2 composantes : composante demandee avec
MOT'
; '
DESS' TDESS1
(EVREF2 '
ET' EV3
) ; '
TITR' 'Champ a
2 composantes : composante demandee avec LISTMOTS'
; '
DESS' TDESS1
(EVREF2 '
ET' EV4
) ;'FINS' ;
* *
*-------------------- Test sur element quadrangle --------------------*
* *
S1
= '
MANU' 'QUA4' P0 P1 P3 P2
;MOD1
= '
MODE' S1 'MECANIQUE'
;CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1. 'TITI'
0.5 'STRESSES'
;EV1
= '
HIST' 'ROSE' MOD1 CHE1
('
PROG'
0.
PAS 0.5 2.
) 'TOTO'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Avec QUA4 aux points supports des STRESSES'
; '
DESS' TDESS1
(EVREF1 '
ET' EV1
) ;'FINS' ;
* *
MOD1
= '
MODE' S1 'THERMIQUE'
;CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
-1. 'TITI'
0.5 'GRAVITE'
;EV1
= '
HIST' 'VERT' MOD1 CHE1
('
PROG'
-2.
PAS 0.08 0.
) 'TOTO'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Thermique avec QUA4 au centre de gravite'
; '
DESS' TDESS1
(EVREF1 '
ET' EV1
) ;'FINS' ;
* *
MOD1
= '
MODE' S1 'THERMIQUE'
;CHE1
= '
MANU' 'CHML' MOD1 'TOTO'
1. 'TITI'
0.5 'RIGIDITE'
;EV1
= '
HIST' 'JAUN' MOD1 CHE1
('
PROG'
0.
PAS 0.25 1.
) 'TITI'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EVREF1
- EV1
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Thermique avec QUA8 aux points supports de la RIGIDITE'
; '
DESS' TDESS1
(EVREF1 '
ET' EV1
) ;'FINS' ;
* *
*-------------- Test sur maillages a plusieurs elements --------------*
* *
* *
S0 = S1 'ET' S2 ;
'SI' IDESS1 ;
'
TITR' 'Maillage a plusieurs elements'
;'FINS' ;
* *
MOD1
= '
MODE' S1 'THERMIQUE'
;MOD2
= '
MODE' S2 'THERMIQUE'
;MOD0 = MOD1 'ET' MOD2 ;
* *
* Champ constant sur modele a 2 sous-zones : *
CH1
= '
MANU' 'CHML' MOD0 'SCAL'
1. 'STRESSES'
;EV1
= '
HIST' 'ROUG' CH1 MOD0
('
PROG'
0.
PAS 0.5 2.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1
- EV1REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Champ constant a partir de 2 champs : *
CH1
= ('
MANU' 'CHML' MOD1 'SCAL'
1. 'NOEUD'
) '
ET'
('
MANU' 'CHML' MOD2 'SCAL'
1. 'NOEUD'
) ;EV1
= '
HIST' 'ROUG' CH1 MOD0
('
PROG'
0.
PAS 0.5 2.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1
- EV1REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Composantes differentes dans chaque zone : *
CH2
= ('
MANU' 'CHML' MOD1 'SCAL'
1. 'STRESSES'
) '
ET'
('
MANU' 'CHML' MOD2 'TEST'
3. 'STRESSES'
) ;EV2
= '
HIST' 'ROUG' CH2 MOD0
('
PROG'
0.
PAS 0.5 2.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV2
- EV2REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Idem mais Listmots en argument : *
EV2
= '
HIST' 'ROUG' CH2 MOD0
('
PROG'
0.
PAS 0.5 2.
) ('
MOTS' 'SCAL' 'TITI'
) ;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV2
- EV2REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Idem mais on veut toutes les composantes : *
EV3
= '
HIST' 'VERT' CH2 MOD0
('
PROG'
0.
PAS 1.
4.
) ;'SI' ILIST1 ;
'FINS' ;
* *
* Idem en donnant un Listmots : *
EV3
= '
HIST' 'VERT' CH2 MOD0
('
PROG'
0.
PAS 1.
4.
) ('
MOTS' 'SCAL' 'TEST'
) ;'SI' ILIST1 ;
'FINS' ;
* *
* Une composante sur tout le maillage, un que sur 1 zone : *
CH4
= ('
MANU' 'CHML' MOD0 'SCAL'
1. 'STRESSES'
) '
ET'
('
MANU' 'CHML' MOD2 'TEST'
3. 'STRESSES'
) ;EV4
= '
HIST' CH4 MOD0
('
PROG'
0.
PAS 1.
4.
) 'SCAL'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV4
- EV4REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Idem mais uniquement compsante 1 zone : *
EV4
= '
HIST' CH4 MOD0
('
PROG'
0.
PAS 1.
4.
) 'TEST'
;ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV4
- EV4REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Sur 2 composantes : *
EV4
= '
HIST' 'BLEU' CH4 MOD0
('
PROG'
0.
PAS 1.
4.
) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
TITR' 'Resultats sur maillage a plusieurs elts.'
; '
DESS' TDESS1
(EV1REF '
ET' EV1
) ; '
DESS' TDESS1
(EV2REF '
ET' EV2
) ; '
DESS' TDESS2
(EV3REF '
ET' EV3
) ; '
DESS' TDESS2
(EV4REF '
ET' EV4
) ;'FINS' ;
* *
* Avec 2 modeles Meca. : *
MOD1
= '
MODE' S1 'MECANIQUE'
;MOD2
= '
MODE' S2 'MECANIQUE'
;MOD0 = MOD1 'ET' MOD2 ;
* *
* Melange de points supports : *
CH1
= ('
MANU' 'CHML' MOD0 'SCAL'
1. 'MASSE'
) '
ET'
('
MANU' 'CHML' MOD2 'TEST'
3. 'MASSE'
) ;EV1
= '
HIST' 'ROUG' CH1 MOD0
('
PROG'
0.
PAS 0.6 3.
PAS 1.4 10.
) ('
MOTS' 'SCAL' 'TEST'
) ;EV2REF
= '
EVOL' 'ROSE' '
MANU' '
TYPE' '
HIST'
('
PROG'
0.
PAS 0.6 3.
PAS 1.4 10.
) 'SCAL'
('
PROG'
5 * 0.
(1.
/ 1.4) 5 * 0.
) ;'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
DESS' TDESS1
((EV1REF
+ EV2REF
) '
ET' EV1
) ;'FINS' ;
* *
*---------------------------------------------------------------------*
* *
* FIN <<~PETITS TESTS~>> *
* *
*---------------------------------------------------------------------*
* *
'SINO' ;
P0 = 0. 0. ;
P1 = 1. 0. ;
P2 = 0. 1. ;
P3 = 1. 1. ;
'FINS' ;
* *
*------------------------ "Vrai Gros Maillage" -----------------------*
* *
S0 = S1 'ET' S2 ;
* *
* Avec 2 modeles Meca. : *
MOD1
= '
MODE' S1 'MECANIQUE'
;MOD2
= '
MODE' S2 'MECANIQUE'
;MOD0 = MOD1 'ET' MOD2 ;
* *
* Creation d'un champ de variable aleatoires : *
CHPO1
= '
BRUI' 'BLAN' 'UNIF'
5.
6.66 S0
;CHAM1
= '
CHAN' 'CHAM' CHPO1 MOD0 'GRAVITE'
;'SI' IDESS1 ;
'
TITR' ' Champ d"une variable scalaire aleatoire
(ditrib.
uniforme)'
;'FINS' ;
* *
* ATTENTION : X1 + grand que le MINI de CHAM1, LX1 ne couvre donc pas *
* tout l'intervalle de valeurs : *
X1 = -4.5 ;
X2 = 19. ;
XPAS1 = 0.5 ;
LX1
= '
PROG' X1 PAS XPAS1 X2
;'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'SCAL'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY1 = LY1 + LYI1 ;
'FIN' BOU1 ;
'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'SCAL'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY1 = LY1 + LYI1 ;
'FIN' BOU1 ;
EV1REF
= EV1REF
/ ('
MESU' S0
) ;* *
EV1
= '
HIST' 'VERT' CHAM1 MOD0 LX1
('
MOTS' 'TITI' 'SCAL' '
GREE'
) ;* *
ERR1
= ERR1
+ ('
MAXI' '
ABS'
('
EXTR'
(EV1
- EV1REF
) '
ORDO'
)) ;'SI' ILIST1 ;
'FINS' ;
* *
* Verification que l'integrale de la densite de distribution sur *
* sur l'intervalle d'echantillonnage vaut la fraction surfacique des *
* valeurs du champ concernees : *
MESU1REF
= ('
INTG' MOD0
('
MASQ' CHAM1 'EGSUPE'
-4.5)) / ('
MESU' S0
) ;ERR1 = ERR1 + (MESU1REF - MESU1) ;
'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
DESS' TDESS1
(EV1REF '
ET' EV1
) ;'FINS' ;
* *
*-------------------------------- 3D ---------------------------------*
* *
* *
V0
= '
ELIM'
(V1 '
ET' V2
) 0.001 ;MOD1
= '
MODE' V1 'MECANIQUE'
;MOD2
= '
MODE' V2 'MECANIQUE'
;MOD0 = MOD1 'ET' MOD2 ;
* *
* Construction d'un champ de variables aleatoires ; *
CHPO1
= '
BRUI' 'BLAN' 'UNIF' PI
('
EXP'
1.9) V0
;CHPO1
= CHPO1 '
NOMC' 'VAR1'
;CHPO2
= '
BRUI' 'BLAN' 'GAUS'
(-4.
/ 3.
) ('
LOG'
29.
) V0
;CHPO2
= CHPO2 '
NOMC' 'VAR2'
;CHAM1
= '
CHAN' 'CHAM'
(CHPO1 '
ET' CHPO2
) MOD0 'GRAVITE'
;'SI' IDESS1 ;
'
TITR' ' Champ de
2 variables scalaires aleatoires'
;'FINS' ;
* *
X1 = -15. ;
X2 = 17. ;
XPAS1 = 0.8 ;
LX1
= '
PROG' X1 PAS XPAS1 X2
;* *
'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'VAR1'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY1 = LY1 + LYI1 ;
'FIN' BOU1 ;
'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'VAR1'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY1 = LY1 + LYI1 ;
'FIN' BOU1 ;
EV1REF
= EV1REF
/ ('
MESU' V0
) ;* *
'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'VAR2'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY2 = LY2 + LYI1 ;
'FIN' BOU1 ;
'REPE' BOU1 NB1 ;
XI1
= '
EXTR'
('
REDU' CHAM1 ELI1
) 'VAR2'
1 1 1 ; 'SI' (XI1 '<' X1) ;
'ITER' BOU1 ;
'FINS' ;
NI1 = ('ENTI' ((XI1 - X1) / XPAS1)) + 1 ;
'SI' (NI1 'EGA' 0) ;
'ITER' BOU1 ;
'FINS' ;
YI1
= ('
MESU' ELI1
) / XPAS1
; 'SI' (NI1 '>' 1) ;
LYI1
= ('
PROG'
(NI1
- 1) * 0.
) '
ET'
('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'SINO' ;
LYI1
= ('
PROG' YI1
) '
ET'
('
PROG'
(N1
- NI1
) * 0.
) ; 'FINS' ;
LY2 = LY2 + LYI1 ;
'FIN' BOU1 ;
EV2REF
= EV2REF
/ ('
MESU' V0
) ;'
MESS' '
**** Duree Gibiane en 3D
= '
(0.001 * TABTPS.'TEMPS_CPU'.'INITIAL'
) '
(s
)'
;* *
EV1
= '
HIST' 'VERT' CHAM1 MOD0 LX1
('
MOTS' 'VAR2' 'VAR1' 'CHUE'
);'
MESS' '
**** Duree d"execution
HIST en 3D
= '
(0.001 * TABTPS.'TEMPS_CPU'.'INITIAL'
) '
(s
)'
;* *
'SI' ILIST1 ;
'FINS' ;
* *
* Verification que la somme des ordonnees vaut 1 : *
ERR1 = ERR1 + (1. - MESU1) ;
'SI' ILIST1 ;
'FINS' ;
ERR1 = ERR1 + (1. - MESU1) ;
'SI' ILIST1 ;
'FINS' ;
* *
'SI' IDESS1 ;
'
DESS' TDESS2
(EV1REF '
ET' EV2REF '
ET' EV1
) ;'FINS' ;
* *
* Tests raffinement pas d'echantillonnage : *
'SI' FAUX ;
XPAS2 = 0.4 ;
LX2
= '
PROG' X1 PAS XPAS2 X2
; EV2
= '
HIST' 'ROUG' MOD0 CHAM1 LX2
('
MOTS' 'VAR2'
) ; XPAS3 = 0.8 / 3. ;
LX3
= '
PROG' X1 PAS XPAS3 X2
; EV3
= '
HIST' 'JAUN' MOD0 CHAM1 LX3
('
MOTS' 'VAR2'
) ;'FINS' ;
* *
*--------------------------- Tests erreurs ---------------------------*
* *
'SI' ITEST1 ;
CHE1
= '
MANU' 'CHML' MOD1 'SCAL'
1. 'STRESSES'
; LR1
= PROG 0.
PAS 0.5 2.
;* Si on passe un CHPO ? : *
* Si on ne passe pas le modele ? : *
* Si on ne passe pas le "bon" modele ? : *
EV0
= '
HIST' CHE1 MOD2 LR1
;* Si on ne passe pas le LISTREEL ;
* Si une composante demandee n'existe pas ? *
EV0
= '
HIST' MOD1 CHE1 LR1 'TEST'
;* Si aucune composante de la liste n'existe ? *
EV0
= '
HIST' MOD1 CHE1 LR1
('
MOTS' 'TEST' 'TOTO'
) ;* Si on donne un CHAML de MOT ? *
CHE1
= '
MANU' 'CHML' MOD1 'TITI' xxx 'STRESSES'
; EV0
= '
HIST' MOD1 CHE1 LR1
;'FINS' ;
* *
'SI' (ERR1 > 1.E-10) ;
'
MESS' '
**** Erreur
= ' ERR1
;'FINS' ;
* *
'FIN' ;