Télécharger drx_flexion_elas.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : drx_flexion_elas.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. * Cas test de la procédure EXPLICIT
  6. *
  7. * Calcul de la réponse dynamique d'une plaque axisymétrqiue
  8. * à une force de type impact sur son centre
  9. *
  10. * La réponse est comparée à un calcul modale avec DYNE
  11. *
  12. * options de calcul:
  13. * linéaire,
  14. * petits déplacements,
  15. * axisymétrie,
  16. * éléments QUA4,TRI3 et COQ2,
  17. * conditions aux limites de déplacements nuls en 1 point.
  18. *
  19. *
  20. * maillage d'une plaque cylindrique
  21. * en beton avec ferraillage
  22. *
  23. * Diametre 20 m Epaisseur 1m
  24. * fer tous les metres
  25. *
  26. * axe de symétrie
  27. * \
  28. * \ Force sur r=1m
  29. * \ !!!!
  30. * ----------------------------
  31. * uz | beton |
  32. * |_ ur | + fer |\
  33. * O ---------------------------- \
  34. * blocage suivant z
  35. *
  36. graph = faux;
  37. opti echo 0;
  38. OPTI EPSI LINEAIRE;
  39.  
  40. *
  41. * MAILLAGE
  42. *
  43.  
  44. opti dime 2 mode axis ;
  45.  
  46. ep1 = 2. ;
  47. ray1 = 20. ;
  48. int1 = 2. ;
  49.  
  50. * parametre du nombre d'element sur la verticale
  51. n1 = 6 ;
  52. * paramètre du nombre d'élément sur l'horizontale
  53. n2 = 1;
  54.  
  55. pi1 = 0. 0 ;
  56. ps1 = 0. ep1 ;
  57.  
  58. opti elem seg2 ;
  59. lv1 = d pi1 n1 ps1 ;
  60.  
  61.  
  62. nfer = ( enti ray1 ) / ( enti int1 ) ;
  63. tabmail = table maillage ;
  64. tabmail . 1 = table ;
  65. tabmail . 1 . 'LVERT' = lv1 ;
  66.  
  67.  
  68. ln = lect 6 4 3 8 * 2 20 * 1 ;
  69.  
  70.  
  71. opti elem qua4 ;
  72. i = 1 ;
  73.  
  74. repeter bou1 nfer ;
  75.  
  76. ni = extr ln i ;
  77. tabmail . i . 'SU' = (tabmail . i . 'LVERT') trans
  78. ( ni * n2 ) ( int1 0. ) ;
  79. tabmail . i . 'LSUP' = cote 2 (tabmail . i . 'SU') ;
  80. tabmail . i . 'LINF' = cote 4 (tabmail . i . 'SU') ;
  81. i = i + 1;
  82. tabmail . i = table ;
  83. tabmail . i . 'LVERT' = inve (cote 3 (tabmail . (i - 1) . 'SU')) ;
  84.  
  85. si ( i ega 4 ) ;
  86. n1 = n1 / 2 ;
  87. d4 = int1 / ni / n2 ;
  88. pi4 = (2 * int1 + d4) 0. ;
  89. ps4 = (2 * int1 + d4) ep1 ;
  90. li4 = d pi4 n1 ps4 ;
  91. su4a = coutu (tabmail . (i - 1) . 'LVERT') li4 ;
  92. su4b = li4 trans ( ni * n2 - 1) ( (d4 * ( ni * n2 - 1)) 0.) ;
  93. tabmail . (i - 1) . 'SU' = su4a et su4b ;
  94. tabmail . (i - 1) . 'LSUP' = (cote 2 su4a) et (cote 2 su4b) ;
  95. tabmail . (i - 1) . 'LINF' = (cote 4 su4a) et (cote 4 su4b) ;
  96. tabmail . i . 'LVERT' = inve (cote 3 su4b ) ;
  97. finsi ;
  98.  
  99. si ( i ega 2 ) ;
  100. total1 = (tabmail . (i - 1 ) . 'SU') ;
  101. totsup1 = (tabmail . (i - 1 ) . LSUP ) ;
  102. totinf1 = (tabmail . (i - 1 ) . LINF ) ;
  103. totvert1 = (tabmail . i . LVERT ) ;
  104. sinon ;
  105. total2 = total1 et (tabmail . (i - 1) . 'SU') ;
  106. * detr total1 ;
  107. total1 = total2 ;
  108. totsup2 = totsup1 et (tabmail . (i - 1) . 'LSUP') ;
  109. * detr totsup1 ;
  110. totsup1 = totsup2 ;
  111. totinf2 = totinf1 et (tabmail . (i - 1) . 'LINF') ;
  112. * detr totinf1 ;
  113. totinf1 = totinf2 ;
  114. totvert2 = totvert1 et (tabmail . i . LVERT ) ;
  115. * detr totvert1 ;
  116. totvert1 = totvert2 ;
  117. finsi ;
  118. fin bou1 ;
  119.  
  120.  
  121. mailpres = ( elem ( tabmail . 1 . lsup ) 1 )
  122. et ( elem ( tabmail . 1 . lsup ) 2 )
  123. et ( elem ( tabmail . 1 . lsup ) 3 ) ;
  124.  
  125.  
  126. totvert1 = coul totvert1 vert ;
  127. totsup1 = coul totsup1 bleu ;
  128. totinf1 = coul totinf1 bleu ;
  129. total1 = coul total1 jaune ;
  130.  
  131. totfer = totvert1 et totsup1 et totinf1 ;
  132. *trac totfer titr 'Ferraillage' ecla ;
  133.  
  134. *trac ( total1 et totfer ) titr 'Ferraillage et Beton' ecla ;
  135.  
  136. opti echo 0 ;
  137. nelm = (nbelem total1) ;
  138. nnom = (nbno total1) ;
  139. nelc = ( nbelem totfer ) ;
  140. nnoc = (nbno totfer) ;
  141. nnddl = nnom * 2 + nnoc ;
  142.  
  143. sauter 1 ligne ;
  144. mess 'Nbre d element massifs' nelm 'soit' nnom;
  145. mess 'Nbre d element coque ' nelc 'soit' nnoc ;
  146. mess 'Total' ( nelm + nelc ) 'Elements' nnddl 'ddl' ;
  147. sauter 1 ligne ;
  148. opti echo 1 ;
  149.  
  150.  
  151. * determnation des distances minimales L
  152. * pour le calcul du pas de temps
  153.  
  154. *
  155. * MODELE ET MATERIAU
  156. *
  157.  
  158.  
  159. mobeto = mode total1 mecanique elastique ;
  160. mabeto = mate mobeto YOUN 40.d9 NU 0.2 RHO 2.4d3;
  161. mofer = mode totfer mecanique elastique coq2 ;
  162. mafer = mate mofer RHO 7.8d3 YOUN 210.d9 NU 0.3 ;
  163. carfer = cara mofer EPAI 12.d-3 ;
  164.  
  165. *
  166. * CONDITONS AUX LIMITES
  167. *
  168.  
  169. pext1 = total1 poin proc ( ray1 0. ) ;
  170. cl1 = bloq UZ pext1 ;
  171.  
  172.  
  173. *
  174. * CHARGEMENT SPATIAL
  175. *
  176. fpres = (PRESS COQU ( redu mofer mailpres) 1. NORM) / -3.14158 ;
  177. fpres = 'EXCO' fpres ( 'MOTS' 'FR' 'FZ' ) ;
  178. vpres = vect fpres FR FZ rouge 2.;
  179. titr 'Distribution spatiale du chargement (forces nodales equi.)' ;
  180. *trac vpres total1 ;
  181.  
  182. *
  183. * ANALYSE MODALE
  184. *
  185.  
  186.  
  187. rig1 = rigi ( mobeto et mofer ) (mabeto et mafer et carfer ) ;
  188.  
  189. mas1 = masse ( mobeto et mofer ) (mabeto et mafer et carfer ) ;
  190.  
  191. temps zero ;
  192. tbas1 = vibr 'INTERVALLE' 0. 300. basse 70 ( rig1 et cl1 ) mas1;
  193.  
  194. lfreq = prog ;
  195. i = 1 ;
  196. repeter bou1 ( (dime tbas1 . modes ) - 2);
  197. tabi = tbas1 . modes . i ;
  198. lfreq = lfreq et ( prog tabi .frequence ) ;
  199. * titr 'Frequence ' tabi .frequence ;
  200. * trac ( defo total1 tabi . deformee_modale ) ;
  201. i = i + 1 ;
  202. fin bou1 ;
  203.  
  204.  
  205. *
  206. * evolution temporelle force d'impact
  207. *
  208. evolp = evol manu
  209. ((prog 0. 10. 20. 30. 40. 50. 60. 70. 1000.)*1.d-3)
  210. ((prog 0. 55. 55. 110. 110. 55. 55. 0. 0.)*1.d6 / 3.) ;
  211.  
  212. *
  213. * réponse élastique de la structrue avec dyne
  214. *
  215.  
  216. tabchar = table chargement ;
  217. cha1 = char MECA evolp fpres ;
  218.  
  219. chaba1 = PJBA cha1 tbas1 ;
  220. tabchar . BASE_A = chaba1 ;
  221.  
  222. sol1 = 'PSMO' (rig1 et cl1 ) (tbas1 . 'MODES') fpres ;
  223. tbas1 . 'PSEUDO_MODES' = sol1 ;
  224.  
  225. fr1 = extr lfreq (dime lfreq ) ;
  226. w1 = 2 * pi * fr1 ;
  227. dt = 2 ** .5 * 2 / w1 / 10 ;
  228. npas = 'ENTI' ( 21.d-3 / dt) ; nins = 1 ;
  229. 'MESS' 'Nombre de pas : ' npas ;
  230. tbas1 = reac cl1 tbas1 ;
  231.  
  232. tabres = dyne de_vogelaere tbas1 tabchar npas dt nins ;
  233. TABTPS = TEMP 'NOEC';
  234. tdyn = TABTPS.'TEMPS_CPU'.'INITIAL' ;
  235.  
  236. evx = 'EVOL' 'RECO' tabres tbas1 cha1 'REAC' pext1 FZ ;
  237. evy = 'EVOL' 'RECO' tabres tbas1 cha1 DEPL pi1 UZ ;
  238.  
  239. *
  240. * calcul à l'aide de la procédure explicite
  241. *
  242.  
  243. * pas de temps minimum
  244. celbet = ( 37.d9 / 2.4d3 ) ** 0.5 ;
  245. celfer = ( 210.d9 / 7.8d3 ) ** 0.5 ;
  246.  
  247. lmin = int1 / 6. / n1 ;
  248. dtmin = lmin / ( maxi ( prog celfer celbet ) ) ;
  249.  
  250.  
  251. tab_in = TABLE ;
  252. tab_in .'CHARGEMENT' = cha1 ;
  253. tab_in .'LIAISONS' = cl1 ;
  254. tab_in .'MODELE' = mobeto et mofer;
  255. tab_in .'CARACTERISTIQUES' = mafer et mabeto et carfer ;
  256. tab_in .'PAS_TEMPS' = dtmin ;
  257. tab_in .'NPASMAX' = enti ( 20.87d-3 / dtmin ) ;
  258. tab_in .'TEMPS_SORTIE' = prog 0. PAS 2.5d-4 20.87d-3 ;
  259.  
  260. temps zero ;
  261. DREXUS tab_in ;
  262. TABTPS = TEMP 'NOEC';
  263. texpli = TABTPS.'TEMPS_CPU'.'INITIAL' ;
  264.  
  265. *
  266. * FORCE DE REACTION DU CADRE
  267. *
  268.  
  269. i = 1 ;
  270. lt = prog 0.;
  271. lz = prog 0. ;
  272. lzpi1 = prog 0. ;
  273.  
  274. repeter bou1 ( (dime tab_in . deplacements ) - 1) ;
  275.  
  276. lt = lt et ( prog tab_in . temps . i ) ;
  277. fex1 = tab_in . forces_exterieures . i;
  278. dep1 = tab_in . deplacements . i;
  279. fz = extr fex1 pext1 'FZ' ;
  280. lz = lz et ( prog fz ) ;
  281. lzpi1 = lzpi1 et ( prog ( extr dep1 pi1 UZ ) );
  282. i = i + 1 ;
  283.  
  284. fin bou1 ;
  285.  
  286. evfz = evol bleu manu 'Temps' lt 'Fz' lz ;
  287. evx = coul evx turq ;
  288.  
  289. tabgraf = table ;
  290. tabgraf . 1 = 'MARQ CROI ' ;
  291. tabgraf . 2 = 'MARQ PLUS ' ;
  292. tabgraf.'TITRE' = table ;
  293. tabgraf.'TITRE' . 1 = mot 'explicit' ;
  294. tabgraf.'TITRE' . 2 = mot 'base_modale' ;
  295. si graph;
  296. dess ( evfz et evx ) tabgraf lege xbor 0. 0.024 ;
  297. finsi;
  298. *
  299. * DEPLACEMENT VERTICAL AU DROIT DE LA FORCE
  300. *
  301.  
  302. evuz = evol bleu manu 'TEMPS' lt 'UZ' lzpi1 ;
  303. evy = coul evy turq ;
  304. tabgraf . 2 = 'MARQ PLUS ' ;
  305. tabgraf.'TITRE' . 2 = mot 'base_modale' ;
  306. si graph;
  307. dess ( evuz et evy ) tabgraf lege xbor 0. 0.024 ;
  308. finsi;
  309. *
  310. * TEST DE BON FONCTIONNEMENT
  311. *
  312.  
  313. lz2 = ipol lt ( extr evx 'ABSC' ) (extr evx 'ORDO' ) ;
  314. err1 = (maxi abs ( lz2 - lz )) / ( maxi abs lz2 );
  315. lerr1 = err1 >eg 0.15 ;
  316.  
  317. luz2 = ipol lt ( extr evy 'ABSC' ) (extr evy 'ORDO' ) ;
  318. err2 = (maxi abs ( lzpi1 - luz2 )) / ( maxi abs luz2 ) ;
  319. lerr2 = err2 >eg 0.05 ;
  320.  
  321. mess 'Erreur sur la force ' (err1 * 100. ) '%' ;
  322. mess 'Erreur sur le deplacement ' (err2 * 100. ) '%' ;
  323.  
  324. si (tdyn <eg 0) ;
  325. mess 'Rapport Tps Calcul EXPLICIT/DYNE =' texpli '/' tdyn ;
  326. sinon ;
  327. mess 'Rapport Tps Calcul EXPLICIT/DYNE =' (1. * texpli /tdyn) ;
  328. finsi ;
  329.  
  330. si (ou lerr2 lerr1) ;
  331. mess 'Erreur dans le cas test beton_elas' ;
  332. erreur 5 ;
  333. finsi ;
  334.  
  335. fin;
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  

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