Télécharger pent3D2.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : pent3D2.dgibi
  2. ***********************************************************
  3. **** APPROCHE VF "Cell-Centred Formulation". ****
  4. **** OPÉRATEUR PENT, pour le calcul des gradients et ****
  5. **** de limiteurs ****
  6. **** Cas test: calcul du limiteur en 3D ****
  7. **** ****
  8. **** A. BECCANTINI, TTMF MAI 1998 ****
  9. **** Modif, 10/07/01, syntaxe de PENT changée ****
  10. ***********************************************************
  11.  
  12.  
  13. 'OPTION' 'DIME' 3 ;
  14. 'OPTION' 'ELEM' 'CUB8' ;
  15. 'OPTION' 'ISOV' 'SULI' ;
  16. 'OPTION' 'ECHO' 0;
  17.  
  18. GRAPH = VRAI ;
  19. *
  20. **** Domaine
  21. *
  22.  
  23. A1 = 0.0 0.0 0.0;
  24. A2 = 2.0 0.0 0.0;
  25. A3 = 2.0 3.0 0.0;
  26. A4 = 0.0 2.0 0.0;
  27. A5 = 0.0 0.0 2.0;
  28. A6 = 2.0 0.0 2.0;
  29. A7 = 2.0 3.0 3.5;
  30. A8 = 0.0 2.0 3.0;
  31. A9 = 6.0 1.0 4.0;
  32. A10 = 3.0 1.0 -1.0;
  33. A11 = 0.0 -1.0 -1.0;
  34. A12 = -1.0 1.0 1.0;
  35. A13 = 0.0 -2.0 0.0;
  36. A14 = 2.0 4.0 1.0;
  37.  
  38.  
  39. DOM1= 'MANUEL' 'CUB8' A1 A2 A3 A4 A5 A6 A7 A8;
  40. DOM2= 'MANUEL' 'PYR5' A5 A6 A7 A8 A9;
  41. DOM3= 'MANUEL' 'PYR5' A2 A3 A7 A6 A10;
  42. DOM4= 'MANUEL' 'PYR5' A1 A2 A3 A4 A11;
  43. DOM5= 'MANUEL' 'PYR5' A1 A4 A8 A5 A12;
  44. DOM6= 'MANUEL' 'PYR5' A1 A2 A6 A5 A13;
  45. DOM7= 'MANUEL' 'PYR5' A3 A4 A8 A7 A14;
  46.  
  47. DOMTOT= DOM1 'ET' DOM2 'ET' DOM3 'ET'
  48. DOM4 'ET' DOM5 'ET' DOM6 'ET'
  49. DOM7;
  50.  
  51. $DOMTOT = 'MODE' DOMTOT 'EULER' ;
  52. $DOM1 = 'MODE' DOM1 'EULER' ;
  53. $DOM2 = 'MODE' DOM2 'EULER' ;
  54. $DOM3 = 'MODE' DOM3 'EULER' ;
  55. $DOM4 = 'MODE' DOM4 'EULER' ;
  56. $DOM5 = 'MODE' DOM5 'EULER' ;
  57. $DOM6 = 'MODE' DOM6 'EULER' ;
  58. $DOM7 = 'MODE' DOM7 'EULER' ;
  59.  
  60. TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
  61. TDOM1 = 'DOMA' $DOM1 'VF' ;
  62. TDOM2 = 'DOMA' $DOM2 'VF' ;
  63. TDOM3 = 'DOMA' $DOM3 'VF' ;
  64. TDOM4 = 'DOMA' $DOM4 'VF' ;
  65. TDOM5 = 'DOMA' $DOM5 'VF' ;
  66. TDOM6 = 'DOMA' $DOM6 'VF' ;
  67. TDOM7 = 'DOMA' $DOM7 'VF' ;
  68.  
  69. MDOMTOT = TDOMTOT . 'QUAF';
  70. MDOM1 = TDOM1 . 'QUAF';
  71. MDOM2 = TDOM2 . 'QUAF';
  72. MDOM3 = TDOM3 . 'QUAF';
  73. MDOM4 = TDOM4 . 'QUAF';
  74. MDOM5 = TDOM5 . 'QUAF';
  75. MDOM6 = TDOM6 . 'QUAF';
  76. MDOM7 = TDOM7 . 'QUAF';
  77.  
  78. 'ELIM' (MDOMTOT 'ET' MDOM1 'ET' MDOM2 'ET' MDOM3 'ET' MDOM4 'ET' MDOM5
  79. 'ET' MDOM6 'ET' MDOM7) 1D-6;
  80.  
  81. XX YY ZZ= 'COOR' ('DOMA' $DOMTOT 'CENTRE');
  82.  
  83. PHI1 = 'NOMC' 'UX' ((2 '*' XX) '+' (7 '*' YY) '-' (5 '*' ZZ))
  84. 'NATU' 'DISCRET' ;
  85. PHI2 = 'NOMC' 'UY' ((3 '*' XX) '+' (4 '*' YY) '+' (2 '*' ZZ))
  86. 'NATU' 'DISCRET' ;
  87. PHI3 = 'NOMC' 'UZ' ((12 '*' (XX * XX)) '+' (7 '*' YY)
  88. '-' (ZZ '*' ZZ)) 'NATU' 'DISCRET' ;
  89.  
  90. PHI = PHI1 'ET' PHI2 'ET' PHI3 ;
  91.  
  92. GRAPHI ALPHI COEF = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
  93. ('MOTS' 'UX' 'UY' 'UZ') PHI ;
  94.  
  95.  
  96. ****************************************************
  97. **** Le limiteur: les paramètres géométriques ****
  98. ****************************************************
  99.  
  100. PCDOM1 = ('DOMA' $DOM1 'CENTRE') 'POIN' 1;
  101.  
  102. xC1 yC1 zC1 = 'COORDONNEE' PCDOM1 ;
  103.  
  104. *
  105. **** 1-2
  106. *
  107.  
  108. PCDOM2 = ('DOMA' $DOM2 'CENTRE') 'POIN' 1 ;
  109.  
  110. xA5 yA5 zA5 = 'COORDONNEE' A5 ;
  111. xA7 yA7 zA7 = 'COORDONNEE' A7 ;
  112. xF2 = (xA5 '+' xA7) '/' 2.0 ;
  113. yF2 = (yA5 '+' yA7) '/' 2.0 ;
  114. zF2 = (zA5 '+' zA7) '/' 2.0 ;
  115.  
  116. F2 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF2 yF2 zF2) ;
  117.  
  118. xC2 yC2 zC2 = 'COORDONNEE' PCDOM2 ;
  119. xF2 yF2 zF2 = 'COORDONNEE' F2 ;
  120.  
  121.  
  122. DXC1F2 = xF2 '-' xC1 ;
  123. DYC1F2 = yF2 '-' yC1 ;
  124. DZC1F2 = zF2 '-' zC1 ;
  125. DC1F2 = ((DXC1F2 '**' 2) '+' (DYC1F2 '**' 2)
  126. '+' (DZC1F2 '**' 2)) '**' 0.5;
  127.  
  128. DXC2F2 = xF2 '-' xC2 ;
  129. DYC2F2 = yF2 '-' yC2 ;
  130. DZC2F2 = zF2 '-' zC2 ;
  131. DC2F2 = ((DXC2F2 '**' 2) '+' (DYC2F2 '**' 2)
  132. '+' (DZC2F2 '**' 2)) '**' 0.5;
  133.  
  134. DTOT2 = DC1F2 '+' DC2F2 ;
  135.  
  136. *
  137. **** 1-3
  138. *
  139.  
  140. PCDOM3 = ('DOMA' $DOM3 'CENTRE') 'POIN' 1 ;
  141.  
  142. xA2 yA2 zA2 = 'COORDONNEE' A2 ;
  143. xA7 yA7 zA7 = 'COORDONNEE' A7 ;
  144. xF3 = (xA2 '+' xA7) '/' 2.0 ;
  145. yF3 = (yA2 '+' yA7) '/' 2.0 ;
  146. zF3 = (zA2 '+' zA7) '/' 2.0 ;
  147.  
  148. F3 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF3 yF3 zF3) ;
  149.  
  150. xC3 yC3 zC3 = 'COORDONNEE' PCDOM3 ;
  151. xF3 yF3 zF3 = 'COORDONNEE' F3 ;
  152.  
  153.  
  154. DXC1F3 = xF3 '-' xC1 ;
  155. DYC1F3 = yF3 '-' yC1 ;
  156. DZC1F3 = zF3 '-' zC1 ;
  157. DC1F3 = ((DXC1F3 '**' 2) '+' (DYC1F3 '**' 2)
  158. '+' (DZC1F3 '**' 2)) '**' 0.5;
  159.  
  160. DXC3F3 = xF3 '-' xC3 ;
  161. DYC3F3 = yF3 '-' yC3 ;
  162. DZC3F3 = zF3 '-' zC3 ;
  163. DC3F3 = ((DXC3F3 '**' 2) '+' (DYC3F3 '**' 2)
  164. '+' (DZC3F3 '**' 2)) '**' 0.5;
  165.  
  166. DTOT3 = DC1F3 '+' DC3F3 ;
  167.  
  168. *
  169. **** 1-4
  170. *
  171.  
  172. PCDOM4 = ('DOMA' $DOM4 'CENTRE') 'POIN' 1 ;
  173.  
  174. xA1 yA1 zA1 = 'COORDONNEE' A1 ;
  175. xA3 yA3 zA3 = 'COORDONNEE' A3 ;
  176. xF4 = (xA1 '+' xA3) '/' 2.0 ;
  177. yF4 = (yA1 '+' yA3) '/' 2.0 ;
  178. zF4 = (zA1 '+' zA3) '/' 2.0 ;
  179.  
  180. F4 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF4 yF4 zF4) ;
  181.  
  182. xC4 yC4 zC4 = 'COORDONNEE' PCDOM4 ;
  183. xF4 yF4 zF4 = 'COORDONNEE' F4 ;
  184.  
  185.  
  186. DXC1F4 = xF4 '-' xC1 ;
  187. DYC1F4 = yF4 '-' yC1 ;
  188. DZC1F4 = zF4 '-' zC1 ;
  189. DC1F4 = ((DXC1F4 '**' 2) '+' (DYC1F4 '**' 2)
  190. '+' (DZC1F4 '**' 2)) '**' 0.5;
  191.  
  192. DXC4F4 = xF4 '-' xC4 ;
  193. DYC4F4 = yF4 '-' yC4 ;
  194. DZC4F4 = zF4 '-' zC4 ;
  195. DC4F4 = ((DXC4F4 '**' 2) '+' (DYC4F4 '**' 2)
  196. '+' (DZC4F4 '**' 2)) '**' 0.5;
  197.  
  198. DTOT4 = DC1F4 '+' DC4F4 ;
  199.  
  200. *
  201. **** 1-5
  202. *
  203.  
  204. PCDOM5 = ('DOMA' $DOM5 'CENTRE') 'POIN' 1 ;
  205.  
  206. xA1 yA1 zA1 = 'COORDONNEE' A1 ;
  207. xA8 yA8 zA8 = 'COORDONNEE' A8 ;
  208. xF5 = (xA1 '+' xA8) '/' 2.0 ;
  209. yF5 = (yA1 '+' yA8) '/' 2.0 ;
  210. zF5 = (zA1 '+' zA8) '/' 2.0 ;
  211.  
  212. F5 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF5 yF5 zF5) ;
  213.  
  214. xC5 yC5 zC5 = 'COORDONNEE' PCDOM5 ;
  215. xF5 yF5 zF5 = 'COORDONNEE' F5 ;
  216.  
  217.  
  218. DXC1F5 = xF5 '-' xC1 ;
  219. DYC1F5 = yF5 '-' yC1 ;
  220. DZC1F5 = zF5 '-' zC1 ;
  221. DC1F5 = ((DXC1F5 '**' 2) '+' (DYC1F5 '**' 2)
  222. '+' (DZC1F5 '**' 2)) '**' 0.5;
  223.  
  224. DXC5F5 = xF5 '-' xC5 ;
  225. DYC5F5 = yF5 '-' yC5 ;
  226. DZC5F5 = zF5 '-' zC5 ;
  227. DC5F5 = ((DXC5F5 '**' 2) '+' (DYC5F5 '**' 2)
  228. '+' (DZC5F5 '**' 2)) '**' 0.5;
  229.  
  230. DTOT5 = DC1F5 '+' DC5F5 ;
  231.  
  232. *
  233. **** 1-6
  234. *
  235.  
  236. PCDOM6 = ('DOMA' $DOM6 'CENTRE') 'POIN' 1 ;
  237.  
  238. xA1 yA1 zA1 = 'COORDONNEE' A1 ;
  239. xA6 yA6 zA6 = 'COORDONNEE' A6 ;
  240. xF6 = (xA1 '+' xA6) '/' 2.0 ;
  241. yF6 = (yA1 '+' yA6) '/' 2.0 ;
  242. zF6 = (zA1 '+' zA6) '/' 2.0 ;
  243.  
  244. F6 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF6 yF6 zF6) ;
  245.  
  246. xC6 yC6 zC6 = 'COORDONNEE' PCDOM6 ;
  247. xF6 yF6 zF6 = 'COORDONNEE' F6 ;
  248.  
  249.  
  250. DXC1F6 = xF6 '-' xC1 ;
  251. DYC1F6 = yF6 '-' yC1 ;
  252. DZC1F6 = zF6 '-' zC1 ;
  253. DC1F6 = ((DXC1F6 '**' 2) '+' (DYC1F6 '**' 2)
  254. '+' (DZC1F6 '**' 2)) '**' 0.5;
  255.  
  256. DXC6F6 = xF6 '-' xC6 ;
  257. DYC6F6 = yF6 '-' yC6 ;
  258. DZC6F6 = zF6 '-' zC6 ;
  259. DC6F6 = ((DXC6F6 '**' 2) '+' (DYC6F6 '**' 2)
  260. '+' (DZC6F6 '**' 2)) '**' 0.5;
  261.  
  262. DTOT6 = DC1F6 '+' DC6F6 ;
  263.  
  264. *
  265. **** 1-7
  266. *
  267.  
  268. PCDOM7 = ('DOMA' $DOM7 'CENTRE') 'POIN' 1 ;
  269.  
  270. xA8 yA8 zA8 = 'COORDONNEE' A8 ;
  271. xA3 yA3 zA3 = 'COORDONNEE' A3 ;
  272. xF7 = (xA8 '+' xA3) '/' 2.0 ;
  273. yF7 = (yA8 '+' yA3) '/' 2.0 ;
  274. zF7 = (zA8 '+' zA3) '/' 2.0 ;
  275.  
  276. F7 = ('DOMA' $DOMTOT 'FACEL') 'POIN' 'PROC' (xF7 yF7 zF7) ;
  277.  
  278. xC7 yC7 zC7 = 'COORDONNEE' PCDOM7 ;
  279. xF7 yF7 zF7 = 'COORDONNEE' F7 ;
  280.  
  281.  
  282. DXC1F7 = xF7 '-' xC1 ;
  283. DYC1F7 = yF7 '-' yC1 ;
  284. DZC1F7 = zF7 '-' zC1 ;
  285. DC1F7 = ((DXC1F7 '**' 2) '+' (DYC1F7 '**' 2)
  286. '+' (DZC1F7 '**' 2)) '**' 0.5;
  287.  
  288. DXC7F7 = xF7 '-' xC7 ;
  289. DYC7F7 = yF7 '-' yC7 ;
  290. DZC7F7 = zF7 '-' zC7 ;
  291. DC7F7 = ((DXC7F7 '**' 2) '+' (DYC7F7 '**' 2)
  292. '+' (DZC7F7 '**' 2)) '**' 0.5;
  293.  
  294. DTOT7 = DC1F7 '+' DC7F7 ;
  295.  
  296.  
  297. *
  298. **** Composantes à controller
  299. *
  300.  
  301. LISTCOM = 'MOTS' 'UX' 'UY' 'UZ' ;
  302. LISTNG1 = 'MOTS' 'P1DX' 'P2DX' 'P3DX' ;
  303. LISTNG2 = 'MOTS' 'P1DY' 'P2DY' 'P3DY' ;
  304. LISTNG3 = 'MOTS' 'P1DZ' 'P2DZ' 'P3DZ' ;
  305. LISTNAL = 'MOTS' 'P1' 'P2' 'P3' ;
  306.  
  307. 'REPETER' BLOC1 ('DIME' LISTCOM);
  308.  
  309. NOMCOM = 'EXTRAIRE' &BLOC1 LISTCOM ;
  310. NOMG1 = 'EXTRAIRE' &BLOC1 LISTNG1 ;
  311. NOMG2 = 'EXTRAIRE' &BLOC1 LISTNG2 ;
  312. NOMG3 = 'EXTRAIRE' &BLOC1 LISTNG3 ;
  313. NOMAL = 'EXTRAIRE' &BLOC1 LISTNAL ;
  314.  
  315.  
  316. PHICOM = 'KCHT' $DOMTOT 'SCAL' 'CENTRE' ('EXCO' NOMCOM PHI);
  317. PHI1 = 'EXTRAIRE' PHICOM 'SCAL' PCDOM1 ;
  318. PHIMAX = 'MAXIMUM' PHICOM;
  319. PHIMIN = 'MINIMUM' PHICOM;
  320. DPHISTE = PHIMAX '-' PHIMIN;
  321.  
  322. GPHI1X = 'EXTRAIRE' GRAPHI NOMG1 PCDOM1 ;
  323. GPHI1Y = 'EXTRAIRE' GRAPHI NOMG2 PCDOM1 ;
  324. GPHI1Z = 'EXTRAIRE' GRAPHI NOMG3 PCDOM1 ;
  325.  
  326. *
  327. **** 1-2
  328. *
  329.  
  330. DPHI0 = (GPHI1X '*' DXC1F2) '+' (GPHI1Y '*' DYC1F2)
  331. '+' (GPHI1Z '*' DZC1F2) ;
  332.  
  333. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  334. AL12 = 1.0D0;
  335. 'SINON' ;
  336. 'SI' (DPHI0 > 0.0);
  337. DPHI = PHIMAX '-' PHI1;
  338. AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ;
  339. 'SINON' ;
  340. DPHI = PHIMIN '-' PHI1;
  341. AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ;
  342. 'FINSI' ;
  343. 'FINSI' ;
  344. AL12 = 'MINIMUM' ('PROG' 1.0 AL12) ;
  345.  
  346. *
  347. **** 1-3
  348. *
  349.  
  350. DPHI0 = (GPHI1X '*' DXC1F3) '+' (GPHI1Y '*' DYC1F3)
  351. '+' (GPHI1Z '*' DZC1F3) ;
  352.  
  353. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  354. AL13 = 1.0D0;
  355. 'SINON' ;
  356. 'SI' (DPHI0 > 0.0);
  357. DPHI = PHIMAX '-' PHI1;
  358. AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ;
  359. 'SINON' ;
  360. DPHI = PHIMIN '-' PHI1;
  361. AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ;
  362. 'FINSI' ;
  363. 'FINSI' ;
  364. AL13 = 'MINIMUM' ('PROG' 1.0 AL13) ;
  365.  
  366. *
  367. **** 1-4
  368. *
  369.  
  370. DPHI0 = (GPHI1X '*' DXC1F4) '+' (GPHI1Y '*' DYC1F4)
  371. '+' (GPHI1Z '*' DZC1F4) ;
  372.  
  373. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  374. AL14 = 1.0D0;
  375. 'SINON' ;
  376. 'SI' (DPHI0 > 0.0);
  377. DPHI = PHIMAX '-' PHI1;
  378. AL14 = (DPHI '/' DTOT4) * (DC1F4 '/' DPHI0) ;
  379. 'SINON' ;
  380. DPHI = PHIMIN '-' PHI1;
  381. AL14 = (DPHI '/' DTOT4) * (DC1F4 '/' DPHI0) ;
  382. 'FINSI' ;
  383. 'FINSI' ;
  384. AL14 = 'MINIMUM' ('PROG' 1.0 AL14) ;
  385.  
  386. *
  387. *** 1-5
  388. *
  389.  
  390. DPHI0 = (GPHI1X '*' DXC1F5) '+' (GPHI1Y '*' DYC1F5)
  391. '+' (GPHI1Z '*' DZC1F5) ;
  392.  
  393. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  394. AL15 = 1.0D0;
  395. 'SINON' ;
  396. 'SI' (DPHI0 > 0.0);
  397. DPHI = PHIMAX '-' PHI1;
  398. AL15 = (DPHI '/' DTOT5) * (DC1F5 '/' DPHI0) ;
  399. 'SINON' ;
  400. DPHI = PHIMIN '-' PHI1;
  401. AL15 = (DPHI '/' DTOT5) * (DC1F5 '/' DPHI0) ;
  402. 'FINSI' ;
  403. 'FINSI' ;
  404. AL15 = 'MINIMUM' ('PROG' 1.0 AL15) ;
  405.  
  406. *
  407. **** 1-6
  408. *
  409.  
  410. DPHI0 = (GPHI1X '*' DXC1F6) '+' (GPHI1Y '*' DYC1F6)
  411. '+' (GPHI1Z '*' DZC1F6) ;
  412.  
  413. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  414. AL16 = 1.0D0;
  415. 'SINON' ;
  416. 'SI' (DPHI0 > 0.0);
  417. DPHI = PHIMAX '-' PHI1;
  418. AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ;
  419. 'SINON' ;
  420. DPHI = PHIMIN '-' PHI1;
  421. AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ;
  422. 'FINSI' ;
  423. 'FINSI' ;
  424. AL16 = 'MINIMUM' ('PROG' 1.0 AL16) ;
  425.  
  426. *
  427. **** 1-7
  428. *
  429.  
  430. DPHI0 = (GPHI1X '*' DXC1F7) '+' (GPHI1Y '*' DYC1F7)
  431. '+' (GPHI1Z '*' DZC1F7) ;
  432.  
  433. 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE));
  434. AL17 = 1.0D0;
  435. 'SINON' ;
  436. 'SI' (DPHI0 > 0.0);
  437. DPHI = PHIMAX '-' PHI1;
  438. AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ;
  439. 'SINON' ;
  440. DPHI = PHIMIN '-' PHI1;
  441. AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ;
  442. 'FINSI' ;
  443. 'FINSI' ;
  444. AL17 = 'MINIMUM' ('PROG' 1.0 AL17) ;
  445.  
  446. *
  447. *** ALPHA ELT
  448. *
  449.  
  450. ALELT = 'MINIMUM' ('PROG' AL12 AL13 AL14 AL15 AL16 AL17);
  451.  
  452. ALELT0 = 'EXTRAIRE' ALPHI NOMAL PCDOM1 ;
  453. 'SI' (('ABS' (ALELT '-' ALELT0)) > 1.0D-14);
  454. 'ERREUR' 5;
  455. 'FINSI' ;
  456.  
  457. 'FIN' BLOC1 ;
  458.  
  459.  
  460. 'FIN' ;
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  

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