Télécharger dy_dev10.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dy_dev10.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ******************************************************************
  5. *
  6. * Cas-Test de la liaison palier de l'operateur DYNE
  7. *
  8. * Arbre rigide L=1m sur 2 paliers cylindriques
  9. * Chargement statique des paliers Fz = 1000 N
  10. *
  11. * Auteur : Inconnu
  12. * Modifs : - JK, ajout resolution par dyne ou pasapas avec table pasapas
  13. * et modele modal
  14. * : - BP, 2015-01-23: on teste les 3 syntaxes
  15. *
  16. ******************************************************************
  17. *
  18. GRAPH = FAUX;
  19. * GRAPH = VRAI; OPTI TRAC PSC POTR HELVETICA_16 EPTR 6;
  20.  
  21. * FLCOUR=VRAI pour utiliser le modele de palier_court (sinon rodeli)
  22. * FLCOUR = vrai;
  23. FLCOUR = faux;
  24.  
  25. * FLPAP=VRAI pour utiliser pasapas
  26. FLPAP = vrai et (non FLCOUR);
  27. * FLPAP = faux;
  28. *bp : le calcul dans DYNE avec une table pasapas fonctionne,
  29. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  30.  
  31. * COMPLET=VRAI pour atteindre l'etat stationnaire
  32. * COMPLET = VRAI;
  33. COMPLET = FAUX;
  34.  
  35. OPTI 'DIME' 3 'ELEM' SEG2 echo 1;
  36. *
  37. * caracteristiques des paliers (identiques)
  38. OMEGHZ = 100. ;
  39. xjeu = 1.E-4;
  40. Wcharg = 1000.;
  41. Lpal = 0.01;
  42. Ra1= 0.02 ;
  43. rhopal = 960.;
  44. mupal = 0.2;
  45.  
  46. * nombre de pas, dt , nbre de sortie, de modes, ...
  47. si (COMPLET); NPas1 = 9600 ;
  48. sinon; NPas1 = 4800 ;
  49. finsi;
  50. PTps1 = 6.25e-5/30. ;
  51. NSor1 = 30 ;
  52. NbMod1 = 6 ;
  53. *
  54. E1 = 2.e+15 ;
  55. Rho1 = 7800. ;
  56. Nu1 = 0.3 ;
  57. *
  58. P0 = 0. 0. 0. ;
  59. P1 = 0.5 0. 0. ;
  60. P2 = 1. 0. 0. ;
  61. *
  62. El1 = DROI P0 P1 1 ;
  63. El2 = DROI P1 P2 1 ;
  64. Mail1 = El1 ET El2 ;
  65. *
  66. Modl1 = MODE Mail1 'MECANIQUE' 'TUYA' ;
  67. *
  68. Cara1 = CARA Modl1 'RAYO' Ra1 'EPAI' Ra1 ;
  69. *
  70. Mate1 = MATE Modl1 'YOUNG' E1 'NU' Nu1 'RHO' Rho1 ;
  71. *
  72. Blo1 = BLOQ 'UX' 'RX' 'RY' 'RZ' Mail1 ;
  73. *
  74. MMass1 = MASS Modl1 (Cara1 ET Mate1) ;
  75. MRigi1 = RIGI Modl1 (Cara1 ET Mate1) ;
  76. *
  77. TBasR1 = VIBR 'SIMU' 10. NbMod1 (MRigi1 ET Blo1) MMass1 ;
  78. TBasR1.MODES = NNOR TBasR1.MODES 'AVEC' (MOTS 'UY' 'UZ') ;
  79.  
  80. *
  81. * Creation de la table des CONDITIONS INITIALES
  82. ************************************************
  83. TInit1 = TABLE 'INITIAL' ;
  84. *
  85. UY0 = 0. ;
  86. UZ0 = -0.0001e-3 ;
  87. Dep0 = MANU 'CHPO' Mail1 2 'UY' UY0 'UZ' UZ0 NATURE DIFFUS ;
  88. *
  89. REPE bb1 NbMod1 ;
  90. i1 = &bb1 ;
  91. Def1 = TBasR1 . 'MODES' . i1 . 'DEFORMEE_MODALE' ;
  92. M_G1 = TBasR1 . 'MODES' . i1 . 'MASSE_GENERALISEE' ;
  93. P_R1 = TBasR1 . 'MODES' . i1 . 'POINT_REPERE' ;
  94. qi1 = (YTMX Def1 MMass1 Dep0) / M_G1 ;
  95. *bp, 2017-10-03 : on interdit dans MATE les frequences<0
  96. *--> petit ajustement :
  97. si (TBasR1 . 'MODES' . i1 . 'FREQUENCE' < 0.);
  98. TBasR1 . 'MODES' . i1 . 'FREQUENCE' = 0.;
  99. finsi;
  100. f_r1 = TBasR1 . 'MODES' . i1 . 'FREQUENCE';
  101. mai4 = manu poi1 p_r1 ;
  102. mo_mod4 = modele mai4 mecanique elastique modal ;
  103. ca_mod4 = mate mo_mod4 freq f_r1 mass m_g1 defo Def1;
  104. SI (EGA i1 1) ;
  105. TInit1.'DEPLACEMENT' = MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS ;
  106. TInit1.'VITESSE' = MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS ;
  107. mo_1 = mo_mod4 ; ca_1 = ca_mod4 ;
  108. SINON ;
  109. TInit1.'DEPLACEMENT' = TInit1.'DEPLACEMENT' ET
  110. (MANU 'CHPO' P_R1 1 'ALFA' qi1 NATURE DIFFUS) ;
  111. TInit1.'VITESSE' = TInit1.'VITESSE' ET
  112. (MANU 'CHPO' P_R1 1 'ALFA' 0. NATURE DIFFUS) ;
  113. mo_1 = mo_1 et mo_mod4 ; ca_1 = ca_1 et ca_mod4 ;
  114. FINSI ;
  115. FIN bb1 ;
  116. *
  117. * Creation de la table des LIAISONS (paliers)
  118. **********************************************
  119. *
  120. TLiai1 = TABLE 'LIAISON' ;
  121. TLiai1 . LIAISON_B = TABLE 'LIAISON_B' ;
  122. PAL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
  123. PAL1 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  124. PAL1 . POINT_SUPPORT = P0 ;
  125. PAL1 . LONGUEUR_PALIER = Lpal ;
  126. PAL1 . RAYON_ARBRE = Ra1 ;
  127. PAL1 . VISCOSITE_FLUIDE = mupal ;
  128. PAL1 . RHO_FLUIDE = rhopal ;
  129. PAL1 . PRESSION_ADMISSION = 0. ;
  130. PAL1 . VITESSE_ROTATION = 2 * pi * OMEGHZ;
  131. PAL1 . EPSI = 0.;
  132. PAL1 . PHII = 0. ;
  133. si (FLCOUR);
  134. PAL1 . MODELE_PALIER = 'PALIER_COURT' ;
  135. PAL1 . JEU_USINAGE = xjeu ;
  136. sinon;
  137. PAL1 . MODELE_PALIER = 'RODELI' ;
  138. PAL1 . AFFICHAGE = 0 ;
  139. PAL1 . GEOMETRIE_PALIER = TABLE ;
  140. PAL1 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  141. PAL1 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  142. PAL1 . GEOMETRIE_PALIER . 1 = TABLE ;
  143. PAL1 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  144. PAL1 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  145. PAL1 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  146. PAL1 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  147. PAL1 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  148. PAL1 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  149. PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  150. * PAL1 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  151. finsi;
  152. *
  153. si (FLPAP);
  154. maifl1 = manu poi1 p0 ;
  155. mpafl1 = modele maifl1 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  156. tfl1 = table ; tfl1 . mpafl1 = vrai ;
  157. cpafl1 = mate mpafl1 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  158. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  159. 'TLOB' PAL1 . GEOMETRIE_PALIER 'SORT' tfl1 ;
  160. finsi;
  161. *
  162. PAL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
  163. PAL2 . TYPE_LIAISON = 'PALIER_FLUIDE' ;
  164. PAL2 . POINT_SUPPORT = P2 ;
  165. PAL2 . LONGUEUR_PALIER = Lpal ;
  166. PAL2 . RAYON_ARBRE = Ra1 ;
  167. PAL2 . VISCOSITE_FLUIDE = mupal ;
  168. PAL2 . RHO_FLUIDE = rhopal ;
  169. PAL2 . PRESSION_ADMISSION = 0. ;
  170. PAL2 . VITESSE_ROTATION = 2 * pi * OMEGHZ ;
  171. PAL2 . EPSI = 0.;
  172. PAL2 . PHII = 0. ;
  173. si (FLCOUR);
  174. PAL2 . MODELE_PALIER = 'PALIER_COURT' ;
  175. PAL2 . JEU_USINAGE = xjeu ;
  176. sinon;
  177. PAL2 . MODELE_PALIER = 'RODELI' ;
  178. PAL2 . AFFICHAGE = 0 ;
  179. PAL2 . GEOMETRIE_PALIER = TABLE ;
  180. PAL2 . GEOMETRIE_PALIER . NOMBRE_LOBES = 1 ;
  181. PAL2 . GEOMETRIE_PALIER . CRITERE_ARRET = 1e-6 ;
  182. PAL2 . GEOMETRIE_PALIER . 1 = TABLE ;
  183. PAL2 . GEOMETRIE_PALIER . 1 . ASYMETRIE = 0. ;
  184. PAL2 . GEOMETRIE_PALIER . 1 . JEU_USINAGE = xjeu ;
  185. PAL2 . GEOMETRIE_PALIER . 1 . PRECHARGE = 0. ;
  186. PAL2 . GEOMETRIE_PALIER . 1 . ANGLE_DEBUT = 0. ;
  187. PAL2 . GEOMETRIE_PALIER . 1 . AMPL_ANGLE = 2 * pi ;
  188. PAL2 . GEOMETRIE_PALIER . 1 . COEF_SUR = 1.715 ;
  189. PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 120 ;
  190. * PAL2 . GEOMETRIE_PALIER . 1 . NB_MAILLES = 360 ;
  191. finsi;
  192. *opti donn 3 ;
  193.  
  194. si (FLPAP);
  195. maifl2 = manu poi1 p2 ;
  196. mpafl2 = modele maifl2 liaison 'PALIER_FLUIDE' 'RHODE_LI';
  197. tfl2 = table ; tfl2 . mpafl2 = vrai ;
  198. cpafl2 = mate mpafl2 'LONG' Lpal 'RAYO' Ra1 'VISC' mupal 'RHOF' rhopal
  199. 'PADM' 0. 'VROT' (2*pi*OMEGHZ) 'EPSI' 0. 'PHII' 0. 'AFFI' 0
  200. 'TLOB' PAL2 . GEOMETRIE_PALIER 'SORT' tfl2 ;
  201. finsi;
  202. *
  203. TLiai1 . LIAISON_B . 1 = PAL1 ;
  204. TLiai1 . LIAISON_B . 2 = PAL2 ;
  205. *
  206. * Creation de la table des VARIABLES DE SORTIE
  207. ***********************************************
  208. TSort1 = TABLE 'SORTIE' ;
  209. TSort1 . 'VARIABLE' = TABLE 'VARIABLE' ;
  210. TSort1 . 'LIAISON_B' = TABLE 'LIAISON_B' ;
  211. TSort1 . 'LIAISON_B' . PAL1 = VRAI ;
  212. TSort1 . 'LIAISON_B' . PAL2 = VRAI ;
  213. tsort1 . 'VARIABLE' . vitesse = vrai ;
  214. tsort1 . 'VARIABLE' . deplacement = vrai ;
  215. *
  216. * Creation de la table du CHARGEMENT (chargement statique)
  217. *************************************
  218. TChar1 = TABLE 'CHARGEMENT' ;
  219. LTps1 = PROG 0.0 'PAS' PTps1 'NPAS' (NPas1+1) ;
  220. FsY1 = 0. ;
  221. FsZ1 = -1.*Wcharg ;
  222. Chp_Fs1 = MANU CHPO 3 (P0 ET P2)
  223. 'FX' 0. 'FY' FsY1 'FZ' FsZ1 ;
  224. Ev_Fs1 = EVOL MANU LTps1 (PROG (NPas1+2) * 1.) ;
  225. Char_Fs1 = CHAR Chp_Fs1 Ev_Fs1 ;
  226. TChar1 . 'BASE_A' = PJBA TBasR1 Char_Fs1 ;
  227. char_fs2 = pjba char_fs1 mo_1 ca_1 ;
  228.  
  229.  
  230. * Calcul temporel : Appel a DYNE avec une table DYNE (calcul original)
  231. ********************************
  232. * opti impi 333;
  233. TResu1 = DYNE 'DE_VOGELAERE' TBasR1 TChar1 TInit1 TSort1
  234. *TResu1 = DYNE 'DIFFERENCES_CENTREES' TBasR1 TChar1 TInit1 TSort1
  235. TLiai1 PTps1 NPas1 NSor1 ;
  236. * opti impi 0;
  237. *
  238. Abs1 = TResu1 . PAL1 . 'UY_ARBRE' / xjeu;
  239. Ord1 = TResu1 . PAL1 .'UZ_ARBRE' / xjeu;
  240. Abs2 = TResu1 . PAL1 . 'FY_PALIER';
  241. Ord2 = TResu1 . PAL1 . 'FZ_PALIER';
  242. tprog = TResu1 . 'TEMPS_DE_SORTIE';
  243.  
  244.  
  245. si (FLPAP);
  246.  
  247. * Creation d'une table PASAPAS (JK)
  248. *************************************
  249. tabdyn = table 'PASAPAS' ;
  250. tabdyn . modele = mo_1 et mpafl1 et mpafl2 ;
  251. tabdyn . caracteristiques = ca_1 et cpafl1 et cpafl2 ;
  252. tabdyn . chargement = char_fs2 ;
  253. tabdyn . deplacements = table ;
  254. tabdyn . vitesses = table ;
  255. tabdyn . deplacements . 0 = tinit1 . deplacement ;
  256. tabdyn . vitesses . 0 = tinit1 . vitesse ;
  257.  
  258.  
  259. * Calcul temporel : Appel a PASAPAS avec une table pasapas
  260. ********************************
  261. tabpap = copi tabdyn;
  262. tabpap . hypothese_deformations = 'LINEAIRE' ;
  263. tabpap . dynamique = vrai ;
  264. * on calcule avec un pas xdt*plus grand sur une duree/8
  265. xdt = 10.;
  266. * xdt = 1.;
  267. *--> resultats faux meme avec un pas de temps egal a l'explicite
  268. dtpap = ptps1*xdt;
  269. tfinpap = (ptps1*NPas1) / 8.;
  270. tabpap . temps_calcules = prog 0. pas dtpap tfinpap ;
  271. * on sauve aux memes instants que DYNE
  272. tabpap . temps_sauves = prog 0. pas (ptps1*NSor1) tfinpap;
  273.  
  274. pasapas tabpap ;
  275.  
  276. Abs12 = prog 0.; Abs22 = prog 0.; Ord12 = prog 0.; Ord22 = prog 0.;
  277. repeter b_p ((dime tabpap . temps) - 1) ;
  278. tuu1 = 'EXTR' ('REDU' tabpap . variables_internes . &b_p mpafl1)
  279. 'SLIA' 1 1 1 ;
  280. Abs12 = Abs12 et tuu1 . 'UY_ARBRE' ;
  281. Ord12 = Abs22 et tuu1 . 'UZ_ARBRE' ;
  282. Abs22 = Abs22 et tuu1 . 'FY_PALIER';
  283. Ord22 = Ord22 et tuu1 . 'FZ_PALIER';
  284. fin b_p ;
  285. Abs12 = Abs12 / xjeu;
  286. Ord12 = Ord12 / xjeu;
  287. tprog2 = tabpap . 'TEMPS_SAUVES';
  288.  
  289. * Calcul temporel : Appel a DYNE avec une table pasapas
  290. ********************************
  291. tabdyn . sortie = table ;
  292. tabdyn . sortie . mpafl1 = vrai ;
  293. tabdyn . sortie . mpafl2 = vrai ;
  294. tabdyn . pas_de_temps = ptps1 ;
  295. tabdyn . nombre_pas = npas1 ;
  296. tabdyn . pas_de_sortie = nsor1 ;
  297.  
  298. dyne de_vogelaere tabdyn ;
  299.  
  300. Abs11 = tabdyn . liaisons . mpafl1 . 'UY_ARBRE' / xjeu;
  301. Ord11 = tabdyn . liaisons . mpafl1 .'UZ_ARBRE' / xjeu;
  302. Abs21 = tabdyn . liaisons . mpafl1 . 'FY_PALIER';
  303. Ord21 = tabdyn . liaisons . mpafl1 . 'FZ_PALIER';
  304. *tprog1 = tabdyn . 'TEMPS_DE_SORTIE';
  305.  
  306. finsi;
  307.  
  308.  
  309. ****************************************************************
  310. * Graphiques
  311. ****************************************************************
  312. SI GRAPH;
  313.  
  314. tt = tabl;
  315. tt . 2 = mot 'TIRR';
  316. tt . 3 = mot 'NOLI MARQ S PLUS';
  317. tt . 'TITRE' = tabl;
  318. tt . 'TITRE' . 1 = mot 'DYNE tables dyne';
  319. tt . 'TITRE' . 2 = mot 'DYNE table PAP';
  320. tt . 'TITRE' . 3 = mot 'PASAPAS';
  321.  
  322. *--- trace de l orbite ---*
  323. ev1yt = evol BLEU manu 't' tprog 'UY/C' Abs1;
  324. ev1zt = evol VIOL manu 't' tprog 'UZ/C' Ord1;
  325. dess (ev1yt et ev1zt) 'TITR' 'UY(bleu) UZ(viol)';
  326. ev1yz = evol BLEU manu 'UY/C' Abs1 'UZ/C' Ord1;
  327. prteta = prog -90. PAS 1. 0.;
  328. evjeu = evol DEFA manu 'UY/C' (cos prteta) 'UZ/C' (sin prteta);
  329.  
  330. si (FLPAP);
  331. ev11yz = evol TURQ manu 'UY/C' Abs11 'UZ/C' Ord11;
  332. ev12yz = evol ROSE manu 'UY/C' Abs12 'UZ/C' Ord12;
  333. dess (ev1yz et ev11yz) tt 'LEGE' NE;
  334. dess (ev1yz et ev11yz et ev12yz) tt 'LEGE' NE;
  335. dess (ev1yz et ev11yz et ev12yz et evjeu) tt 'LEGE' NE;
  336. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  337. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  338. * --> ev11yz ok, mais ev12yz faux
  339. sinon;
  340. dess (ev1yz);
  341. dess (ev1yz et evjeu) ;
  342. finsi;
  343.  
  344. *--- trace des efforts FY ---*
  345. ev1fy = evol BLEU manu 't' tprog 'FY' Abs2 ;
  346. si (FLPAP);
  347. ev11fy = evol TURQ manu 't' tprog2 'FY' Abs21 ;
  348. ev12fy = evol ROSE manu 't' tprog2 'FY' Abs22 ;
  349. dess (ev1fy et ev11fy et ev12fy) tt;
  350. sinon;
  351. dess (ev1fy) tt;
  352. finsi;
  353.  
  354. *--- trace des efforts FZ ---*
  355. ev1fz = evol BLEU manu 't' tprog 'FZ' ord2 ;
  356. si (FLPAP);
  357. ev11fz = evol TURQ manu 't' tprog2 'FZ' ord21 ;
  358. ev12fz = evol ROSE manu 't' tprog2 'FZ' ord22 ;
  359. dess (ev1fz et ev11fz et ev12fz) tt;
  360. sinon;
  361. dess (ev1fz) tt;
  362. finsi;
  363.  
  364. FINSI;
  365.  
  366.  
  367. ****************************************************************
  368. * Tests de Non Regression
  369. ****************************************************************
  370. opti echo 0;
  371.  
  372. * tolerance
  373. errtol = 0.01;
  374. errpap = 0.02;
  375.  
  376. * reference [Frene et al., Lubrification hydrodynamique, p.139, L/D=1/4]
  377. W1pal = 0.5 * Wcharg;
  378. INTGr = mupal * Lpal * Ra1 * OMEGHZ * ((Ra1/xjeu)**2) / W1pal;
  379. mess 'S='INTGr ;
  380. Sref = prog 16.2 7.57 4.49 2.83 1.78 1.07 0.58 0.263 0.0728 0.0221;
  381. phiref= prog 82.5 75.5 68.5 61.5 54. 47. 39.5 31.5 21.5 15.5;
  382. excref= prog 0.1 pas 0.1 0.9 0.95;
  383. evexc = evol defa manu 'S' Sref '\e' excref;
  384. eth = ipol INTGr Sref excref;
  385. phith = ipol INTGr Sref phiref;
  386. mess ' excentricite et angle de calage';
  387. mess 'theoriques: ' eth phith;
  388.  
  389. * valeurs calculees par DYNE
  390. n34 = dime Abs1;
  391. edyne = (((EXTR Abs1 n34)**2) + ((EXTR Ord1 n34)**2)) ** 0.5;
  392. pdyne = ATG (EXTR Abs1 n34) (-1.*(EXTR Ord1 n34));
  393. mess 'calcules (DYNE):' edyne pdyne;
  394. * erreur relative :
  395. err1 = abs ((eth - edyne) / eth);
  396. err2 = abs ((phith - pdyne) / phith);
  397. mess 'erreurs relatives:' err1 err2;
  398.  
  399. * valeurs calculees par PASAPAS :
  400. si (FLPAP);
  401. n341 = dime Abs11;
  402. edyne1 = (((EXTR Abs11 n341)**2) + ((EXTR Ord11 n341)**2)) ** 0.5;
  403. pdyne1 = ATG (EXTR Abs11 n341) (-1.*(EXTR Ord11 n341));
  404. mess 'calcules (DYNE avec table PAP):' edyne1 pdyne1;
  405. * erreur relative :
  406. err11 = abs ((eth - edyne1) / eth);
  407. err21 = abs ((phith - pdyne1) / phith);
  408. mess 'erreurs relatives:' err11 err21;
  409. si (err11 > err1); err1 = err11; finsi;
  410. si (err21 > err2); err2 = err21; finsi;
  411. * to do
  412. * bp : le calcul dans DYNE avec une table pasapas fonctionne,
  413. * mais les resultats (UZ) du calcul avec pasapas sont faux...!
  414. * --> TNR sur ev11yz ok, mais pas sur ev12yz (faux)
  415. finsi;
  416.  
  417. opti echo 1;
  418.  
  419. * TNR
  420. si ((err1 > errtol) ou (err2 > errtol)) ;
  421. erre 5 ;
  422. sinon ;
  423. erre 0 ;
  424. finsi ;
  425.  
  426.  
  427. FIN ;
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  

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