* fichier : isov.dgibi
************************************************************************
* Section : Maillage Autres
************************************************************************
'OPTION' 'ECHO' 0 ; 
************************************************************************
* NOM         : ISOV
* DESCRIPTION : Cas-test élémentaire pour l'opérateur ISOV
*
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : stephane.gounand@cea.fr
**********************************************************************
* VERSION    : v1, 25/07/2014, version initiale
* HISTORIQUE : v1, 25/07/2014, création
* HISTORIQUE : v1.1, 12/03/2015, ajout cas plantage fiche 8433
* HISTORIQUE :
************************************************************************
*
graph    = faux ;
interact = faux ;
*
'DEBPROC' EGAMAIL ;
'ARGUMENT' mail1*'MAILLAGE' ;
'ARGUMENT' mail2*'MAILLAGE' ;
lega = 'EGA' ('NBEL' ('DIFF' mail1 mail2)) 0 ;
'RESPRO' lega ;
'FINPROC' ;
*
'SI' ('NON' interact) ;
  'OPTION' 'TRAC' 'PS' ;
'SINON' ;
  'OPTION' 'TRAC' 'X' ;
'FINSI' ;  
*
'OPTION' 'DIME' 1 'ELEM' 'SEG2'  ;
*
lok = vrai ;
*
* Cas des POI1
*
pp = 'MANU' 'POI1' ('POIN' 0.) ;
mcha = 'MANU' 'CHML' pp 'SCAL' 0.5 ;
*
res1 = 'ISOV' mcha 0.5 ;
nres1 = 'NBEL' ('DIFF' pp res1) ;
res1b = 'ISOV' mcha 0.75 ;
nres1b = 'NBEL' ('DIFF'   pp res1b) ;
res2 = 'ISOV' mcha 'EGSU' 0.75 ;
nres2 = 'NBEL' ('DIFF' pp res2) ;
res3 = 'ISOV' mcha 'EGIN' 0.75 ;
nres3 = 'NBEL' ('DIFF' pp res3) ;
res2b = 'ISOV' mcha 'EGSU' 0.25 ;
nres2b = 'NBEL' ('DIFF' pp res2b) ;
res3b = 'ISOV' mcha 'EGIN' 0.25 ;
nres3b = 'NBEL' ('DIFF' pp res3b) ;
*
lresu = 'LECT' nres1 nres1b nres2 nres3 nres2b nres3b ;
lref  = 'LECT' 0     1      1     0     0      1      ;
lok = 'ET' lok ('EGA' lresu lref) ;
'SI' ('NON' lok) ; 'LISTE' lresu ; 'ERREUR' 5 ; 'FINSI' ;
*
* Cas des SEG2 
*
p1 = 'POIN' 0. ; p2 = 'POIN' 1. ;
mm = 'DROIT' 3 p1 p2 ;
unt = '/' 1. 3. ;
xmm = 'COORDONNEE' 1 mm ;
xmm2 = ('*' xmm 0.) '+' unt ;
cmm = 'CHANGER' 'CHAM' xmm mm ;
* Pour tester les MCHAML constants
*cmm2 = 'CHANGER' 'CHAM' xmm2 mm ;
cmm2 = 'MANU' 'CHML' mm 'SCAL' unt ;
*
unt = '/' 1. 3. ;
pasunt =  0.3333333333 ;
r1  = 'ISOV' cmm unt ;
punt = 'MANU' 'POI1' ('POIN' mm 'PROC' ('POIN' 0.33)) ;
lok = lok 'ET' (EGAMAIL r1 punt) ;
*'LISTE' r1 ;
r2  = 'ISOV' cmm2 unt ;
lok = lok 'ET' (EGAMAIL r2 mm) ;
*'LISTE' r2 ;
r3  = 'ISOV' cmm2 pasunt ;
*'LISTE' r3 ;
lok = lok 'ET' ('EGA' ('NBEL' r3) 0) ;
r4 = 'ISOV' cmm 'EGSU' unt ;
mref = 'ELEM' mm 'APPUYE' ('POIN' xmm 'EGSUPE' pasunt) ;
lok = lok 'ET' (EGAMAIL r4 mref) ;
*'LISTE' r4 ;
r5 = 'ISOV' cmm 'EGSU' pasunt ;
lok = lok 'ET' (EGAMAIL ('INTERSECTION' r5 mm) mref) ;
*'LISTE' r5 ;
r4b = 'ISOV' cmm 'EGIN' unt ;
mrefb = 'ELEM' mm 'APPUYE' ('POIN' xmm 'EGINFE' unt) ;
lok = lok 'ET' (EGAMAIL r4b mrefb) ;
*'LISTE' r4b ;
r5b = 'ISOV' cmm 'EGIN' pasunt ;
mpcom = 'INTERSECTION' ('CHANGER' r5b 'POI1') ('CHANGER' mrefb 'POI1') ;
lok = lok 'ET' (EGAMAIL mpcom ('MANU' 'POI1' p1)) ;
*'LISTE' r5b ;
'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
*
* Cas des TRI3
*
deut  = '/' 2. 3. ;
cinqt = '/' 5. 3. ;
'OPTION' 'DIME' 2 'ELEM' 'TRI3'  ;
*
pA = 0. 0. ; pB = deut 0. ; pC = deut cinqt ; pD = 0. cinqt ;
tri1 = 'MANU' 'TRI3' pA pB pD ;
tri2 = 'MANU' 'TRI3' pC pD pB ;
mm = tri1 'ET' tri2 ;
xmm ymm = 'COORDONNEE' mm ;
xmm2 = ('*' xmm 0.) '+' unt ;
xym   = ('+' ('*' 2.5 xmm) ('*' 1. ('-' ymm cinqt))) '+' unt ;
axym  = ('ABS' ('-' ('*' 2.5 xmm) ('*' 1. ymm))) '+' unt ;
xym2  = ('-' ('*' 2.5 xmm) ('*' 1. ymm )) '+' unt ;
cmm  = 'CHANGER' 'CHAM' xym mm ;
*cmm2 = 'CHANGER' 'CHAM' xmm2 mm ;
cmm3 = 'CHANGER' 'CHAM' axym mm ;
cmm4 = 'CHANGER' 'CHAM' xym2 mm ;

*'LISTE' cmm ;
*'LISTE' cmm3 ;
*
r1 = 'ISOV' cmm unt ;
*vr1 = vsur ('MODE' r1 mecanique elastique isotrope coq2) 'NORM' ;
*'LISTE' vr1 ;
*'OPTION' 'DONN' 5 ;

'SI' graph ; trac (mm et (coul r1 roug)) ; 'FINSI' ;
mr1 = 'MANU' 'SEG2' pD pB ;
lok = lok 'ET' (EGAMAIL r1 mr1) ;
*
r2 = 'ISOV' cmm 'EGSU' unt ;
'SI' graph ; trac (mm et (coul r2 roug)) ; 'FINSI' ;
*'LISTE' r2 ;
mr2 = tri2 ;
lok = lok 'ET' (EGAMAIL r2 mr2) ;
*
r4 = 'ISOV' cmm4 unt ;
lok = lok 'ET' ('EGA' ('DIME' ('CCON' r4)) 1) ;
*!!!! 'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
*
rmm = 'CHANGER' mm 'QUAF' ; rmm = 'CHANGER' rmm 'TRI3' ;
xmm ymm = 'COORDONNEE' rmm ;
'SI' graph ; 'TRACER' rmm ; 'FINSI' ;
xy2 = ('**' ('/' xmm deut) 2) '+'  ('**' ('/' ymm cinqt) 2) '+' unt ;
*
cxy2 = 'CHANGER' 'CHAM' xy2 rmm ;
'SI' graph ; 'TRACER' xy2 rmm ; 'FINSI' ;
*
vcher = '+' 1 unt ;
r5a   = 'ISOV' cxy2 'EGAL' vcher ;
r5b   = 'ISOV' cxy2 'EGSU' vcher ;
r5c   = 'ISOV' cxy2 'EGIN' vcher ;
'SI' graph ;
   trac (rmm et (coul r5a roug)) 'NOEU' ;
   trac (rmm et (coul r5b roug)) 'NOEU' ;
   trac (rmm et (coul r5c roug)) 'NOEU' ;
'FINSI' ;   
cc5a = PROI cxy2 r5a ; vv5a = 'MAXIMUM' ('-' cc5a vcher) 'ABS' ;
cc5b = PROI cxy2 r5b ; vv5b = 'MINIMUM' ('-' cc5b vcher) ;
cc5c = PROI cxy2 r5c ; vv5c = 'MAXIMUM' ('-' cc5c vcher) ;
*'LISTE' vv5a ;
*'LISTE' vv5b ;
*'LISTE' vv5c ;
lok = lok 'ET' ('EGA' vv5a 0. 1.D-13) ;
lok = lok 'ET' ('EGA' vv5b 0. 1.D-13) ;
lok = lok 'ET' ('EGA' vv5b 0. 1.D-13) ;
volex = '*' deut cinqt ;
volmm = 'MESURE' mm ;
dvolmm = '-' volmm volex ;
*'LISTE' dvolmm ;
lok = lok 'ET' ('EGA' dvolmm 0. 1.D-13) ;
vol5b = 'MESURE' r5b ;
vol5c = 'MESURE' r5c ;
vol5 = vol5b '+' vol5c ;
dvol5 = '-' vol5 volex ;
*'LISTE' dvol5 ;
lok = lok 'ET' ('EGA' dvol5 0. 1.D-13) ;
*
vcher = 1.33 ;
r6a   = 'ISOV' cxy2 'EGAL' vcher ;
r6b   = 'ISOV' cxy2 'EGSU' vcher ;
r6c   = 'ISOV' cxy2 'EGIN' vcher ;
'SI' graph ;
   trac (rmm et (coul r6a roug)) 'NOEU' ;
   trac (rmm et (coul r6b roug)) 'NOEU' ;
   trac (rmm et (coul r6c roug)) 'NOEU' ;
'FINSI' ;
cc6a = PROI cxy2 r6a ; vv6a = 'MAXIMUM' ('-' cc6a vcher) 'ABS' ;
cc6b = PROI cxy2 r6b ; vv6b = 'MINIMUM' ('-' cc6b vcher) ;
cc6c = PROI cxy2 r6c ; vv6c = 'MAXIMUM' ('-' cc6c vcher) ;
*'LISTE' vv6a ;
*'LISTE' vv6b ;
*'LISTE' vv6c ;
lok = lok 'ET' ('EGA' vv6a 0. 1.D-13) ;
lok = lok 'ET' ('EGA' vv6b 0. 1.D-13) ;
lok = lok 'ET' ('EGA' vv6b 0. 1.D-13) ;
vol6b = 'MESURE' r6b ;
vol6c = 'MESURE' r6c ;
vol6 = vol6b '+' vol6c ;
dvol6 = '-' vol6 volex ;
*'LISTE' dvol6 ;
lok = lok 'ET' ('EGA' dvol6 0. 1.D-13) ;
'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
*
* Cas des TET4
*
'OPTI' 'DIME' 3 'ELEM' 'TET4' ;
p1 = 0. 0. 0. ; p2 = pi 0. 0. ; p3 = 0. 2.5 0. ;
p4 = 0. 0. ('/' 10. 3.) ;
tet = 'MANU' 'TET4' p4 p2 p3 p1 ;
tet1 = p1 'ET' p2 'ET' p3 'ET' p4 ;
vinf = 0. ; vmoy = cinqt ; vsup = pi ;
*
*  On parcourt des cas standards (isovaleur=surface)
*
tabcas = 'TABLE' ;
tabcas . 1 = 'PROG' vinf vmoy vmoy vsup ;
tabcas . 2 = 'PROG' vinf vinf vmoy vsup ;
tabcas . 3 = 'PROG' vinf vmoy vsup vsup ;
tabcas . 4 = 'PROG' vinf vsup vsup vsup ;
tabcas . 5 = 'PROG' vinf vinf vsup vsup ;
tabcas . 6 = 'PROG' vinf vinf vinf vsup ;
dkas = 'DIME' tabcas ;
'REPETER' ikas dkas ;
   lval = tabcas . &ikas ;
*lval = 'PROG' vinf vinf vsup vsup ;
   cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
   'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
   ccval = 'CHANGER' 'CHAM' cval tet ;
*
   vcher = vmoy ;
   r1a = 'ISOV' ccval 'EGAL' vcher ;
   r1b = 'ISOV' ccval 'EGSU' vcher ;
   r1c = 'ISOV' ccval 'EGIN' vcher ;
   'SI' graph ;
      trac (tet et (coul r1a roug)) 'NOEU' ;
      trac (tet et (coul r1b roug)) 'NOEU' ;
      trac (tet et (coul r1c roug)) 'NOEU' ;
   'FINSI' ;      
   cc1a = PROI ccval r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
   cc1b = PROI ccval r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
   cc1c = PROI ccval r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
*   'LISTE' vv1a ;
*   'LISTE' vv1b ;
*   'LISTE' vv1c ;
   lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
   volex = 'MESURE' tet ;
   vol1b = 'MESURE' r1b ;
   vol1c = 'MESURE' r1c ;
   vol1 = vol1b '+' vol1c ;
   dvol1 = '-' vol1 volex ;
*   'LISTE' dvol1 ;
   lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
   'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
'FIN' ikas ;
*
* Le diamant triangulaire
*
p1 = 0. 0. 0. ; p2 = pi 0. 0. ; p3 = 0. 2.5 0. ;
p4 = 0. 0. ('/' 10. 3.) ; p5 = pi 2.5 ('/' 10. 3.) ;
teta = 'MANU' 'TET4' p4 p2 p3 p1 ;
tetb = 'MANU' 'TET4' p5 p2 p3 p4 ;
tet = teta 'ET' tetb ;
tet1 = p1 'ET' p2 'ET' p3 'ET' p4 'ET' p5 ;
vinf = 0. ; vmoy = cinqt ; vsup = pi ;
*
* On parcourt quelques cas particuliers 
*
tabcas = 'TABLE' ;
tabega = 'TABLE' ; tabsup = 'TABLE' ; tabinf = 'TABLE' ;
tabcas . 1 = 'PROG' vmoy vinf vinf vinf vmoy ;
tabega . 1 = p1 'ET' p5 ;
tabinf . 1 = tet ;
tabsup . 1 = tabega . 1 ;
*
tabcas . 2 = 'PROG' vmoy vmoy vsup vsup vmoy ;
tabega . 2 = ('MANU' 'SEG2' p1 p2) 'ET' ('MANU' 'SEG2' p2 p5) ;
tabinf . 2 = tabega . 2;
tabsup . 2 = tet ;
*
tabcas . 3 = 'PROG' vmoy vmoy vmoy vinf vmoy ;
tabega . 3 = ('MANU' 'TRI3' p1 p2 p3) 'ET' ('MANU' 'TRI3' p2 p3 p5) ;
tabinf . 3 = tet ;
tabsup . 3 = tabega . 3 ;
*
tabcas . 4 = 'PROG' vsup vmoy vmoy vmoy vinf ;
tabega . 4 = 'MANU' 'TRI3' p2 p3 p4 ;
tabinf . 4 = tetb ;
tabsup . 4 = teta ;
*
tabcas . 5 = 'PROG' vmoy vmoy vmoy vmoy vmoy ;
tabega . 5 = tet ;
tabinf . 5 = tet ;
tabsup . 5 = tet ;
*
dkas = 'DIME' tabcas ;
'REPETER' ikas dkas ;
   lval = tabcas . &ikas ;
   cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
   'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
   ccval = 'CHANGER' 'CHAM' cval tet ;
*
   vcher = vmoy ;
   r1a = 'ISOV' ccval 'EGAL' vcher ;
   r1b = 'ISOV' ccval 'EGSU' vcher ;
   r1c = 'ISOV' ccval 'EGIN' vcher ;
*   'LISTE' r1a ;
*   'LISTE' r1b ;
*   'LISTE' r1c ;
   'SI' graph ;
      trac (tet et (coul r1a roug)) 'NOEU' ;
      trac (tet et (coul r1b roug)) 'NOEU' ;
      trac (tet et (coul r1c roug)) 'NOEU' ;
   'FINSI' ;
   lok = lok 'ET' (EGAMAIL r1a (tabega . &ikas)) ;      
   lok = lok 'ET' (EGAMAIL r1b (tabsup . &ikas)) ;      
   lok = lok 'ET' (EGAMAIL r1c (tabinf . &ikas)) ;
   'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
'FIN' ikas ;   
*
* On parcourt des cas plus standards (isovaleur = surface)
*
tabcas = 'TABLE' ;
tabcas . 1 = 'PROG' vinf vmoy vsup vsup vsup ;
tabcas . 2 = 'PROG' vsup vsup vmoy vmoy vinf ;
tabcas . 3 = 'PROG' vinf vinf vsup vinf vinf ;
tabcas . 4 = 'PROG' vsup vmoy vmoy vmoy vinf ;
tabcas . 5 = 'PROG' vmoy vsup vsup vinf vmoy ;
tabcas . 6 = 'PROG' vsup vinf vsup vinf vinf ;
dkas = 'DIME' tabcas ;
'REPETER' ikas dkas ;
   lval = tabcas . &ikas ;
*lval = 'PROG' vinf vinf vsup vsup ;
   cval = 'MANU' 'CHPO' tet1 1 'SCAL' lval ;
   'SI' graph ; 'TRACER' cval tet ; 'FINSI' ;
   ccval = 'CHANGER' 'CHAM' cval tet ;
*
   vcher = vmoy ;
   r1a = 'ISOV' ccval 'EGAL' vcher ;
   r1b = 'ISOV' ccval 'EGSU' vcher ;
   r1c = 'ISOV' ccval 'EGIN' vcher ;
*   'LISTE' r1a ;
*   'LISTE' r1b ;
*   'LISTE' r1c ;
   'SI' graph ;
      trac (tet et (coul r1a roug)) 'NOEU' ;
      trac (tet et (coul r1b roug)) 'NOEU' ;
      trac (tet et (coul r1c roug)) 'NOEU' ;
   'FINSI' ;      
   cc1a = PROI ccval r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
   cc1b = PROI ccval r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
   cc1c = PROI ccval r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
*   'LISTE' vv1a ;
*   'LISTE' vv1b ;
*   'LISTE' vv1c ;
   lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
   volex = 'MESURE' tet ;
   vol1b = 'MESURE' r1b ;
   vol1c = 'MESURE' r1c ;
   vol1 = vol1b '+' vol1c ;
   dvol1 = '-' vol1 volex ;
*   'LISTE' dvol1 ;
   lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
   'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
'FIN' ikas ;
*
* Cas d'un cube
*
nm = 3 ;
'OPTION' 'DIME' 3 'ELEM' 'TET4' ;
pO = 0. 0. 0. ;
pA = 1. 0. 0. ;
pB = 0. 1. 0. ;
pC = 0. 0. 1. ;
lOA = 'DROIT' nm pO pA ; lOB = 'DROIT' nm pO pB ;
bas = 'TRANSLATION' lOA nm pB ;
fro = 'TRANSLATION' lOA nm pC ;
gau = 'TRANSLATION' lOB nm pC ;
hau = 'PLUS' bas pC ;
rea = 'PLUS' fro pB ;
dro = 'PLUS' gau pA ;
emt = bas 'ET' hau 'ET' gau 'ET' dro 'ET' fro 'ET' rea ;
'ELIMINATION' emt 1.D-6 ;
mt = 'VOLUME' emt ;
volex = 'MESURE' mt ;
'TRACER' mt cach ;

amt = 'ARETE' mt ;
xmt ymt zmt = 'COORDONNEE' mt ;
rmt = '**' (('**' xmt 2) '+' ('**' ymt 2) '+' ('**' zmt 2)) 0.5 ;
crmt = 'CHANGER' 'CHAM' rmt mt ;
 'SI' graph ;
   'TRACER' rmt mt ;
 'FINSI' ;
lval = 'PROG' 0.5 0.98 1. 1.66666 ;
dval = 'DIME' lval ;
'REPETER' ival dval ;
   vcher = 'EXTRAIRE' lval &ival ;
   r1a = 'ISOV' crmt 'EGAL' vcher ;
   r1b = 'ISOV' crmt 'EGSU' vcher ;
   r1c = 'ISOV' crmt 'EGIN' vcher ;
    'SI' graph ;
      trac (amt et (coul r1a roug)) 'CACH' ;
      trac (amt et (coul r1b roug)) 'CACH' ;
      trac (amt et (coul r1c roug)) 'CACH' ;
    'FINSI' ;      
   cc1a = PROI crmt r1a ; vv1a = 'MAXIMUM' ('-' cc1a vcher) 'ABS' ;
   cc1b = PROI crmt r1b ; vv1b = 'MINIMUM' ('-' cc1b vcher) ;
   cc1c = PROI crmt r1c ; vv1c = 'MAXIMUM' ('-' cc1c vcher) ;
*   'LISTE' vv1a ;
*   'LISTE' vv1b ;
*   'LISTE' vv1c ;
   lok = lok 'ET' ('EGA' vv1a 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1b 0. 1.D-13) ;
   lok = lok 'ET' ('EGA' vv1c 0. 1.D-13) ;
   vol1b = 'MESURE' r1b ;
   vol1c = 'MESURE' r1c ;
   vol1 = vol1b '+' vol1c ;
   dvol1 = '-' vol1 volex ;
*   'LISTE' dvol1 ;
   lok = lok 'ET' ('EGA' dvol1 0. 1.D-13) ;
   'SI' ('NON' lok) ; 'ERREUR' 5 ; 'FINSI' ;
'FIN' ival ;
*
* Un cas qui plantait sèchement avant la fiche 8433
*
born = 0.5 ; mborn = '*' born -1. ;
*
pA = mborn mborn 0. ; pB = born mborn 0. ;
pC = born born  0.  ; pD = mborn born 0. ;
* Carré initial
'OPTI' 'ELEM' 'CUB8' ;
nmail = 1 ;
lAB = 'DROIT' nmail pA pB ;
lBC = 'DROIT' nmail pB pC ;
lCD = 'DROIT' nmail pC pD ;
lDA = 'DROIT' nmail pD pA ;
bas = 'DALLER' lAB lBC lCD lDA ;
hau = bas 'PLUS' (0. 0. 1.) ;
mt = 'VOLUME' nmail bas hau ;
mtq = 'CHANGER' mt 'QUAF' ;
mt = 'CHANGER' mtq 'TET4' ;
xmt ymt zmt = 'COORDONNEE'  mt ;
cymt = 'CHANGER' 'CHAM' ymt mt ;
micymt = 'MINIMUM' cymt ;
'MESSAGE' ('CHAINE' 'micymt=' micymt) ;
mmt = 'ISOV' cymt 'EGSUPE' 0. ;
* Verif
cymtr = 'REDU' cymt mmt ;
micymtr = 'MINIMUM' cymtr ;
'MESSAGE' ('CHAINE' 'micymtr=' micymtr) ;
lok = lok 'ET' ('>EG' micymtr 0.) ;
*
* Un cas qui donnait un résultat incorrect sur semt2 avant la fiche 8625
*
*'OPTI' echo 1 'TRACER' x ; graph = vrai  ;
'OPTION' 'DIME' 2 'ELEM' 'TRI3'  ;
p1 = 1. 0. ; p2 = 2. 0. ;
d1 = 'DROIT' 2 p1 p2 ;
mai = d1 'ROTATION' 10 60 (0. 0.) ;
cx cy = 'COORDONNEE' mai ;
cr = '**' ('+' ('**' cx 2) ('**' cy 2)) 0.5 ;
ct = 'ATG' cy cx ;
'SI' graph ;
   'TRACER' cr mai 'TITR' 'R' ;
   'TRACER' ct mai 'TITR' 'theta' ;
'FINSI' ;   
misor cisor = @ISOSURF mai cr ('PROG' 1. 'PAS' 0.1 2.) ;
misot cisot = @ISOSURF mai ct ('PROG' 0. 'PAS' 10. 60.) ;
'SI' graph ;
   'TRACER' (misor 'ET' ('CONTOUR' mai)) 'TITR' 'R' ;
   'TRACER' (misor 'ET' misot) 'TITR' 'R-theta' ;
'FINSI' ;
* Verif
pmisor = 'CHANGER' misor 'POI1' ;
* On fait une petite homothetie car inclus est trop strict
pmisor = 'HOMOTHETIE' pmisor 0.99 ('BARYCENTRE' pmisor) ;
pmisor2 = pmisor 'INCLUS' mai 'LARG' ;
tst1 = 'EGA' ('NBNO' pmisor) ('NBNO' pmisor2) ;
pmisot = 'CHANGER' misot 'POI1' ;
pmisot = 'HOMOTHETIE' pmisot 0.99 ('BARYCENTRE' pmisot) ;
pmisot2 = pmisot 'INCLUS' mai 'LARG' ;
tst2 = 'EGA' ('NBNO' pmisot) ('NBNO' pmisot2) ;
lok = lok 'ET' tst1 'ET' tst2 ;
*
'SI' ('NON' lok) ;
   'ERREUR' 5 ;
'SINON' ;   
   'MESSAGE' ('CHAINE' 'Tout sest bien passe !') ;
'FINSI' ;
*
'SI' interact ;
   'OPTION' 'ECHO' 1 ;
   'OPTION' 'DONN' 5 ;
'FINSI' ;
*
* End of dgibi file ISOV
*
'FIN' ;

 

 

 

 

 

