Download nlin_int_surface.dgibi
* 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