Télécharger fcourant2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fcourant2.dgibi
  2. 'OPTI' 'ECHO' 0 ;
  3. ************************************************************************
  4. * NOM : FCOURANT2
  5. * DESCRIPTION : Teste la procédure calculant la fonction de courant
  6. * sur des solutions analytiques en 2D et 2D axi
  7. *
  8. *
  9. *
  10. * LANGAGE : GIBIANE-CAST3M
  11. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  12. * mél : gounand@semt2.smts.cea.fr
  13. **********************************************************************
  14. * VERSION : v1, 16/10/2018, version initiale
  15. * HISTORIQUE : v1, 16/10/2018, création
  16. * HISTORIQUE :
  17. * HISTORIQUE :
  18. ************************************************************************
  19. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  20. * en cas de modification de ce sous-programme afin de faciliter
  21. * la maintenance !
  22. ************************************************************************
  23. 'SAUTER' 2 'LIGNE' ;
  24. 'MESSAGE' ' Execution de fcourant2.dgibi' ;
  25. 'SAUTER' 2 'LIGNE' ;
  26. *
  27. interact = FAUX ;
  28. graph = FAUX ;
  29. *
  30. 'OPTION' 'DIME' 2 ;
  31. *
  32. 'SI' ('NON' interact) ;
  33. 'OPTION' 'TRAC' 'PS' ;
  34. 'SINON' ;
  35. 'OPTION' 'TRAC' 'X' ;
  36. 'FINSI' ;
  37. 'OPTI' 'ISOV' suli ;
  38. *
  39. lok = VRAI ;
  40. *
  41. ikas = 0 ;
  42. tkas = 'TABL' ;
  43. * Liste des cas à passer
  44. * typel = LINE, QUAI ou QUAF
  45. * axi = 1 (mode plan), 2 (mode axi regularise), 3 (mode axi "normal")
  46. * sol = 1 (simplifiee 2), 2 (simplifiee 1), 3 (complete)
  47. * errf = erreur calculee au 18/10/2018 Linux 64
  48. * tolf = limite sup erreur pour la solution en question
  49. *
  50. * 1 Sol complete plan LINE
  51. *
  52. ikas = '+' ikas 1 ;
  53. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  54. tikas . 'typel' = 'LINE' ;
  55. tikas . 'axi' = 1 ;
  56. tikas . 'sol' = 3 ;
  57. tikas . 'errf' = 1.30693E-01 ;
  58. tikas . 'tolf' = 2.d-1 ;
  59. *
  60. * 2 Sol simplif 1 plan LINE
  61. *
  62. ikas = '+' ikas 1 ;
  63. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  64. tikas . 'typel' = 'LINE' ;
  65. tikas . 'axi' = 1 ;
  66. tikas . 'sol' = 2 ;
  67. tikas . 'errf' = 2.38364E-02 ;
  68. tikas . 'tolf' = 3.d-2 ;
  69. *
  70. * 3 Sol simplif 2 plan LINE
  71. *
  72. ikas = '+' ikas 1 ;
  73. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  74. tikas . 'typel' = 'LINE' ;
  75. tikas . 'axi' = 1 ;
  76. tikas . 'sol' = 1 ;
  77. tikas . 'errf' = 2.27339E-02 ;
  78. tikas . 'tolf' = 3.d-2 ;
  79. *
  80. * 4 Sol complete axi regu LINE
  81. *
  82. ikas = '+' ikas 1 ;
  83. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  84. tikas . 'typel' = 'LINE' ;
  85. tikas . 'axi' = 2 ;
  86. tikas . 'sol' = 3 ;
  87. tikas . 'errf' = 1.77030E-01 ;
  88. tikas . 'tolf' = 2.d-1 ;
  89. *
  90. * 5 Sol simplif 1 axi regu LINE
  91. *
  92. ikas = '+' ikas 1 ;
  93. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  94. tikas . 'typel' = 'LINE' ;
  95. tikas . 'axi' = 2 ;
  96. tikas . 'sol' = 2 ;
  97. tikas . 'errf' = 5.63040E-02 ;
  98. tikas . 'tolf' = 7.d-2 ;
  99. *
  100. * 6 Sol simplif 2 axi regu LINE
  101. *
  102. ikas = '+' ikas 1 ;
  103. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  104. tikas . 'typel' = 'LINE' ;
  105. tikas . 'axi' = 2 ;
  106. tikas . 'sol' = 1 ;
  107. tikas . 'errf' = 7.12942E-02 ;
  108. tikas . 'tolf' = 8.d-2 ;
  109. *
  110. * 7 Comparaison axi regu et axi normale (4)
  111. *
  112. ikas = '+' ikas 1 ;
  113. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  114. tikas . 'typel' = 'LINE' ;
  115. tikas . 'axi' = 3 ;
  116. tikas . 'sol' = 3 ;
  117. tikas . 'errf' = 2.27984E-01 ;
  118. tikas . 'tolf' = 2.5d-1 ;
  119. *
  120. * 8 Comparaison axi regu QUAI et LINE (4)
  121. *
  122. ikas = '+' ikas 1 ;
  123. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  124. tikas . 'typel' = 'QUAI' ;
  125. tikas . 'axi' = 2 ;
  126. tikas . 'sol' = 3 ;
  127. tikas . 'errf' = 1.00955E-02 ;
  128. tikas . 'tolf' = 1.3d-2 ;
  129. *
  130. * 9 Comparaison axi regu QUAF et LINE (4)
  131. *
  132. ikas = '+' ikas 1 ;
  133. tkas . ikas = 'TABL' ; tikas = tkas . ikas ;
  134. tikas . 'typel' = 'QUAF' ;
  135. tikas . 'axi' = 2 ;
  136. tikas . 'sol' = 3 ;
  137. tikas . 'errf' = 4.63262E-03 ;
  138. tikas . 'tolf' = 5.d-3 ;
  139.  
  140. *
  141. * Debut boucle sur les cas
  142. *
  143. nkas = 'DIME' tkas ;
  144. 'REPE' iikas nkas ;
  145. 'SAUTER' 1 'LIGNE' ;
  146. ikas = &iikas ;
  147. tikas = tkas . ikas ;
  148. *
  149. * iiaxi = 1 : mode plan
  150. * iiaxi = 2 : mode axi mot-cle REGU pour FCOURANT
  151. * iiaxi = 3 : mode axi mot-cle NORM pour FCOURANT
  152. *
  153. iiaxi = tikas . 'axi' ;
  154. 'SI' ('EGA' iiaxi 1) ;
  155. 'OPTI' 'MODE' 'PLAN' ;
  156. 'MESSAGE' 'Mode plan ' ;
  157. tdef = ' mod=PLAN' ;
  158. 'SINON' ;
  159. 'OPTI' 'MODE' 'AXIS' ;
  160. 'SI' ('EGA' iiaxi 2) ;
  161. 'MESSAGE' 'Mode axi calcul "regularise"' ;
  162. motclefc = 'CHAI' 'REGU' ;
  163. 'SINO' ;
  164. 'MESSAGE' 'Mode axi calcul "normal"' ;
  165. motclefc = 'CHAI' 'NORM' ;
  166. 'FINS' ;
  167. tdef = 'CHAI' ' mod=AXIS mcle=' motclefc ;
  168. 'FINSI' ;
  169. 'SAUTER' 1 'LIGNE' ;
  170. *
  171. laxi = ('EGA' ('VALEUR' 'MODE') 'AXIS') ;
  172. *
  173. * Maillage
  174. *
  175. typl = tikas . 'typel' ;
  176. 'SI' ('EGA' typl 'LINE') ;
  177. 'OPTI' 'ELEM' 'TRI3' ;
  178. 'SINO' ;
  179. 'OPTI' 'ELEM' 'TRI6' ;
  180. 'FINS' ;
  181. *
  182. a = 1. ; b = 1. ;
  183. nx = 5 ; ny = 7 ;
  184. *
  185. pA = 0. 0. ; pB = a 0. ; pC = a b ; pD = 0. b ;
  186. bas = 'DROIT' nx pA pB ; dro = 'DROIT' ny pB pC ;
  187. hau = 'DROIT' nx pC pD ; gau = 'DROIT' ny pD pA ;
  188. *
  189. cmt = bas 'ET' dro 'ET' hau 'ET' gau ;
  190. mt = 'SURFACE' cmt ;
  191. 'SI' ('EGA' typl 'QUAF') ;
  192. mt = 'CHANGER' mt 'QUAF' ;
  193. 'FINS' ;
  194. *
  195. * Solution
  196. *
  197. iisol = tikas . 'sol' ;
  198. *
  199. *
  200. * Solutions exactes 2D plan
  201. *
  202. * u_x = - dpsi / dy
  203. * u_y = dpsi / dx
  204. *
  205. * COMPLETE
  206. * psi = x(1-x) y(1-y)
  207. * u_x = -x(1-x) (1-2y)
  208. * u_y = (1-2x) y(1-y)
  209. *
  210. * SIMPLIFIEE 1
  211. * psi = y(1-y)
  212. * u_x = - (1-2y)
  213. * u_y = 0
  214. *
  215. * SIMPLIFIEE 2
  216. * psi = x(1-x)
  217. * u_x = 0
  218. * u_y = 1-2x
  219. *
  220. *
  221. 'SI' ('NON' laxi) ;
  222. x y = 'COOR' mt ;
  223. x1mx = '*' x (1. '-' x) ;
  224. y1my = '*' y (1. '-' y) ;
  225. 1m2x = '-' 1. ('*' x 2.) ;
  226. 1m2y = '-' 1. ('*' y 2.) ;
  227. *
  228. 'SI' ('EGA' iisol 3) ;
  229. psi = '*' x1mx y1my ;
  230. ux = '*' ('*' x1mx 1m2y) -1. ;
  231. uy = '*' y1my 1m2x ;
  232. mclim = bas 'ET' gau ;
  233. 'FINS' ;
  234. *
  235. 'SI' ('EGA' iisol 2) ;
  236. ux = '*' 1m2y -1. ;
  237. uy = y '*' 0. ;
  238. psi = y1my ;
  239. mclim = bas ;
  240. 'FINS' ;
  241. *
  242. 'SI' ('EGA' iisol 1) ;
  243. ux = x '*' 0. ;
  244. uy = 1m2x ;
  245. psi = x1mx ;
  246. mclim = gau ;
  247. 'FINS' ;
  248. un = '+' ('NOMC' 'UX' ux) ('NOMC' 'UY' uy) ;
  249. 'SINON' ;
  250. *
  251. * Solution exacte 2D axi
  252. *
  253. * u_r = - 1/(2 pi r) dpsi/dz
  254. * u_z = 1/(2 pi r) dpsi/dr
  255. *
  256. *
  257. * COMPLETE
  258. * psi = r^2 (1-r) z(1-z)
  259. * ur = -1/2pi (1-2z)
  260. * uz = 1/2pi z(1-z)
  261. *
  262. * SIMPLIFIEE 1
  263. * psi = r^2 z(1-z)
  264. * ur = -1/2pi r(1-2z)
  265. * uz = 1/2pi 2r z(1-z)
  266. *
  267. * SIMPLIFIEE 2
  268. * psi = r^2 (1-r)
  269. * u_r = 0
  270. * u_z = 1/2pi (2-3r)
  271. *
  272. r z = 'COOR' mt ;
  273. ideupi = '/' 1. ('*' PI 2.) ;
  274. mideupi = '*' -1. ideupi ;
  275. r1mr = r '*' (1. '-' r) ;
  276. r21mr = r '*' r '*' (1. '-' r) ;
  277. 2m3r = '-' 2. ('*' 3 r) ;
  278. z1mz = '*' z (1. '-' z) ;
  279. 1m2z = '-' 1. ('*' z 2.) ;
  280. *
  281. 'SI' ('EGA' iisol 3) ;
  282. psi = '*' r21mr z1mz ;
  283. ur = '*' ('*' r1mr 1m2z) mideupi ;
  284. uz = '*' ('*' z1mz 2m3r) ideupi ;
  285. mclim = bas 'ET' gau ;
  286. 'FINS' ;
  287. *
  288. 'SI' ('EGA' iisol 2) ;
  289. ur = '*' ('*' ('*' ideupi 1m2z) r) -1. ;
  290. uz = ideupi '*' z1mz '*' 2. ;
  291. psi = r '*' r '*' z1mz ;
  292. mclim = gau ;
  293. 'FINS' ;
  294. *
  295. 'SI' ('EGA' iisol 1) ;
  296. ur = r '*' 0. ;
  297. uz = ideupi '*' 2m3r ;
  298. psi = r21mr ;
  299. mclim = gau ;
  300. 'FINS' ;
  301. un = '+' ('NOMC' 'UR' ur) ('NOMC' 'UZ' uz) ;
  302. 'FINSI' ;
  303. psi = 'NOMC' 'PSI' psi ;
  304. *
  305. *clpsi = 'MANUEL' 'CHPO' (bas 'ET' gau) 1 'SCAL' 0. ;
  306. *clpsi = 'REDU' psi mclim ;
  307. blpsi = 'BLOQ' 'T' mclim ;
  308. 'SI' laxi ;
  309. psic = FCOURANT mt un blpsi motclefc ;
  310. 'SINO' ;
  311. psic = FCOURANT mt un blpsi ;
  312. 'FINS' ;
  313. *
  314. dpsir = '/' ('ABS' ('-' psi psic))
  315. ('MAXIMUM' psi 'ABS') ;
  316. titg = 'CHAINE' tdef ' isol=' iisol ' typl=' typl ;
  317. 'MESS' titg ;
  318. 'SI' graph ;
  319. vun = 'VECT' un 'DEPL' 'JAUN' ;
  320. tit = 'CHAINE' 'Vitesse (analytique)' titg ;
  321. 'TRACER' vun mt cmt 'TITR' tit ;
  322. tit = 'CHAINE' 'Fonction de courant (analytique)' titg ;
  323. 'TRACER' psi mt 'TITR' tit ;
  324. tit = 'CHAINE' 'Fonction de courant (calculee) + Vitesse (ana)'
  325. titg ;
  326. 'TRACER' psic vun mt cmt 'TITR' tit ;
  327. tit = 'CHAINE' 'Fonction de courant (|err. rel.|)' titg ;
  328. 'TRACER' dpsir mt 'TITR' tit ;
  329. 'FINSI' ;
  330. *
  331. errf = 'MAXI' dpsir ;
  332. *
  333. tolf = tikas . 'tolf' ;
  334. *
  335. 'MESSAGE' ('CHAINE' 'errf=' errf ' tolf=' tolf) ;
  336. *
  337. tst = ('<' errf tolf) ;
  338. 'SI' ('NON' tst) ;
  339. chmes = 'CHAINE' '!!! Erreur, on na pas errf < ' tolf ;
  340. 'MESSAGE' chmes ;
  341. 'FINSI' ;
  342. lok = lok 'ET' tst ;
  343. *
  344. 'FIN' iikas ;
  345. *
  346. 'SAUTER' 2 'LIGNE' ;
  347. 'SI' lok ;
  348. 'MESSAGE' 'Tout sest bien passe' ;
  349. 'SINON' ;
  350. 'MESSAGE' 'Il y a eu des erreurs' ;
  351. 'FINSI' ;
  352. 'SAUTER' 2 'LIGNE' ;
  353. *
  354. 'SI' interact ;
  355. 'OPTION' 'DONN' 5 'ECHO' 1 ;
  356. 'FINSI' ;
  357. 'SI' ('NON' lok) ;
  358. 'ERREUR' 5 ;
  359. 'FINSI' ;
  360. *
  361. * End of dgibi file FCOURANT2
  362. *
  363. 'FIN' ;
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  

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