Download nlin_int_surface.dgibi

Back to the list

* fichier : nlin_int_surface.dgibi
'OPTION' echo 0 ;
'DEBPROC' CAS ;
'ARGUMENT' icas*'ENTIER' ;
'SI' ('EGA' icas 1) ;
   'OPTION' 'DIME' 2  ;
   p1 = 0. 0. ; p2 = 1. 0. ; p3 = 0. 1. ;
   tit = 'CHAINE' 'Triangle' ;
   mt = 'MANUEL' 'TRI3' p1 p2 p3 ;
   disc = 'QUAI' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'CONTOUR' _mt ;
'FINSI' ;   
'SI' ('EGA' icas 2) ;
   'OPTION' 'DIME' 2  ;
   p1 = 0. 0. ; p2 = 1.5 0. ; p3 = 3. 3. ; p4 = 0. 2. ;
   tit = 'CHAINE' 'Carre deforme' ;
   mt = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
   disc = 'LINE' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'CONTOUR' _mt ;
'FINSI' ;   
'SI' ('EGA' icas 3) ;
   'OPTION' 'DIME' 3  ;
   p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 0. 1.  0. ;
   p4 = 0.5 0.5 0.5 ;
   tit = 'CHAINE' 'Tétra' ;
   mt = 'MANUEL' 'TET4' p1 p2 p3 p4 ;
   disc = 'QUAF' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
'FINSI' ;   
'SI' ('EGA' icas 4) ;
   'OPTION' 'DIME' 3  ;
   p1 = 0. 0. 0. ; p2 = 1.5 0. 0. ; p3 = 3. 3. 0.; p4 = 0. 2. 0. ;
   p5 = 0.5 0.5 0.5 ;
   tit = 'CHAINE' 'Pyramide deforme' ;
   mt = 'MANUEL' 'PYR5' p1 p2 p3 p4 p5 ;
   disc = 'QUAI' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   cmt = ('MANUEL' 'QUA4' p1 p2 p3 p4) 'ET' 
         ('MANUEL' 'TRI3' p1 p2 p5)    'ET' 
         ('MANUEL' 'TRI3' p2 p3 p5)    'ET' 
         ('MANUEL' 'TRI3' p3 p4 p5)    'ET' 
         ('MANUEL' 'TRI3' p4 p1 p5) ;
   _cmt = 'CHANGER' cmt 'QUAF' ;
   'ELIMINATION' (_mt 'ET' _cmt) 1.D-6 ;
*   _cmt = 'CONTOUR' _mt ;
*   _mt  = 'CHANGER' mt 'QUAF' ;
*   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
'FINSI' ;   
'SI' ('EGA' icas 5) ;
   'OPTION' 'DIME' 3 'ELEM' 'PRI6' ;
   p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 0. 1.  0. ;
   fac = 'MANUEL' 'TRI3' p1 p2 p3 ;
   p5 = 0.5 0.5 0.5 ;
   tit = 'CHAINE' 'Prisme deforme' ;
   mt = 'VOLUME' fac 1 'TRAN' p5 ;
   disc = 'QUAI' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
'FINSI' ;   
'SI' ('EGA' icas 6) ;
   'OPTION' 'DIME' 3 'ELEM' 'CUB8' ;
   p1 = 0. 0. 0. ; p2 = 1.5 0. 0. ; p3 = 3. 3. 0.; p4 = 0. 2. 0. ;
   fac = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
   p5 = 0.5 0.5 0.5 ;
   tit = 'CHAINE' 'Cube deforme' ;
   mt = 'VOLUME' fac 1 'TRAN' p5 ;
   disc = 'LINE' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
'FINSI' ;   
*
'SI' ('EGA' icas 7) ;
   'OPTION' 'DIME' 3 'ELEM' 'CUB8' ;
   p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 1. 1. 0.; p4 = 0. 1. 0. ;
   fac = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
   p5 = 0. 0. 1. ;
   tit = 'CHAINE' 'Cube regulier' ;
   mt = 'VOLUME' fac 1 'TRAN' p5 ;
   cmt = fac ;
   disc = 'LINE' ;
   tolerr = 1.D-12 ;
   _mt  = 'CHANGER' mt 'QUAF' ;
   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
*   _cmt = _cmt 'ELEM' ('LECT' 4) ;
*   _cmt = 'CHANGER' cmt 'QUAF' ;
*   'ELIMINATION' (_mt 'ET' _cmt) 1.D-6 ;
'FINSI' ;   
*
'RESPRO' tit _mt _cmt disc tolerr ;
'FINPROC' ;
************************************************************************
* NOM         : NLIN_INT_SURFACE
* DESCRIPTION : Teste les intégrales de surface sur différents types
*               d'éléments. Ici, on vérifie qu'on obtient les mêmes
*               valeurs de surface avec :
*               NLIN où on donne uniquement la surface et deux champs
*               valant 1.
*               NLIN où on donne le volume et la surface et deux champs
*               valant 1.
*               NLIN où on donne le volume et la surface et deux champs 
*               dont la divergence vaut 1.
*
*  A faire : dimension 1 ? Ca serait rigolo.
*
*
* LANGAGE     : GIBIANE-CAST3M
* AUTEUR      : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
*               mél : gounand@semt2.smts.cea.fr
**********************************************************************
* VERSION    : v1, 26/07/2006, version initiale
* HISTORIQUE : v1, 26/07/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 ;
verbose = VRAI ;
'SI' ('NON' interact) ;
  'OPTION' 'TRAC' 'PS' ;
'SINON' ;
*  'OPTION' 'TRAC' 'X' ;
  'OPTION' 'TRAC' 'OPEN' ;
'FINSI' ;  
*
moscal1 = mots 'SCAL';
*
tres = 'TABLE' ;
*
ncas = 7 ;
mgau = 'GAM2' ;
ok = VRAI ;
'REPETER' iicas ncas ;
icas = &iicas ;
*icas = 6 ;
tit _mt _cmt disc tolerr = CAS icas ;
'SI' graph ;
   'TRACER' mt ;
'FINSI' ;   
idim = 'VALEUR' 'DIME' ;
*_mt  = 'CHANGER' mt 'QUAF' ;
*'SI' ('EGA' idim 2) ;
*   _cmt = 'CONTOUR' _mt ;
*'FINSI' ;   
*'SI' ('EGA' idim 3) ;
**   _cmt = 'ENVELOPPE' _mt ;
*   _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
*'FINSI' ;   
ch1 = 'MANUEL' 'CHPO' _mt 1 'SCAL' 1.D0 ;
'SI' ('EGA' idim 2) ;
   xmt ymt = 'COORDONNEE' _mt ;
   cx = 0.1 ; cy = PI ;
   sc = '+' cx cy ;
   chdiv1 = '/' (coli xmt cx ymt cy) sc ;
   chrigo = '*' xmt ymt ;
'FINSI' ;
'SI' ('EGA' idim 3) ;
   xmt ymt zmt = 'COORDONNEE' _mt ;
   cx = 0.1 ; cy = PI ; cz = '**' 2. 0.5 ;
   sc = cx '+' cy '+' cz ;
   chdiv1 = '/' (coli xmt cx ymt cy zmt cz) sc ;
   chrigo = xmt '*' ymt '*' zmt ;
'FINSI' ;
*
*'TRACER' chrigo _mt ;
*
* Méthode 1
*
numop  = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
numder = ('VALEUR' 'DIME') ;
*
A = ININLIN numop numvar numdat numcof numder ;   
A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'VAR' . 1 . 'DISC'   = disc ;
A . 1 . 1 . 0 = 'LECT' ;
matm1 = 'NLIN' disc _cmt A A  mgau ;
*
*v1 = xtmx ch1 matm1 ;
v1 = xty ch1 (matm1*ch1) moscal1 moscal1;
*
* Méthode 2
*
numop  = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
numder = ('VALEUR' 'DIME') ;
*
A = ININLIN numop numvar numdat numcof numder ;   
A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'VAR' . 1 . 'DISC'   = disc ;
A . 1 . 1 . 0 = 'LECT' ;
matm2 = 'NLIN' disc _mt _cmt A A mgau ;
*
*v2 = xtmx ch1 matm2 ;
v2 = xty ch1 (matm2*ch1) moscal1 moscal1;
*
* Méthode 3
*
numop  = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
numder = ('VALEUR' 'DIME') ;
*
A = ININLIN numop numvar numdat numcof numder ;   
A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
A . 'VAR' . 1 . 'DISC'   = disc ;
'REPETER' ndim idim ;
   A . 1 . 1 . &ndim  = 'LECT' ;
'FIN' ndim ;   
matm3 = 'NLIN' disc _mt _cmt A A mgau ;

*v3 = xtmx chdiv1 matm3 ;
v3 = xty chdiv1 (matm3*chdiv1) moscal1 moscal1;
*v3 = 0.D0 ;
*
t1 = '<' ('ABS' ('-' v2 v1)) tolerr ;
t2 = '<' ('ABS' ('-' v3 v1)) tolerr ;
tes = 'ET' t1 t2 ;
*
ok = ok 'ET' tes ;
'SI' ('OU' verbose ('NON' tes)) ;
   'MESSAGE' ('CHAINE' tit ' ' disc ' tolerr=' tolerr) ;
   'MESSAGE' ('CHAINE' 'v1 = ' v1 '  v2 - v1 = ' ('-' v2 v1)
                      '  v3 - v1 = ' ('-' v3 v1) ) ;
   'SI' tes ; 'MESSAGE' ('CHAINE' 'tes = ok') ;
   'SINON' ;  'MESSAGE' ('CHAINE' 'tes = KO') ; 'FINSI' ;
'FINSI' ;
'FIN' iicas ;
'SI' ok ;
   'MESSAGE' ('CHAINE' 'Tout sest bien passe') ;
'SINON' ;
   'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
'FINSI' ;
*'LISTE' matm1 ; 'LISTE' matm2 ;
'SI' interact ;
   'OPTION' 'DONN' 5 ;
'FINSI' ;
'SI' ('NON' ok) ;
   'ERREUR' 5 ;      
'FINSI' ;
*
* End of dgibi file NLIN_INT_SURFACE
*
'FIN' ;

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer