Numérotation des lignes :

1. * fichier : indi.dgibi
2. ************************************************************************
3. * Petit test de l'operateur INDI options 'ASPE' et 'SKEW' *
4. ************************************************************************
5.
6.
7. ** Options generales
8. OPTI 'ECHO' 0 'DENS' 0.16 ;
9. itrac = FAUX ;
10. a = 1. ;
11. def = 0.01 ;
12.
13. MESS '---------------------------------------------------------------' ;
14. MESS '| Dim. | Cas | ASPE | SKEW |' ;
15. MESS '| | | Aspect ratio | Skewness |' ;
16. MESS '---------------------------------------------------------------' ;
17.
18.
19.
20.
21.
22.
23.
24.
25. **************************** Exemple en 2D *****************************
26.
27. ** Options generales
28. OPTI 'DIME' 2 'ELEM' 'TRI3' ;
29.
30.
31. ** Cas d'un triangle equilateral
32. p1 = 0. 0. ;
33. p2 = a 0. ;
34. p3 = (0.5 * a) (0.5 * a * (3. ** 0.5)) ;
35. s0 = MANU 'TRI3' p1 p2 p3 ;
36. q0 = INDI s0 'ASPE' 'SKEW' ;
37. as0 = EXTR q0 'ASPE' 1 1 1 ;
38. sk0 = EXTR q0 'SKEW' 1 1 1 ;
39. MESS '| 2 | triangle equilat. | ' as0 ' |' sk0 ' |' ;
40. MESS '---------------------------------------------------------------' ;
41.
42.
43. ** Cas d'un triangle "needle"
44. s1 = s0 PLUS (0. 0.) ;
45. DEPL (s1 POIN 'PROC' p3) 'PLUS' ((a / def) * (0. 1.)) ;
46. q1 = INDI s1 'ASPE' 'SKEW' ;
47. as1 = EXTR q1 'ASPE' 1 1 1 ;
48. sk1 = EXTR q1 'SKEW' 1 1 1 ;
49. MESS '| 2 | triangle needle |' as1 ' |' sk1 ' |' ;
50. MESS '---------------------------------------------------------------' ;
51.
52.
53. ** Cas d'un triangle "cap"
54. s2 = MANU 'TRI3' p1 p2 (0.5 def) ;
55. q2 = INDI s2 'ASPE' 'SKEW' ;
56. as2 = EXTR q2 'ASPE' 1 1 1 ;
57. sk2 = EXTR q2 'SKEW' 1 1 1 ;
58. MESS '| 2 | triangle cap |' as2 ' |' sk2 ' |' ;
59. MESS '---------------------------------------------------------------' ;
60.
61.
62. ** Cas d'un triangle "sliver"
63. s3 = s0 PLUS (0. 0.) ;
64. DEPL (s3 POIN 'PROC' p3) 'PLUS' ((0.1 * a / def) * (1. 0.)) ;
65. q3 = INDI s3 'ASPE' 'SKEW' ;
66. as3 = EXTR q3 'ASPE' 1 1 1 ;
67. sk3 = EXTR q3 'SKEW' 1 1 1 ;
68. MESS '| 2 | triangle sliver |' as3 ' |' sk3 ' |' ;
69. MESS '---------------------------------------------------------------' ;
70.
71.
72. ** Maillage d'une bielle
73. r1 = 1. ;
74. r2 = 0.6 ;
75. r3 = 0.2 ;
76. ep = 0.25 ;
77. c1 = LIGN (0. 0.) (r1 0.) 360. 'ROTA' ;
78. c2 = LIGN (0. 0.) ((r1 + ep) 0.) 360. 'ROTA' ;
79. p1 = c2 POIN 'PROC' ((r1 + ep) * ((COS 30.) (SIN 30.))) ;
80. p2 = c2 POIN 'PROC' ((r1 + ep) * ((COS -30.) (SIN -30.))) ;
81. c2 = c2 ELEM 'COMP' p1 p2 ;
82. c3 = LIGN (0. 0.) ((-1. * r2) 0.) 360. 'ROTA' ;
83. c4 = LIGN (0. 0.) ((-1. * r2 - ep) 0.) 360. 'ROTA' ;
84. p3 = c4 POIN 'PROC' ((r2 + ep) * ((COS -160.) (SIN -160.))) ;
85. p4 = c4 POIN 'PROC' ((r2 + ep) * ((COS 160.) (SIN 160.))) ;
86. c4 = c4 ELEM 'COMP' p3 p4 ;
87. DEPL (c3 ET c4) 'PLUS' (6. 0.) ;
88. l41 = DROI p4 p1 ;
89. l23 = DROI p2 p3 ;
90. l41 con1 c2 = l41 CONG r3 c2 ;
91. c2 con2 l23 = c2 CONG r3 l23 ;
92. l23 con3 c4 = l23 CONG r3 c4 ;
93. c4 con4 l41 = c4 CONG r3 l41 ;
94. cint = c1 ET c3 ;
95. cext = INVE (con1 ET c2 ET con2 ET l23 ET con3 ET c4 ET con4 ET l41) ;
96. OPTI 'ECHO' -1 ;
97. ELIM cint 1.E-10 ;
98. OPTI 'ECHO' 0 ;
99. ar = cint ET cext ;
100. bielle = SURF ar ;
101. q = INDI bielle 'ASPE' 'SKEW' ;
102. * mini,maxi,moyenne
103. asmin = MINI q 'AVEC' (MOTS 'ASPE') ;
104. skmin = MINI q 'AVEC' (MOTS 'SKEW') ;
105. asmax = MAXI q 'AVEC' (MOTS 'ASPE') ;
106. skmax = MAXI q 'AVEC' (MOTS 'SKEW') ;
107. air = MESU bielle ;
108. mo = MODE bielle 'MECANIQUE' ;
109. q = CHAN 'NOEUD' q mo ;
110. asmoy = (INTG mo q 'ASPE') / air ;
111. skmoy = (INTG mo q 'SKEW') / air ;
112. MESS '| 2 | maillage surf. | | |' ;
113. MESS '| | d''une bielle | | |' ;
114. MESS '| | minimum |' asmin ' |' skmin ' |' ;
115. MESS '| | moyenne |' asmoy ' |' skmoy ' |' ;
116. MESS '| | maximum |' asmax ' |' skmax ' |' ;
117. MESS '---------------------------------------------------------------' ;
118. * trace du champ
119. SI itrac ;
120. TRAC (EXCO q 'ASPE') mo 'TITR' 'Maillage d''une bielle - Aspect Ratio' (PROG 1. 'PAS' 0.05 2.) ;
121. TRAC (EXCO q 'SKEW') mo 'TITR' 'Maillage d''une bielle - Skewness' (PROG 0. 'PAS' 0.02 0.4) ;
122. FINSI ;
123. * distributions
124. npas = 50 ;
125. las = PROG asmin 'PAS' ((asmax - asmin) / npas) asmax ;
126. ddas = HIST mo q las 'ASPE' ;
127. evmoy = EVOL 'VERT' 'MANU' (PROG asmoy asmoy) (PROG 0. (MAXI (EXTR ddas 'ORDO'))) ;
128. SI itrac ;
129. DESS (ddas ET evmoy) 'TITR' 'Triangles - Distribution de ASPE - Moyenne en VERT' ;
130. FINSI ;
131. lsk = PROG 0. 'PAS' (1. / npas) 1. ;
132. ddsk = HIST mo q lsk 'SKEW' ;
133. evmoy = EVOL 'VERT' 'MANU' (PROG skmoy skmoy) (PROG 0. (MAXI (EXTR ddsk 'ORDO'))) ;
134. SI itrac ;
135. DESS (ddsk ET evmoy) 'TITR' 'Triangles - Distribution de SKEW - Moyenne en VERT' ;
136. FINSI ;
137. * trace des "mauvais" elements
138. SI itrac ;
139. elas = q ELEM 'SUPE' 2. 'AVEC' (MOTS 'ASPE') COUL 'ORAN' ;
140. elsk = q ELEM 'SUPE' 0.4 'AVEC' (MOTS 'SKEW') COUL 'ROUG' ;
141. TRAC (ar ET elas) 'TITR' 'Mauvais triangles - Orange = ASPE > 2' ;
142. TRAC (ar ET elsk) 'TITR' 'Mauvais triangles - Rouge = SKEW > 0.4' ;
143. FINSI ;
144.
145.
146.
147.
148. **************************** Exemple en 3D *****************************
149.
150. ** Options generales
151. OPTI 'DIME' 3 'ELEM' 'TET4' ;
152.
153.
154. ** Cas de la bielle precedente (doit donner en 3D les memes resultats qu'en 2D)
155. q = INDI bielle 'ASPE' 'SKEW' ;
156. * mini,maxi,moyenne
157. asmin = MINI q 'AVEC' (MOTS 'ASPE') ;
158. skmin = MINI q 'AVEC' (MOTS 'SKEW') ;
159. asmax = MAXI q 'AVEC' (MOTS 'ASPE') ;
160. skmax = MAXI q 'AVEC' (MOTS 'SKEW') ;
161. air = MESU bielle ;
162. mo = MODE bielle 'MECANIQUE' ;
163. q = CHAN 'NOEUD' q mo ;
164. asmoy = (INTG mo q 'ASPE') / air ;
165. skmoy = (INTG mo q 'SKEW') / air ;
166. MESS '| 3 | maillage surf. | | |' ;
167. MESS '| | d''une bielle | | |' ;
168. MESS '| | minimum |' asmin ' |' skmin ' |' ;
169. MESS '| | moyenne |' asmoy ' |' skmoy ' |' ;
170. MESS '| | maximum |' asmax ' |' skmax ' |' ;
171. MESS '---------------------------------------------------------------' ;
172. * trace du champ
173. SI itrac ;
174. TRAC (EXCO q 'ASPE') mo 'TITR' 'Maillage d''une bielle - Aspect Ratio' (PROG 1. 'PAS' 0.05 2.) ;
175. TRAC (EXCO q 'SKEW') mo 'TITR' 'Maillage d''une bielle - Skewness' (PROG 0. 'PAS' 0.02 0.4) ;
176. * trace des "mauvais" elements
177. elas = q ELEM 'SUPE' 2. 'AVEC' (MOTS 'ASPE') COUL 'ORAN' ;
178. elsk = q ELEM 'SUPE' 0.4 'AVEC' (MOTS 'SKEW') COUL 'ROUG' ;
179. TRAC (ar ET elas) 'TITR' 'Mauvais triangles - Orange = ASPE > 2' ;
180. TRAC (ar ET elsk) 'TITR' 'Mauvais triangles - Rouge = SKEW > 0.4' ;
181. FINSI ;
182.
183.
184. ** Cas d'un tetraedre regulier
185. a = 1. ;
186. b = a / (2 * (2. ** 0.5)) ;
187. mb = -1. * b ;
188. p1 = b b b ;
189. p2 = b mb mb ;
190. p3 = mb b mb ;
191. p4 = mb mb b ;
192. v0 = MANU 'TET4' p1 p2 p3 p4 ;
193. q0 = INDI v0 'ASPE' 'SKEW' ;
194. as0 = EXTR q0 'ASPE' 1 1 1 ;
195. sk0 = EXTR q0 'SKEW' 1 1 1 ;
196. MESS '| 3 | tetraedre regulier |' as0 ' |' sk0 ' |' ;
197. MESS '---------------------------------------------------------------' ;
198.
199.
200. ** Cas d'un tetraedre "needle"
201. v1 = v0 PLUS (0. 0. 0.) ;
202. DEPL (v1 POIN 'PROC' p1) 'PLUS' ((a / def) * (1. 1. 1.)) ;
203. q1 = INDI v1 'ASPE' 'SKEW' ;
204. as1 = EXTR q1 'ASPE' 1 1 1 ;
205. sk1 = EXTR q1 'SKEW' 1 1 1 ;
206. MESS '| 3 | tetraedre needle |' as1 ' |' sk1 ' |' ;
207. MESS '---------------------------------------------------------------' ;
208.
209.
210. ** Cas d'un tetraedre "spindle"
211. v2 = v0 PLUS (0. 0. 0.) ;
212. DEPL ((v2 POIN 'PROC' p1) ET (v2 POIN 'PROC' p4)) 'PLUS' (0. 0. ((0.5 * def) - b)) ;
213. DEPL ((v2 POIN 'PROC' p2) ET (v2 POIN 'PROC' p3)) 'PLUS' (0. 0. (b - (0.5 * def))) ;
214. q2 = INDI v2 'ASPE' 'SKEW' ;
215. as2 = EXTR q2 'ASPE' 1 1 1 ;
216. sk2 = EXTR q2 'SKEW' 1 1 1 ;
217. MESS '| 3 | tetraedre spindle |' as2 ' |' sk2 ' |' ;
218. MESS '---------------------------------------------------------------' ;
219.
220.
221. ** Cas d'un tetraedre "wedge"
222. v3 = v0 PLUS (0. 0. 0.) ;
223. DEPL (v3 POIN 'PROC' p1) 'AFFI' (def / a) (0. 0. b) p1 ;
224. DEPL (v3 POIN 'PROC' p4) 'AFFI' (def / a) (0. 0. b) p1 ;
225. q3 = INDI v3 'ASPE' 'SKEW' ;
226. as3 = EXTR q3 'ASPE' 1 1 1 ;
227. sk3 = EXTR q3 'SKEW' 1 1 1 ;
228. MESS '| 3 | tetraedre wedge |' as3 ' |' sk3 ' |' ;
229. MESS '---------------------------------------------------------------' ;
230.
231.
232. ** Cas d'un tetraedre "cap"
233. v4 = v0 PLUS (0. 0. 0.) ;
234. p14 = v4 POIN 'PROC' p1 ;
235. DEPL p14 'PROJ' 'CONI' (1. 1. 1.) 'PLAN' p2 p3 p4 ;
236. DEPL p14 'PLUS' (def * (1. 1. 1.)) ;
237. q4 = INDI v4 'ASPE' 'SKEW' ;
238. as4 = EXTR q4 'ASPE' 1 1 1 ;
239. sk4 = EXTR q4 'SKEW' 1 1 1 ;
240. MESS '| 3 | tetraedre cap |' as4 ' |' sk4 ' |' ;
241. MESS '---------------------------------------------------------------' ;
242.
243.
244. ** Cas d'un tetraedre "sliver"
245. p1 = 0. 0. 0. ;
246. p2 = a 0. 0. ;
247. p3 = 0. a 0. ;
248. p4 = a a def ;
249. v5 = MANU 'TET4' p1 p2 p3 p4 ;
250. q5 = INDI v5 'ASPE' 'SKEW' ;
251. as5 = EXTR q5 'ASPE' 1 1 1 ;
252. sk5 = EXTR q5 'SKEW' 1 1 1 ;
253. MESS '| 3 | tetraedre sliver |' as5 ' |' sk5 ' |' ;
254. MESS '---------------------------------------------------------------' ;
255.
256.
257. ** Maillage 3D de la bielle
258. s1 = bielle ;
259. arb = ar PLUS (0. 0. (2. * ep)) ;
260. s2 = SURF arb 'PLAN' ;
261. s3 = REGL ar arb ;
262. bielle = VOLU (s1 ET s2 ET s3) ;
263. ar = ARET bielle ;
264. q = INDI bielle 'ASPE' 'SKEW' ;
265. * mini,maxi,moyenne
266. asmin = MINI q 'AVEC' (MOTS 'ASPE') ;
267. skmin = MINI q 'AVEC' (MOTS 'SKEW') ;
268. asmax = MAXI q 'AVEC' (MOTS 'ASPE') ;
269. skmax = MAXI q 'AVEC' (MOTS 'SKEW') ;
270. vol = MESU bielle ;
271. mo = MODE bielle 'MECANIQUE' ;
272. q = CHAN 'NOEUD' q mo ;
273. asmoy = (INTG mo q 'ASPE') / vol ;
274. skmoy = (INTG mo q 'SKEW') / vol ;
275. MESS '| 3 | maillage volumique | | |' ;
276. MESS '| | d''une bielle | | |' ;
277. MESS '| | minimum |' asmin ' |' skmin ' |' ;
278. MESS '| | moyenne |' asmoy ' |' skmoy ' |' ;
279. MESS '| | maximum |' asmax ' |' skmax ' |' ;
280. MESS '---------------------------------------------------------------' ;
281. * trace du champ
282. SI itrac ;
283. TRAC (EXCO q 'ASPE') mo 'TITR' 'Maillage d''une bielle - Aspect Ratio' (PROG 1. 'PAS' 0.2 4.) ;
284. TRAC (EXCO q 'SKEW') mo 'TITR' 'Maillage d''une bielle - Skewness' (PROG 0. 'PAS' 0.04 0.8) ;
285. FINSI ;
286. * distributions
287. npas = 50 ;
288. las = PROG asmin 'PAS' ((asmax - asmin) / npas) asmax ;
289. ddas = HIST mo q las 'ASPE' ;
290. evmoy = EVOL 'VERT' 'MANU' (PROG asmoy asmoy) (PROG 0. (MAXI (EXTR ddas 'ORDO'))) ;
291. SI itrac ;
292. DESS (ddas ET evmoy) 'TITR' 'Tetraedres - Distribution de ASPE - Moyenne en VERT' ;
293. FINSI ;
294. lsk = PROG 0. 'PAS' (1. / npas) 1. ;
295. ddsk = HIST mo q lsk 'SKEW' ;
296. evmoy = EVOL 'VERT' 'MANU' (PROG skmoy skmoy) (PROG 0. (MAXI (EXTR ddsk 'ORDO'))) ;
297. SI itrac ;
298. DESS (ddsk ET evmoy) 'TITR' 'Tetraedres - Distribution de SKEW - Moyenne en VERT' ;
299. FINSI ;
300. * trace des "mauvais" elements
301. SI itrac ;
302. elas = q ELEM 'SUPE' 4. 'AVEC' (MOTS 'ASPE') COUL 'ORAN' ;
303. elsk = q ELEM 'SUPE' 0.8 'AVEC' (MOTS 'SKEW') COUL 'ROUG' ;
304. TRAC (ar ET elas) 'TITR' 'Mauvais tetraedres - Orange = ASPE > 4' ;
305. TRAC (ar ET elsk) 'TITR' 'Mauvais tetraedres - Rouge = SKEW > 0.8' ;
306. FINSI ;
307.
308.
309.
310.
311. FIN ;
312.
313.
314.
315.
316.

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