Download proi1.dgibi

Back to the list

* fichier : proi1.dgibi
************************************************************************
* NOM         : PROI1
* DESCRIPTION : Vérifie que PROI 
*               OBJ1 = PROI  | GEO2    CHEL1    |     
*
*               redonne presque la valeur exacte pour un champ linéaire
*               et un champ quadratique
*               interpolé sur un certain nombre d'éléments.
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION    : v1, 02/05/2006, version initiale
* HISTORIQUE : v1, 02/05/2006, 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 !
************************************************************************
*
*
interact= FAUX ;
graph = FAUX ;
'OPTION' 'TRAC' 'X' ;
*
ok = VRAI ;
*
* imesh = (SEG2 TRI3 QUA4 CUB8 PRI6 TET4 PYR5) 
* ityp  = (LINE QUAD QUAF)
*
*
* On fait deux fois (linéaire puis quadratique)
*
'REPETER' iidf 2 ;
'REPETER' iimesh 7 ;
'REPETER' iityp 3 ;
idf = &iidf ;
imesh = &iimesh ;
ityp  = &iityp  ;
*imesh = 6 ;
*ityp = 3 ;
'SI' ('EGA' imesh 1) ;
   'OPTION' 'DIME' 1 ;
   p1 = 'POIN' 0. ; p2 = 'POIN' 1.5 ; pt = 'POIN' 0.2 ;
   mt = 'MANUEL' 'SEG2' p1 p2 ;
'FINSI' ;   
'SI' ('EGA' imesh 2) ;
   'OPTION' 'DIME' 2 ;
   p1 = 0. 0. ; p2 = 1.5 0.1 ; p3 = 0.1 1.3 ;
   pt = 0.2 0.2 ;
   mt = 'MANUEL' 'TRI3' p1 p2 p3 ;
'FINSI' ;   
'SI' ('EGA' imesh 3) ;
   'OPTION' 'DIME' 2 ;
   p1 = 0. 0.   ; p2 = 1.5 0.1 ;
   p3 = 1.4 1.3 ; p4 = 0.1 1.3 ; 
   pt = 0.2 0.2 ;
   mt = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
'FINSI' ;   
'SI' ('EGA' imesh 4) ;
   'OPTION' 'DIME' 3 ;
   p1 = 0. 0.   0. ; p2 = 1.5 0.1 0. ;
   p3 = 1.4 1.3 0. ; p4 = 0.1 1.3 0. ; 
   p5 = 0. 0.   1. ; p6 = 1.4 0.1 1. ;
   p7 = 1.4 1.3 1. ; p8 = 0.1 1.3 1. ; 
   pt = 0.2 0.2 0.2 ;
   mt = 'MANUEL' 'CUB8' p1 p2 p3 p4 p5 p6 p7 p8 ;
'FINSI' ;   
'SI' ('EGA' imesh 5) ;
   'OPTION' 'DIME' 3 ;
   p1 = 0. 0. 0. ; p2 = 1.5 0.1 0. ; p3 = 0.1 1.3 0. ;
   p4 = 0. 0.2 1. ; p5 = 1.5 0.1 0. ; p6 = 0.1 1.3 0. ;
   pt = 0.2 0.2 0.2 ;
   mt = 'MANUEL' 'PRI6' p1 p2 p3 p4 p5 p6 ;
'FINSI' ;   
'SI' ('EGA' imesh 6) ;
   'OPTION' 'DIME' 3 ;
   p1 = 0. 0. 0. ; p2 = 1.5 0.1 0. ; p3 = 0.1 1.3 0. ;
   p4 = 0. 0.2 1. ;
   pt = 0.2 0.2 0.2 ;
   mt = 'MANUEL' 'TET4' p1 p2 p3 p4 ;
'FINSI' ;   
'SI' ('EGA' imesh 7) ;
   'OPTION' 'DIME' 3 ;
   p1 = 0. 0.   0. ; p2 = 1.5 0.1 0. ;
   p3 = 1.4 1.3 0. ; p4 = 0.1 1.3 0. ; 
   p5 = 0. 0.1   1. ;
   pt = 0.2 0.2 0.2 ;
   mt = 'MANUEL' 'PYR5' p1 p2 p3 p4 p5 ;
'FINSI' ;   
'SI' ('EGA' ityp 1) ;
   _mt = mt ;
'FINSI' ;
'SI' ('EGA' ityp 2) ;
   _mt = 'CHANGER' mt 'QUADRATIQUE' ;
'FINSI' ;
'SI' ('EGA' ityp 3) ;
   _mt = 'CHANGER' mt 'QUAF' ;
'FINSI' ;
*
* Les pyramides QUAF n'existent pas encore !
*
'SI' ('NON' ('ET' ('EGA' imesh 7)
                  ('EGA' ityp 3))) ;
   chex1 = '**' ('COORDONNEE' 1 _mt) idf  ;
*   chex1 = ('COORDONNEE' 1 _mt) ;
   'SI' graph ;
      'TRACER' chex1 _mt ;
   'FINSI' ;
   cchex1 = 'CHANGER' 'CHAM' chex1 _mt ;
*
   ppt  = 'MANUEL' 'POI1' pt ;
   cppt = '**' ('COORDONNEE' 1 ppt) idf ;
*   cppt = ('COORDONNEE' 1 ppt) ;
*
   chax = 'PROI' ppt cchex1 ;
*
   x1 = 'MAXIMUM' ('RESULT' chax) ;
   x2 = 'MAXIMUM' ('RESULT' cppt) ;
   dif = 'ABS' ('-' x1 x2) ;
*
   'SI' ('EGA' idf 1) ;
      crit = 1.D-12 ;
   'SINON' ;
      'SI' ('EGA' ityp 1) ;
         crit = 3.D-1 ;
      'FINSI' ;            
      'SI' ('EGA' ityp 2) ;
         crit = 1.D-3 ;
      'FINSI' ;            
      'SI' ('EGA' ityp 3) ;
         crit = 1.D-12 ;
      'FINSI' ;            
   'FINSI' ;
*         
   test = ('<' dif crit) ;
   ok = ok 'ET' test ;
*
   'MESSAGE' ('CHAINE' 'idf = ' idf ' imesh = ' imesh
                      '  ityp = ' ityp) ;
   'MESSAGE' ('CHAINE' 'x1 = ' x1) ;
   'MESSAGE' ('CHAINE' 'x2 = ' x2) ;
   'MESSAGE' ('CHAINE' 'dif= ' dif) ;
   'LISTE' test ;
*
'FINSI' ;   
*
'FIN' iityp ;
'FIN' iimesh ;
'FIN' iidf ;
*
'SI' ('NON' ok) ;
   'ERREUR' 5 ;
'SINON' ;
   'MESSAGE' 'tout sest bien passe' ;   
'FINSI' ;
*
'SI' interact ;
   'OPTION' 'DONN' 5 ;
'FINSI' ;   
*
* End of dgibi file PROI1
*
'FIN' ;

 

© Cast3M 2003 - All rights reserved.
Disclaimer