* fichier : test_et.dgibi
interact = vrai ;
************************************************************************
* NOM : test_et.dgibi
* DESCRIPTION : test le bon fonctionnement de l'opérateur 'ET'
*
* LANGAGE : GIBIANE-CAST3M
* AUTEUR : Pascal Maugis (CEA/DSM/LSCE)
* mail : pmaugis@cea.fr
************************************************************************
* VERSION : v1, 10/05/2007, version initiale
* HISTORIQUE : v1, 10/05/2007, création
* HISTORIQUE :
* HISTORIQUE :
************************************************************************
* Prière de PRENDRE LE TEMPS de compléter les commentaires
* en cas de modification de ce sous-programme afin de faciliter
* la maintenance !
************************************************************************
*
*
'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
'SI' ('NON' interact) ;
'OPTION' 'TRAC' 'PS' ;
'SINON' ;
'OPTION' 'TRAC' 'X' ;
'FINSI' ;
* Créer un LISTREEL
'LISTE' (('PROG' 0) 'ET' ('PROG' 1)) ;
*'LISTE' (('PROG' 0) 'ET' 1.) ;
*'LISTE' (0. 'ET' ('PROG' 1)) ;
*'LISTE' (0. 'ET' 1.) ;
*'LISTE' (0 'ET' ('PROG' 1)) ;
*'LISTE' (('PROG' 0) 'ET' 1) ;
* Créer un LISTENTI
'LISTE' (('LECT' 0) 'ET' ('LECT' 1)) ;
*'LISTE' (('LECT' 0) 'ET' 1) ;
*'LISTE' (0 'ET' ('LECT' 1)) ;
*'LISTE' (0 'ET' 1) ;
* Créer un LISTCHPO
stop;
ch1 = 'MANU' 'CHPO' ((0 0) 'ET' (1 1)) 1 'SCAL' 2. 'NATURE' 'DISCRET' ;
ch2 = ch1 + 1. ;
ch3 = ch1 'ET' ch2 ;
'LISTE' ('SUITE' 'CHPOINT' ch1) ;
'LISTE' (('SUITE' 'CHPOINT' ch1) 'ET' ('SUITE' 'CHPOINT' ch2));
*'LISTE' (('SUITE' 'CHPOINT' ch1) 'ET' ch2);
*'LISTE' (ch1 'ET' ('SUITE' 'CHPOINT' ch2));
* Deux maillages simples
* ----------------------
p1 = 0 0;
p2 = 1 1;
p3 = 1 1;
p4 = 1 0 ;
* ET ne respecte pas l'ordre d'adjonction des maillages
* le 2e segment est bien en 2e.
m1 = ('MANU' 'SEG2' p1 p2) 'ET' ('MANU' 'SEG2' p2 p3) ;
'LISTE' m1 ;
* d'une façon générale, le segment créant la continuité passe en premier
m2 = m1 'ET' ('MANU' 'SEG2' p4 p1) ;
'LISTE' m2 ;
* sauf si mot-clef 'TELQUEL'
m2 = m1 'ET' ('MANU' 'SEG2' p4 p1) 'TELQUEL' ;
'LISTE' m2 ;
'SI' (('NBEL' ('DIFF' ('ELEM' m1 1) ('ELEM' m2 1))) 'EGA' 0) ;
'ERREUR' 0;
'SINON' ;
'ERREUR' 5 ;
'FINSI' ;
* Un maillage complexe
* --------------------
* a) avec possibilité de continuité de parcours
m3 = m1 'ET' ('MANU' 'TRI3' p1 p2 p3) ;
m4 = 'MANU' 'SEG2' p4 p1 ;
* sans 'TELQ', préséance de la continuité de parcours
t1 = 'ELEM' (m3 'ET' m4) 'SEG2' ;
'LISTE' t1 ;
t1 = 'ELEM' (m4 'ET' m3) 'SEG2' ;
'LISTE' t1 ;
* avec 'TELQ' l'ordre des opérandes est respecté
t1 = 'ELEM' (m3 'ET' m4 'TELQUEL') 'SEG2' ;
'LISTE' t1 ;
'SI' (('NBEL' ('DIFF' ('ELEM' t1 1) ('ELEM' m1 1))) 'EGA' 0) ;
'ERREUR' 0;
'SINON' ;
'ERREUR' 5 ;
'FINSI' ;
* b) sans continuité de parcours possible
* sans 'TELQ', le maillage complexe passe toujours en premier
* le résultat est invariablement la fraction SEG2 du maillage complexe,
* puis le maillage simple.
m5 = 'MANU' 'SEG2' (3 2) (2 3) ;
t1 = 'ELEM' (m3 'ET' m5) 'SEG2' ;
'LISTE' t1 ;
t2 = 'ELEM' (m5 'ET' m3) 'SEG2' ;
'LISTE' t2 ;
* on vérifie la compatibilité descendante
'SI' (('NBEL' ('DIFF' ('ELEM' t1 1) ('ELEM' t2 1))) 'EGA' 0) ;
'ERREUR' 0;
'SINON' ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer