* fichier : nlin_int_surface.dgibi ************************************************************************ * Section : Thermique Hydraulique * Section : Fluides Thermique ************************************************************************ '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' ;