Télécharger fvol.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : fvol.dgibi
  2. ************************************************************************
  3. * NOM : FVOL
  4. * DESCRIPTION : Cas test : gravité : comparaison de deux méthodes
  5. * de projection VPI1 et VPI2 éléments P2/P1 ou Q2/Q1
  6. *
  7. *
  8. * LANGAGE : GIBIANE-CAST3M
  9. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  10. * mél : gounand@semt2.smts.cea.fr
  11. **********************************************************************
  12. * VERSION : v1, 13/12/2002, version initiale
  13. * HISTORIQUE : v1, 13/12/2002, création
  14. * HISTORIQUE :
  15. * HISTORIQUE :
  16. ************************************************************************
  17. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  18. * en cas de modification de ce sous-programme afin de faciliter
  19. * la maintenance !
  20. ************************************************************************
  21. * Insertion de procédures utilitaires
  22. ************************************************************************
  23. * NOM : CALRESI
  24. * DESCRIPTION :
  25. *
  26. *
  27. *
  28. * LANGAGE : GIBIANE-CAST3M
  29. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  30. * mél : gounand@semt2.smts.cea.fr
  31. **********************************************************************
  32. * VERSION : v1, 13/12/2002, version initiale
  33. * HISTORIQUE : v1, 13/12/2002, création
  34. * HISTORIQUE :
  35. * HISTORIQUE :
  36. ************************************************************************
  37. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  38. * en cas de modification de ce sous-programme afin de faciliter
  39. * la maintenance !
  40. ************************************************************************
  41. *
  42. *
  43. 'DEBPROC' CALRESI ;
  44. 'ARGUMENT' rvx*'TABLE ' ;
  45. rv = rvx . 'EQEX' ;
  46. rvi = rv . 'INCO' ;
  47. rvr = rv . 'RESIDU' ;
  48. * freq1 : fréquence d'impression
  49. * freq2 : fréquence du stockage d'infos pour FILM et PHOTO
  50. * eps0 : Sortie de la boucle de EQEX si convergence
  51. freq1 = 'ENTIER' ('+' (rvx . 'ARG1') 0.001D0) ;
  52. freq2 = 'ENTIER' ('+' (rvx . 'ARG2') 0.001D0) ;
  53. eps0 = rvx . 'ARG3' ;
  54. 'SI' ('NON' ('EXISTE' rv 'CURRIT')) ;
  55. currit = 0 ;
  56. 'SINON' ;
  57. currit = rv . 'CURRIT' ;
  58. 'FINSI' ;
  59. currit = '+' currit 1 ;
  60. time0 = rv . 'PASDETPS' . 'TPS' ;
  61. un = rvi . 'UN' ;
  62. uex = rvr . 'UNEX' ;
  63. unm1 = rvr . 'UNM1' ;
  64. pn = 'NOMC' 'SCAL' (rvi . 'PRESSION') ;
  65. pn = ELNOPRES pn ;
  66. pex = rvr . 'PNEX' ;
  67. pex = ELNOPRES pex ;
  68. pnm1 = rvr . 'PNM1' ;
  69. pnm1 = ELNOPRES pnm1 ;
  70. *
  71. mmu = rvr . 'MMU' ;
  72. mmp = rvr . 'MMP' ;
  73. *
  74. * Calcul des résidus par rapport à la solution exacte
  75. * Pour la vitesse, on norme par 1
  76. * Pour la pression, on norme par ||pexact||
  77. *
  78. uinco = 'MOTS' 'UX' 'UY' ;
  79. uinco2 = 'MOTS' '1UN' '2UN' ;
  80. diffu = 'NOMC' uinco uinco2 ('-' un uex) ;
  81. resiu = 'XTY' diffu ('KOPS' mmu '*' diffu) uinco2 uinco2 ;
  82. pinco = 'MOTS' 'SCAL' ;
  83. pinco2 = 'MOTS' 'PN' ;
  84. diffp = 'NOMC' pinco pinco2 ('-' pn pex) ;
  85. pex2 = 'NOMC' pinco pinco2 pex ;
  86. resip = 'XTY' diffp ('KOPS' mmp '*' diffp) pinco2 pinco2 ;
  87. normp = 'XTY' pex2 ('KOPS' mmp '*' pex2) pinco2 pinco2 ;
  88. erru = '+' ('**' ('ABS' resiu) 0.5D0) 1.D-16 ;
  89. errp = '+' ('**' ('ABS' ('/' resip normp)) 0.5D0) 1.D-16 ;
  90. *
  91. * Calcul des erreurs relatives
  92. *
  93. diffru = 'NOMC' uinco uinco2 ('-' un unm1) ;
  94. * 'MESSAGE' 'un' ;
  95. * 'LISTE' un ;
  96. * 'MESSAGE' 'unm1' ;
  97. * 'LISTE' unm1 ;
  98. * 'MESSAGE' 'diffru' ;
  99. * 'LISTE' diffru ;
  100. resiru = 'XTY' diffru ('KOPS' mmu '*' diffru) uinco2 uinco2 ;
  101. diffrp = 'NOMC' pinco pinco2 ('-' pn pnm1) ;
  102. resirp = 'XTY' diffrp ('KOPS' mmp '*' diffrp) pinco2 pinco2 ;
  103. errrelu = '+' ('**' ('ABS' resiru) 0.5D0) 1.D-16 ;
  104. errrelp = '+' ('**' ('ABS' ('/' resirp normp)) 0.5D0) 1.D-16 ;
  105. *
  106. 'SI' ('EGA' (MODULO ('-' currit 1) freq1) 0) ;
  107. titmess = 'CHAINE' 'FORMAT' formflot
  108. 'It=' currit ' ; erru=' erru ' ; errp=' errp
  109. ' ; errrelu=' errrelu ' ; errrelp=' errrelp ;
  110. 'MESSAGE' titmess ;
  111. 'FINSI' ;
  112. rvr . 'IT' = 'ET' (rvr . 'IT') ('PROG' currit) ;
  113. rvr . 'TI' = 'ET' (rvr . 'TI') ('PROG' time0) ;
  114. rvr . 'ERU'= 'ET' (rvr . 'ERU') ('PROG' erru) ;
  115. rvr . 'ERP'= 'ET' (rvr . 'ERP') ('PROG' errp) ;
  116. rvr . 'ERRELU'= 'ET' (rvr . 'ERU') ('PROG' errrelu) ;
  117. rvr . 'ERRELP'= 'ET' (rvr . 'ERP') ('PROG' errrelp) ;
  118. *
  119. 'SI' ('EGA' (MODULO ('-' currit 1) freq2) 0) ;
  120. rvf = rv . 'FILM' ;
  121. dimtab = '+' ('DIME' rvf) 1 ;
  122. rvf . dimtab = 'TABLE' ;
  123. rvf . dimtab . 'IT' = currit ;
  124. rvf . dimtab . 'TI' = time0 ;
  125. rvf . dimtab . 'UN' = 'COPIER' un ;
  126. rvf . dimtab . 'PN' = 'COPIER' pn ;
  127. 'FINSI' ;
  128. *
  129. rvr . 'UNM1' = 'COPIER' un ;
  130. rvr . 'PNM1' = 'COPIER' pn ;
  131. rv . 'CURRIT' = currit ;
  132. mat1 chp1 = 'KOPS' 'MATRIK' ;
  133. 'RESPRO' mat1 chp1 ;
  134. *
  135. * End of procedure file CALRESI
  136. *
  137. 'FINPROC' ;
  138.  
  139. ************************************************************************
  140. * NOM : ELNOPRES
  141. * DESCRIPTION :
  142. *
  143. *
  144. *
  145. * LANGAGE : GIBIANE-CAST3M
  146. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  147. * mél : gounand@semt2.smts.cea.fr
  148. **********************************************************************
  149. * VERSION : v1, 13/12/2002, version initiale
  150. * HISTORIQUE : v1, 13/12/2002, création
  151. * HISTORIQUE :
  152. * HISTORIQUE :
  153. ************************************************************************
  154. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  155. * en cas de modification de ce sous-programme afin de faciliter
  156. * la maintenance !
  157. ************************************************************************
  158. *
  159. *
  160. 'DEBPROC' ELNOPRES ;
  161. 'ARGUMENT' pn*'CHPOINT ' ;
  162. *
  163. * Correction de la constante de pression
  164. * A enlever quand tout ira bien
  165. *
  166. pvoul = 'EXTRAIRE' pexact 'SCAL' pmp1 ;
  167. pcour = 'EXTRAIRE' pn 'SCAL' pmp1 ;
  168. pn = '+' pn ('-' pvoul pcour) ;
  169. *
  170. *
  171. *
  172. pn2 = 'KCHT' $mt 'SCAL' kpres pn ;
  173. 'RESPRO' pn2 ;
  174. *
  175. * End of procedure file ELNOPRES
  176. *
  177. 'FINPROC' ;
  178. ************************************************************************
  179. * NOM : FILM
  180. * DESCRIPTION : Affiche sous forme d'animation des infos stockées
  181. * dans la table rvf
  182. * On peut préciser un indice de début, un indice de fin
  183. * et un pas pour n'afficher qu'une partie des informations
  184. * contenues dans la table.
  185. *
  186. * LANGAGE : GIBIANE-CAST3M
  187. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  188. * mél : gounand@semt2.smts.cea.fr
  189. **********************************************************************
  190. * VERSION : v1, 13/12/2002, version initiale
  191. * HISTORIQUE : v1, 13/12/2002, création
  192. * HISTORIQUE :
  193. * HISTORIQUE :
  194. ************************************************************************
  195. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  196. * en cas de modification de ce sous-programme afin de faciliter
  197. * la maintenance !
  198. ************************************************************************
  199. *
  200. *
  201. 'DEBPROC' FILM ;
  202. 'ARGUMENT' rvf*'TABLE ' ;
  203. 'ARGUMENT' ndebu/'ENTIER ' ;
  204. 'ARGUMENT' nfin/'ENTIER ' ;
  205. 'ARGUMENT' ninter/'ENTIER ' ;
  206. *
  207. * Un champ nul pour les déformées
  208. *
  209. dxmt = 'MANUEL' 'CHPO' mt 2 'UX' 0.D0 'UY' 0.D0
  210. 'NATURE' 'DISCRET';
  211. *
  212. dimtab = 'DIME' rvf ;
  213. liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
  214. 'SI' (liv) ;
  215. livok = 'ET' liv
  216. ('ET' ('<' ndebu nfin)
  217. ('ET' ('>EG' ndebu 1) ('&lt;EG' nfin dimtab))
  218. ) ;
  219. 'FINSI' ;
  220. lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
  221. 'SI' (lviv) ;
  222. * On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
  223. npouet = '/' ('-' nfin ndebu) ninter ;
  224. nfin = '+' ndebu ('*' npouet ninter) ;
  225. 'FINSI' ;
  226. 'SI' (liv) ;
  227. 'SI' (livok) ;
  228. 'SI' (lviv) ;
  229. lindic = 'LECT' ndebu 'PAS' ninter nfin ;
  230. 'SINON' ;
  231. lindic = 'LECT' ndebu 'PAS' 1 nfin ;
  232. 'FINSI' ;
  233. 'SINON' ;
  234. 'ERREUR' 'Bornes de l"intervalle incorrectes' ;
  235. 'FINSI' ;
  236. 'SINON' ;
  237. lindic = 'LECT' 1 'PAS' 1 dimtab ;
  238. 'FINSI' ;
  239. ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
  240. ('/' 1.D0 ('VALEUR' 'DIME'))) ;
  241. *
  242. * Détermination de l'échelle de vitesse
  243. *
  244. lemax = 'PROG' ;
  245. 'REPETER' iindic ('DIME' lindic) ;
  246. idimt = 'EXTRAIRE' lindic &iindic ;
  247. lavit = rvf . idimt . 'UN' ;
  248. lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
  249. 'FIN' iindic ;
  250. echvit = 'MAXIMUM' lemax 'ABS' ;
  251. uref = '/' ('*' ladens 4.0D0) echvit ;
  252. *
  253. * Animation de la vitesse
  254. *
  255. tabvit = 'TABLE' ;
  256. 'REPETER' iindic ('DIME' lindic) ;
  257. idimt = 'EXTRAIRE' lindic &iindic ;
  258. lavit = rvf . idimt . 'UN' ;
  259. * latem = rvf . idimt . 'TN' ;
  260. vecvit = 'VECTEUR' lavit uref 'UX' 'UY' 'JAUN' ;
  261. * defvit = 'DEFORME' mt dxmt 0.D0 vecvit latem ;
  262. defvit = 'DEFORME' mt dxmt 0.D0 vecvit ;
  263. tabvit . &iindic = defvit ;
  264. 'FIN' iindic ;
  265. vitani = @STBL tabvit ;
  266. titvit = 'CHAINE' 'FORMAT' formælot
  267. 'Vitesse ; echvit=' echvit titglob ;
  268. 'TRACER' vitani 'ANIME' 'TITR' titvit ;
  269. 'OUBLIER' tabvit ; 'MENAGE' ;
  270. *
  271. * Animation de la pression
  272. *
  273. isovorig = 'VALEUR' 'ISOV' ;
  274. 'OPTION' 'ISOV' 'SURF' ;
  275. tabpre = 'TABLE' ;
  276. 'REPETER' iindic ('DIME' lindic) ;
  277. idimt = 'EXTRAIRE' lindic &iindic ;
  278. lapre = ELNOPRES (rvf . idimt . 'PN') ;
  279. * lapre = ('-' (ELNOPRES (rvf . idimt . 'PN')) (elnopres pexact)) ;
  280. defpre = 'DEFORME' mt dxmt 0.D0 lapre ;
  281. tabpre . &iindic = defpre ;
  282. 'FIN' iindic ;
  283. preani = @STBL tabpre ;
  284. titpre = 'CHAINE' 'FORMAT' formflot
  285. 'Pression' titglob ;
  286. 'TRACER' preani 'ANIME' 'TITR' titpre ;
  287. 'OUBLIER' tabpre ; 'MENAGE' ;
  288. 'OPTION' 'ISOV' isovorig ;
  289. *
  290. * End of procedure file FILM
  291. *
  292. 'FINPROC' ;
  293.  
  294. ************************************************************************
  295. * NOM : MAILLAGE
  296. * DESCRIPTION :
  297. *
  298. *
  299. *
  300. * LANGAGE : GIBIANE-CAST3M
  301. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  302. * mél : gounand@semt2.smts.cea.fr
  303. **********************************************************************
  304. * VERSION : v1, 13/12/2002, version initiale
  305. * HISTORIQUE : v1, 13/12/2002, création
  306. * HISTORIQUE :
  307. * HISTORIQUE :
  308. ************************************************************************
  309. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  310. * en cas de modification de ce sous-programme afin de faciliter
  311. * la maintenance !
  312. ************************************************************************
  313. *
  314. *
  315. 'DEBPROC' MAILLAGE ;
  316. *
  317. * Paramètres
  318. *
  319. *
  320. * Valeurs possibles :
  321. * typmail = 'TRIG' : maillage de triangles
  322. * typmail = 'CARR' : maillage de carrés
  323. 'ARGUMENT' typmail*'MOT ' ;
  324. *
  325. * Génération du maillage
  326. *
  327. pA = 0.0D0 0.D0 ;
  328. pB = 1.D0 0.D0 ;
  329. pC = 1.D0 1.D0 ;
  330. pD = 0.D0 1.D0 ;
  331. nX = 3 ; nY = 3 ;
  332. *nX = 1 ; nY = 1 ;
  333. *
  334. bas = 'DROIT' nX pA pB ;
  335. dro = 'DROIT' nY pB pC ;
  336. hau = 'DROIT' nX pC pD ;
  337. gau = 'DROIT' nY pD pA ;
  338. pourt = 'ET' ('ET' ('ET' bas dro) hau) gau ;
  339. 'SI' ('EGA' typmail 'TRIG') ;
  340. 'OPTION' 'ELEM' 'TRI3' ;
  341. mt = 'SURFACE' pourt 'PLAN' ;
  342. 'FINSI' ;
  343. 'SI' ('EGA' typmail 'CARR') ;
  344. 'OPTION' 'ELEM' 'QUA4' ;
  345. mt = 'DALLER' bas dro hau gau 'PLAN' ;
  346. ladens = '**' ('/' ('MESURE' mt) ('NBEL' mt))
  347. ('/' 1.D0 ('VALEUR' 'DIME')) ;
  348. ampbruit = (0.1 * ladens) ;
  349. cnt = 'CONTOUR' mt ;
  350. pmt = 'CHANGER' mt 'POI1' ;
  351. pcnt= 'CHANGER' cnt 'POI1' ;
  352. inmt= 'DIFF' pmt pcnt;
  353. brbl1 = 'BRUIT' 'BLAN' 'GAUS' 0.D0 ampbruit inmt ;
  354. brbl2 = 'BRUIT' 'BLAN' 'GAUS' 0.D0 ampbruit inmt ;
  355. brbl = 'ET' ('NOMC' 'UX' brbl1) ('NOMC' 'UY' brbl2) ;
  356. mt = 'PLUS' mt brbl;
  357. 'FINSI' ;
  358. 'RESPRO' mt ;
  359. *
  360. * End of procedure file MAILLAGE
  361. *
  362. 'FINPROC' ;
  363. ************************************************************************
  364. * NOM : MODULO
  365. * DESCRIPTION : Calcule un entier modulo un autre...
  366. *
  367. *
  368. *
  369. * LANGAGE : GIBIANE-CAST3M
  370. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  371. * mél : gounand@semt2.smts.cea.fr
  372. **********************************************************************
  373. * VERSION : v1, 15/10/2002, version initiale
  374. * HISTORIQUE : v1, 15/10/2002, création
  375. * HISTORIQUE :
  376. * HISTORIQUE :
  377. ************************************************************************
  378. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  379. * en cas de modification de ce sous-programme afin de faciliter
  380. * la maintenance !
  381. ************************************************************************
  382. *
  383. *
  384. 'DEBPROC' MODULO ;
  385. 'ARGUMENT' i*'ENTIER' j*'ENTIER' ;
  386. 'SI' ('EGA' j 0) ;
  387. 'MESSAGE' 'Impossible de faire modulo 0' ;
  388. 'ERREUR' 5 ;
  389. 'SINON' ;
  390. k=i '/' j ;
  391. mod=i '-' ( k '*'j ) ;
  392. 'RESPRO' mod ;
  393. 'FINSI' ;
  394. *
  395. * End of procedure file MODULO
  396. *
  397. 'FINPROC' ;
  398.  
  399. ************************************************************************
  400. * NOM : PHOTO
  401. * DESCRIPTION : Trace des infos stockées dans la table rvf
  402. * (comme la procédure FILM mais sans faire d'animations)
  403. * On peut préciser un indice de début, un indice de fin
  404. * et un pas pour n'afficher qu'une partie des informations
  405. * contenues dans la table.
  406. *
  407. *
  408. *
  409. * LANGAGE : GIBIANE-CAST3M
  410. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  411. * mél : gounand@semt2.smts.cea.fr
  412. **********************************************************************
  413. * VERSION : v1, 13/12/2002, version initiale
  414. * HISTORIQUE : v1, 13/12/2002, création
  415. * HISTORIQUE :
  416. * HISTORIQUE :
  417. ************************************************************************
  418. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  419. * en cas de modification de ce sous-programme afin de faciliter
  420. * la maintenance !
  421. ************************************************************************
  422. *
  423. *
  424. 'DEBPROC' PHOTO ;
  425. 'ARGUMENT' rvf*'TABLE ' ;
  426. 'ARGUMENT' ndebu/'ENTIER ' ;
  427. 'ARGUMENT' nfin/'ENTIER ' ;
  428. 'ARGUMENT' ninter/'ENTIER ' ;
  429. *
  430. * Un champ nul pour les déformées
  431. *
  432. dxmt = 'MANUEL' 'CHPO' mt 2 'UR' 0.D0 'UZ' 0.D0
  433. 'NATURE' 'DISCRET';
  434. *
  435. dimtab = 'DIME' rvf ;
  436. liv = 'ET' ('EXISTE' ndebu) ('EXISTE' nfin) ;
  437. 'SI' (liv) ;
  438. livok = 'ET' liv
  439. ('ET' ('<' ndebu nfin)
  440. ('ET' ('>EG' ndebu 1) ('&lt;EG' nfin dimtab))
  441. ) ;
  442. 'FINSI' ;
  443. lviv = 'ET' ('EXISTE' ninter) ('EXISTE' livok) ;
  444. 'SI' (lviv) ;
  445. * On corrige nfin pour que MODULO (- nfin ndebu) ninter =0
  446. npouet = '/' ('-' nfin ndebu) ninter ;
  447. nfin = '+' ndebu ('*' npouet ninter) ;
  448. 'FINSI' ;
  449. 'SI' (liv) ;
  450. 'SI' (livok) ;
  451. 'SI' (lviv) ;
  452. lindic = 'LECT' ndebu 'PAS' ninter nfin ;
  453. 'SINON' ;
  454. lindic = 'LECT' ndebu 'PAS' 1 nfin ;
  455. 'FINSI' ;
  456. 'SINON' ;
  457. 'ERREUR' 'Bornes de l"intervalle incorrectes' ;
  458. 'FINSI' ;
  459. 'SINON' ;
  460. lindic = 'LECT' 1 'PAS' 1 dimtab ;
  461. 'FINSI' ;
  462. ladens = (** ('/' ('MESURE' mt) ('NBEL' mt))
  463. ('/' 1.D0 ('VALEUR' 'DIME'))) ;
  464. *
  465. * Détermination de l'échelle de vitesse
  466. *
  467. lemax = 'PROG' ;
  468. 'REPETER' iindic ('DIME' lindic) ;
  469. idimt = 'EXTRAIRE' lindic &iindic ;
  470. lavit = rvf . idimt . 'UN' ;
  471. lemax = 'ET' lemax ('PROG' ('MAXIMUM' lavit 'ABS')) ;
  472. 'FIN' iindic ;
  473. echvit = 'MAXIMUM' lemax 'ABS' ;
  474. uref = '/' ('*' ladens 2.0D0) echvit ;
  475. *
  476. * Photos de la vitesse
  477. *
  478. 'REPETER' iindic ('DIME' lindic) ;
  479. idimt = 'EXTRAIRE' lindic &iindic ;
  480. letem = rvf . idimt . 'TI' ;
  481. lavit = rvf . idimt . 'UN' ;
  482. titvit = 'CHAINE' 'FORMAT' formflot
  483. 'Vitesse ; tps=' letem ;
  484. * TRACVIT lavit titvit echvit ;
  485. TRACVIT 0 lavit titvit ;
  486. 'FIN' iindic ;
  487. *
  488. * Photos de la pression
  489. *
  490. 'REPETER' iindic ('DIME' lindic) ;
  491. idimt = 'EXTRAIRE' lindic &iindic ;
  492. letem = rvf . idimt . 'TI' ;
  493. lapre = ELNOPRES (rvf . idimt . 'PN') ;
  494. titpre = 'CHAINE' 'FORMAT' formflot
  495. 'Pression ; tps=' letem ;
  496. TRACCHPO 0 lapre titpre ;
  497. 'FIN' iindic ;
  498. *
  499. * End of procedure file PHOTO
  500. *
  501. 'FINPROC' ;
  502.  
  503. ************************************************************************
  504. * NOM : RAFFMAIL
  505. * DESCRIPTION :
  506. *
  507. *
  508. *
  509. * LANGAGE : GIBIANE-CAST3M
  510. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  511. * mél : gounand@semt2.smts.cea.fr
  512. **********************************************************************
  513. * VERSION : v1, 14/10/2002, version initiale
  514. * HISTORIQUE : v1, 14/10/2002, création
  515. * HISTORIQUE :
  516. * HISTORIQUE :
  517. ************************************************************************
  518. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  519. * en cas de modification de ce sous-programme afin de faciliter
  520. * la maintenance !
  521. ************************************************************************
  522. *
  523. *
  524. 'DEBPROC' RAFFMAIL ;
  525. *
  526. * Paramètres
  527. *
  528. *
  529. * Valeurs possibles :
  530. * mt : la maillage à raffiner
  531. * nraff = i : raffinement de maillage i fois par dichotomie
  532. 'ARGUMENT' mt*'MAILLAGE' ;
  533. 'ARGUMENT' nraff*'ENTIER ' ;
  534. 'SI' ('>' nraff 0) ;
  535. 'REPETER' bcl nraff ;
  536. _mt = 'CHANGER' mt 'QUAF' ;
  537. $mt = 'MODELISER' _mt 'NAVIER_STOKES' 'MACRO' ;
  538. mt = 'DOMA' $mt 'MAILLAGE' ;
  539. 'FIN' bcl ;
  540. 'FINSI' ;
  541. 'RESPRO' mt ;
  542. *
  543. * End of procedure file RAFFMAIL
  544. *
  545. 'FINPROC' ;
  546.  
  547. ************************************************************************
  548. * NOM : TRACCHML
  549. * DESCRIPTION : Trace un CHPOINT défini sur les centres des éléments
  550. * (valeur constante par élément) avec titre optionnel
  551. *
  552. *
  553. * LANGAGE : GIBIANE-CAST3M
  554. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  555. * mél : gounand@semt2.smts.cea.fr
  556. **********************************************************************
  557. * VERSION : v1, 04/11/2002, version initiale
  558. * HISTORIQUE : v1, 04/11/2002, création
  559. * HISTORIQUE :
  560. * HISTORIQUE :
  561. ************************************************************************
  562. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  563. * en cas de modification de ce sous-programme afin de faciliter
  564. * la maintenance !
  565. ************************************************************************
  566. *
  567. *
  568. 'DEBPROC' TRACCHML ;
  569. 'ARGUMENT' chml*'CHPOINT ' ;
  570. 'ARGUMENT' tit/'MOT ' ;
  571. rescal = 'KCHA' $mt chml 'CHAM' ;
  572. tituap = 'CHAINE' tit ' ' titglob ;
  573. 'TRACER' rescal modbid 'TITR' tituap ;
  574. *
  575. * End of procedure file TRACCHML
  576. *
  577. 'FINPROC' ;
  578.  
  579. ************************************************************************
  580. * NOM : TRACCHPO
  581. * DESCRIPTION : Tracé d'un chpoint avec titre optionnel.
  582. *
  583. *
  584. *
  585. * LANGAGE : GIBIANE-CAST3M
  586. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  587. * mél : gounand@semt2.smts.cea.fr
  588. **********************************************************************
  589. * VERSION : v1, 14/10/2002, version initiale
  590. * HISTORIQUE : v1, 14/10/2002, création
  591. * HISTORIQUE :
  592. * HISTORIQUE :
  593. ************************************************************************
  594. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  595. * en cas de modification de ce sous-programme afin de faciliter
  596. * la maintenance !
  597. ************************************************************************
  598. *
  599. *
  600. 'DEBPROC' TRACCHPO ;
  601. 'ARGUMENT' KK*'ENTIER' ;
  602. 'ARGUMENT' pn*'CHPOINT ' ;
  603. 'ARGUMENT' tit/'MOT ' ;
  604. 'SI' (EGA KK 0); KLIK = 'NCLK'; 'SINON' ; KLIK =TEXT ' ' ; 'FINSI';
  605. 'SI' ('EXISTE' tit) ;
  606. titpn = 'CHAINE' 'FORMAT' formflot tit titglob ;
  607. 'SINON' ;
  608. titpn = 'CHAINE' 'FORMAT' formflot 'PRES' titglob ;
  609. 'FINSI' ;
  610. rescal = pn ;
  611. 'TRACER' rescal mt mt 'TITR' titpn nbisov KLIK;
  612. *
  613. * End of procedure file TRACCHPO
  614. *
  615. 'FINPROC' ;
  616.  
  617. ************************************************************************
  618. * NOM : TRACVIT
  619. * DESCRIPTION : Trace un champ vectoriel sous forme de flèches avec
  620. * titre optionnel.
  621. * On peut préciser une échelle pour les vitesses. Si on ne
  622. * la précise pas, elle est calculée automatiquement
  623. *
  624. *
  625. * LANGAGE : GIBIANE-CAST3M
  626. * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF)
  627. * mél : gounand@semt2.smts.cea.fr
  628. **********************************************************************
  629. * VERSION : v1, 14/10/2002, version initiale
  630. * HISTORIQUE : v1, 14/10/2002, création
  631. * HISTORIQUE :
  632. * HISTORIQUE :
  633. ************************************************************************
  634. * Prière de PRENDRE LE TEMPS de compléter les commentaires
  635. * en cas de modification de ce sous-programme afin de faciliter
  636. * la maintenance !
  637. ************************************************************************
  638. *
  639. *
  640. 'DEBPROC' TRACVIT ;
  641. 'ARGUMENT' KK*'ENTIER' ;
  642. 'ARGUMENT' vit*'CHPOINT ' ;
  643. 'ARGUMENT' tit/'MOT ' ;
  644. 'ARGUMENT' echvit/'FLOTTANT' ;
  645. ladens = ('**' ('/' ('MESURE' mt) ('NBEL' mt))
  646. ('/' 1.D0 ('VALEUR' 'DIME'))) ;
  647. 'SI' (EGA KK 0); KLIK = 'NCLK'; 'SINON' ; KLIK =TEXT ' ' ; 'FINSI';
  648. 'SI' ('NON' ('EXISTE' echvit)) ;
  649. echvit = 'MAXIMUM' vit 'ABS' ;
  650. 'SINON' ;
  651. echvit = 'ABS' echvit ;
  652. 'FINSI' ;
  653. 'SI' ('<' echvit 1.D-30) ;
  654. echvit = 1.D0 ;
  655. 'FINSI' ;
  656. uref = '/' ('*' ladens 2.0D0) echvit ;
  657. vecvit = 'VECTEUR' vit uref 'UX' 'UY' 'JAUN' ;
  658. 'SI' ('EXISTE' tit) ;
  659. titvit = 'CHAINE' 'FORMAT' formflot tit ' echvit=' echvit titglob ;
  660. 'SINON' ;
  661. titvit = 'CHAINE' 'FORMAT' formflot 'VIT echvit=' echvit titglob ;
  662. 'FINSI' ;
  663. 'TRACER' vecvit mt 'TITR' titvit KLIK ;
  664. *
  665. * End of procedure file TRACVIT
  666. *
  667. 'FINPROC' ;
  668.  
  669. *
  670. ************************************************************************
  671. misaup = VRAI ;
  672. post = VRAI ;
  673. interact= VRAI ;
  674. graph = VRAI ;
  675. graph = FAUX ;
  676. 'OPTION' 'DIME' 2 'ELEM' 'QUA4' ;
  677. 'OPTION' 'ISOV' 'SULI' ;
  678. nbisov = 15 ;
  679. 'SI' ('NON' interact) ;
  680. 'OPTION' 'TRAC' 'PSC' ;
  681. 'SINON' ;
  682. 'OPTION' 'TRAC' 'X' ;
  683. 'FINSI' ;
  684. formflot ='(1PE9.2)' ;
  685. ******************************************************************
  686. *
  687. * Paramètres
  688. *
  689. *
  690. * Valeurs possibles :
  691. * ireso = 1 : méthode de projection VPI2
  692. * ireso = 2 : méthode de projection VPI1
  693. * typmail = 'TRIG' : maillage de triangles
  694. * typmail = 'CARR' : maillage de carrés
  695. * iraff = i : raffinement de maillage i fois par dichotomie
  696. *lreso = 'LECT' 1 2 ;
  697. *lmail = 'MOTS' 'TRIG' 'CARR' ;
  698. *lraff = 'LECT' 0 PAS 1 3 ;
  699. lreso = 'LECT' 1 2 ;
  700. lmail = 'MOTS' 'TRIG' 'CARR';
  701. lraff = 'LECT' 2 ;
  702. lechvit = prog 7.e-4 7.e-4 5.e-5 5.e-5;
  703. idsauv = 'CHAINE' 'projection' ;
  704. titsauv = 'CHAINE' '/test4/gounand/validation/' idsauv '.sauv' ;
  705. *
  706. * Fin des paramètres
  707. *
  708. ******************************************************************
  709. 'SI' ('OU' ('NON' post) misaup) ;
  710. res = 'TABLE' ;
  711. *
  712. *
  713. 'REPETER' jreso ('DIME' lreso) ;
  714. ireso = 'EXTRAIRE' lreso &jreso ;
  715. res . ireso = 'TABLE' ;
  716. *
  717. 'REPETER' jmail ('DIME' lmail) ;
  718. typmail = 'EXTRAIRE' lmail &jmail ;
  719. res . ireso . typmail = 'TABLE' ;
  720. *
  721. mt = MAILLAGE typmail ;
  722. *
  723. 'REPETER' jraff ('DIME' lraff) ;
  724. iraff = 'EXTRAIRE' lraff &jraff ;
  725. res . ireso . typmail . iraff = 'TABLE' ;
  726. ******************************************************************
  727. *
  728. * Paramètres numériques
  729. *
  730. discr = 'QUAF' ;
  731. kpres = 'MSOMMET' ;
  732. *kpres = 'CENTREP1';
  733. ksupg = 'CENTREE' ;
  734. *
  735. 'SI' ('EGA' ireso 1) ;
  736. kmeth = 'VPI1' ;
  737. 'FINSI' ;
  738. 'SI' ('EGA' ireso 2) ;
  739. kmeth = 'VPI2' ;
  740. 'FINSI' ;
  741. * titre global pour les dessins
  742. titglob = 'CHAINE' ' ' typmail ' ' kmeth ' raf=' iraff ;
  743. *
  744. titdgibi = 'CHAINE' 'Cas test gravite seule' titglob ;
  745. 'MESSAGE' ('CHAINE' '********************************') ;
  746. 'MESSAGE' titdgibi ;
  747. 'MESSAGE' ('CHAINE' '********************************') ;
  748. mt = RAFFMAIL mt iraff ;
  749. * Tracé
  750. *'SI' (graph) ;
  751. * titgeo = 'CHAINE' 'Maillage ' 'NBPO=' ('NBNO' mt)
  752. * ' NBELEM=' ('NBEL' mt) titglob ;
  753. * 'TRACER' mt 'TITRE' titgeo ;
  754. *'FINSI' ;
  755. *
  756. cmt = 'CONTOUR' mt ;
  757. _mt = 'CHANGER' mt 'QUAF' ;
  758. _cmt = 'CHANGER' cmt 'QUAF' ;
  759. 'ELIMINATION' ('ET' _mt _cmt) 1.D-5 ;
  760. $mt = 'MODELISER' _mt 'NAVIER_STOKES' discr ;
  761. $cmt = 'MODELISER' _cmt 'NAVIER_STOKES' discr ;
  762. mp1 = 'ELEM' ('DOMA' $mt kpres) 1 ;
  763. pmp1 = 'POIN' mp1 1 ;
  764. *
  765. *==========================================================
  766. * Définition des équations vitesse, pression
  767. *==========================================================
  768. *
  769. *
  770. * Paramètres physiques et pas de temps
  771. nu = 1.D0 ;
  772. alph = -70.D0 ;
  773. gx = 'COS' alph ;
  774. gy = 'SIN' alph ;
  775. *gx=0. ; gy = -1. ;
  776. g = gx gy ;
  777. ax = coor 1 mt ;
  778. ay = coor 2 mt ;
  779. fi1=(ax**5.) + (((ax*ay)**3.)*ax) + (((ax*ay)**2.)*ay) + (ay**4.);
  780.  
  781. fi1=ax ;
  782. fi1 = kcht $mt scal sommet fi1 ;
  783. *g = kops 'GRADS' fi1 $mt;
  784. *trace (exco g ux);
  785. *trace (exco g uy);
  786. *opti donn 5 ;
  787. * Solution exact
  788. * Vitesse
  789. uexact = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
  790. mailp = 'DOMA' $mt kpres ;
  791. xmp ymp = 'COORDONNEE' mailp ;
  792. pexact = 'KCHT' $mt 'SCAL' kpres
  793. ('+' ('*' xmp gx) ('*' ymp gy)) ;
  794. 'SI' (graph) ;
  795. rescal = uexact ;
  796. tituap = 'CHAINE' 'Vitesse exacte';
  797. TRACVIT 1 rescal tituap ;
  798. rescal = ELNOPRES pexact ;
  799. tituap = 'CHAINE' 'Pression exacte';
  800. TRACCHPO 1 rescal tituap ;
  801. 'FINSI' ;
  802. *
  803. * Paramètres numériques
  804. dt = 1.e-3 ;
  805. npdt = 10 ;
  806. *
  807. nimpr = 1 ;
  808. nfilm = 1 ;
  809. nresi = 1.D-6 ;
  810. *
  811. 'TEMPS' 'ZERO' ;
  812. ******************************************************************
  813. *
  814. * Paramètres
  815. *
  816. * Equations en vitesse
  817. * ITMA : Nombre de pas de temps
  818. * NITER : Nombre d'itérations internes
  819. * OMEGA : Facteur de relaxation des itérations internes
  820. * FIDT : Nombre maximum de pas de temps
  821. *
  822. rv = 'EQEX' 'ITMA' npdt 'NITER' 1 'FIDT' 1000 ;
  823. rv = 'EQEX' rv
  824. 'OPTI' 'EF' ksupg 'IMPL' kpres
  825. 'ZONE' $mt 'OPER' 'CALRESI' nimpr nfilm nresi
  826. 'OPTI' 'EF' ksupg 'IMPL' kpres
  827. 'ZONE' $mt 'OPER' 'NS' 1. 'UN' nu g 'INCO' 'UN'
  828.  
  829. * 'ZONE' $mt 'OPER' 'TOIMP' g 'INCO' 'UN'
  830. 'OPTI' 'EF' ksupg 'IMPL' kpres
  831. 'ZONE' $mt 'OPER' 'DFDT' 1.D0 'UN' dt 'INCO' 'UN'
  832. ;
  833. *
  834. * Equation en pression avec condition de Dirichlet en un point
  835. *
  836. * Methode projection sans iterations internes
  837. rvp = 'EQEX' 'OPTI' 'EF' ksupg 'IMPL' kpres
  838. 'ZONE' $mt 'OPER' 'KBBT' -1.D0 'INCO' 'UN' 'PN'
  839. 'CLIM' 'PN' 'TIMP' mp1 ('EXTRAIRE' pexact 'SCAL' pmp1)
  840. ;
  841. *
  842. * Conditions aux limites en vitesse
  843. *
  844. rv = 'EQEX' rv 'CLIM'
  845. 'UN' 'UIMP' ('DOMA' $cmt 'SOMMET') 0.D0
  846. 'UN' 'VIMP' ('DOMA' $cmt 'SOMMET') 0.D0
  847. ;
  848. *
  849. * Initialisation des champs (table INCO)
  850. rv . 'INCO' = TABLE 'INCO' ;
  851. rv . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
  852. rv . 'INCO' . 'PN' = 'KCHT' $mt 'SCAL' kpres 0.D0 ;
  853. rv . 'INCO' . 'PRESSION' = 'NOMC' 'PN'
  854. ('KCHT' $mt 'SCAL' kpres 0.D0) ;
  855. *
  856. * Champs supplémentaires pour la procédure CALRESI
  857. rv . 'RESIDU' = 'TABLE' 'RESIDU' ;
  858. * Champs
  859. rv . 'RESIDU' . 'UNM1' = 'COPI' rv . 'INCO' . 'UN' ;
  860. rv . 'RESIDU' . 'PNM1' = 'NOMC' 'SCAL' (rv . 'INCO' . 'PN') ;
  861. rv . 'RESIDU' . 'UNEX' = 'COPI' uexact ;
  862. rv . 'RESIDU' . 'PNEX' = 'COPI' pexact ;
  863. * Matrices masse pour le calcul des résidus
  864. rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
  865. 'ZONE' $mt 'OPER' 'DFDT' 1.D0 'UN' 1.D0 'INCO' 'UN' ;
  866. rk . 'INCO' = TABLE 'INCO' ;
  867. rk . 'INCO' . 'UN' = 'KCHT' $mt 'VECT' 'SOMMET' (0.D0 0.D0) ;
  868. toto mm = 'DFDT' (rk . '1DFDT') ;
  869. rv . 'RESIDU' . 'MMU' = mm ;
  870. $mt2 = 'MODELISER' _mt 'NAVIER_STOKES' 'LINE' ;
  871. rk = 'EQEX' 'OPTI' 'EF' 'CENTREE' 'IMPL'
  872. 'ZONE' $mt2 'OPER' 'DFDT' 1.D0 'PN' 1.D0 'INCO' 'PN' ;
  873. rk . 'INCO' = TABLE 'INCO' ;
  874. rk . 'INCO' . 'PN' = 'KCHT' $mt2 'SCAL' 'SOMMET' 0.D0 ;
  875. toto mm = 'DFDT' (rk . '1DFDT') ;
  876. rv . 'RESIDU' . 'MMP' = mm ;
  877. * Erreurs
  878. rv . 'RESIDU' . 'IT' = 'PROG' ;
  879. rv . 'RESIDU' . 'TI' = 'PROG' ;
  880. rv . 'RESIDU' . 'ERU' = 'PROG' ;
  881. rv . 'RESIDU' . 'ERP' = 'PROG' ;
  882. rv . 'RESIDU' . 'ERRELU' = 'PROG' ;
  883. rv . 'RESIDU' . 'ERRELP' = 'PROG' ;
  884. * Infos supplémentaires pour les films
  885. rv . 'FILM' = 'TABLE' ;
  886. * Méthode d'inversion du problème en vitesse
  887. rv . 'METHINV' . 'TYPINV' = 1 ;
  888. rv . 'METHINV' . 'IMPINV' = 0 ;
  889. rv . 'METHINV' . 'FCPRECT' = 1 ;
  890. rv . 'METHINV' . 'FCPRECI' = 1 ;
  891. *
  892. * Méthode d'inversion du problème en pression
  893. rvp . 'METHINV' . 'TYPINV' = 1 ;
  894. rvp . 'METHINV' . 'IMPINV' = 0 ;
  895. rvp . 'METHINV' . 'FCPRECT' = 1 ;
  896. rvp . 'METHINV' . 'FCPRECI' = 1 ;
  897. *
  898. * Couplage vitesse/pression : Méthode de projection
  899. rv . 'PROJ' = rvp ;
  900. rv.'TYPROJ'=kmeth ;
  901. *
  902. *==========================================================
  903. * Résolution
  904. *==========================================================
  905. *
  906. EXEC rv ;
  907. TABTPS = TEMP 'NOEC';
  908. tcpu = TABTPS.'TEMPS_CPU'.'INITIAL';
  909. tcpus = '/' ('FLOTTANT' tcpu) 100.D0 ;
  910. rvi = rv . 'INCO' ;
  911. rvr = rv . 'RESIDU' ;
  912. *
  913. * Résultats intéressants dans la table res
  914. *
  915. res . ireso . typmail . iraff . 'TCPU' = tcpus ;
  916. res . ireso . typmail . iraff . 'MAILLAGE' = mt ;
  917. res . ireso . typmail . iraff . 'MODELE' = $mt ;
  918. res . ireso . typmail . iraff . 'IT' = rvr . 'IT' ;
  919. res . ireso . typmail . iraff . 'ERU' = rvr . 'ERU' ;
  920. res . ireso . typmail . iraff . 'ERP' = rvr . 'ERP' ;
  921. res . ireso . typmail . iraff . 'ERU' = rvr . 'ERRELU' ;
  922. res . ireso . typmail . iraff . 'ERP' = rvr . 'ERRELP' ;
  923. res . ireso . typmail . iraff . 'VIT' = rvi . 'UN' ;
  924. *
  925. * Pression
  926. pe = 'NOMC' 'SCAL' (rvi . 'PRESSION') ;
  927. res . ireso . typmail . iraff . 'PRES' = pe ;
  928. res . ireso . typmail . iraff . 'FILM' = rv . 'FILM' ;
  929. Si graph ;
  930. tituap = 'CHAINE' 'Vitesse' ;
  931. TRACVIT 1 (rvi . 'UN') un tituap ;
  932. tituap = 'CHAINE' 'Pression' ;
  933. TRACCHPO 1 (ELNOPRES pe) tituap ;
  934. *tituap = 'CHAINE' 'Pression' ;
  935. *TRACCHPO ('-' (ELNOPRES pe) (ELNOPRES pexact)) tituap ;
  936. *film (rv . 'FILM') ;
  937. photo (rv . 'FILM') ;
  938. Finsi ;
  939.  
  940. echvit = Maxi ((PSCAL (rvi . 'UN') (MOTS 'UX' 'UY')
  941. (rvi . 'UN') (MOTS 'UX' 'UY'))**0.5);
  942. nbk = &jmail + ((dime lreso)*(&jreso - 1));
  943. mess ' ECHVIT= ' ECHVIT ' nbk=' nbk (extr lechvit nbk);
  944. mess 'jraff= ' &jraff ' jmail=' &jmail ' jreso=' &jreso;
  945. Si (ECHVIT > (extr lechvit nbk)); erreur 5 ; Finsi ;
  946. 'FIN' jraff ;
  947. 'FIN' jmail ;
  948. 'FIN' jreso ;
  949. 'FIN' jchoi ;
  950. 'SI' ('NON' misaup) ;
  951. 'OPTION' 'SAUV' titsauv ;
  952. 'SAUVER' ;
  953. 'FINSI' ;
  954. 'FINSI' ;
  955. *
  956. *
  957. *==========================================================
  958. * Post traitement
  959. *==========================================================
  960. 'SI' ('OU' post misaup) ;
  961. 'SI' ('NON' misaup) ;
  962. 'OPTION' 'REST' titsauv ;
  963. 'RESTITUER' ;
  964. 'FINSI' ;
  965. *
  966. * Calcul des ordres
  967. *
  968. 'REPETER' jchoi ('DIME' lchoi) ;
  969. ichoi = 'EXTRAIRE' lchoi &jchoi ;
  970. *
  971. 'REPETER' jreso ('DIME' lreso) ;
  972. ireso = 'EXTRAIRE' lreso &jreso ;
  973. *
  974. 'REPETER' jmail ('DIME' lmail) ;
  975. typmail = 'EXTRAIRE' lmail &jmail ;
  976. *
  977. lechloc = 'PROG' ;
  978. ltcpu = 'PROG' ;
  979. lerrl2u = 'PROG' ;
  980. lerrl2p = 'PROG' ;
  981. lxreatt = 'PROG' ;
  982. 'REPETER' jraff ('DIME' lraff) ;
  983. iraff = 'EXTRAIRE' lraff &jraff ;
  984. *
  985. ******************************************************************
  986. *
  987. * Paramètres numériques
  988. *
  989. 'SI' ('EGA' ichoi 1) ;
  990. discr = 'MACRO' ;
  991. kpres = 'CENTREP1' ;
  992. 'FINSI' ;
  993. 'SI' ('EGA' ichoi 2) ;
  994. discr = 'QUAF' ;
  995. kpres = 'CENTREP1' ;
  996. 'FINSI' ;
  997. 'SI' ('EGA' ichoi 3) ;
  998. discr = 'QUAF' ;
  999. kpres = 'MSOMMET' ;
  1000. 'FINSI' ;
  1001. 'SI' ('EGA' idcen 0) ;
  1002. ksupg = 'CENTREE' ;
  1003. 'FINSI' ;
  1004. 'SI' ('EGA' idcen 1) ;
  1005. ksupg = 'SUPG' ;
  1006. 'FINSI' ;
  1007. *
  1008. 'SI' ('EGA' ireso 1) ;
  1009. kmeth = 'IMPL' ;
  1010. 'FINSI' ;
  1011. 'SI' ('EGA' ireso 2) ;
  1012. kmeth = 'MOT' 'PROJ' ;
  1013. 'FINSI' ;
  1014. 'SI' ('EGA' ireso 3) ;
  1015. kmeth = 'MOT' 'PRIT' ;
  1016. 'FINSI' ;
  1017. * titre global pour les dessins
  1018. titglob = 'CHAINE' ' ' typmail ' ' kmeth ' ' discr ' ' kpres ' ' ksupg
  1019. ' raf=' iraff ;
  1020. titglo2 = 'CHAINE' ' ' typmail ' ' kmeth ' ' discr ' ' kpres ' ' ksupg ;
  1021. tcpu = res . ichoi . ireso . typmail . iraff . 'TCPU' ;
  1022. mt = res . ichoi . ireso . typmail . iraff . 'MAILLAGE' ;
  1023. $mt = res . ichoi . ireso . typmail . iraff . 'MODELE' ;
  1024. lit = res . ichoi . ireso . typmail . iraff . 'IT' ;
  1025. leru = res . ichoi . ireso . typmail . iraff . 'ERU' ;
  1026. lerp = res . ichoi . ireso . typmail . iraff . 'ERP' ;
  1027. un = res . ichoi . ireso . typmail . iraff . 'VIT' ;
  1028. pn = res . ichoi . ireso . typmail . iraff . 'PRES' ;
  1029. tfilm = res . ichoi . ireso . typmail . iraff . 'FILM' ;
  1030. evcf = res . ichoi . ireso . typmail . iraff . 'EVCF' ;
  1031. xrea = res . ichoi . ireso . typmail . iraff . 'XREATTAC' ;
  1032. * Quelques graphiques
  1033. *xeveru = lit ;
  1034. *yeveru = '/' ('LOG' leru) ('LOG' 10.D0) ;
  1035. *everu = 'EVOL' 'MANU' 'Iteration' xeveru 'Log Err L2 U' yeveru ;
  1036. *tituap = 'CHAINE' 'Conv. vitesse' titglob ;
  1037. *'DESSIN' everu 'TITR' tituap ;
  1038. *xeverp = lit ;
  1039. *yeverp = '/' ('LOG' lerp) ('LOG' 10.D0) ;
  1040. *everp = 'EVOL' 'MANU' 'Iteration' xeverp 'Log Err L2 P' yeverp ;
  1041. *tituap = 'CHAINE' 'Conv. pression' titglob ;
  1042. *'DESSIN' everp 'TITR' tituap ;
  1043. * Champ de déformée (pour l'échelle)
  1044. xmt ymt = 'COORDONNEE' ('DOMA' $mt 'SOMMET') ;
  1045. dxmt = 'ET' ('NOMC' 'UX' ('*' xmt 0.D0) 'NATURE' 'DISCRET')
  1046. ('NOMC' 'UY' ('*' ymt 5.D0) 'NATURE' 'DISCRET') ;
  1047. orig = 'FORME' ;
  1048. 'FORME' dxmt ;
  1049. tituap = 'CHAINE' 'Vitesse' ;
  1050. TRACVIT 0 un tituap ;
  1051. tituap = 'CHAINE' 'Pression' ;
  1052. TRACCHPO 0 pn tituap ;
  1053. *film tfilm ;
  1054. 'FORME' orig ;
  1055. 'DESSIN' evcf 'TITR' 'EVCF' 'TITX' 'X' 'TITY' 'CF' ;
  1056. chevcf = 'CHAINE' 'Abscisse reattac =' xrea ;
  1057. 'MESSAGE' chevcf ;
  1058. 'OPTION' 'DONN' 5 ;
  1059. *
  1060. 'SI' ('>' ('DIME' lraff) 1) ;
  1061. echloc = '**' ('/' ('MESURE' mt) ('NBEL' mt))
  1062. ('/' 1.D0 ('VALEUR' 'DIME')) ;
  1063. lechloc = 'ET' lechloc ('PROG' echloc) ;
  1064. ltcpu = 'ET' ltcpu ('PROG' tcpu) ;
  1065. lerrl2u = 'ET' lerrl2u ('PROG' ('EXTRAIRE' leru ('DIME' leru))) ;
  1066. lerrl2p = 'ET' lerrl2p ('PROG' ('EXTRAIRE' lerp ('DIME' lerp))) ;
  1067. lxreatt = 'ET' lxreatt ('PROG' xrea) ;
  1068. 'FINSI' ;
  1069. 'FIN' jraff ;
  1070. *
  1071. 'SI' ('>' ('DIME' lraff) 1) ;
  1072. lechloc = '/' ('LOG' lechloc) ('LOG' 10.D0) ;
  1073. ltcpu = '/' ('LOG' ltcpu) ('LOG' 10.D0) ;
  1074. lerrl2u = '/' ('LOG' lerrl2u) ('LOG' 10.D0) ;
  1075. lerrl2p = '/' ('LOG' lerrl2p) ('LOG' 10.D0) ;
  1076. dimevo = 'DIME' lechloc ;
  1077. evtcpu = 'EVOL' 'MANU' lechloc ltcpu ;
  1078. everru = 'EVOL' 'MANU' lechloc lerrl2u ;
  1079. everrp = 'EVOL' 'MANU' lechloc lerrl2p ;
  1080. evxrea = 'EVOL' 'MANU' lechloc lxreatt ;
  1081. tab = 'TABLE' ;
  1082. tab . 'TITRE' = 'TABLE' ;
  1083. tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
  1084. tab . 'TITRE'. 1 = 'CHAINE' 'Tps CPU (s)' ;
  1085. evterrt = evtcpu ;
  1086. tituap = 'CHAINE' 'Tps CPU' titglo2 ;
  1087. 'DESSIN' evterrt 'LEGE'
  1088. 'TITR' tituap
  1089. 'TITX' 'log h'
  1090. 'TITY' 'log tcpu'
  1091. tab ;
  1092. tab = 'TABLE' ;
  1093. tab . 'TITRE' = 'TABLE' ;
  1094. tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
  1095. tab . 'TITRE'. 1 = 'CHAINE' 'Err. calculée' ;
  1096. evterru = everru ;
  1097. tituap = 'CHAINE' 'Err L2 U' titglo2 ;
  1098. 'DESSIN' evterru 'LEGE'
  1099. 'TITR' tituap
  1100. 'TITX' 'log h'
  1101. 'TITY' 'log errl2'
  1102. tab ;
  1103. tab = 'TABLE' ;
  1104. tab . 'TITRE' = 'TABLE' ;
  1105. tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
  1106. tab . 'TITRE'. 1 = 'CHAINE' 'Err. calculée' ;
  1107. evterrp = everrp ;
  1108. tituap = 'CHAINE' 'Err L2 P' titglo2 ;
  1109. 'DESSIN' evterrp 'LEGE'
  1110. 'TITR' tituap
  1111. 'TITX' 'log h'
  1112. 'TITY' 'log errl2'
  1113. tab ;
  1114. tab = 'TABLE' ;
  1115. tab . 'TITRE' = 'TABLE' ;
  1116. tab . 1 = 'CHAINE' 'MARQ TRIB ' ;
  1117. tab . 'TITRE'. 1 = 'CHAINE' 'Xreattac' ;
  1118. evtxrea = evxrea ;
  1119. tituap = 'CHAINE' 'X reattac' titglo2 ;
  1120. 'DESSIN' evtxrea 'LEGE'
  1121. 'TITR' tituap
  1122. 'TITX' 'log h'
  1123. 'TITY' 'X reattac'
  1124. tab ;
  1125. * res . ichoi . ireso . typmail . 'ORDU' = orderru ;
  1126. * res . ichoi . ireso . typmail . 'ORDP' = orderrp ;
  1127. * res . ichoi . ireso . typmail . 'LMIERL2U' = 'MINIMUM' lerrl2u ;
  1128. * res . ichoi . ireso . typmail . 'LMIERL2P' = 'MINIMUM' lerrl2p ;
  1129. 'FINSI' ;
  1130. 'FIN' jmail ;
  1131. 'FIN' jreso ;
  1132. 'FIN' jchoi ;
  1133. *
  1134. * 2eme partie du post-traitement : affichage des ordres et min des
  1135. * erreurs L2 de façon claire avant inclusion dans LateX
  1136. * On affiche également vitesse et pression sur le maillage le plus fin
  1137. *
  1138. *'SI' ('>' ('DIME' lraff) 1) ;
  1139. **
  1140. *tittab = 'CHAINE' 'Methode'/1 'Ord. u '/31 'Ord. p'/41
  1141. * 'Lminerru'/51 'Lminerrp'/61 ;
  1142. *optecho = 'VALEUR' 'ECHO' ;
  1143. *'OPTION' 'ECHO' 0 ;
  1144. *'MESSAGE' tittab ;
  1145. **
  1146. *'REPETER' jreso ('DIME' lreso) ;
  1147. *ireso = 'EXTRAIRE' lreso &jreso ;
  1148. **
  1149. *'REPETER' jmail ('DIME' lmail) ;
  1150. *typmail = 'EXTRAIRE' lmail &jmail ;
  1151. **
  1152. *'REPETER' jchoi ('DIME' lchoi) ;
  1153. *ichoi = 'EXTRAIRE' lchoi &jchoi ;
  1154. **
  1155. ** Paramètres numériques
  1156. **
  1157. *'SI' ('EGA' ichoi 1) ;
  1158. * discr = 'MACRO' ;
  1159. * kpres = 'CENTREP1' ;
  1160. *'FINSI' ;
  1161. *'SI' ('EGA' ichoi 2) ;
  1162. * discr = 'QUAF' ;
  1163. * kpres = 'CENTREP1' ;
  1164. *'FINSI' ;
  1165. *'SI' ('EGA' ichoi 3) ;
  1166. * discr = 'QUAF' ;
  1167. * kpres = 'MSOMMET' ;
  1168. *'FINSI' ;
  1169. *'SI' ('EGA' idcen 0) ;
  1170. * ksupg = 'CENTREE' ;
  1171. *'FINSI' ;
  1172. *'SI' ('EGA' idcen 1) ;
  1173. * ksupg = 'SUPG' ;
  1174. *'FINSI' ;
  1175. **
  1176. *'SI' ('EGA' ireso 1) ;
  1177. * kmeth = 'IMPL' ;
  1178. *'FINSI' ;
  1179. *'SI' ('EGA' ireso 2) ;
  1180. * kmeth = 'MOT' 'PROJ' ;
  1181. *'FINSI' ;
  1182. *'SI' ('EGA' ireso 3) ;
  1183. * kmeth = 'MOT' 'PRIT' ;
  1184. *'FINSI' ;
  1185. ** titre global pour les dessins
  1186. *titglob = 'CHAINE' ' ' kmeth ' ' typmail ' ' discr ' ' kpres ;
  1187. *ordu = res . ichoi . ireso . typmail . 'ORDU' ;
  1188. *ordp = res . ichoi . ireso . typmail . 'ORDP' ;
  1189. *mleu = res . ichoi . ireso . typmail . 'LMIERL2U' ;
  1190. *mlep = res . ichoi . ireso . typmail . 'LMIERL2P' ;
  1191. *formf ='(F9.2)' ;
  1192. *titord = 'CHAINE' 'FORMAT' formf titglob/1 ordu/31 ordp/41
  1193. * mleu/51 mlep/61 ;
  1194. *'MESSAGE' titord ;
  1195. **'SI' (graph) ;
  1196. * maxraff = 'DIME' lraff ;
  1197. * imraff = 'EXTRAIRE' lraff maxraff ;
  1198. * mt = res . ichoi . ireso . typmail . imraff . 'MAILLAGE' ;
  1199. * $mt = res . ichoi . ireso . typmail . imraff . 'MODELE' ;
  1200. * rescal = res . ichoi . ireso . typmail . imraff . 'VIT' ;
  1201. * tituap = 'CHAINE' 'Vitesse maillage fin' ;
  1202. * TRACVIT rescal tituap ;
  1203. * rescal = res . ichoi . ireso . typmail . imraff . 'PRES' ;
  1204. * tituap = 'CHAINE' 'Pression maillage fin';
  1205. * TRACPRES rescal tituap ;
  1206. **'FINSI' ;
  1207. *'FIN' jchoi ;
  1208. *'FIN' jmail ;
  1209. *'FIN' jreso ;
  1210. **
  1211. *'OPTION' 'ECHO' optecho ;
  1212. **'SI' ('>' ('DIME' lraff) 1) ;
  1213. *'FINSI' ;
  1214.  
  1215.  
  1216.  
  1217. *'SI' (post) ;
  1218. 'FINSI' ;
  1219. 'OPTION' 'DONN' 5 ;
  1220. *
  1221. * End of dgibi file MARCHE_DESC
  1222. *
  1223. 'FIN' ;
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  

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