Télécharger pod_flui_cyl.dgibi

Retour à la liste

Numérotation des lignes :

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

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