Download deduad1d.dgibi

Back to the list

* fichier : deduad1d.dgibi
'OPTI' 'ECHO' 0 ;
************************************************************************
* NOM         : DEDUAD1D
* DESCRIPTION : cas-test élémentaire 1D pour 'DEDU' 'ADAP'
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION    : v1, 21/09/2005, version initiale
* HISTORIQUE : v1, 21/09/2005, 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 !
************************************************************************
*
'SAUTER' 2 'LIGNE' ;
'MESSAGE' ' Execution de deduad1d.dgibi' ;
'SAUTER' 2 'LIGNE' ;
*
*
*
interact= FAUX ;
graph = FAUX ;
debug = FAUX ;
*
*BEGINPROCEDUR cas1d
************************************************************************
* NOM         : CAS1D
* DESCRIPTION : Construit les cas pour deduadap 1D
*
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION    : v1, 15/12/2004, version initiale
* HISTORIQUE : v1, 15/12/2004, 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 !
************************************************************************
*
*
'DEBPROC' CAS1D ;
'ARGUMENT' mesh*'ENTIER' ;
'ARGUMENT' nbmail2*'ENTIER' ;
*
'ARGUMENT' disc/'MOT' ;
'SI' ('NON' ('EXISTE' disc)) ;
   disc = 'LINE' ;
'FINSI' ;   
*
'SI' ('<' nbmail2 1) ;
   cherr = 'CHAINE' 'Nombre de mailles inférieur à 2...' ;
   'ERREUR' cherr ;
'FINSI' ;
nbmail = '*' nbmail2 2 ;
*
'SI' ('EGA' disc 'LINE') ;
   'OPTION' 'ELEM' 'SEG2' ;
'SINON' ;      
   'OPTION' 'ELEM' 'SEG3' ;
'FINSI' ;      
*
pA = 'POIN' 0.  ;
pB = 'POIN' 1.  ;
pC = 'POIN' 0.5 ;
*
'SI' ('OU' ('EGA' mesh 1) ('EGA' mesh 3)) ;
   mt = 'ET' ('DROIT' pA pC nbmail2) ('DROIT' pC pB nbmail2) ;
'FINSI' ;
'SI' ('EGA' mesh 2) ;
   mt = 'ET' ('DROIT' pA pC ('-' nbmail 1))
             ('DROIT' pC pB 1) ;
'FINSI' ;
*
* Blocages
*
rigblo = 'BLOQUE' 'UX' (pA 'ET' pB) ;
cblo = 'DEPIMPOSE' rigblo 0. ;                    
*
* Cas QUAF
*
'SI' ('EGA' disc 'QUAF') ;
   mt = 'CHANGER' mt 'QUAF' ;
   _mt = mt ;
'SINON' ;
   _mt = 'CHANGER' mt 'QUAF' ;   
'FINSI' ;
*
* Métrique
*
'SI' ('ET' ('>EG' mesh 1)  ('<EG' mesh 2)) ;
   met = 'CHAINE' 'rien' ;
'FINSI' ;
'SI' ('EGA' mesh 3) ;
   $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'QUAF' ;
   mtc = 'DOMA' $mt 'CENTRE' ; 
   xmt = 'COORDONNEE' mtc ;
   g11 = 'NOMC' 'G11' ('+' ('*' xmt 100.) 1.) ;
*   cg11 = 'CHANGER' 'CHAM' g11 $mt 'NOEUD' ;   
   met = g11  ;
'FINSI' ;
*
'RESPRO' mt _mt met rigblo cblo ;
*
* End of procedure file CAS1D
*
'FINPROC' ;
*ENDPROCEDUR cas1d
*
'OPTION' 'DIME' 1 ;
'SI' ('NON' interact) ;
  'OPTION' 'TRAC' 'PS' ;
'SINON' ;
  'OPTION' 'TRAC' 'X' ;
'FINSI' ;
*
* Pour les tests, on regarde les valeurs max. des indicateurs
* d'isotropie et d'equidistribution 
*
lmaiso = 'PROG' ;
lmaequ = 'PROG' ;
*
* Ici les valeurs de référence
*
lok = VRAI ;
idx = 0 ;
lmaisor = 'PROG' 9 * 1.0 ;
lmaequr = 'PROG' 9 * 1.0 ;
*
* Maillage :
*   mesh = 1 : maillage régulier
*   mesh = 2 : maillage concentré à gauche
*   mesh = 3 : maillage régulier + métrique concentrée à gauche
*   nbmail2  : nombre de mailles divisé par 2
*   'QUAI' : quadratique incomplet (mécanique)
*   'QUAF' : quadratique fluide 
tdisc = 'TABLE' ;
tdisc . 1 = 'LINE' ;
tdisc . 2 = 'QUAI' ;
tdisc . 3 = 'QUAF' ;
'REPETER' idisc 3 ;
   'REPETER' imesh 3 ;
      iidisc = &idisc ;
      iimesh = &imesh ;
      gdisc = tdisc . iidisc ;
      'SI' ('EGA' iidisc 1) ;
         nbmail2 = 16 ;
      'SINON' ;
         nbmail2 = 8 ;
      'FINSI' ;
*
* Maillage
*
      mail _mt met mblo cblo = CAS1D iimesh nbmail2 gdisc ;
      mes = 'CHAINE' 'mesh=' iimesh ' ; ' gdisc ;
      'MESSAGE' mes ;
      'SI' graph ;
         tit = 'CHAINE' 'Maillage initial ' mes ;
         'SI' interact ;
            'TRACER' mail 'TITR' tit 'NOEU' ;
         'SINON' ;            
            'TRACER' mail 'TITR' tit 'NOEU' 'NCLK' ;
         'FINSI' ;
      'FINSI' ;
*
* adaptation
*
      'SI' ('EGA' ('TYPE' met) 'CHPOINT ') ;
         dep = 'DEDU' 'ADAP' _mt mblo cblo 'DISG' gdisc
                             'METR' met 'CSTE' debug ;
      'SINON' ;         
         dep = 'DEDU' 'ADAP' _mt mblo cblo 'DISG' gdisc debug ;
      'FINSI' ;         
*
* tracé
*
      orig = 'FORME' ;
      'FORME' dep ;
      'SI' ('EGA' ('TYPE' met) 'CHPOINT ') ;
         ciso = DEADUTIL 'QISO' _mt gdisc 'GAU7' met 'CSTE' ;
         cequ = DEADUTIL 'QEQU' _mt gdisc 'GAU7' met 'CSTE' ;
      'SINON' ;         
         ciso = DEADUTIL 'QISO' _mt gdisc 'GAU7' ;
         cequ = DEADUTIL 'QEQU' _mt gdisc 'GAU7' ;
      'FINSI' ;
      maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
      macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
      'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso '  min. = ' miciso) ;
      'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ '  min. = ' micequ) ;
* Tests      
      lmaiso = 'ET' lmaiso ('PROG' maciso) ;
      lmaequ = 'ET' lmaequ ('PROG' macequ) ;
      idx = '+' idx 1 ;
      visor='EXTRAIRE' lmaisor idx ;
      tiso = ('<' maciso ('*' visor 1.01)) ;
      'SI' ('NON' tiso) ;
         cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
                          visor ;
         'MESSAGE' cherr ;                          
      'FINSI' ;                          
      lok = 'ET' lok tiso ;
*      
      vequr='EXTRAIRE' lmaequr idx ;
      tequ = ('<' macequ ('*' vequr 1.01)) ;
      'SI' ('NON' tequ) ;
         cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. cequ. < '
                          vequr ;
         'MESSAGE' cherr ;                          
      'FINSI' ;                          
      lok = 'ET' lok tequ ;
*      
      'SI' graph ;
         tit = 'CHAINE' 'Maillage final ' mes ; 
         'SI' interact ;         
            'TRACER' mail 'TITR' tit 'NOEU' ;
         'SINON' ;            
            'TRACER' mail 'TITR' tit 'NOEU' 'NCLK' ;
         'FINSI' ;
      'FINSI' ;
      'FORME' orig ;         
   'FIN' imesh ;
'FIN' idisc ;
*
* Fin du jeu de données
*
'SAUTER' 2 'LIGNE' ;
'SI' lok ;
   'MESSAGE' 'Tout sest bien passe' ;
'SINON' ;
   'MESSAGE' 'Il y a eu des erreurs' ;
'FINSI' ;   
'SAUTER' 2 'LIGNE' ;
'SI' interact ;
   'OPTION' 'DONN' 5 ;
'FINSI' ;   
'SI' ('NON' lok) ;
   'ERREUR' 5 ;
'FINSI' ;   
*
* End of dgibi file DEDUAD1D
*
'FIN' ;

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer