Télécharger trac3d_2.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRAC3D_2 PROCEDUR FANDEUR 14/10/10 21:15:27 8178
  2. *----------------------------------------------------------------------
  3. *
  4. * PROCEDURE TRAC3D_2
  5. *
  6. *
  7. * CONSTRUCTION D UN MAILLAGE ET D'UN CHAMPS SOIT DE DEPLACEMENTS, SOIT
  8. * DE CONTRAINTES, SOIT DE DEFORMATIONS OU SOIT DE PRESSION 3D A PARTIR
  9. * D UN MAILLAGE 2D ET D UN CHAMPS, RESPECTIVEMENT DE DEPLACEMENTS, DE
  10. * CONTRAINTES, DE DEFORMATIONS OU DE PRESSION FOURIER
  11. *
  12. *----------------------------------------------------------------------
  13. *
  14. * ENTREE DANS L'ORDRE
  15. * entree :
  16. * ZZMAIL OBJET MAILLAGE 2D A TRANSMETTRE SI ON TRAVAILLE AVEC
  17. * DES CHPOINTS
  18. * ZZCHPU1 CHPOINT DE DEPLACEMENTS, DE CONTRAINTES, DE
  19. * DEFORMATIONS OU DE PRESSION ISSU DU CALCUL FOURIER
  20. * ZZCHPU2 MCHAML DE CONTRAINTES OU DE DEFORMATIONS ISSU
  21. * DU CALCUL FOURIER
  22. * MODL1 MODELE A TRANSMETTRE SI ON TRAVAILLE AVEC DES MCHAML
  23. * ZANGL ANGLE DE ROTATION EN DEGREES POUR LA CONSTRUCTION
  24. * DU MAILLAGE 3D
  25. * ZM NOMBRE DE DECOUPAGES SUR L'ANGLE ZANGL
  26. * ZN NUMERO DE L HARMONIQUE (O POUR FOUR 0 OU AXIS)
  27. * on ne fait pas de distinction entre ZN positif
  28. * ou negatif
  29. *
  30. * sortie :
  31. * TAB1 : TABLE
  32. * .'MAILLAGE' : MAILLAGE
  33. * .'DEPLACEMENT': CHPOINT
  34. * .'CONTRAINTE' : CHPOINT OU MCHAML
  35. * .'DEFORMATION': CHPOINT OU MCHAML
  36. * .'FLUIDE' : CHPOINT
  37. * .'MODELE' : MODELE CORRESPONDANT AU MCHAML
  38. *----------------------------------------------------------------------
  39. 'DEBPROC' TRAC3D_2
  40. ZZMAIL/'MAILLAGE' ZZCHPU1/'CHPOINT' ZZCHPU2/'MCHAML'
  41. MODL0/'MMODEL' ZANGL *'FLOTTANT' ZM*'ENTIER' ZN*'ENTIER' ;
  42. *----------------------------------------------------------------------
  43. *
  44. *==== TEST SUR LA NATURE DU CHAMPS ====================================
  45. CHELEM = 'EGA' 'MCHAML ' ('TYPE' ZZCHPU2) ;
  46. CHPO1 = 'EGA' 'CHPOINT ' ('TYPE' ZZCHPU1) ;
  47. MMO1 = 'EGA' 'MMODEL ' ('TYPE' MODL0) ;
  48. 'SI' ((CHPO1 'ET' CHELEM) 'OU' (('NON' CHPO1) 'ET' ('NON' CHELEM))) ;
  49. 'ERREUR'
  50. 'IL FAUT FOURNIR UN CHPOINT OU UN MCHAML' ;
  51. QUITTER TRAC3D_2 ;
  52. 'FINSI' ;
  53. *======================================================================
  54. *===== NPO NOMBRE DE NOEUDS DANS LES ELEMENTS =========================
  55. *===== EE : DENOMBREMENT DES TYPES D ELEMENTS DIFFERENTS ==============
  56. *===== OU DE SOUS ZONES ELEMENTAIRES ==================================
  57. *===== ZON1 : TABLE CONTENANT LES MODELES ET LES MAILLAGES DES ========
  58. *===== SOUS ZONES =====================================================
  59. *===== MASSI1 : TABLE BINAIRE DEFINISSANT LES ZONES MASSIVES ==========
  60. *===== ELEM3G : SUPPORT GEOMETRIQUE DES ELEMENTS EN BIDIM =============
  61. *===== ELEM4G : SUPPORT GEOMETRIQUE DES ELEMENTS EN TRIDIM ============
  62. *===== ELEM4F : FORMULATION CHOISIE POUR LE TRIDIMENSIONNEL ===========
  63. *==== TABLE CONTENANT LES DIFFERENTES ZONES DU MODELE =================
  64. *======================================================================
  65. ELEM4G = 'TABLE' ; ELEM4F = 'TABLE' ;
  66. ELEM3G = 'TABLE' ; MASSI1 = 'TABLE' ;
  67. NPO = 'TABLE' ; ZON1 = 'TABLE' ;
  68. EE = 0 ;
  69. *=== SI MCHAML, ON L APPLIQUE AUX NOEUDS ET ON REPERE LES ZONES =======
  70. 'SI' CHELEM ;
  71. 'SI' ('NON' MMO1) ;
  72. 'ERREUR'
  73. 'IL FAUT FOURNIR UN MODELE AVEC LE MCHAML' ;
  74. QUITTER TRAC3D_2 ;
  75. 'FINSI' ;
  76. ZON1 = 'EXTR' MODL0 'ZONE' ;
  77. NBZ0 = (('DIME' ZON1)/2) ;
  78. ZZMAIL = 'EXTR' MODL0 'MAIL' ;
  79. ZZCHPU0 = 'CHAN' 'NOEUD' MODL0 ZZCHPU2 ;
  80. 'REPETER' B000 NBZ0 ;
  81. EE = EE + 1 ;
  82. ELEM1 = ZON1. (2*EE) 'ELEM' 'TYPE' ;
  83. 'SI' (( 'EXISTE' ELEM1 'TRI6') 'OU' ( 'EXISTE' ELEM1 'QUA8')) ;
  84. 'ERREUR'
  85. 'ELEMENT TRI6 OU QUA8 NON PREVU PAR LA PROCEDURE' ;
  86. 'FINSI' ;
  87. 'SI' ( 'EXISTE' ELEM1 'SEG2' ) ;
  88. NPO. EE = 2 ;
  89. MASSI1. EE = FAUX ;
  90. ELEM4G. EE = 'MOT' 'QUA4' ;
  91. ELEM4F. EE = 'MOT' 'COQ4' ;
  92. 'FINSI' ;
  93. 'SI' ( 'EXISTE' ELEM1 'TRI3' ) ;
  94. MASSI1. EE = VRAI ;
  95. NPO. EE = 3 ;
  96. ELEM4G. EE = 'MOT' 'PRI6' ;
  97. ELEM4F. EE = 'MOT' 'PRI6' ;
  98. 'FINSI' ;
  99. 'SI' ( 'EXISTE' ELEM1 'QUA4' ) ;
  100. MASSI1. EE = VRAI ;
  101. NPO. EE = 4 ;
  102. ELEM4G. EE = 'MOT' 'CUB8' ;
  103. ELEM4F. EE = 'MOT' 'CUB8' ;
  104. 'FINSI' ;
  105. 'FIN' B000 ;
  106. *=== SI CHPOINT,ON REPERE LES ZONES CONSTITUEES D ELEMENTS DIFFERENTS =
  107. 'SINON' ;
  108. ZZCHPU0 = ZZCHPU1;
  109. ELEM1 = ZZMAIL 'ELEM' 'TYPE' ;
  110. 'SI' (( 'EXISTE' ELEM1 'TRI6') 'OU' ( 'EXISTE' ELEM1 'QUA8')) ;
  111. 'ERREUR'
  112. 'ELEMENT TRI6 OU QUA8 NON PREVU PAR LA PROCEDURE' ;
  113. 'FINSI' ;
  114. 'SI' ( 'EXISTE' ELEM1 'SEG2' ) ;
  115. EE = EE + 1 ;
  116. NPO. EE = 2 ;
  117. MASSI1. EE = FAUX ;
  118. ELEM3G. EE = 'MOT' 'SEG2' ;
  119. ELEM4G. EE = 'MOT' 'QUA4' ;
  120. 'FINSI' ;
  121. 'SI' ( 'EXISTE' ELEM1 'TRI3' ) ;
  122. EE = EE + 1 ;
  123. NPO. EE = 3 ;
  124. MASSI1. EE = VRAI ;
  125. ELEM3G. EE = 'MOT' 'TRI3' ;
  126. ELEM4G. EE = 'MOT' 'PRI6' ;
  127. 'FINSI' ;
  128. 'SI' ( 'EXISTE' ELEM1 'QUA4' ) ;
  129. EE = EE + 1 ;
  130. NPO. EE = 4 ;
  131. MASSI1. EE = VRAI ;
  132. ELEM3G. EE = 'MOT' 'QUA4' ;
  133. ELEM4G. EE = 'MOT' 'CUB8' ;
  134. 'FINSI' ;
  135. NBZ0 = EE ;
  136. 'FINSI' ;
  137. *==== TEST SUR LE CONTENU DU CHAMPS: CONTRAINTE, DEPLACEMENT ..=======
  138. IDEPL = 'EXISTE' ZZCHPU0 'UR' ;
  139. ICONT = ('EXISTE' ZZCHPU0 'N11') 'OU' ('EXISTE' ZZCHPU0 'SMRR') ;
  140. IDEFO = ('EXISTE' ZZCHPU0 'EPSS') 'OU' ('EXISTE' ZZCHPU0 'EPRR') ;
  141. IFLUI = 'EXISTE' ZZCHPU0 'P' ;
  142. 'SI' (IFLUI 'ET' IDEPL) ;
  143. 'ERREUR'
  144. 'FORMULATION FLUIDE OU MECANIQUE ' ;
  145. QUITTER TRAC3D_2 ;
  146. 'FINSI' ;
  147. *====== SI CAS DE FIGURE NON PREVU PAR LA PROCEDURE ===================
  148. 'SI' (('NON' ICONT) 'ET' ('NON' IDEPL) 'ET'
  149. ('NON' IDEFO) 'ET' ('NON' IFLUI)) ;
  150. 'MESS'
  151. 'ON FOURNIT UN CHAMP DE DEFORMATION OU DE'
  152. 'CONTRAINTE OU DE DEPLACEMENT EN FOURIER' ;
  153. 'ERREUR' 'TRAC3D_2' ;
  154. 'FINSI' ;
  155. *======= TEST SI DES POINTS DE LA STRUCTURE SONT SUR L AXE ============
  156. 'SI' (('MINI' 'ABS' ('COOR' 1 ZZMAIL)) < 1.e-5) ;
  157. AXE = VRAI ;
  158. 'SINON' ;
  159. AXE = FAUX ;
  160. 'FINSI' ;
  161. *======= CHANGEMENT DE LA NATURE DU CHPOINT ===========================
  162. 'SI' (IDEPL 'OU' IFLUI ) ;
  163. ZZCHPU0 = 'CHANGER' 'ATTRIBUT' ZZCHPU0 'NATURE' 'DIFFUS' ;
  164. 'FINSI' ;
  165. *======================================================================
  166. *===== BOUCLE SUR LE NOMBRE DE TYPE D ELEMENTS ========================
  167. *===== SI PAS DE MCHAML, ON BOUCLE SUR LE NOMBRES DE TYPES ============
  168. *===== D ELEMENTS =====================================================
  169. *======================================================================
  170. MM = 0 ;
  171. 'REPETER' BOUC0 NBZ0 ;
  172. MM = MM + 1 ;
  173. 'SI' CHELEM ;
  174. MODL1 = ZON1. (2*MM - 1) ;
  175. ZZCHPU = 'REDU' ZZCHPU0 MODL1 ;
  176. ELE1 = ELEM4F. MM ;
  177. 'SINON' ;
  178. ZON1. (2*MM) = ZZMAIL 'ELEM' ELEM3G. MM ;
  179. ZZCHPU = 'REDU' ZZCHPU0 ZON1. (2*MM) ;
  180. 'FINSI' ;
  181. ELE4 = ELEM4G. MM ;
  182. MASSI = MASSI1. MM ;
  183. *======== LISTE DES COMPOSANTES DE CONTRAINTE =========================
  184. 'SI' ICONT ;
  185. 'SI' MASSI ;
  186. COMPN = 'MOTS' 'SMRR' 'SMZZ' 'SMTT' 'SMRZ' 'SMRT' 'SMZT' ;
  187. 'SINON' ;
  188. COMPN = 'MOTS' 'N11' 'N22' 'M11' 'M22' 'N12' 'M12' ;
  189. 'FINSI' ;
  190. 'FINSI' ;
  191. *======== LISTE DES COMPOSANTES DE DEFORMATION ========================
  192. 'SI' IDEFO ;
  193. 'SI' MASSI ;
  194. COMPN = 'MOTS' 'EPRR' 'EPZZ' 'EPTT' 'GARZ' 'GART' 'GAZT' ;
  195. 'SINON' ;
  196. COMPN = 'MOTS' 'EPSS' 'EPTT' 'RTSS' 'RTTT' 'GAST' 'RTST' ;
  197. 'FINSI' ;
  198. 'FINSI' ;
  199. *========== PASSAGE EN DIMENSION 3 ====================================
  200. 'OPTI' 'DIME' 3;
  201. *===== OPERATIONS DE TRANSLATION SUR LE MAILLAGE ET LE CHAMPS INITIAUX
  202. *===== POUR NE PAS LES AFFECTER PAR LA PROCEDURE =====================
  203. 'SI' CHELEM ;
  204. MODL2 ZCHPU = MODL1 ZZCHPU 'PLUS' (0. 0. 0.) ;
  205. MAIL1 = 'EXTR' ZCHPU 'MAIL' ;
  206. 'SINON' ;
  207. ZCHPU = ZZCHPU 'PLUS' (0. 0. 0.) ;
  208. MAIL1 = 'EXTR' ZCHPU 'MAIL' 'NOMU' ;
  209. 'FINSI' ;
  210. ZZMAIL1 = ZON1. (2*MM) 'PLUS' (0. 0. 0.) ;
  211. 'ELIM' ZZMAIL1 MAIL1 .0001 ;
  212. ZMAIL = ZZMAIL1 'ELEM' 'APPUYE' 'STRICTEMENT' MAIL1 ;
  213. 'OPTI' 'MODE' 'FOUR' ZN ;
  214. *============== EXTRACTION DES DEPLACEMENTS ===========================
  215. 'SI' IDEPL ;
  216. CHPUR0='EXCO' 'UR' ZCHPU;
  217. CHPUZ0='EXCO' 'UZ' ZCHPU;
  218. 'SI' ('EXISTE' ZCHPU 'UT') ;
  219. CHPUT0='EXCO' 'UT' ZCHPU;
  220. 'SINON' ;
  221. CHPUT0='MANU' 'CHPO' ZMAIL 1 'UT' 0. 'NATURE' 'DIFFUS';
  222. 'FINSI' ;
  223. 'FINSI' ;
  224. *============ EXTRACTION DES CONTRAINTES OU DEFORMATIONS ==============
  225. 'SI' (ICONT 'OU' IDEFO) ;
  226. COMP1 = 'MOTS' 'N11' 'EPSS' 'SMRR' 'EPRR' ;
  227. COMP2 = 'MOTS' 'N22' 'EPTT' 'SMZZ' 'EPZZ' ;
  228. COMP3 = 'MOTS' 'N12' 'GAST' 'SMRT' 'GART' ;
  229. COMP4 = 'MOTS' 'M11' 'RTSS' 'SMTT' 'EPTT' ;
  230. COMP5 = 'MOTS' 'M22' 'RTTT' 'SMRZ' 'GARZ' ;
  231. COMP6 = 'MOTS' 'M12' 'RTST' 'SMZT' 'GAZT' ;
  232. COMP7 = COMP3 'ET' COMP6 ;
  233. 'SI' ('EXISTE' ('EXCO' COMP7 ZCHPU 'NOID')) ;
  234. CHPN120='EXCO' COMP3 ZCHPU 'NOID' ;
  235. CHPM120='EXCO' COMP6 ZCHPU 'NOID' ;
  236. 'SINON' ;
  237. *============= SI CALCUL AXISYMETRIQUE, ON RAJOUTE UNE COMPOSANTE =====
  238. 'SI' (('EXISTE' ZCHPU 'N11') 'ET'
  239. ( 'NON' ('EXISTE' ZCHPU 'N12'))) ;
  240. CHPN120='MANU' 'CHPO' ZMAIL 1 'N12' 0. 'NATURE' 'DIFFUS';
  241. CHPM120='MANU' 'CHPO' ZMAIL 1 'M12' 0. 'NATURE' 'DIFFUS';
  242. 'FINSI' ;
  243. 'SI' (('EXISTE' ZCHPU 'EPSS') 'ET'
  244. ( 'NON' ('EXISTE' ZCHPU 'GAST')));
  245. CHPN120='MANU' 'CHPO' ZMAIL 1 'GAST' 0. 'NATURE' 'DIFFUS';
  246. CHPM120='MANU' 'CHPO' ZMAIL 1 'RTST' 0. 'NATURE' 'DIFFUS';
  247. 'FINSI' ;
  248. 'SI' (('EXISTE' ZCHPU 'EPRR') 'ET'
  249. ( 'NON' ('EXISTE' ZCHPU 'GART'))) ;
  250. CHPN120='MANU' 'CHPO' ZMAIL 1 'GART' 0. 'NATURE' 'DIFFUS';
  251. CHPM120='MANU' 'CHPO' ZMAIL 1 'GAZT' 0. 'NATURE' 'DIFFUS';
  252. 'FINSI' ;
  253. 'SI' (('EXISTE' ZCHPU 'SMRR') 'ET'
  254. ( 'NON' ('EXISTE' ZCHPU 'SMRT'))) ;
  255. CHPN120='MANU' 'CHPO' ZMAIL 1 'SMRT' 0. 'NATURE' 'DIFFUS';
  256. CHPM120='MANU' 'CHPO' ZMAIL 1 'SMZT' 0. 'NATURE' 'DIFFUS';
  257. 'FINSI' ;
  258. 'FINSI' ;
  259. CHPN110='EXCO' COMP1 ZCHPU 'NOID' ;
  260. CHPN220='EXCO' COMP2 ZCHPU 'NOID' ;
  261. CHPM110='EXCO' COMP4 ZCHPU 'NOID' ;
  262. CHPM220='EXCO' COMP5 ZCHPU 'NOID' ;
  263. 'FINSI' ;
  264. *======================================================================
  265. *====== SI ON TRAITE UN MCHAML ========================================
  266. *=== IN : TABLE CONTENANT LES INFORMATIONS DU MCHML ===================
  267. *=== IN.II : REPERAGE DU JJ COMPOSANTE ================================
  268. *=== IN.JJ.II: REPERAGE DU II ELEMENT ================================
  269. *=== IN.JJ.II.LL: REPERAGE DE LA VALEUR AU LL POINT DE L ELEMENT II ===
  270. *======================================================================
  271. 'SI' CHELEM ;
  272. NN = 'NBEL' ZON1. (2*MM) ;
  273. IN = TABLE ;
  274. JJ = 0 ;
  275. *====== BOUCLE SUR LES COMPOSANTES ====================================
  276. 'REPETER' BC1 6 ;
  277. JJ = JJ + 1 ;
  278. COMP0 = 'EXTR' COMPN JJ ;
  279. IN. JJ = TABLE ;
  280. II = 0 ;
  281. *====== BOUCLE SUR LE NOMBRE D ELEMENTS ===============================
  282. 'REPETER' BC2 NN ;
  283. II = II + 1 ;
  284. IN. JJ . II = TABLE ;
  285. LL = 0 ;
  286. *====== BOUCLE SUR LE NOMBRE DE POINTS DANS L ELEMENT =================
  287. 'REPETER' BC22 (NPO.MM) ;
  288. LL = LL + 1 ;
  289. IN. JJ . II . LL = 'EXTR' ZCHPU COMP0 1 II LL ;
  290. 'FIN' BC22 ;
  291. *====== FIN BOUCLE SUR LE NOMBRE DE POINTS DANS L ELEMENT =============
  292. 'FIN' BC2 ;
  293. *====== FIN BOUCLE SUR LE NOMBRE D ELEMENTS ===========================
  294. 'FIN' BC1 ;
  295. *====== FIN BOUCLE SUR LES COMPOSANTES ================================
  296. 'FINSI' ;
  297. *============ EXTRACTION DES VARIABLES DU FLUIDE ======================
  298. 'SI' IFLUI ;
  299. CHPP0 = 'EXCO' 'P' ZCHPU 'P' ;
  300. CHPPI0 = 'EXCO' 'PI' ZCHPU 'PI' ;
  301. CHPPUZ0 = 'EXCO' 'UZ' ZCHPU 'NOID' 'UZ' ;
  302. 'FINSI' ;
  303. *=========== CHOIX DU NOUVEAU TYPE D ELEMENT ==========================
  304. *=== SEG2 ------> QUA4 ET TRI3 ----> PRI6 ET QUA4 ------> CUB8 ========
  305. *======================================================================
  306. 'OPTI' 'ELEM' ELE4 'MODE' 'TRID' ;
  307. ZA0=0. 0. 0.;ZAX=1. 0. 0.;ZAZ=0. 0. 1.;
  308. 'DEPLA' ZMAIL 'TOUR' 90 ZA0 ZAX;
  309. *======================================================================
  310. *===== LES COMPOSANTES DES DEPLACEMENTS DEVIENNENT DES SCALAIRES CAR ==
  311. *===== ETANT EXPRIMEES DANS LE REPERE GLOBAL, ON UTILISE 'COLINEAIRE'==
  312. *======================================================================
  313. 'SI' IDEPL ;
  314. CHPUR0='NOMC' 'SCAL' CHPUR0 ;
  315. CHPUZ0='NOMC' 'SCAL' CHPUZ0 ;
  316. CHPUT0='NOMC' 'SCAL' CHPUT0 ;
  317. 'FINSI' ;
  318. K=0;
  319. *======================================================================
  320. *== TMAIL3D : TABLE CONTENANT LE MAILLAGE DES GENERATRICES SUCCESSIVES=
  321. *== TMAIL3D : TABLE CONTENANT LE CHPOINT APPUYE SUR LES GENERATRICES ==
  322. *== OU LE MCHAML APPUYE SUR LES ELEMENTS DU MAILLAGE ==================
  323. *======================================================================
  324. TMAIL3D='TABLE'; TDEP3D = 'TABLE' ;
  325. *======================================================================
  326. *=== DTHETA : INCREMENT DE L ANGLE DE ROTATION DU MAILLAGE INITIAL ===
  327. *======================================================================
  328. DTHETA=ZANGL / ZM;
  329. *======================================================================
  330. *=== DEBUT DE LA BOUCLE DE ROTATION ===================================
  331. *=== LES COMPOSANTES VARIENT EN COS(NT) OU SIN(NT) AVEC N LE NUMERO DE
  332. *=== L HARMONIQUE EN FOURIER ET T L ANGLE FORME AVEC LA CONFIGURATION
  333. *=== INITIALE =========================================================
  334. *======================================================================
  335. 'SI' ((1-(ZANGL/360)) '<' 0.005 ) ;
  336. ZMM = ZM ;
  337. 'SINON' ;
  338. ZMM = ZM + 1 ;
  339. 'FINSI' ;
  340. 'REPETER' BOU1 ZMM ;
  341. K= K + 1;
  342. THETA= (K - 1)* (DTHETA);
  343. COSNT= 'COS' ( ZN *THETA );
  344. SINNT= 'SIN' ( ZN *THETA );
  345. COST = 'COS' THETA ;
  346. SINT = 'SIN' THETA ;
  347. *====== CHAMPS DE DEPLACEMENT ==========================================
  348. 'SI' IDEPL ;
  349. CHPUXK = 'COLI' CHPUR0 (COSNT*COST) CHPUT0 (SINNT*SINT*-1);
  350. CHPUYK = 'COLI' CHPUR0 (COSNT*SINT) CHPUT0 (SINNT*COST);
  351. CHPUZK = CHPUZ0*COSNT;
  352. CHPUXKK= 'NOMC' UX CHPUXK;
  353. CHPUYKK= 'NOMC' UY CHPUYK;
  354. CHPUZKK= 'NOMC' UZ CHPUZK;
  355. CHPUK = CHPUXKK 'ET' CHPUYKK 'ET' CHPUZKK ;
  356. 'DETR' CHPUXKK;'DETR' CHPUYKK;'DETR' CHPUZKK;
  357. 'FINSI' ;
  358. *====== CHAMPS DE CONTRAINTES OU DE DEFORMATIONS =======================
  359. 'SI' (ICONT 'OU' IDEFO) ;
  360. CHPN11K = CHPN110*COSNT ;
  361. CHPN22K = CHPN220*COSNT ;
  362. CHPN12K = CHPN120*SINNT ;
  363. CHPM11K = CHPM110*COSNT ;
  364. CHPM22K = CHPM220*COSNT ;
  365. CHPM12K = CHPM120*SINNT ;
  366. CHPUK = CHPN11K 'ET' CHPN22K 'ET' CHPN12K 'ET' CHPM11K
  367. 'ET' CHPM22K 'ET' CHPM12K;
  368. 'FINSI' ;
  369. *====== CHAMPS DE VARIABLES FLUIDES ===================================
  370. 'SI' IFLUI ;
  371. CHPPK = CHPP0*COSNT ;
  372. CHPPIK = CHPPI0*COSNT ;
  373. CHPUK = CHPPK 'ET' CHPPIK ;
  374. 'SI' ('EXISTE' ZCHPU 'UZ') ;
  375. CHPPUZK = CHPPUZ0*COSNT ;
  376. CHPUK = CHPUK 'ET' CHPPUZK;
  377. 'FINSI' ;
  378. 'FINSI' ;
  379. *======================================================================
  380. *=== ROTATION DU MAILLAGE ET TRANSLATION FICTIVE POUR NE PAS ==========
  381. *=== L AFFECTER PAR LES OPERATIONS D ELIMINATION ======================
  382. *======================================================================
  383. 'DEPLA' ZMAIL 'TOUR' DTHETA ZA0 ZAZ;
  384. 'SI' CHELEM ;
  385. MODL3 TDEP3D.K = MODL2 CHPUK 'PLUS' (0. 0. 0.) ;
  386. ZMAIL2 = 'EXTRAIRE' (TDEP3D.K) 'MAIL' ;
  387. 'SINON' ;
  388. TDEP3D.K = CHPUK 'PLUS' (0. 0. 0.) ;
  389. ZMAIL2 = 'EXTRAIRE' (TDEP3D.K) 'MAIL' 'NOMU';
  390. 'FINSI' ;
  391. TMAIL3D.K= ZMAIL 'PLUS' (0. 0. 0. ) ;
  392. 'ELIM' (TMAIL3D.K) ZMAIL2 .001 ;
  393. *=== SI CHPOINT, ON SAUVE LE CHAMPS CORRESPONDANT A L ANGLE THETA =====
  394. 'SI' ('NON' CHELEM) ;
  395. 'SI' (K 'EGA' 1) ; ;
  396. DEP3D = TDEP3D.K ;
  397. 'SINON' ;
  398. DEP3D = DEP3D 'ET' (TDEP3D.K) ;
  399. 'FINSI' ;
  400. 'FINSI' ;
  401. 'SI' (K '>' 1) ;
  402. *==== GENERATION DU MAILLAGE ENTRE GENERATRICES =======================
  403. 'SI' ( 'NON' MASSI) ;
  404. MAIL3D1 = (TMAIL3D.(K - 1)) 'REGL' 1 (TMAIL3D. K) ;
  405. 'SINON' ;
  406. MAIL3D1 = (TMAIL3D.(K - 1)) 'VOLU' 1 (TMAIL3D. K) ;
  407. 'FINSI' ;
  408. 'SI' ('EGA' K 2) ;
  409. MAIL3D = MAIL3D1 ;
  410. 'SINON' ;
  411. MAIL3D= MAIL3D 'ET' MAIL3D1;
  412. 'FINSI' ;
  413. *==== SI MCHAML,ON LE RECONSTRUIT SUR LES ELEMENTS DU NOUVEAU MAILLAGE =
  414. *==== MAILLAGE ET DEFINITION D UN MODELE ==============================
  415. 'SI' CHELEM ;
  416. MOD1 = 'MODE' MAIL3D1 'MECANIQUE' ELE1 ;
  417. JJ = 0 ;
  418. *====== BOUCLE SUR LES COMPOSANTES ====================================
  419. 'REPETER' BC3 6 ;
  420. JJ = JJ + 1 ;
  421. 'SI' (JJ '<' 5 ) ;
  422. ALPHA = COSNT ;BETA = BETA1 ;
  423. 'SINON' ;
  424. ALPHA = SINNT ;BETA = BETA2 ;
  425. 'FINSI' ;
  426. COMP0 = 'EXTR' COMPN JJ ;
  427. II = 0 ;
  428. *====== BOUCLE SUR LE NOMBRE D ELEMENTS ===============================
  429. 'REPETER' BC4 NN ;
  430. II = II + 1 ;
  431. LL = 0 ;
  432. CHAM = TABLE ;
  433. *====== BOUCLE SUR LE NOMBRE DE POINTS DANS L ELEMENT =================
  434. 'REPETER' BC44 (2*(NPO.MM)) ;
  435. LL = LL + 1 ;
  436. 'SI' ( LL '<' ((NPO.MM) + 1 )) ;
  437. CHAM. LL = 'MANU' 'CHAM' MOD1 'POSI' 'NOEUD'
  438. COMP0 II LL ((IN . JJ . II . LL)*BETA) ;
  439. 'SINON' ;
  440. 'SI' MASSI ;
  441. PP = LL - (NPO.MM) ;
  442. 'SINON' ;
  443. PP = 2*(NPO.MM) + 1 - LL ;
  444. 'FINSI' ;
  445. CHAM. LL = 'MANU' 'CHAM' MOD1 'POSI' 'NOEUD'
  446. COMP0 II LL ((IN . JJ . II . PP)*ALPHA) ;
  447. 'FINSI' ;
  448. 'SI' ('EGA' LL 1) ;
  449. CHAMTOT = CHAM. LL ;
  450. 'SINON' ;
  451. CHAMTOT = CHAMTOT + CHAM. LL ;
  452. 'FINSI' ;
  453. 'FIN' BC44 ;
  454. *====== FIN BOUCLE SUR LE NOMBRE DE POINTS DANS L ELEMENT =============
  455. 'SI' (('EGA' II 1) 'ET' ('EGA' JJ 1)
  456. 'ET' ('EGA' K 2)) ;
  457. DEP3D = CHAMTOT ;
  458. 'SINON' ;
  459. DEP3D = DEP3D + CHAMTOT ;
  460. 'FINSI' ;
  461. 'FIN' BC4 ;
  462. *====== FIN BOUCLE SUR LE NOMBRE D ELEMENTS ===========================
  463. 'FIN' BC3 ;
  464. 'MENAGE' ;
  465. *====== FIN BOUCLE SUR LES COMPOSANTES ================================
  466. 'FINSI' ;
  467. 'FINSI' ;
  468. BETA1 = COSNT ; BETA2 = SINNT ;
  469. 'FIN' BOU1;
  470. *======================================================================
  471. *====== FIN BOUCLE SUR LE NOMBRE DE ROTATIONS =========================
  472. *====== CE TEST PERMET DE COMPLETER L'OBJET ===========================
  473. *====== LORSQUE L'ANGLE EST EGAL A 360 ================================
  474. *======================================================================
  475. 'SI' ((1-(ZANGL/360)) '<' 0.005 );
  476. 'SI' ( 'NON' MASSI) ;
  477. MAIL3D1 = ((TMAIL3D.(K)) 'REGL' 1 (TMAIL3D.1)) ;
  478. 'SINON' ;
  479. MAIL3D1 = (TMAIL3D.K ) 'VOLU' 1 (TMAIL3D.1);
  480. 'FINSI' ;
  481. MAIL3D= MAIL3D 'ET' MAIL3D1;
  482. 'SI' CHELEM ;
  483. MOD1 = 'MODE' MAIL3D1 'MECANIQUE' ELE1 ;
  484. JJ = 0 ;
  485. 'REPETER' BC5 6 ;
  486. JJ = JJ + 1 ;
  487. COMP0 = 'EXTR' COMPN JJ ;
  488. 'SI' (JJ '<' 5) ;
  489. ALPHA = BETA1 ; BETA = COS 0. ;
  490. 'SINON' ;
  491. ALPHA = BETA2 ; BETA = SIN 0. ;
  492. 'FINSI' ;
  493. II = 0 ;
  494. 'REPETER' BC6 NN ;
  495. II = II + 1 ;
  496. LL = 0 ;
  497. CHAM = TABLE ;
  498. 'REPETER' BC66 (2*(NPO.MM)) ;
  499. LL = LL + 1 ;
  500. 'SI' ( LL '<' ((NPO.MM) + 1 )) ;
  501. CHAM. LL = 'MANU' 'CHAM' MOD1 'POSI' 'NOEUD'
  502. COMP0 II LL ((IN . JJ . II . LL)*ALPHA) ;
  503. 'SINON' ;
  504. 'SI' MASSI ;
  505. PP = LL - (NPO.MM) ;
  506. 'SINON' ;
  507. PP = 2*(NPO.MM) + 1 - LL ;
  508. 'FINSI' ;
  509. CHAM. LL = 'MANU' 'CHAM' MOD1 'POSI' 'NOEUD'
  510. COMP0 II LL ((IN. JJ . II . PP)*BETA) ;
  511. 'FINSI' ;
  512. 'SI' ('EGA' LL 1) ;
  513. CHAMTOT = CHAM. LL ;
  514. 'SINON' ;
  515. CHAMTOT = CHAMTOT + CHAM. LL ;
  516. 'FINSI' ;
  517. 'FIN' BC66 ;
  518. DEP3D = DEP3D + CHAMTOT ;
  519. 'FIN' BC6 ;
  520. 'FIN' BC5 ;
  521. 'FINSI' ;
  522. 'FINSI';
  523. 'SI' ( 'EGA' MM 1) ; DEP3DI = DEP3D ; MAIL3DI = MAIL3D ;
  524. 'SINON'; DEP3DI = DEP3DI + DEP3D ;MAIL3DI = MAIL3DI 'ET' MAIL3D ;
  525. 'FINSI' ;
  526. DEP3D = DEP3DI ;MAIL3D = MAIL3DI ;
  527. *====== FIN BOUCLE SUR LE NOMBRE DE ZONES DU MODELE ===================
  528. 'FIN' BOUC0 ;
  529. *======================================================================
  530. *=============== FIN DU TEST COMPLETANT LA STRUCTURE ==================
  531. *===== NETTOYAGE DU MAILLAGE SI IL EXISTE DES POINTS ==================
  532. *===== APPARTENANTS A L AXE DE ROTATION ===============================
  533. *======================================================================
  534. 'SI' CHELEM ;
  535. 'ELIM' MAIL3DI 1.E-4 ;
  536. MODLF = 'MODE' MAIL3D 'MECANIQUE' 'PRI6' 'CUB8' 'COQ4';
  537. 'SINON' ;
  538. 'SI' AXE ;
  539. GEO1 = MAIL3D 'POIN' 'DROIT' ZA0 ZAZ 1.E-5 ;
  540. CH1 = 'REDU' DEP3D GEO1 ; CH2 = CH1/ZM ;
  541. DEP3D = DEP3D - CH1 + CH2 ;
  542. 'DETR' CH1 ; 'DETR' CH2 ;
  543. DEP3D = 'CHANGER' 'ATTRIBUT' DEP3D 'NATURE' 'DISCRET' ;
  544. DEP3DI = 'CHANGER' 'ATTRIBUT' DEP3DI 'NATURE' 'DISCRET' ;
  545. 'ELIM' MAIL3D 1.E-4 ;
  546. DEP3D = 'CHANGER' 'ATTRIBUT' DEP3D 'NATURE' 'DIFFUS' ;
  547. MAIL3D = 'REGE' MAIL3D ;
  548. 'FINSI' ;
  549. 'FINSI' ;
  550. *======================================================================
  551. *======= SAUVEGARDE DES RESULTATS DANS UNE TABLE COMPRENANT ===========
  552. *======= LE MAILLAGE TRIDIMENSIONNEL ET UN CHAMPS ASSOCIE =============
  553. *======================================================================
  554. TAB1 = 'TABLE' ;
  555. TAB1. 'MAILLAGE' = MAIL3D ;
  556. 'SI' IDEPL ;
  557. TAB1. 'DEPLACEMENT' = DEP3D ;
  558. 'FINSI' ;
  559. 'SI' ICONT ;
  560. TAB1. 'CONTRAINTE' = DEP3D ;
  561. 'FINSI' ;
  562. 'SI' IDEFO ;
  563. TAB1. 'DEFORMATION' = DEP3D ;
  564. 'FINSI' ;
  565. 'SI' IFLUI ;
  566. TAB1. 'FLUIDE' = DEP3D ;
  567. 'FINSI' ;
  568. 'SI' CHELEM ;
  569. TAB1. 'MODELE' = MODLF ;
  570. 'FINSI' ;
  571. *============== FIN DE LA PROCEDURE ===================================
  572. 'FINPROC' TAB1 ;
  573.  
  574.  
  575.  

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