Télécharger pod_flui_cyl.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pod_flui_cyl.dgibi
  2. ************************************************************************
  3. * NOM : pod_flui_cyl
  4. * DESCRIPTION : Determination de bases POD issues d'un calcul CFD
  5. * d'ecoulement fluide autour d'un cylindre fixe puis
  6. * projection des resultats CFD sur les vecteurs de base
  7. ************************************************************************
  8. SMALL = 1.E-5 ;
  9. $$ = EXTR (CHAI '''') 1 1 ;
  10. OPTI 'DIME' 2 'ELEM' 'QUA4' ;
  11. *
  12. *
  13. * Affichages graphiques ?
  14. GRAPH = FAUX ;
  15. *
  16. * Frequence de la sortie VTK (le dossier "pod_flui_cyl" doit exister)
  17. * [0 => PAS DE SORTIE VTK]
  18. FVTK = 0 ;
  19. *
  20. *
  21. *
  22. * ========================
  23. * PARAMETRES DU CALCUL CFD
  24. * ========================
  25. *
  26. * Refaire le calcul CFD ?
  27. * (sinon, on restitue le resultat sauvegarde des que NOSAUV=FAUX)
  28. RECALC = VRAI ;
  29. * Sauvegarde en fin de calcul ?
  30. NOSAUV = VRAI ;
  31. *
  32. * Diametre du tube
  33. DIATUB = 0.01 ;
  34. * Hauteur totale du domaine
  35. DIADOM = 0.03 ;
  36. * Longueur du domaine amont
  37. LAMONT = 0. ;
  38. * Longueur du domaine aval
  39. LAVAL = 0.04 ;
  40. * Nombre d'elements sur un huitieme de cylindre
  41. NBELEM = 2 ;
  42. *
  43. * Nombre de Reynolds
  44. RE = 100 ;
  45. * Type d'elements finis utilises
  46. DISCR = 'QUAF' ;
  47. KPRES = 'CENTREP1' ;
  48. * Decentrement
  49. DCENTR = 'SUPG' ;
  50. KCMD = 0. ;
  51. * Formulation des contraintes visqueuses ('FTAU' ou 'MUCONS')
  52. CVISQ = 'MUCONS' ;
  53. *
  54. * Pas de temps
  55. DT = 0.01 ;
  56. * Duree totale
  57. TFINAL = 3. ;
  58. * Instant a partir duquel les objets CHPOINT sont sauvegardes
  59. TSAUV = 2. ;
  60. * Duree (en secondes) de la perturbation UY en entree du domaine
  61. * [0. => PAS DE PERTURBATION]
  62. TPERTURB = 0.2 ;
  63. * Intensite (en % relativement a la vitesse axiale)
  64. IPERTURB = 0.1 ;
  65. *
  66. *
  67. * =============================
  68. * PARAMETRES DU POST-TRAITEMENT
  69. * =============================
  70. *
  71. * Nombre de modes POD demandes
  72. NBMODES = 5 ;
  73. *
  74. *
  75. *
  76. ************************************************************************
  77. ************************************************************************
  78. *
  79. OPTI 'ECHO' 0 ;
  80. *
  81. *
  82. SI (NON RECALC) ;
  83. OPTI 'REST' 'pod_flui_cyl.xdr' ;
  84. REST ;
  85. *
  86. SINON ;
  87. *
  88. *
  89. * +-------------------------------------------------------------------+
  90. * | |
  91. * | C R E A T I O N D U M A I L L A G E |
  92. * | |
  93. * +-------------------------------------------------------------------+
  94. *
  95. *
  96. * P6 P5
  97. * ############################### A
  98. * # # |
  99. * # # # |
  100. * # # # |
  101. * # # # |
  102. * # # # |
  103. * # # # |
  104. * # # # | DIATUB / 2
  105. * ###### # # |
  106. * P3 ### # # |
  107. * ## # # |
  108. * # # |
  109. * P2 # # |
  110. * # # |
  111. * # # |
  112. * # ################## V
  113. * P0 P1 P4
  114. *
  115. * <----------->
  116. * RAYTUB
  117. *
  118. *
  119. *
  120. *
  121. * P23 P22 P5 = P13 P12
  122. * ****************************************************
  123. * * * * *
  124. * * * * *
  125. * * * ***** * *
  126. * * * * * * *
  127. * * * * * * *
  128. * * * * * * *
  129. * * * ***** * *
  130. * * * * *
  131. * * * * *
  132. * ****************************************************
  133. * P20 P21 P10 P11
  134. *
  135. * <----------> <--------------------->
  136. * LAMONT LAVAL
  137. *
  138. *
  139. SI (DIADOM &lt;EG (1.1*DIATUB)) ;
  140. ERRE 'LE CYLINDRE EST TROP GROS, DONNEES D'$$'ENTREE INVALIDES' ;
  141. FIN ;
  142. FINS ;
  143. *
  144. RAYTUB = 0.5*DIATUB ;
  145. RAYDOM = 0.5*DIADOM ;
  146. *
  147. P0 = 0. 0. ;
  148. P1 = RAYTUB 0. ;
  149. P2 = (RAYTUB RAYTUB)*(0.5**0.5) ;
  150. P3 = 0. RAYTUB ;
  151. P4 = RAYDOM 0. ;
  152. P5 = RAYDOM RAYDOM ;
  153. P6 = 0. RAYDOM ;
  154. *
  155. *
  156. *
  157. * *********************************************************************
  158. * M A I L L A G E D U T U B E
  159. * *********************************************************************
  160. *
  161. CERC1 = P1 CERC NBELEM P0 P2 CERC NBELEM P0 P3 ;
  162. RECT1 = P4 DROI NBELEM P5 DROI NBELEM P6 ;
  163. *
  164. * On fait des mailles presque carrees autour du cylindre
  165. DINI1 = 0.8 * (0.25*PI*RAYTUB / NBELEM) ;
  166. DFIN1 = 0.8 * (RAYDOM / NBELEM) ;
  167.  
  168. MAIL4 = CERC1 REGL RECT1 'DINI' DINI1 'DFIN' DFIN1 ;
  169. *
  170. DOMCYL = MAIL4 ET (SYME MAIL4 'DROI' P0 P6)
  171. ET (SYME MAIL4 'DROI' P0 P4)
  172. ET (SYME MAIL4 'POIN' P0) ;
  173.  
  174. DOMTOT = DOMCYL ;
  175. *
  176. *
  177. *
  178. * *********************************************************************
  179. * M A I L L A G E D U D O M A I N E A V A L
  180. * *********************************************************************
  181. *
  182. SI (LAVAL > 0.) ;
  183. P10 = RAYDOM (-1.*RAYDOM) ;
  184. P11 = (RAYDOM + LAVAL) (-1.*RAYDOM) ;
  185. P12 = (RAYDOM + LAVAL) RAYDOM ;
  186. P13 = RAYDOM RAYDOM ;
  187. *
  188. * On fait des mailles presque carrees dans le domaine aval
  189. NBEL2 = ENTI 'SUPERIEUR' (LAVAL / (1.2 * (RAYDOM / NBELEM))) ;
  190. NBEL4 = 2*NBELEM ;
  191. AVAL1 = P10 DROI NBEL2 P11 ;
  192. AVAL2 = P13 DROI NBEL2 P12 ;
  193. DOMAVAL = AVAL1 REGL NBEL4 AVAL2 ;
  194. DOMTOT = DOMTOT ET DOMAVAL ;
  195. SINON ;
  196. P11 = RAYDOM (-1.*RAYDOM) ;
  197. P12 = RAYDOM RAYDOM ;
  198. ELIM (DOMTOT ET P11 ET P12) SMALL ;
  199. FINS ;
  200. *
  201. *
  202. *
  203. * *********************************************************************
  204. * M A I L L A G E D U D O M A I N E A M O N T
  205. * *********************************************************************
  206. *
  207. SI (LAMONT > 0.) ;
  208. P20 = (-1.*RAYDOM - LAMONT) (-1.*RAYDOM) ;
  209. P21 = (-1.*RAYDOM) (-1.*RAYDOM) ;
  210. P22 = (-1.*RAYDOM) RAYDOM ;
  211. P23 = (-1.*RAYDOM - LAMONT) RAYDOM ;
  212. *
  213. * On fait des mailles presque carrees dans le domaine amont
  214. NBEL2 = ENTI 'SUPERIEUR' (LAMONT / (1.2 * (RAYDOM / NBELEM))) ;
  215. NBEL4 = 2*NBELEM ;
  216. AMONT1 = P20 DROI NBEL2 P21 ;
  217. AMONT2 = P23 DROI NBEL2 P22 ;
  218. DOMAMONT = AMONT1 REGL NBEL4 AMONT2 ;
  219. DOMTOT = DOMTOT ET DOMAMONT ;
  220. SINON ;
  221. P20 = (-1.*RAYDOM) (-1.*RAYDOM) ;
  222. P23 = (-1.*RAYDOM) RAYDOM ;
  223. ELIM (DOMTOT ET P20 ET P23) SMALL ;
  224. FINS ;
  225. *
  226. *
  227. *
  228. * *********************************************************************
  229. * E L E M E N T S P O U R L E S F L U I D E S
  230. * *********************************************************************
  231. *
  232. ELIM DOMTOT SMALL ;
  233. *
  234. DOMTOT = CHAN DOMTOT 'QUAF' ;
  235. $DOMTOT = MODE DOMTOT 'NAVIER_STOKES' DISCR ;
  236. DOMTOT = DOMA $DOMTOT 'MAILLAGE' ;
  237. DOMPRE = DOMA $DOMTOT KPRES ;
  238. _DOMTOT = CONT DOMTOT ;
  239. *
  240. CYLIND = _DOMTOT ELEM 'APPU' 'LARG' (_DOMTOT POIN 'SPHE' P0 P1 SMALL);
  241. ENTREE = _DOMTOT ELEM 'APPU' 'STRI' (_DOMTOT POIN 'DROI' P20 P23 SMALL);
  242. SORTIE = _DOMTOT ELEM 'APPU' 'STRI' (_DOMTOT POIN 'DROI' P11 P12 SMALL);
  243. PAROIB = _DOMTOT ELEM 'APPU' 'STRI' (_DOMTOT POIN 'DROI' P11 P20 SMALL);
  244. PAROIH = _DOMTOT ELEM 'APPU' 'STRI' (_DOMTOT POIN 'DROI' P12 P23 SMALL);
  245. PAROIS = PAROIB ET PAROIH ;
  246. *
  247. * Trace du domaine et des frontieres
  248. CYLIND = COUL 'JAUN' CYLIND ;
  249. ENTREE = COUL 'VERT' ENTREE ;
  250. SORTIE = COUL 'ROUG' SORTIE ;
  251. PAROIS = COUL 'BLEU' PAROIS ;
  252. SI GRAPH ;
  253. TRAC (DOMTOT ET CYLIND ET ENTREE ET SORTIE ET PAROIS)
  254. 'TITR' 'MAILLAGE DU DOMAINE ET CONDITIONS LIMITES' ;
  255. FINS ;
  256. *
  257. *
  258. *
  259. * +-------------------------------------------------------------------+
  260. * | |
  261. * | C A L C U L D E L ' E C O U L E M E N T |
  262. * | |
  263. * +-------------------------------------------------------------------+
  264. *
  265. * Determination automatique des parametres de l'ecoulement
  266. RHO = 1. ;
  267. MU = 1.E-5 ;
  268. NU = MU/RHO ;
  269. U0 = RE*NU/DIATUB ;
  270. *
  271. *
  272. *
  273. * *********************************************************************
  274. * C O N S E R V A T I O N D E L A Q U A N T I T E D E M V T
  275. * *********************************************************************
  276. *
  277. * Creation de la table pour EXEC
  278. RV = EQEX 'OPTI' 'EF' 'IMPL' DCENTR 'CMD' KCMD KPRES CVISQ
  279. 'ZONE' $DOMTOT 'OPER' 'NS' 'RHO' 'UN' 'MU' 'INCO' 'UN'
  280. 'OPTI' 'EFM1' 'IMPL' 'CENTREE'
  281. 'ZONE' $DOMTOT 'OPER' 'DFDT' 'RHO' 'UNM' 'DT' 'INCO' 'UN'
  282. ;
  283. *
  284. * Param\E8tres du solveur pour la vitesse
  285. RV.'NITER' = 1 ;
  286. RV.'OMEGA' = 1. ;
  287. RV.'FIDT' = 100 ;
  288. RV.'METHINV'.'TYPINV' = 1 ;
  289. RV.'METHINV'.'IMPINV' = 0 ;
  290. RV.'METHINV'.'NITMAX' = 700 ;
  291. RV.'METHINV'.'PRECOND' = 3 ;
  292. RV.'METHINV'.'ILUTLFIL' = 4 ;
  293. RV.'METHINV'.'ILUTDTOL' = 0. ;
  294. RV.'METHINV'.'RESID' = 1.E-9 ;
  295. RV.'METHINV'.'FCPRECT' = 1 ;
  296. RV.'METHINV'.'FCPRECI' = 1 ;
  297. *
  298. *
  299. *
  300. * *********************************************************************
  301. * C O N S E R V A T I O N D E L A M A S S E
  302. * *********************************************************************
  303. *
  304. RVP = 'EQEX' 'OPTI' 'EF' KPRES
  305. 'ZONE' $DOMTOT 'OPER' 'KBBT' (-1.) 'INCO' 'UN' 'PN'
  306. ;
  307. *
  308. * Param\E8tres du solveur pour la pression
  309. RVP.'METHINV'.'TYPINV' = 1 ;
  310. RVP.'METHINV'.'IMPINV' = 0 ;
  311. RVP.'METHINV'.'NITMAX' = 800 ;
  312. RVP.'METHINV'.'PRECOND' = 3 ;
  313. RVP.'METHINV'.'ILUTLFIL' = 10 ;
  314. RVP.'METHINV'.'ILUTDTOL' = 0. ;
  315. RVP.'METHINV'.'RESID' = 1.E-10 ;
  316. RVP.'METHINV'.'FCPRECT' = 1 ;
  317. RVP.'METHINV'.'FCPRECI' = 1 ;
  318. *
  319. * Traitement du couplage vitesse-pression par projection
  320. RV . 'PROJ' = RVP ;
  321. *
  322. *
  323. *
  324. * *********************************************************************
  325. * C O N D I T I O N S A U X F R O N T I E R E S
  326. * *********************************************************************
  327. *
  328. ENTREE1 = (CHAN 'POI1' ENTREE) DIFF (P20 ET P23) ;
  329. *
  330. RV = EQEX RV 'CLIM'
  331. 'UN' 'UIMP' ENTREE1 U0
  332. 'UN' 'UIMP' (PAROIS ET CYLIND) 0.
  333. 'UN' 'VIMP' (PAROIS ET CYLIND) 0.
  334. ;
  335. *
  336. *
  337. *
  338. * *********************************************************************
  339. * C O N D I T I O N S I N I T I A L E S
  340. * *********************************************************************
  341. *
  342. UN0 = MANU 'CHPO' DOMTOT 2 '1UN' 0. '2UN' 0. 'NATURE' 'DISCRET' ;
  343. PN0 = MANU 'CHPO' DOMPRE 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  344. *
  345. RV.'INCO' = TABL 'INCO' ;
  346. RV.'INCO'.'UN' = UN0 ;
  347. RV.'INCO'.'UNM' = UN0 ;
  348. RV.'INCO'.'PN' = PN0 ;
  349. RV.'INCO'.'RHO' = RHO ;
  350. RV.'INCO'.'MU' = MU ;
  351. RV.'INCO'.'DT' = DT ;
  352. *
  353. *
  354. *
  355. * *********************************************************************
  356. * S O R T I E V T K
  357. * *********************************************************************
  358. *
  359. SI (FVTK > 0) ;
  360. RV = EQEX RV 'ZONE' $DOMTOT 'OPER' 'SORT_VTK' FVTK ;
  361. FINS ;
  362. *
  363. FINS ;
  364. *
  365. DEBP SORT_VTK RX*'TABLE' ;
  366. CHP1 MAT1 = KOPS 'MATRIK' ;
  367. RV = RX.'EQEX' ;
  368. *
  369. IPDT1 = RV.'PASDETPS'.'NUPASDT' ;
  370. FPDT1 = RX.'ARG1' ;
  371. *
  372. * Sauvegardes VTK a intervalle regulier
  373. SI ((FPDT1 EGA 0) OU (NON (MULT IPDT1 FPDT1))) ;
  374. QUIT SORT_VTK ;
  375. FINS ;
  376. MESS '*****************************************************' ;
  377. MESS (CHAI 'SORTIE VTK POUR LE PAS DE TEMPS ' IPDT1 ' SUR ' NBITER);
  378. MESS '*****************************************************' ;
  379. *
  380. UN1 = RV.'INCO'.'UN' ;
  381. SI (EXIS (RV.'INCO') 'PRESSION') ;
  382. PN1 = ELNO $DOMTOT (RV.'INCO'.'PRESSION') KPRES ;
  383. SINON ;
  384. PN1 = PN0 ;
  385. FINS ;
  386. TPS1 = RV.'PASDETPS'.'TPS' ;
  387. *
  388. OPTI 'SORT' 'pod_flui_cyl/CFD' ;
  389. SORT 'VTK' DOMTOT UN1 'VITE' PN1 'PRES' 'TEMP' TPS1 ;
  390. FINP CHP1 MAT1 ;
  391. *
  392. SI RECALC ;
  393. *
  394. *
  395. *
  396. * *********************************************************************
  397. * S A U V E G A R D E D E S D O N N E E S
  398. * *********************************************************************
  399. *
  400. * SAUVEGARDE DE L'EVOLUTION DU CHAMP DE VITESSE DANS RV.'INCO'.'HIST'
  401. RV.'INCO'.'HIST' = TABL ;
  402. RV.'INCO'.'HIST'.'IDEB' = ENTI 'PROC' (TSAUV/DT) ;
  403. RV.'INCO'.'HIST'.'TPS' = PROG ;
  404. RV.'INCO'.'HIST'.'UN' = SUIT ;
  405. *
  406. * SAUVEGARDE DE L'EVOLUTION DE LA VITESSE EN UN POINT DANS RV.'HIST'
  407. PTSONDE = DOMTOT POIN 'PROCHE' ((1.3*RAYTUB) 0.) ;
  408. RV.'HIST' = KHIS 'UN' 2 (MANU 'POI1' PTSONDE) ;
  409. RV.'NISTO' = 1 ;
  410. *
  411. *
  412. *
  413. * *********************************************************************
  414. * P E R T U R B A T I O N I N I T I A L E
  415. * *********************************************************************
  416. *
  417. SI (TPERTURB > TSAUV) ;
  418. ERRE (CHAI 'INUTILE DE SAUVEGARDER DES PAS DE TEMPS OU LA '
  419. 'PERTURBATION EST ACTIVE') ;
  420. FIN ;
  421. FINS ;
  422. RV = EQEX RV 'ZONE' $DOMTOT 'OPER' 'PERTURB' TPERTURB (IPERTURB*U0) ;
  423. *
  424. FINS ;
  425. *
  426. DEBP PERTURB RX*'TABLE' ;
  427. CHP1 MAT1 = KOPS 'MATRIK' ;
  428. RV = RX.'EQEX' ;
  429. *
  430. IPDT1 = RV.'PASDETPS'.'NUPASDT' ;
  431. TPS1 = RV.'PASDETPS'.'TPS' ;
  432. DT1 = RV.'PASDETPS'.'DELTAT' ;
  433. TMAX1 = RX.'ARG1' ;
  434. AMPL1 = RX.'ARG2' ;
  435. *
  436. KPERTURB = (TMAX1 > (SMALL*DT1)) ;
  437. *
  438. * DEBUT DE LA PERTURBATION
  439. SI ((IPDT1 EGA 1) ET KPERTURB) ;
  440. UY1 = MANU 'CHPO' ENTREE1 1 '2UN' AMPL1 'NATU' 'DISCRET' ;
  441. RV.'CLIM' = RV.'CLIM' + UY1 ;
  442. MESS '**************************************************' ;
  443. MESS '* *' ;
  444. MESS '* DEBUT DE LA PERTURBATION *' ;
  445. MESS '* *' ;
  446. MESS '**************************************************' ;
  447. FINS ;
  448. *
  449. * FIN DE LA PERTURBATION
  450. SI ((TPS1 >EG TMAX1) ET KPERTURB) ;
  451. UY1 = MANU 'CHPO' ENTREE1 1 '2UN' AMPL1 'NATU' 'DISCRET' ;
  452. RV.'CLIM' = RV.'CLIM' - UY1 ;
  453. IPOS1 = POSI 'PERTURB' 'DANS' RV.'LISTOPER' ;
  454. RV.'LISTOPER' = ENLE (RV.'LISTOPER') IPOS1 ;
  455. OUBL RV (CHAI IPOS1 'PERTURB') ;
  456. MESS '**************************************************' ;
  457. MESS '* *' ;
  458. MESS '* FIN DE LA PERTURBATION *' ;
  459. MESS '* *' ;
  460. MESS '**************************************************' ;
  461. FINS ;
  462. *
  463. FINP CHP1 MAT1 ;
  464. *
  465. SI RECALC ;
  466. *
  467. *
  468. *
  469. * *********************************************************************
  470. * E X E C U T I O N
  471. * *********************************************************************
  472. *
  473. NBITER = ENTI 'SUPERIEUR' (TFINAL / DT) ;
  474. *
  475. SAUT 1 'LIGNE' ;
  476. MESS '==============================================' ;
  477. MESS (CHAI 'NOMBRE DE NOEUDS = ' (NBNO DOMTOT)) ;
  478. MESS (CHAI 'PAS DE TEMPS = ' DT ' S') ;
  479. MESS (CHAI 'TEMPS FINAL = ' TFINAL ' S') ;
  480. MESS (CHAI 'NOMBRE D'$$'ITERATIONS = ' NBITER) ;
  481. MESS (CHAI 'VITESSE EN ENTREE = ' U0 ' M/S') ;
  482. MESS (CHAI 'NOMBRE DE REYNOLDS = ' RE) ;
  483. MESS (CHAI 'PERIODE DU SILLAGE (APPROX.) = ' (5.*DIATUB/U0)) ;
  484. MESS '==============================================' ;
  485. *
  486. RV.'ITMA' = NBITER ;
  487. *
  488. EXEC RV ;
  489. *
  490. SI (NON NOSAUV) ;
  491. GRAPH1 = GRAPH ;
  492. FVTK1 = FVTK ;
  493. RECALC1 = RECALC ;
  494. NBMODES1 = NBMODES ;
  495. OUBL GRAPH ;
  496. OUBL FVTK ;
  497. OUBL RECALC ;
  498. OUBL NBMODES ;
  499. OPTI 'SAUV' 'pod_flui_cyl.xdr' ;
  500. SAUV ;
  501. GRAPH = GRAPH1 ;
  502. FVTK = FVTK1 ;
  503. RECALC = RECALC1 ;
  504. NBMODES = NBMODES1 ;
  505. FINS ;
  506. *
  507. FINS ;
  508. *
  509. *
  510. *
  511. *
  512. * +-------------------------------------------------------------------+
  513. * | |
  514. * | P O S T - T R A I T E M E N T |
  515. * | |
  516. * +-------------------------------------------------------------------+
  517. *
  518. *
  519. *
  520. * ======================================================
  521. * DETERMINATION DE LA FREQUENCE DU SILLAGE DE VON KARMAN
  522. * ======================================================
  523. *
  524. EVOL1 = RV.'HIST'.'2UN' ;
  525. LTPS1 = EXTR EVOL1 'ABSC' ;
  526. LVIT1 = EXTR EVOL1 'ORDO' ;
  527. *
  528. NVIT1 = DIME LVIT1 ;
  529. NTFR1 = ENTI 'SUPE' ((LOG NVIT1) / (LOG 2)) ;
  530. EVOL2 = EXTR (TFR NTFR1 EVOL1 'MOPH') 'COURBE' 1 ;
  531. DUMMY F_VK DUMMY = MAXI EVOL2 ;
  532. T_VK = 1./F_VK ;
  533. *
  534. LIPOD1 = MASQ RV.'INCO'.'HIST'.'TPS' 'EGSUPE' (TFINAL - T_VK) ;
  535. LIPOD1 = ENTI 'PROC' LIPOD1 ;
  536. *
  537. *
  538. *
  539. * ==========================================
  540. * GRAPHIQUE DES DIFFERENTES PHASES DU CALCUL
  541. * ==========================================
  542. *
  543. NVKSIMU = TFINAL/T_VK ;
  544. NVKFORC = TPERTURB/T_VK ;
  545. NVKSAUV = (TFINAL - TSAUV) / T_VK ;
  546. *
  547. SAUT 1 'LIGNE' ;
  548. MESS '************************************' ;
  549. MESS (CHAI 'PERIODE DU DETACHEMENT TOURBILLONNAIRE = ' T_VK ' S') ;
  550. MESS (CHAI '=> NOMBRE DE PERIODES SIMULEES = ' (@ARR NVKSIMU 2)) ;
  551. MESS (CHAI '=> NOMBRE DE PERIODES PERTURBEES = ' (@ARR NVKFORC 2)) ;
  552. MESS (CHAI '=> NOMBRE DE PERIODES ENREGISTREES = ' (@ARR NVKSAUV 2)) ;
  553. MESS '************************************' ;
  554. SAUT 1 'LIGNE' ;
  555. *
  556. *
  557. * ON VA DECOMPOSER EVOL1 EN 3 OU 4 SOUS-PARTIES :
  558. * 1) INTERVALLE OU LES DONNEES SONT SAUVEGARDEES
  559. * 2) PAS DE TEMPS RETENUS POUR CALCULER LA BASE POD
  560. * 3) INTERVALLE OU L'ECOULEMENT S'ETABLIT APRES LA PERTURBATION
  561. * 4) INTERVALLE INITIAL OU L'ECOULEMENT EST PERTURBE (OPTIONNEL)
  562. *
  563. SI GRAPH ;
  564. *
  565. NDTFORC = ENTI 'PROC' (TPERTURB / DT) ;
  566. NDTSAUV = DIME LIPOD1 ;
  567. NDTSNAP = SOMM LIPOD1 ;
  568. *
  569. EVTOT = VIDE 'EVOLUTIO' ;
  570. TAB1 = TABL ;
  571. TAB1 . 'TITRE' = TABL ;
  572. TAB1 . 'INITIAL' = TABL ;
  573. TAB1 . 'FINAL' = TABL ;
  574. *
  575. * SAUVEGARDES
  576. EVTOT = EVTOT ET (COUL 'ROUG' EVOL1) ;
  577. TAB1 . 1 = MOT 'MARQ ROND NOLI' ;
  578. TAB1 . 'TITRE' . 1 = MOT 'SAUVEGARDES' ;
  579. TAB1 . 'INITIAL' . 1 = NBITER - NDTSAUV + 1 ;
  580. *
  581. * SNAPSHOTS
  582. EVTOT = EVTOT ET (COUL 'VERT' EVOL1) ;
  583. TAB1 . 2 = MOT 'MARQ CROI NOLI' ;
  584. TAB1 . 'TITRE' . 2 = MOT 'SNAPSHOTS' ;
  585. TAB1 . 'INITIAL' . 2 = NBITER - NDTSNAP + 1 ;
  586. *
  587. * APRES PERTURBATION
  588. EVTOT = EVTOT ET (COUL 'BLAN' EVOL1) ;
  589. TAB1 . 'TITRE' . 3 = MOT 'PAS DE LEGENDE' ;
  590. TAB1 . 'INITIAL' . 3 = NDTFORC ;
  591. *
  592. * AVANT PERTURBATION
  593. SI (NDTFORC > 0) ;
  594. EVTOT = EVTOT ET (COUL 'JAUN' EVOL1) ;
  595. TAB1 . 4 = MOT 'TIRR' ;
  596. TAB1 . 'TITRE' . 4 = MOT 'PERTURBATION' ;
  597. TAB1 . 'FINAL' . 4 = NDTFORC ;
  598. FINS ;
  599. *
  600. *
  601. DESS EVTOT
  602. 'TITR' (CHAI 'VITESSE EN AVAL DU CYLINDRE '
  603. '(PERIODE = ' (@ARR T_VK 3) ' S)')
  604. 'TITX' 'TEMPS (S)'
  605. 'TITY' 'VITESSE (M/S)'
  606. 'POSY' 'EXCE'
  607. 'GRIL' 'GRIS'
  608. 'LEGE' TAB1 ;
  609. FINS ;
  610. *
  611. *
  612. *
  613. * ====================
  614. * CALCUL DES MODES POD
  615. * ====================
  616. *
  617. LMO1 = MOTS '1UN' '2UN' ;
  618. OPTI 'INCO' LMO1 LMO1 ;
  619. *
  620. * LVITE1/LTEMP1 => tous les pas de temps sauvegardes
  621. LVITE1 = RV.'INCO'.'HIST'.'UN' ;
  622. LTEMP1 = RV.'INCO'.'HIST'.'TPS' ;
  623. *
  624. * ON ENLEVE LA VALEUR MOYENNE
  625. NBTPS1 = DIME LTEMP1 ;
  626. CHPTOT = VIDE 'CHPOINT' ;
  627. REPE KK NBTPS1 ;
  628. CHPTOT = CHPTOT + (EXTR LVITE1 &KK) ;
  629. FIN KK ;
  630. CHPTOT = CHPTOT * (1./NBTPS1) ;
  631. REPE KK NBTPS1 ;
  632. CHPO1 = (EXTR LVITE1 &KK) - CHPTOT ;
  633. REMP LVITE1 &KK CHPO1 ;
  634. FIN KK ;
  635. *
  636. * LSNAP1/LTEMP2 => les pas de temps pour la POD (derniere periode slt.)
  637. LENTI1 = POSI 1 'DANS' LIPOD1 'TOUS' ;
  638. LSNAP1 = EXTR LVITE1 LENTI1 ;
  639. LTEMP2 = EXTR LTEMP1 LENTI1 ;
  640. *
  641. *
  642. * CREATION D'UNE MATRICE MASSE CONSISTENTE
  643. * A = ININLIN 1 1 0 0 2 ;
  644. * A . 'VAR' . 1 . 'NOMDDL' = MOTS '1UN' ;
  645. * A . 'VAR' . 1 . 'DISC' = 'QUAF' ;
  646. * A . 1 . 1 . 0 = 'LECT' ;
  647. * B = ININLIN 1 1 0 0 2 ;
  648. * B . 'VAR' . 1 . 'NOMDDL' = MOTS '1UN' ;
  649. * B . 'VAR' . 1 . 'DISC' = 'QUAF' ;
  650. * B . 1 . 1 . 0 = 'LECT' ;
  651. * RIG1A = NLIN 'QUAF' DOMTOT A B 'GAU4' ;
  652. * A . 'VAR' . 1 . 'NOMDDL' = MOTS '2UN' ;
  653. * B . 'VAR' . 1 . 'NOMDDL' = MOTS '2UN' ;
  654. * RIG1B = NLIN 'QUAF' DOMTOT A B 'GAU4' ;
  655. * MASS1 = RIG1A ET RIG1B ;
  656. * MASS1 = CHAN MASS1 'INCO' LMO1 LMO1 LMO1 LMO1 'SYME' ;
  657. *
  658. * CREATION D'UNE MATRICE MASSE DIAGONALE
  659. CHPO1 = DOMA $DOMTOT 'XXDIAGSI' ;
  660. MASS1 = MANU 'RIGI' 'DIAG' ((NOMC CHPO1 '1UN') + (NOMC CHPO1 '2UN')) ;
  661. *
  662. * CALCUL DE LA BASE AVEC DIFFERENTES METHODES
  663. TPOD1 = POD LSNAP1 'SNAPSHOTS' MASS1 NBMODES 'TBAS' ;
  664. TPOD2 = POD LSNAP1 'CLASSIQUE' MASS1 NBMODES 'TBAS' ;
  665. TPOD3 = POD LSNAP1 'SNAPSHOTS' NBMODES 'TBAS' ;
  666. TPOD4 = POD LSNAP1 'CLASSIQUE' NBMODES 'TBAS' ;
  667. *
  668. * NORMALISATION EUCLIDIENNE
  669. TPOD1 = NNOR 'EUCL' TPOD1 MASS1 ;
  670. TPOD2 = NNOR 'EUCL' TPOD2 MASS1 ;
  671. TPOD3 = NNOR 'EUCL' TPOD3 ;
  672. TPOD4 = NNOR 'EUCL' TPOD4 ;
  673. *
  674. *
  675. *
  676. * ==========================================
  677. * VISUALISATION DES MODES ET VALEURS PROPRES
  678. * ==========================================
  679. *
  680. ************************************************************************
  681. * TAB2LIST = EXTRAIT DE LA TABLE TAB1 DE SOUS-TYPE 'BASE_MODALE' LE
  682. * LISTCHPO DES NB1 PREMIERS VECTEURS PROPRES ET LE LISTREEL
  683. * DES NB1 PREMIERES VALEURS PROPRES
  684. DEBP TAB2LIST TAB1*'TABLE' NB1*'ENTIER' ;
  685. LVEC1 = SUIT ;
  686. LVAL1 = PROG ;
  687. REPE K NB1 ;
  688. VEC1 = TAB1.'MODES'.&K.'DEFORMEE_MODALE' ;
  689. VAL1 = (2.*PI*TAB1.'MODES'.&K.'FREQUENCE') ** 2 ;
  690. LVEC1 = LVEC1 ET VEC1 ;
  691. LVAL1 = LVAL1 ET VAL1 ;
  692. FIN K ;
  693. FINP LVEC1 LVAL1 ;
  694. ************************************************************************
  695. *
  696. LMOD1 LAMB1 = TAB2LIST TPOD1 NBMODES ;
  697. LMOD2 LAMB2 = TAB2LIST TPOD2 NBMODES ;
  698. LMOD3 LAMB3 = TAB2LIST TPOD3 NBMODES ;
  699. LMOD4 LAMB4 = TAB2LIST TPOD4 NBMODES ;
  700. *
  701. SAUT 1 'LIGNE' ;
  702. MESS '************************************' ;
  703. MESS 'POD "SNAPSHOTS" MATR1' ; LIST LAMB1 ;
  704. MESS ' ' ;
  705. MESS 'POD "CLASSIQUE" MATR1' ; LIST LAMB2 ;
  706. MESS ' ' ;
  707. MESS 'POD "SNAPSHOTS"' ; LIST LAMB3 ;
  708. MESS ' ' ;
  709. MESS 'POD "CLASSIQUE"' ; LIST LAMB4 ;
  710. MESS ' ' ;
  711. MESS '************************************' ;
  712. SAUT 1 'LIGNE' ;
  713. *
  714. *
  715. SI GRAPH ;
  716. THIST = TABL ;
  717. THIST.'NOMS' = TABL ;
  718. REPE K NBMODES ;
  719. THIST.'NOMS'.&K = &K ;
  720. FIN K ;
  721. *
  722. EV1 TA1 = @HISTOGR LAMB1 THIST VRAI ;
  723. EV2 TA2 = @HISTOGR LAMB3 THIST VRAI ;
  724. *
  725. YMIN1 = MINI LAMB1 ;
  726. YMAX1 = MAXI LAMB1 ;
  727. DESS EV1 'TITR' (CHAI 'VALEURS PROPRES : POD AVEC MATRICE')
  728. 'TITX' ' ' 'TITY' 'VALEUR PROPRE'
  729. 'LOGY' 'YBOR' YMIN1 YMAX1 'XBOR' 0. NBMODES 'XGRA' NBMODES
  730. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'GRIS' TA1 ;
  731. *
  732. YMIN2 = MINI LAMB3 ;
  733. YMAX2 = MAXI LAMB3 ;
  734. DESS EV2 'TITR' (CHAI 'VALEURS PROPRES : POD SANS MATRICE')
  735. 'TITX' ' ' 'TITY' 'VALEUR PROPRE'
  736. 'LOGY' 'YBOR' YMIN2 YMAX2 'XBOR' 0. NBMODES 'XGRA' NBMODES
  737. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'GRIS' TA2 ;
  738. FINS ;
  739. *
  740. *
  741. ************************************************************************
  742. * VISU_POD = AFFICHAGE GRAPHIQUE DES MODES POD FLUIDES
  743. DEBP VISU_POD MOT1*'MOT' LCHP1*'LISTCHPO' LFLO1*'LISTREEL' ;
  744. REPE BLOC1 NBMODES ;
  745. LAM1 = EXTR LFLO1 &BLOC1 ;
  746. TRAC DOMTOT (EXTR LCHP1 &BLOC1)
  747. 'TITR' (CHAI MOT1 ' MODE NUMERO ' &BLOC1
  748. ' / VAL. PROPRE = ' LAM1) ;
  749. FIN BLOC1 ;
  750. FINP ;
  751. ************************************************************************
  752. *
  753. SI GRAPH ;
  754. VISU_POD '"SNAPSHOTS" MASS1' LMOD1 LAMB1 ;
  755. VISU_POD '"CLASSIQUE" MASS1' LMOD2 LAMB2 ;
  756. VISU_POD '"SNAPSHOTS" ' LMOD3 LAMB3 ;
  757. VISU_POD '"SNAPSHOTS" ' LMOD4 LAMB4 ;
  758. FINS ;
  759. *
  760. *
  761. *
  762. * ================================
  763. * VERIFICATION DE L'ORTHONORMALITE
  764. * ================================
  765. *
  766. ************************************************************************
  767. * TESTBAS1 = AFFICHE LES PRODUITS SCALAIRES (AVEC OU SANS MATRICE MATR1)
  768. * ENTRE LES VECTEURS DE BASE LVEC1 PRIS DEUX A DEUX
  769. DEBP TESTBAS1 LVEC1*'LISTCHPO' RIGI1/'RIGIDITE' MTIT1*'MOT' ;
  770. ZRIGI1 = EXIS RIGI1 ;
  771. SI (NON ZRIGI1) ;
  772. COMP1 = EXTR (EXTR LVEC1 1) 'COMP' ;
  773. FINS ;
  774. LPS1 = PROG ;
  775. NVEC1 = DIME LVEC1 ;
  776. REPE I NVEC1 ;
  777. VEC1 = EXTR LVEC1 &I ;
  778. REPE J NVEC1 ;
  779. VEC2 = EXTR LVEC1 &J ;
  780. SI ZRIGI1 ;
  781. XPS1 = YTMX RIGI1 VEC1 VEC2 ;
  782. SINON ;
  783. XPS1 = XTY VEC1 VEC2 COMP1 COMP1 ;
  784. FINS ;
  785. LPS1 = LPS1 ET XPS1 ;
  786. FIN J ;
  787. FIN I ;
  788. *
  789. MTIT2 = CHAI 'VERIFICATION DE L' $$ 'ORTHOGONALITE DES MODES : ' ;
  790. TABLO2D NVEC1 NVEC1 LPS1 (CHAI MTIT2 MTIT1) ;
  791. * TABLO3D NVEC1 NVEC1 LPS1 MTIT1 ;
  792. FINP ;
  793. ************************************************************************
  794. *
  795. * EN THEORIE : (PHI_i,PHI_j)=d_ij
  796. SI GRAPH ;
  797. TESTBAS1 LMOD1 MASS1 'POD "SNAPSHOTS" MASS1' ;
  798. TESTBAS1 LMOD2 MASS1 'POD "CLASSIQUE" MASS1' ;
  799. TESTBAS1 LMOD3 'POD "SNAPSHOTS"' ;
  800. TESTBAS1 LMOD4 'POD "CLASSIQUE"' ;
  801. FINS ;
  802. *
  803. *
  804. *
  805. * =============================================
  806. * VERIFICATION DE LA NON-CORRELATION TEMPORELLE
  807. * =============================================
  808. *
  809. ************************************************************************
  810. * TESTBAS2 = AFFICHE LE COEFFICIENT DE CORRELATION ENTRE LES EVOLUTIONS
  811. * TEMPORELLES DES COEFFICIENTS DE PROJECTION PRIS DEUX A DEUX
  812. DEBP TESTBAS2 TBAS1*'TABLE' RIGI1/'RIGIDITE' ZERO1*'FLOTTANT'
  813. MTIT1*'MOT' ;
  814. SI (EXIS RIGI1) ;
  815. EVTOT1 = EVOL 'PJBA' LVITE1 LTEMP1 TBAS1 RIGI1 ;
  816. SINON ;
  817. EVTOT1 = EVOL 'PJBA' LVITE1 LTEMP1 TBAS1 ;
  818. FINS ;
  819. LPS1 = PROG ;
  820. NMOD1 = DIME EVTOT1 ;
  821. NTPS1 = DIME LTEMP1 ;
  822. TEMP1 = (EXTR LTEMP1 NTPS1) - (EXTR LTEMP1 1) ;
  823. REPE I NMOD1 ;
  824. COEF1 = EXTR EVTOT1 'COUR' &I ;
  825. REPE J NMOD1 ;
  826. COEF2 = EXTR EVTOT1 'COUR' &J ;
  827. COR12 = (INTG (COEF1 * COEF2)) / TEMP1 prog ;
  828. LPS1 = LPS1 ET COR12 ;
  829. FIN J ;
  830. FIN I ;
  831. *
  832. MTIT2 = CHAI 'VERIFICATION DE LA NON CORRELATION DES MODES : ' ;
  833. * TABLO2D 'LOGA' NMOD1 NMOD1 LPS1 (CHAI MTIT2 MTIT1) ;
  834. TABLO3D 'LOGA' ZERO1 NMOD1 NMOD1 LPS1 (CHAI MTIT2 MTIT1) ;
  835. FINP LPS1 ;
  836. ************************************************************************
  837. *
  838. * EN THEORIE (POUR LA POD) : moyt(ALPHA_i(t)*ALPHA_j(t))=d_ij*lambda_i
  839. SI GRAPH ;
  840. TESTBAS2 TPOD1 MASS1 (MINI LAMB1) 'POD "SNAPSHOTS" MASS1' ;
  841. TESTBAS2 TPOD2 MASS1 (MINI LAMB2) 'POD "CLASSIQUE" MASS1' ;
  842. TESTBAS2 TPOD3 (MINI LAMB3) 'POD "SNAPSHOTS"' ;
  843. TESTBAS2 TPOD4 (MINI LAMB4) 'POD "CLASSIQUE"' ;
  844. FINS ;
  845. *
  846. *
  847. *
  848. * ==========================================================
  849. * RECONSTRUCTION DE LA VITESSE AVAL SUR LES N PREMIERS MODES
  850. * ==========================================================
  851. *
  852. PJBPOD1 = PJBA LVITE1 TPOD1 MASS1 ;
  853. PJBPOD2 = PJBA LVITE1 TPOD2 MASS1 ;
  854. PJBPOD3 = PJBA LVITE1 TPOD3 ;
  855. PJBPOD4 = PJBA LVITE1 TPOD4 ;
  856. *
  857. SI GRAPH ;
  858. TLEG4 = TABL ;
  859. TLEG4.'TITRE' = TABL ;
  860. TLEG4 . 3 = 'TIRR' ;
  861. TLEG4 . 5 = 'TIRR' ;
  862. TLEG4.'TITRE' . 1 = MOT 'Simulation' ;
  863. TLEG4.'TITRE' . 2 = MOT 'POD "SNAPSHOTS" MASS1' ;
  864. TLEG4.'TITRE' . 3 = MOT 'POD "CLASSIQUE" MASS1' ;
  865. TLEG4.'TITRE' . 4 = MOT 'POD "SNAPSHOTS"' ;
  866. TLEG4.'TITRE' . 5 = MOT 'POD "CLASSIQUE"' ;
  867. *
  868. PT1 = P4 ;
  869. *
  870. EV1 = EVOL 'BLAN' 'TEMP' LVITE1 LTEMP1 '2UN' PT1 ;
  871. REPE II NBMODES ;
  872. EV2 = EVOL 'ROUG' 'RECO' PJBPOD1 LTEMP1 TPOD1 &II '2UN' PT1 ;
  873. EV3 = EVOL 'ORAN' 'RECO' PJBPOD2 LTEMP1 TPOD2 &II '2UN' PT1 ;
  874. EV4 = EVOL 'VERT' 'RECO' PJBPOD3 LTEMP1 TPOD3 &II '2UN' PT1 ;
  875. EV5 = EVOL 'OCEA' 'RECO' PJBPOD4 LTEMP1 TPOD4 &II '2UN' PT1 ;
  876. *
  877. DESS (EV1 ET EV2 ET EV3 ET EV4 ET EV5)
  878. 'TITR' (CHAI 'RECONSTRUCTION SUR ' &II ' MODE(S)')
  879. 'TITX' 'TEMPS (S)'
  880. 'TITY' 'Uy AVAL (M/S)'
  881. 'POSX' 'EXCE'
  882. 'POSY' 'EXCE'
  883. 'LEGE' TLEG4 ;
  884. FIN II ;
  885. FINS ;
  886. *
  887. *
  888. *
  889. * ==============================================================
  890. * RECONSTRUCTION DE L'ENERGIE CINETIQUE SUR LES N PREMIERS MODES
  891. * ==============================================================
  892. *
  893. NMOD1 = NBMODES + 1 ;
  894. NBAR1 = (NMOD1*4) + 1 ;
  895. LHIS1 = PROG NBAR1*0. ;
  896. NBAR2 = (3*NBMODES) + 1 ;
  897. LHIS2 = PROG NBAR2*0. ;
  898. *
  899. REPE II NBMODES ;
  900. LPOD1 = RECO PJBPOD1 TPOD1 &II ;
  901. LPOD2 = RECO PJBPOD2 TPOD2 &II ;
  902. LPOD3 = RECO PJBPOD3 TPOD3 &II ;
  903. LPOD4 = RECO PJBPOD4 TPOD4 &II ;
  904. *
  905. * CALCUL DE L'ENERGIE EN FONCTION DU TEMPS
  906. LXVIT1 LXPOD1 LXPOD2 LXPOD3 LXPOD4 = VIDE 'LISTREEL'*5 ;
  907. REPE IT NBTPS1 ;
  908. VIT1 = EXTR LVITE1 &IT ;
  909. POD1 = EXTR LPOD1 &IT ;
  910. POD2 = EXTR LPOD2 &IT ;
  911. POD3 = EXTR LPOD3 &IT ;
  912. POD4 = EXTR LPOD4 &IT ;
  913. *
  914. XVIT1 = 0.5*(XTMX VIT1 MASS1) ;
  915. XPOD1 = 0.5*(XTMX POD1 MASS1) ;
  916. XPOD2 = 0.5*(XTMX POD2 MASS1) ;
  917. XPOD3 = 0.5*(XTMX POD3 MASS1) ;
  918. XPOD4 = 0.5*(XTMX POD4 MASS1) ;
  919. *
  920. LXVIT1 = LXVIT1 ET XVIT1 ;
  921. LXPOD1 = LXPOD1 ET XPOD1 ;
  922. LXPOD2 = LXPOD2 ET XPOD2 ;
  923. LXPOD3 = LXPOD3 ET XPOD3 ;
  924. LXPOD4 = LXPOD4 ET XPOD4 ;
  925. FIN IT ;
  926. *
  927. EVIT1 = EVOL 'BLAN' 'MANU' LTEMP1 LXVIT1 ;
  928. EPOD1 = EVOL 'ROUG' 'MANU' LTEMP1 LXPOD1 ;
  929. EPOD2 = EVOL 'ORAN' 'MANU' LTEMP1 LXPOD2 ;
  930. EPOD3 = EVOL 'VERT' 'MANU' LTEMP1 LXPOD3 ;
  931. EPOD4 = EVOL 'OCEA' 'MANU' LTEMP1 LXPOD4 ;
  932. *
  933. SI GRAPH ;
  934. DESS (EVIT1 ET EPOD1 ET EPOD2 ET EPOD3 ET EPOD4)
  935. 'TITR' (CHAI 'RECONSTRUCTION SUR ' &II ' MODE(S)')
  936. 'TITX' 'TEMPS (S)'
  937. 'TITY' 'ENERGIE CINET. (J)'
  938. 'POSX' 'EXCE'
  939. 'POSY' 'EXCE'
  940. 'LEGE' TLEG4 ;
  941. FINS ;
  942. *
  943. * INTEGRATION TEMPORELLE ET MISE A JOUR DES HISTOGRAMMES
  944. XVIT1 = (INTG EVIT1) ;
  945. XPOD1 = ((INTG EPOD1) ) / XVIT1 * 100 ;
  946. XPOD2 = ((INTG EPOD2) ) / XVIT1 * 100 ;
  947. XPOD3 = ((INTG EPOD3) ) / XVIT1 * 100 ;
  948. XPOD4 = ((INTG EPOD4) ) / XVIT1 * 100 ;
  949.  
  950. REMP LHIS1 ( 1+&II) XPOD1 ;
  951. REMP LHIS1 ( NMOD1+1+&II) XPOD2 ;
  952. REMP LHIS1 (2*NMOD1+1+&II) XPOD3 ;
  953. REMP LHIS1 (3*NMOD1+1+&II) XPOD4 ;
  954.  
  955. REMP LHIS2 ((&II - 1)*3 + 2) XPOD3 ;
  956. REMP LHIS2 ((&II - 1)*3 + 3) XPOD1 ;
  957. FIN II ;
  958. *
  959. *
  960. *
  961. * ======================
  962. * ENERGIE TOTALE CUMULEE
  963. * ======================
  964. *
  965. *
  966. SI GRAPH ;
  967. *
  968. * GRAPHIQUE 1
  969. * ***********
  970. *
  971. TNOM1 = TABL ;
  972. TNOM1 . ( NMOD1) = MOT 'POD SNAP RIG' ;
  973. TNOM1 . (2*NMOD1) = MOT 'POD CLAS RIG' ;
  974. TNOM1 . (3*NMOD1) = MOT 'POD SNAP' ;
  975. TNOM1 . (4*NMOD1) = MOT 'POD CLAS' ;
  976. *
  977. THIS1 = TABL ;
  978. THIS1.'COUL' = MOTS NMOD1*'ROUG' NMOD1*'ORAN'
  979. NMOD1*'VERT' NMOD1*'OCEA' ;
  980. THIS1.'LARG' = PROG NBAR1*1. ;
  981. THIS1.'ESPA' = 0. ;
  982. THIS1.'NOMS' = TNOM1 ;
  983. *
  984. EVOL1 TABL1 = @HISTOGR LHIS1 THIS1 VRAI ;
  985. OUBL TABL1 1 ;
  986. *
  987. EVMAX = EVOL 'GRIS' 'MANU' (PROG 0. NBAR1) (PROG 100. 100.) ;
  988. *
  989. DESS (EVMAX ET EVOL1) TABL1
  990. 'TITR' (CHAI 'ENERGIE DU SIGNAL RECONSTRUIT EN FONCTION DU '
  991. 'NOMBRE DE MODES RETENUS')
  992. 'TITY' 'ENERGIE (%)'
  993. 'YBOR' 0. 150. 'XBOR' 0. NBAR1 'XGRA' NBAR1 'YGRA' 10.
  994. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' ;
  995. *
  996. *
  997. * GRAPHIQUE 2
  998. * ***********
  999. *
  1000. TNOM2 = TABL ;
  1001. REPE KK NBMODES ;
  1002. K1 = (&KK - 1) * 3 ;
  1003. TNOM2.(K1 + 2) = &KK ;
  1004. TNOM2.(K1 + 3) = &KK ;
  1005. FIN KK ;
  1006. *
  1007. THIS2 = TABL ;
  1008. THIS2.'COUL' = MOTS 'BLAN' 'OLIV' 'ROUG' ;
  1009. THIS2.'LARG' = PROG NBAR2*1. ;
  1010. THIS2.'ESPA' = 0. ;
  1011. THIS2.'NOMS' = TNOM2 ;
  1012. *
  1013. EVOL2 TABL2 = @HISTOGR LHIS2 THIS2 VRAI ;
  1014. *
  1015. TABL2.'TITRE' = TABL ;
  1016. TABL2.'TITRE' . 2 = MOT 'POD (SANS MATRICE)' ;
  1017. TABL2.'TITRE' . 3 = MOT 'POD (AVEC MATRICE)' ;
  1018. REPE KK NBAR2 ;
  1019. SI ((&KK >EG 2) ET (&KK &lt;EG 3)) ;
  1020. ITER KK ;
  1021. FINS ;
  1022. TABL2.'TITRE'.&KK = MOT 'PAS DE LEGENDE' ;
  1023. FIN KK ;
  1024. *
  1025. DESS EVOL2
  1026. 'TITR' (CHAI 'ENERGIE DU SIGNAL RECONSTRUIT EN FONCTION DU '
  1027. 'NOMBRE DE MODES RETENUS')
  1028. 'TITY' 'ENERGIE (%)'
  1029. 'YBOR' 0. 100. 'XBOR' 0. NBAR2 'XGRA' NBAR2 'YGRA' 10.
  1030. 'POSX' 'EXCE' 'POSY' 'EXCE' 'GRIL' 'TIRR' 'GRIS' 'LEGE' TABL2 ;
  1031. *
  1032. FINS ;
  1033. *
  1034. *
  1035. XNRJPOD1 = EXTR LHIS2 (NBAR2 - 2) ;
  1036. XNRJPOD2 = EXTR LHIS2 (NBAR2 - 1) ;
  1037. SAUT 1 'LIGNE' ;
  1038. MESS '************************************' ;
  1039. MESS 'LE SIGNAL RECONSTRUIT SUR ' NBMODES ' MODES CONTIENT :' ;
  1040. MESS ' ' (@ARR XNRJPOD1 2) '% DE L' $$ 'ENERGIE AVEC POD' ;
  1041. MESS ' ' (@ARR XNRJPOD2 2) '% DE L' $$ 'ENERGIE AVEC POD MATR' ;
  1042. MESS '************************************' ;
  1043. SAUT 1 'LIGNE' ;
  1044. *
  1045. *
  1046. OPTI 'ECHO' 1 ;
  1047. *
  1048. *
  1049. *
  1050. *
  1051. * +-------------------------------------------------------------------+
  1052. * | |
  1053. * | T E S T S D E V A L I D A T I O N |
  1054. * | |
  1055. * +-------------------------------------------------------------------+
  1056. *
  1057. * 1) POD "SNAPSHOTS" ET "CLASSIQUE" DOIVENT DONNER LES MEMES RESULTATS
  1058. SI (NEG (SOMM LAMB1) (SOMM LAMB2) 1.E-10) ;
  1059. ERRE 5 ;
  1060. FINS ;
  1061. SI (NEG (SOMM LAMB3) (SOMM LAMB4) 1.E-10) ;
  1062. ERRE 5 ;
  1063. FINS ;
  1064. *
  1065. * 2) LA RECONSTRUCTION POD SUR 10 MODES DOIT CONTENIR AU MOINS 98% DE
  1066. * L'ENERGIE
  1067. SI (XNRJPOD2 < 98.) ;
  1068. ERRE 5 ;
  1069. FINS ;
  1070. *
  1071. *
  1072. *
  1073. FIN ;
  1074. *
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  

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