Télécharger nlin_int_surface.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : nlin_int_surface.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTION' echo 0 ;
  5. 'DEBPROC' CAS ;
  6. 'ARGUMENT' icas*'ENTIER' ;
  7. 'SI' ('EGA' icas 1) ;
  8. 'OPTION' 'DIME' 2 ;
  9. p1 = 0. 0. ; p2 = 1. 0. ; p3 = 0. 1. ;
  10. tit = 'CHAINE' 'Triangle' ;
  11. mt = 'MANUEL' 'TRI3' p1 p2 p3 ;
  12. disc = 'QUAI' ;
  13. tolerr = 1.D-12 ;
  14. _mt = 'CHANGER' mt 'QUAF' ;
  15. _cmt = 'CONTOUR' _mt ;
  16. 'FINSI' ;
  17. 'SI' ('EGA' icas 2) ;
  18. 'OPTION' 'DIME' 2 ;
  19. p1 = 0. 0. ; p2 = 1.5 0. ; p3 = 3. 3. ; p4 = 0. 2. ;
  20. tit = 'CHAINE' 'Carre deforme' ;
  21. mt = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
  22. disc = 'LINE' ;
  23. tolerr = 1.D-12 ;
  24. _mt = 'CHANGER' mt 'QUAF' ;
  25. _cmt = 'CONTOUR' _mt ;
  26. 'FINSI' ;
  27. 'SI' ('EGA' icas 3) ;
  28. 'OPTION' 'DIME' 3 ;
  29. p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 0. 1. 0. ;
  30. p4 = 0.5 0.5 0.5 ;
  31. tit = 'CHAINE' 'Tétra' ;
  32. mt = 'MANUEL' 'TET4' p1 p2 p3 p4 ;
  33. disc = 'QUAF' ;
  34. tolerr = 1.D-12 ;
  35. _mt = 'CHANGER' mt 'QUAF' ;
  36. _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  37. 'FINSI' ;
  38. 'SI' ('EGA' icas 4) ;
  39. 'OPTION' 'DIME' 3 ;
  40. p1 = 0. 0. 0. ; p2 = 1.5 0. 0. ; p3 = 3. 3. 0.; p4 = 0. 2. 0. ;
  41. p5 = 0.5 0.5 0.5 ;
  42. tit = 'CHAINE' 'Pyramide deforme' ;
  43. mt = 'MANUEL' 'PYR5' p1 p2 p3 p4 p5 ;
  44. disc = 'QUAI' ;
  45. tolerr = 1.D-12 ;
  46. _mt = 'CHANGER' mt 'QUAF' ;
  47. cmt = ('MANUEL' 'QUA4' p1 p2 p3 p4) 'ET'
  48. ('MANUEL' 'TRI3' p1 p2 p5) 'ET'
  49. ('MANUEL' 'TRI3' p2 p3 p5) 'ET'
  50. ('MANUEL' 'TRI3' p3 p4 p5) 'ET'
  51. ('MANUEL' 'TRI3' p4 p1 p5) ;
  52. _cmt = 'CHANGER' cmt 'QUAF' ;
  53. 'ELIMINATION' (_mt 'ET' _cmt) 1.D-6 ;
  54. * _cmt = 'CONTOUR' _mt ;
  55. * _mt = 'CHANGER' mt 'QUAF' ;
  56. * _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  57. 'FINSI' ;
  58. 'SI' ('EGA' icas 5) ;
  59. 'OPTION' 'DIME' 3 'ELEM' 'PRI6' ;
  60. p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 0. 1. 0. ;
  61. fac = 'MANUEL' 'TRI3' p1 p2 p3 ;
  62. p5 = 0.5 0.5 0.5 ;
  63. tit = 'CHAINE' 'Prisme deforme' ;
  64. mt = 'VOLUME' fac 1 'TRAN' p5 ;
  65. disc = 'QUAI' ;
  66. tolerr = 1.D-12 ;
  67. _mt = 'CHANGER' mt 'QUAF' ;
  68. _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  69. 'FINSI' ;
  70. 'SI' ('EGA' icas 6) ;
  71. 'OPTION' 'DIME' 3 'ELEM' 'CUB8' ;
  72. p1 = 0. 0. 0. ; p2 = 1.5 0. 0. ; p3 = 3. 3. 0.; p4 = 0. 2. 0. ;
  73. fac = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
  74. p5 = 0.5 0.5 0.5 ;
  75. tit = 'CHAINE' 'Cube deforme' ;
  76. mt = 'VOLUME' fac 1 'TRAN' p5 ;
  77. disc = 'LINE' ;
  78. tolerr = 1.D-12 ;
  79. _mt = 'CHANGER' mt 'QUAF' ;
  80. _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  81. 'FINSI' ;
  82. *
  83. 'SI' ('EGA' icas 7) ;
  84. 'OPTION' 'DIME' 3 'ELEM' 'CUB8' ;
  85. p1 = 0. 0. 0. ; p2 = 1. 0. 0. ; p3 = 1. 1. 0.; p4 = 0. 1. 0. ;
  86. fac = 'MANUEL' 'QUA4' p1 p2 p3 p4 ;
  87. p5 = 0. 0. 1. ;
  88. tit = 'CHAINE' 'Cube regulier' ;
  89. mt = 'VOLUME' fac 1 'TRAN' p5 ;
  90. cmt = fac ;
  91. disc = 'LINE' ;
  92. tolerr = 1.D-12 ;
  93. _mt = 'CHANGER' mt 'QUAF' ;
  94. _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  95. * _cmt = _cmt 'ELEM' ('LECT' 4) ;
  96. * _cmt = 'CHANGER' cmt 'QUAF' ;
  97. * 'ELIMINATION' (_mt 'ET' _cmt) 1.D-6 ;
  98. 'FINSI' ;
  99. *
  100. 'RESPRO' tit _mt _cmt disc tolerr ;
  101. 'FINPROC' ;
  102. ************************************************************************
  103. * NOM : NLIN_INT_SURFACE
  104. * DESCRIPTION : Teste les intégrales de surface sur différents types
  105. * d'éléments. Ici, on vérifie qu'on obtient les mêmes
  106. * valeurs de surface avec :
  107. * NLIN où on donne uniquement la surface et deux champs
  108. * valant 1.
  109. * NLIN où on donne le volume et la surface et deux champs
  110. * valant 1.
  111. * NLIN où on donne le volume et la surface et deux champs
  112. * dont la divergence vaut 1.
  113. *
  114. * A faire : dimension 1 ? Ca serait rigolo.
  115. *
  116. *
  117. * LANGAGE : GIBIANE-CAST3M
  118. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  119. * mél : gounand@semt2.smts.cea.fr
  120. **********************************************************************
  121. * VERSION : v1, 26/07/2006, version initiale
  122. * HISTORIQUE : v1, 26/07/2006, création
  123. * HISTORIQUE :
  124. * HISTORIQUE :
  125. ************************************************************************
  126. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  127. * en cas de modification de ce sous-programme afin de faciliter
  128. * la maintenance !
  129. ************************************************************************
  130. *
  131. *
  132. interact= FAUX ;
  133. graph = FAUX ;
  134. verbose = VRAI ;
  135. 'SI' ('NON' interact) ;
  136. 'OPTION' 'TRAC' 'PS' ;
  137. 'SINON' ;
  138. * 'OPTION' 'TRAC' 'X' ;
  139. 'OPTION' 'TRAC' 'OPEN' ;
  140. 'FINSI' ;
  141. *
  142. moscal1 = mots 'SCAL';
  143. *
  144. tres = 'TABLE' ;
  145. *
  146. ncas = 7 ;
  147. mgau = 'GAM2' ;
  148. ok = VRAI ;
  149. 'REPETER' iicas ncas ;
  150. icas = &iicas ;
  151. *icas = 6 ;
  152. tit _mt _cmt disc tolerr = CAS icas ;
  153. 'SI' graph ;
  154. 'TRACER' mt ;
  155. 'FINSI' ;
  156. idim = 'VALEUR' 'DIME' ;
  157. *_mt = 'CHANGER' mt 'QUAF' ;
  158. *'SI' ('EGA' idim 2) ;
  159. * _cmt = 'CONTOUR' _mt ;
  160. *'FINSI' ;
  161. *'SI' ('EGA' idim 3) ;
  162. ** _cmt = 'ENVELOPPE' _mt ;
  163. * _cmt = 'DOMA' ('MODELISER' _mt 'NAVIER_STOKES' 'LINE') 'ENVELOPPE' ;
  164. *'FINSI' ;
  165. ch1 = 'MANUEL' 'CHPO' _mt 1 'SCAL' 1.D0 ;
  166. 'SI' ('EGA' idim 2) ;
  167. xmt ymt = 'COORDONNEE' _mt ;
  168. cx = 0.1 ; cy = PI ;
  169. sc = '+' cx cy ;
  170. chdiv1 = '/' (coli xmt cx ymt cy) sc ;
  171. chrigo = '*' xmt ymt ;
  172. 'FINSI' ;
  173. 'SI' ('EGA' idim 3) ;
  174. xmt ymt zmt = 'COORDONNEE' _mt ;
  175. cx = 0.1 ; cy = PI ; cz = '**' 2. 0.5 ;
  176. sc = cx '+' cy '+' cz ;
  177. chdiv1 = '/' (coli xmt cx ymt cy zmt cz) sc ;
  178. chrigo = xmt '*' ymt '*' zmt ;
  179. 'FINSI' ;
  180. *
  181. *'TRACER' chrigo _mt ;
  182. *
  183. * Méthode 1
  184. *
  185. numop = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
  186. numder = ('VALEUR' 'DIME') ;
  187. *
  188. A = ININLIN numop numvar numdat numcof numder ;
  189. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  190. A . 'VAR' . 1 . 'DISC' = disc ;
  191. A . 1 . 1 . 0 = 'LECT' ;
  192. matm1 = 'NLIN' disc _cmt A A mgau ;
  193. *
  194. *v1 = xtmx ch1 matm1 ;
  195. v1 = xty ch1 (matm1*ch1) moscal1 moscal1;
  196. *
  197. * Méthode 2
  198. *
  199. numop = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
  200. numder = ('VALEUR' 'DIME') ;
  201. *
  202. A = ININLIN numop numvar numdat numcof numder ;
  203. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  204. A . 'VAR' . 1 . 'DISC' = disc ;
  205. A . 1 . 1 . 0 = 'LECT' ;
  206. matm2 = 'NLIN' disc _mt _cmt A A mgau ;
  207. *
  208. *v2 = xtmx ch1 matm2 ;
  209. v2 = xty ch1 (matm2*ch1) moscal1 moscal1;
  210. *
  211. * Méthode 3
  212. *
  213. numop = 1 ; numvar = 1 ; numdat = 0 ; numcof = 0 ;
  214. numder = ('VALEUR' 'DIME') ;
  215. *
  216. A = ININLIN numop numvar numdat numcof numder ;
  217. A . 'VAR' . 1 . 'NOMDDL' = 'MOTS' 'SCAL' ;
  218. A . 'VAR' . 1 . 'DISC' = disc ;
  219. 'REPETER' ndim idim ;
  220. A . 1 . 1 . &ndim = 'LECT' ;
  221. 'FIN' ndim ;
  222. matm3 = 'NLIN' disc _mt _cmt A A mgau ;
  223.  
  224. *v3 = xtmx chdiv1 matm3 ;
  225. v3 = xty chdiv1 (matm3*chdiv1) moscal1 moscal1;
  226. *v3 = 0.D0 ;
  227. *
  228. t1 = '<' ('ABS' ('-' v2 v1)) tolerr ;
  229. t2 = '<' ('ABS' ('-' v3 v1)) tolerr ;
  230. tes = 'ET' t1 t2 ;
  231. *
  232. ok = ok 'ET' tes ;
  233. 'SI' ('OU' verbose ('NON' tes)) ;
  234. 'MESSAGE' ('CHAINE' tit ' ' disc ' tolerr=' tolerr) ;
  235. 'MESSAGE' ('CHAINE' 'v1 = ' v1 ' v2 - v1 = ' ('-' v2 v1)
  236. ' v3 - v1 = ' ('-' v3 v1) ) ;
  237. 'SI' tes ; 'MESSAGE' ('CHAINE' 'tes = ok') ;
  238. 'SINON' ; 'MESSAGE' ('CHAINE' 'tes = KO') ; 'FINSI' ;
  239. 'FINSI' ;
  240. 'FIN' iicas ;
  241. 'SI' ok ;
  242. 'MESSAGE' ('CHAINE' 'Tout sest bien passe') ;
  243. 'SINON' ;
  244. 'MESSAGE' ('CHAINE' 'Il y a eu des erreurs') ;
  245. 'FINSI' ;
  246. *'LISTE' matm1 ; 'LISTE' matm2 ;
  247. 'SI' interact ;
  248. 'OPTION' 'DONN' 5 ;
  249. 'FINSI' ;
  250. 'SI' ('NON' ok) ;
  251. 'ERREUR' 5 ;
  252. 'FINSI' ;
  253. *
  254. * End of dgibi file NLIN_INT_SURFACE
  255. *
  256. 'FIN' ;
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales