Download t_HISTOG.dgibi

Back to the list

* 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 ;
*                                                                     *
'OPTI' 'ECHO' 0 ;
*                                                                     *
* Tables pour trace dessins :                                         *
TDESS1     = 'TABL' ;
TDESS1 . 1 = 'MOT' 'MARQ CARR PLEI NOLI' ;
TDESS2     = 'TABL' ;
TDESS2 . 1 = 'MOT' 'MARQ CARR PLEI NOLI' ;
TDESS2 . 2 = 'MOT' 'MARQ LOSA PLEI NOLI' ;
*                                                                     *
ERR1     = 0. ;
*                                                                     *
*---------------------- TEST TYPAGE EVOLUTIONS -----------------------*
*                                                                     *
EV1      = 'EVOL' 'VERT' 'MANU' 'SCAL' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
EV2      = 'EVOL' 'ROUG' 'MANU' 'TYPE' 'HIST' 'TEMP' ('PROG' 0. 1. 2.)
  ('PROG' 0. 1. 0.) ;
EV3      = 'EVOL' 'JAUN' 'MANU' 'TYPE' 'REEL'  'SCAL' ('PROG' 0. 2. 4.)
  ('PROG' 3. 3.5 4.) ;
EV4      = 'EVOL' 'BLEU' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.)
  ('PROG' 1. 2. 4. 0.5 0.) ;
*                                                                     *
EV0      = EV1 + EV3 ;
EV0REF   = 'EVOL' 'MANU' ('PROG' 0. 4.) ('PROG' 4. 6.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV0 - EV0REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
EV0      = (EV1 'ET' EV4) + (EV2 'ET' EV3) ;
EV0REF   = EV0REF 'ET' (EV2 + EV4) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV0 - EV0REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Test dessin d une courbe et de 2 histogrammes' ;
  'DESS' (EV0 'ET' EV2) ;
'FINS' ;
'SI' ITEST1 ;
  'OPTI' 'ERRE' 'IGNO' ;
* 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 ?                                      *
  EV5      = 'EVOL' 'VERT' 'MANU' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
  EV0      = (EV1 'ET' EV5) + EV1 ;
* Test addition 2 EVOL dont une de Type pas autorise pour l'addition ?*
  EV5      = 'EVOL' 'MANU' 'TYPE' 'TOTO' ('PROG' 0. 4.) ('PROG' 1. 2.) ;
  EV0      = EV1 + EV5 ;
  'OPTI' 'ERRE' 'NORM' ;
'FINS' ;
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*                       TESTS OPERATEUR "HIST"                        *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
'SI' IPETI1 ;
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*                         <<~PETITS TESTS~>>                          *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*-------------------------------- 1D ---------------------------------*
*                                                                     *
'OPTI' 'DIME' 1 'ELEM' 'SEG2' ;
*                                                                     *
L1       = ('POIN' 0.) 'DROI' 2 ('POIN' 2.) ;
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.) ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -2. PAS 0.25 0.) ('PROG' 4 * 0. 4. 4 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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.) ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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.) ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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' ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
* Avec un listmots ?
EV1      = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) ('MOTS' 'SCAL') ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
* Si plusieurs Mots ?
EV1      = 'HIST' MOD1 CH1 ('PROG' -1. PAS 0.25 0.)
  ('MOTS' 'SCAL' 'YOUN') ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Avec couleur ?
EV1      = 'HIST' 'ORAN' MOD1 CH1 ('PROG' -1. PAS 0.25 0.) 'SCAL' ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1. PAS 0.25 -0.25) ('PROG' 2 * 0. 4. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
* Et Mot-cle ABS ?
EV1      = 'HIST' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) 'SCAL' ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
* Toutes options MOT ?
EV1      = 'HIST' 'ORAN' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.) 'SCAL' ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
* Toutes options + LISTMOTS ?
EV1      = 'HIST' 'ORAN' MOD1 CH1 'ABS' ('PROG' 0. PAS 0.25 1.)
  ('MOTS' 'SCAL' 'NU') ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' 0. PAS 0.25 1.) ('PROG' 2 * 0. 4. 2 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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) ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' 0. 0.3 0.5 0.52 0.67 0.93) ('PROG' 0. 0. 50. 3 * 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Test Hachage' ;
  '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) ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'SCAL' ('PROG' -1.1 -0.67 -0.52 -0.5 0.22)
         ('PROG' 3 * 0. (1. / 0.72) 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1REF - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Test Hachage' ;
  'DESS' TDESS1 (EV1REF 'ET' EV1) ;
'FINS' ;
*                                                                     *
*-------------------------------- 2D ---------------------------------*
*                                                                     *
'OPTI' 'DIME' 2 'ELEM' 'TRI3' ;
*                                                                     *
* 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) ;
EVREF1   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0.9 PAS 0.02 1.08)
  (('PROG' 5 * 0.)'ET' ('PROG' 50.0) 'ET' ('PROG' 4 * 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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 :                   *
S1       = 'CHAN' 'QUAD' S1 ;
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.) ;
*                                                                     *
EVREF1   = ('EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'TOTO' ('PROG' 0. PAS 0.2 2.0) 
  (('PROG' 5 * 0.) 'ET' ('PROG' 5.0) 'ET' ('PROG' 5 * 0.))) ;
EVREF2   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  'TITI' ('PROG' 0. PAS 0.2 2.0)
  (('PROG' 2 * 0.) 'ET' ('PROG' 5.0) 'ET' ('PROG' 8 * 0.)) ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 1) - EVREF1) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 2) - EVREF2) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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') ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV2 'COUR' 1) - EVREF1) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV2 'COUR' 2) - EVREF2) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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' ;
EVREF2   = 'EVOL' 'ROUG' 'MANU' 'TYPE' 'HIST'
  'TITI' ('PROG' 0. PAS 0.1 0.9)
  (('PROG' 5 * 0.) 'ET' ('PROG' 10.0) 'ET' ('PROG' 4 * 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF2 - EV3) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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' ;
EVREF1   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 1.5)
  (('PROG' 2 * 0.)'ET' ('PROG' 2.0) 'ET' ('PROG' 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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' ;
EVREF1   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  ('PROG' -2. PAS 0.08 0.)
  (('PROG' 12 * 0.)'ET' ('PROG' 12.5) 'ET' ('PROG' 13 * 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Thermique avec QUA4 au centre de gravite' ;
  'DESS' TDESS1 (EVREF1 'ET' EV1) ;
'FINS' ;
*                                                                     *
S1       = 'CHAN' 'QUAD' S1 ;
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' ;
EVREF1   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.25 0.75)
  (('PROG' 2 * 0.)'ET' ('PROG' 4.0) 'ET' ('PROG' 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EVREF1 - EV1) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 --------------*
*                                                                     *
'OPTI' 'ELEM' 'QUA4' ;
*                                                                     *
L1       = P0 'DROI' 2 P1 ;
S1       = L1 'TRAN' 2 P2 ;
S2       = S1 'SYME' 'DROI' P0 P2 ;
S2       = 'CHAN' 'TRI3' S2 ;
S0       = S1 'ET' S2 ;
'ELIM' S0 0.001 ;
'SI' IDESS1 ;
  'TITR' 'Maillage a plusieurs elements' ;
  'TRAC' S0 ;
'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' ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.)
  (('PROG' 2 * 0.) 'ET' ('PROG' 2.) 'ET' ('PROG' 2 * 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1 - EV1REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'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' ;
EV2REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 0.5 2.)
  (('PROG' 2 * 0.) 'ET' ('PROG' 2.) 'ET' ('PROG' 2 * 0.)) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV2 - EV2REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Idem mais on veut toutes les composantes :                          *
EV3      = 'HIST' 'VERT' CH2 MOD0 ('PROG' 0. PAS 1. 4.) ;
EV3REF   = ('EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST' ('PROG' 0. PAS 1. 4.)
  ('PROG' 0. 1. 0. 0. 0.)) 'ET' ('EVOL' 'ORAN' 'MANU' 'TYPE' 'HIST'
  ('PROG' 0. PAS 1.  4.) ('PROG' 0. 0. 0. 1. 0.)) ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV3REF 'COUR' 1) - ('EXTR' EV3 'COUR' 1)) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV3REF 'COUR' 2) - ('EXTR' EV3 'COUR' 2)) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Idem en donnant un Listmots :                                       *
EV3      = 'HIST' 'VERT' CH2 MOD0 ('PROG' 0. PAS 1. 4.)
  ('MOTS' 'SCAL' 'TEST') ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV3REF 'COUR' 1) - ('EXTR' EV3 'COUR' 1)) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV3REF 'COUR' 2) - ('EXTR' EV3 'COUR' 2)) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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' ;
EV4REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'  ('PROG' 0. 1. 2. 4.)
  ('PROG' 0. 1. 0. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV4 - EV4REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Idem mais uniquement compsante 1 zone :                             *
EV4      = 'HIST' CH4 MOD0 ('PROG' 0. PAS 1. 4.) 'TEST' ;
EV4REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'  ('PROG' 0. PAS 1. 4.)
  ('PROG' 0. 0. 0. 1. 0.) ;
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV4 - EV4REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Sur 2 composantes :                                                 *
EV4      = 'HIST' 'BLEU' CH4 MOD0 ('PROG' 0. PAS 1. 4.) ;
EV4REF   = ('EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST'  ('PROG' 0. PAS 1. 4.)
  ('PROG' 0. 1. 0. 0. 0.)) 'ET' ('EVOL' 'ORAN' 'MANU'
  'TYPE' 'HIST'  ('PROG' 0. PAS 1.  4.) ('PROG' 0. 0. 0. 1. 0.)) ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV4REF 'COUR' 1) - ('EXTR' EV4 'COUR' 1)) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR'
  (('EXTR' EV4REF 'COUR' 2) - ('EXTR' EV4 'COUR' 2)) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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') ;
EV1REF   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST'
  ('PROG' 0. PAS 0.6 3. PAS 1.4 10.) 'SCAL'
  ('PROG' 0. (1. / 0.6) 9 * 0.) ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR' (EV1REF - ('EXTR' EV1 'COUR' 1)) 'ORDO')) ;
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.) ;
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR' (EV2REF - ('EXTR' EV1 'COUR' 2)) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
   'DESS' TDESS1 ((EV1REF + EV2REF) 'ET' EV1) ;
'FINS' ;
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
*                        FIN <<~PETITS TESTS~>>                       *
*                                                                     *
*---------------------------------------------------------------------*
*                                                                     *
'SINO' ;
  'OPTI' 'DIME' 2 ;
  P0       = 0. 0. ;
  P1       = 1. 0. ;
  P2       = 0. 1. ;
  P3       = 1. 1. ;
'FINS' ;
*                                                                     *
*------------------------ "Vrai Gros Maillage" -----------------------*
*                                                                     *
'OPTI' 'ELEM' 'QUA8' ;
L1       = P0 'DROI' 10 P1 ;
S1       = L1 'TRAN' 10 P2 ;
S2       = S1 'SYME' 'DROI' P0 P2 ;
'OPTI' 'ELEM' 'TRI3' ;
S2       = 'SURF' ('CONT' S2) ;
S0       = S1 'ET' S2 ;
'ELIM' S0 0.001 ;
*                                                                     *
* 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)' ;
  'TRAC' CHAM1 MOD1 ;
'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 ;
N1       = 'DIME' LX1 ;
LY1      = 'PROG' N1 * 0. ;
NB1      = 'NBEL' S1 ;
'REPE' BOU1 NB1 ;
  ELI1     = S1 'ELEM' &BOU1 ;
  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 ;
NB1      = 'NBEL' S2 ;
'REPE' BOU1 NB1 ;
  ELI1     = S2 'ELEM' &BOU1 ;
  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   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'SCAL' LX1 LY1 ;
EV1REF   = EV1REF / ('MESU' S0) ;
*                                                                     *
EV1      = 'HIST' 'VERT' CHAM1 MOD0 LX1 ('MOTS' 'TITI' 'SCAL' 'GREE') ;
*                                                                     *
ERR1     = ERR1 + ('MAXI' 'ABS' ('EXTR' (EV1 - EV1REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'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 :                                       *
MESU1    = ('SOMM' EV1) 'EXTR' 1 ;
MESU1REF = ('INTG' MOD0 ('MASQ' CHAM1 'EGSUPE' -4.5)) / ('MESU'  S0) ;
ERR1     = ERR1 + (MESU1REF - MESU1) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Resultat test HIST en 2D' ;
  'DESS' TDESS1 (EV1REF 'ET' EV1) ;
'FINS' ;
*                                                                     *
*-------------------------------- 3D ---------------------------------*
*                                                                     *
'OPTI' 'DIME' 3 ;
*                                                                     *
'OPTI' 'ELEM' 'CU20' ;
V1       = S1 'VOLU' 'TRAN' 5 (0. 0. 1.) ;
'OPTI' 'ELEM' 'TET4' ;
V2       = S2 'VOLU' 'TRAN' 5 (0. 0. 1.) ;
V2       = 'VOLU' (('ENVE' V2 'ELEM' 'QUA4' 'CHAN' 'TRI3')
  'ET' ('ENVE' V2 'ELEM' 'TRI3')) ;
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' 2.) 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' ;
  'TRAC' CHAM1 MOD0 ;
'FINS' ;
*                                                                     *
X1       = -15. ;
X2       = 17. ;
XPAS1    = 0.8 ;
LX1      = 'PROG' X1 PAS XPAS1 X2 ;
N1       = 'DIME' LX1 ;
*                                                                     *
'TEMP' 'ZERO' ;
LY1      = 'PROG' N1 * 0. ;
NB1      = 'NBEL' V1 ;
'REPE' BOU1 NB1 ;
  ELI1     = V1 'ELEM' &BOU1 ;
  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 ;
NB1      = 'NBEL' V2 ;
'REPE' BOU1 NB1 ;
  ELI1     = V2 'ELEM' &BOU1 ;
  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   = 'EVOL' 'ROSE' 'MANU' 'TYPE' 'HIST' 'VAR1' LX1 LY1 ;
EV1REF   = EV1REF / ('MESU' V0) ;
*                                                                     *
LY2      = 'PROG' N1 * 0. ;
NB1      = 'NBEL' V1 ;
'REPE' BOU1 NB1 ;
  ELI1     = V1 'ELEM' &BOU1 ;
  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 ;
NB1      = 'NBEL' V2 ;
'REPE' BOU1 NB1 ;
  ELI1     = V2 'ELEM' &BOU1 ;
  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   = 'EVOL' 'JAUN' 'MANU' 'TYPE' 'HIST' 'VAR2' LX1 LY2 ;
EV2REF   = EV2REF / ('MESU' V0) ;
'SAUT' 1 'LIGN' ;
'MESS' ' **** Duree Gibiane en 3D = ' (0.01 * ('TEMP' 'NOEC')) ' (s)' ;
*                                                                     *
'TEMP' 'ZERO' ;
EV1      = 'HIST' 'VERT' CHAM1 MOD0 LX1 ('MOTS' 'VAR2' 'VAR1' 'CHUE');
'SAUT' 1 'LIGN' ;
'MESS' ' **** Duree d"execution HIST en 3D = '
  (0.01 * ('TEMP' 'NOEC')) ' (s)' ;
EV1      = ('EXTR' EV1 'COUR' 1)
  'ET' (('EXTR' EV1 'COUR' 2) 'COUL' 'TURQ') ;
*                                                                     *
ERR1     = ERR1
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 1) - EV1REF) 'ORDO'))
  + ('MAXI' 'ABS' ('EXTR' (('EXTR' EV1 'COUR' 2) - EV2REF) 'ORDO')) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
* Verification que la somme des ordonnees vaut 1 :                    *
MESU1    = ('SOMM' ('EXTR' EV1 'COUR' 1)) 'EXTR' 1 ;
ERR1     = ERR1 + (1. - MESU1) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
MESU1    = ('SOMM' ('EXTR' EV1 'COUR' 2)) 'EXTR' 1 ;
ERR1     = ERR1 + (1. - MESU1) ;
'SI' ILIST1 ;
  'LIST' ERR1 ;
'FINS' ;
*                                                                     *
'SI' IDESS1 ;
  'TITR' 'Resultat test HIST en 3D' ;
  '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') ;
  'DESS' (('EXTR' EV1 'COUR' 2) 'ET' EV2 'ET' EV3) ;
'FINS' ;
*                                                                     *
*--------------------------- Tests erreurs ---------------------------*
*                                                                     *
'SI' ITEST1 ;
  'SAUT' 1 'LIGN' ;
  'OPTI' 'ERRE' 'IGNO' ;
  CHE1     = 'MANU' 'CHML' MOD1 'SCAL' 1. 'STRESSES' ;
  LR1      = PROG 0. PAS 0.5 2. ;
* Si on passe un CHPO ? :                                             *
  EV0      = 'HIST' ('COOR' 1 V1) MOD1 ;
* Si on ne passe pas le modele ? :                                    *
  EV0      = 'HIST' CHE1 ;
* Si on ne passe pas le "bon" modele ? :                              *
  EV0      = 'HIST' CHE1 MOD2 LR1 ;
* Si on ne passe pas le LISTREEL ;
  EV0      = 'HIST' MOD1 CHE1 ;
* 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 ;
  'OPTI' 'ERRE' 'NORM' ;
'FINS' ;
*                                                                     *
'SI' (ERR1 > 1.E-10) ;
  'SAUT' 1 'LIGN' ;
  'MESS' ' **** Erreur = ' ERR1 ;
  'ERRE' 5 ;
'FINS' ;
*                                                                     *
'FIN' ;
 

© Cast3M 2003 - All rights reserved.
Disclaimer