Télécharger dedu_cerc.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dedu_cerc.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. 'OPTI' 'ECHO' 0 ;
  5. ************************************************************************
  6. * NOM : DEDU_CERC
  7. * DESCRIPTION : Utilisation de 'DEDU' 'ADAP' pour construire le maillage
  8. * le plus "régulier" possible d'un quart de cercle
  9. * homéomorphe à un maillage cartésien.
  10. *
  11. *
  12. * LANGAGE : GIBIANE-CAST3M
  13. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  14. * mél : gounand@semt2.smts.cea.fr
  15. **********************************************************************
  16. * VERSION : v1, 15/05/2007, version initiale
  17. * HISTORIQUE : v1, 15/05/2007, création
  18. * HISTORIQUE :
  19. * HISTORIQUE :
  20. ************************************************************************
  21. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  22. * en cas de modification de ce sous-programme afin de faciliter
  23. * la maintenance !
  24. ************************************************************************
  25. *
  26. 'SAUTER' 2 'LIGNE' ;
  27. 'MESSAGE' ' Execution de dedu_cerc.dgibi' ;
  28. 'SAUTER' 2 'LIGNE' ;
  29. *
  30. *
  31. *
  32. interact= FAUX ;
  33. graph = FAUX ;
  34. complet = FAUX ;
  35. *
  36. * Output of node coordinates in parametric and real space
  37. *
  38. 'DEBPROC' SORNOD ;
  39. 'FORME' fcar ;
  40. cx cy = 'COORDONNEE' mt ;
  41. 'FORME' fcas3 ;
  42. ncx ncy = 'COORDONNEE' mt ;
  43. 'FORME' fcar ;
  44. *
  45. lxp = 'PROG' ;
  46. lyp = 'PROG' ;
  47. lxr = 'PROG' ;
  48. lyr = 'PROG' ;
  49. nAB = 'NBEL' lAB ;
  50. delta = '/' 1. ('FLOTTANT' nAB) ;
  51. 'REPETER' iiy ('+' nAB 1) ;
  52. iy = &iiy ;
  53. ys = '*' delta ('-' iy 1) ;
  54. 'REPETER' iix ('+' nAB 1) ;
  55. ix = &iix ;
  56. xs = '*' delta ('-' ix 1) ;
  57. ps = xs ys ;
  58. pp = 'POIN' mt 'PROC' ps ;
  59. xp = 'EXTRAIRE' cx 'SCAL' pp ;
  60. yp = 'EXTRAIRE' cy 'SCAL' pp ;
  61. xr = 'EXTRAIRE' ncx 'SCAL' pp ;
  62. yr = 'EXTRAIRE' ncy 'SCAL' pp ;
  63. lxp = 'ET' lxp ('PROG' xp) ;
  64. lyp = 'ET' lyp ('PROG' yp) ;
  65. lxr = 'ET' lxr ('PROG' xr) ;
  66. lyr = 'ET' lyr ('PROG' yr) ;
  67. 'FIN' iix ;
  68. 'FIN' iiy ;
  69. tabsor = 'TABLE' ;
  70. tabsor . 'X_param' = lxp ;
  71. tabsor . 'Y_param' = lyp ;
  72. tabsor . 'X_physi' = lxr ;
  73. tabsor . 'Y_physi' = lyr ;
  74. 'OPTION' 'SORT' './circle.txt' ;
  75. 'SORTIR' 'EXCE' tabsor ;
  76. 'FINPROC' ;
  77. *
  78. *
  79. *
  80. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  81. 'SI' ('NON' interact) ;
  82. 'OPTION' 'TRAC' 'PS' ;
  83. 'SINON' ;
  84. 'OPTION' 'TRAC' 'X' ;
  85. 'FINSI' ;
  86. 'OPTI' 'ECHO' 0 ;
  87. *
  88. 'SI' complet ;
  89. vden = 0.03D0 ;
  90. testiso = 2.1D0 ; testequ = 1.1 ;
  91. 'SINON' ;
  92. vden = 0.1D0 ;
  93. testiso = 1.8D0 ; testequ = 1.1 ;
  94. 'FINSI' ;
  95. theta = 0.5D0 ;
  96. gamma = 1.5D0 ;
  97. *
  98. chparam = 'CHAINE' 'vden=' vden
  99. ' ' 'theta=' theta
  100. ' ' 'gamma=' gamma ;
  101. 'DENS' vden ;
  102. *
  103. * Cas 1 : on construit le carré et on contraint le bord
  104. *
  105. pA = 0. 0. ; pB = 1. 0. ; pC = 1. 1. ; pD = 0. 1. ;
  106. lAB = 'DROIT' pA pB ; lBC = 'DROIT' pB pC ;
  107. lCD = 'DROIT' pC pD ; lDA = 'DROIT' pD pA ;
  108. cmt = lAB 'ET' lBC 'ET' lCD 'ET' lDA ;
  109. mt = 'DALLER' lAB lBC lCD lDA ;
  110. nc = '+' ('NBEL' lBC) ('NBEL' lCD) ;
  111. lBED = 'CERCLE' nc pB pA pD ;
  112. cmt2 = lAB 'ET' lBED 'ET' lDA ;
  113. cdep = 'MOIN' cmt2 cmt ;
  114. mdep1 = 'BLOQUE' 'DEPL' cmt ;
  115. fdep1 = 'DEPIMPOSE' mdep1 cdep ;
  116. creg1 = 'DEDU' 'ADAP' mt mdep1 fdep1 'THET' theta 'GAMM' gamma ;
  117. fcar = 'FORME' ;
  118. 'FORME' creg1 ;
  119. fcas1 = 'FORME' ;
  120. *
  121. * Cas 2 : idem cas1 sauf que les points de lAB et lDA peuvent
  122. * bouger tangentiellement
  123. *
  124. mdep21 = 'BLOQUE' 'DEPL' (lBC 'ET' lCD) ;
  125. mdep22 = 'BLOQUE' 'UY' lAB ;
  126. mdep23 = 'BLOQUE' 'UX' lDA ;
  127. mdep2 = mdep21 'ET' mdep22 'ET' mdep23 ;
  128. creg2 = 'DEDU' 'ADAP' mt mdep2 'THET' theta 'GAMM' gamma ;
  129. 'FORME' creg2 ;
  130. fcas2 = 'FORME' ;
  131. *
  132. * Cas 3 : idem cas1 sauf que les points de lBC et lCD peuvent
  133. * bouger tangentiellement au cercle
  134. mc = lBC 'ET' lCD ;
  135. pmc = 'CHANGER' mc 'POI1' ;
  136. npmc = 'NBEL' pmc ;
  137. sol ='MANUEL' 'CHPO' mc 1 'LX' 0. ;
  138. R = 1. ;
  139. 'REPETER' iit 15 ;
  140. xc yc = 'COORDONNEE' mc ;
  141. lam = 'EXCO' 'LX' sol ;
  142. * Fabrication du résidu
  143. 'REPETER' ipmc npmc ;
  144. pcou = pmc 'POIN' &ipmc ;
  145. mpcou = 'MANUEL' 'POI1' pcou ;
  146. xpc = 'EXTRAIRE' xc 'SCAL' pcou ;
  147. ypc = 'EXTRAIRE' yc 'SCAL' pcou ;
  148. lac = 'EXTRAIRE' lam 'SCAL' pcou ;
  149. resx = 'MANUEL' 'CHPO' pcou 1 'FX' ('*' ('*' xpc lac) 2.) ;
  150. resy = 'MANUEL' 'CHPO' pcou 1 'FY' ('*' ('*' ypc lac) 2.) ;
  151. resl = 'MANUEL' 'CHPO' pcou 1 'FLX'
  152. ('-' ('+' ('*' xpc xpc) ('*' ypc ypc))
  153. ('*' R R)) ;
  154. 'SI' ('EGA' &ipmc 1) ;
  155. rtot = resx '+' resy '+' resl ;
  156. 'SINON' ;
  157. rtot = rtot '+' resx '+' resy '+' resl ;
  158. 'FINSI' ;
  159. * Fabrication de la matrice tangente
  160. ltot = 'PROG' lac 0. lac xpc ypc 0. ;
  161. ltot = '*' ltot 2. ;
  162. mto = 'MANUEL' 'RIGI' mpcou ('MOTS' 'UX' 'UY' 'LX') ltot ;
  163. 'SI' ('EGA' &ipmc 1) ;
  164. mtot = mto ;
  165. 'SINON' ;
  166. mtot = mtot 'ET' mto ;
  167. 'FINSI' ;
  168. 'FIN' ipmc ;
  169. mdep3 = mtot 'ET' mdep22 'ET' mdep23 ;
  170. fdep3 = '*' rtot -1. ;
  171. creg3 = 'DEDU' 'ADAP' mt mdep3 fdep3 'THET' theta 'GAMM' gamma
  172. 'ACVG' FAUX 'NITM' 1 ;
  173. 'FORME' creg3 ;
  174. 'FIN' iit ;
  175. 'SI' graph ;
  176. fcas3 = 'FORME' ;
  177. 'FORME' fcar ;
  178. cht = 'CHAINE' 'Original mesh ' chparam ;
  179. 'TRACER' mt 'TITR' cht ;
  180. 'FORME' fcas1 ;
  181. cht = 'CHAINE' 'Case 1 ' chparam ;
  182. 'TRACER' mt 'TITR' cht ;
  183. 'FORME' fcas2 ;
  184. cht = 'CHAINE' 'Case 2 ' chparam ;
  185. 'TRACER' mt 'TITR' cht ;
  186. 'FORME' fcas3 ;
  187. cht = 'CHAINE' 'Case 3 ' chparam ;
  188. 'TRACER' mt 'TITR' cht ;
  189. 'FINSI' ;
  190. _mt = 'CHANGER' mt 'QUAF' ;
  191. gdisc = 'LINE' ;
  192. mes = chparam ;
  193. ciso = DEADUTIL 'QISO' _mt gdisc 'GAU7' ;
  194. cequ = DEADUTIL 'QEQU' _mt gdisc 'GAU7' ;
  195. maciso = 'MAXIMUM' ciso ; miciso = 'MINIMUM' ciso ;
  196. macequ = 'MAXIMUM' cequ ; micequ = 'MINIMUM' cequ ;
  197. mamiequ = '/' macequ micequ ;
  198. 'MESSAGE' chparam ;
  199. 'MESSAGE' ('CHAINE' 'CISO : max. = ' maciso ' min. = ' miciso) ;
  200. 'MESSAGE' ('CHAINE' 'CEQU : max. = ' macequ ' min. = ' micequ) ;
  201. 'MESSAGE' ('CHAINE' ' max/min = ' mamiequ) ;
  202. 'SI' graph ;
  203. $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ;
  204. mb = 'MODE' ('DOMA' $mt 'MAILLAGE') 'THERMIQUE' ;
  205. cliso = 'KCHA' $mt ciso 'CHAM' ;
  206. tit = 'CHAINE' 'Isotropie ' mes ;
  207. 'SI' interact ;
  208. 'TRACER' cliso mb 'TITR' tit ;
  209. 'SINON' ;
  210. 'TRACER' cliso mb 'TITR' tit 'NCLK' ;
  211. 'FINSI' ;
  212. clequ = 'KCHA' $mt cequ 'CHAM' ;
  213. tit = 'CHAINE' 'Equidis. ' mes ;
  214. 'SI' interact ;
  215. 'TRACER' clequ mb 'TITR' tit ;
  216. 'SINON' ;
  217. 'TRACER' clequ mb 'TITR' tit 'NCLK' ;
  218. 'FINSI' ;
  219. 'FINSI' ;
  220. *
  221. * Tests
  222. *
  223. lok = VRAI ;
  224. tiso = ('<' maciso testiso) ;
  225. 'SI' ('NON' tiso) ;
  226. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max. ciso. < '
  227. testiso ;
  228. 'MESSAGE' cherr ;
  229. 'FINSI' ;
  230. lok = 'ET' lok tiso ;
  231. tequ = ('<' mamiequ testequ) ;
  232. 'SI' ('NON' tequ) ;
  233. cherr = 'CHAINE' '!!! Erreur, on aurait voulu max/min cequ. < '
  234. testequ ;
  235. 'MESSAGE' cherr ;
  236. 'FINSI' ;
  237. lok = 'ET' lok tequ ;
  238. *
  239. * Fin du jeu de données
  240. *
  241. 'SAUTER' 2 'LIGNE' ;
  242. 'SI' lok ;
  243. 'MESSAGE' 'Tout sest bien passe' ;
  244. 'SINON' ;
  245. 'MESSAGE' 'Il y a eu des erreurs' ;
  246. 'FINSI' ;
  247. 'SAUTER' 2 'LIGNE' ;
  248. 'SI' interact ;
  249. 'OPTION' 'DONN' 5 ;
  250. 'FINSI' ;
  251. 'SI' ('NON' lok) ;
  252. 'ERREUR' 5 ;
  253. 'FINSI' ;
  254. *SORNOD ;
  255. *
  256. * End of dgibi file DEDU_CERC
  257. *
  258. 'FIN' ;
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  

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