Télécharger rupt18.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : rupt18.dgibi
  2. opti epsi lineaire ;
  3. ************************************************************************
  4. ************************************************************************
  5.  
  6. *******************************************************
  7. * Test rupt18.dgibi: Jeux de données *
  8. * --------------------------------- *
  9. *******************************************************
  10. * CAS TEST DU 15/12/15 PROVENANCE : TEST
  11.  
  12. *Cas test de validation pour le calcul de J sous plusieurs chargement
  13. *avec les procedures g_theta.procedur et g_calcul.procedur
  14. *
  15. *- chargement en traction
  16. *- chargement avec pression sur levres
  17. *- chargement thermique
  18.  
  19. *Calcul en dimension 2 avec des elements QUA4 sur un maillage complet
  20. *non symetrique
  21.  
  22. opti dime 2 elem qua4 mode axis echo 0 ;
  23.  
  24. * ig1 : mettre a vrai pour activer traces
  25. ig1 = faux ;
  26.  
  27. ************************
  28. *Données paramètriques :
  29. ************************
  30. * a : profondeur de la fissure *
  31. * t : epaisseur du tube *
  32. * ri, re : rayon interne/externe *
  33. * h : hauteur du tube *
  34.  
  35. h = 1. ;
  36. t = 60.e-3 ;
  37. a = t/5 ;
  38. ri = t*5;
  39. re = ri+t;
  40.  
  41. *COORDONNEE DE LA POINTE DE LA FISSURE
  42. pf = (a + ri) 0. ;
  43.  
  44. *NOMBRE D'ELEMENTS AUTOUR DE LA POINTE DE LA FISSURE (1 et 2 COUT)
  45. n_fiss = 10 ;
  46.  
  47. *TAILLE D'UN ELEMENT DE LA 1ERE ET 2EME COUTURE*
  48. t_el = 200e-6 ; t_el2 = 400e-6 ;
  49. *Facteur d'agrandissement de la taille du derafinement
  50. tt_el2 = 4.*t_el2 ;
  51.  
  52. *LONGUEUR DE LA 1ERE ET 2EME COUTURE*
  53. lc1 = n_fiss * t_el ; lc2 = t_el2 * n_fiss;
  54.  
  55. *NIVEAU DE CHARGEMENT
  56. p0T = -400. ; p0P = 400. ; dt0 = 300.;
  57.  
  58. *=============================================================
  59. **************************************************************
  60. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  61. * DEBUT DU MAILLAGE
  62. *=============================================================
  63. **************************************************************
  64. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  65.  
  66.  
  67. **************************************************************
  68. ********************** 1ERE COUTURE ************************
  69. ************ (Autour de la pointe de la fissure) ***********
  70. **************************************************************
  71.  
  72. p1cbd = pf plus (lc1 0.) ;
  73. p1chd = pf plus (lc1 lc1) ;
  74. pf1 = pf plus (0. lc1) ;
  75. p1chg = pf1 moin (lc1 0.) ;
  76. p1cbg = pf moin (lc1 0.) ;
  77.  
  78. d1ch = droi (2*n_fiss) p1chg p1chd;
  79. d1cg = droi (n_fiss) p1cbg p1chg ;
  80. d1cd = droi (n_fiss) p1cbd p1chd ;
  81. d1cbg = droi (n_fiss) p1cbg pf ;
  82. d1cbd = droi (n_fiss) pf p1cbd ;
  83.  
  84. cout1 = regl n_fiss d1ch (d1cbg et d1cbd) ;
  85. cout1 = coul jaun cout1 ;
  86.  
  87. **************************************************************
  88. ********************** 2EME COUTURE ************************
  89. ************ (Autour de la pointe de la fissure) ***********
  90. ************** Partie au-dessus de la fissure **************
  91. **************************************************************
  92.  
  93. p2cbd = pf plus (lc2 0.) ;
  94. p2chd = pf plus (lc2 lc2) ;
  95. pf2 = pf plus (0. lc2) ;
  96. p2chg = pf2 moin (lc2 0.) ;
  97. p2cbg = pf moin (lc2 0.) ;
  98.  
  99. d2ch = droi (2*n_fiss) p2chg p2chd;
  100. d2cg = droi (n_fiss) p2cbg p2chg ;
  101. d2cd = droi (n_fiss) p2cbd p2chd ;
  102.  
  103. cout2 = regl n_fiss (d1cd et d1ch et d1cg) (d2cd et d2ch et d2cg) ;
  104. cout2 = coul vert cout2 ;
  105.  
  106. cout1et2 = cout1 et cout2;
  107.  
  108. **************************************************************
  109. ***************** DERAFINEMENT DES COUTURES ****************
  110. ************** Partie au-dessus de la fissure **************
  111. **************************************************************
  112.  
  113. *------------------( DERAF A 4 ELEMENT )-------------------
  114.  
  115. pid1 = p2chg moin (0. tt_el2) ;
  116. pid2 = pid1 plus (0. t_el2) ;
  117. pid3 = pid2 plus (0. t_el2) ;
  118. pid4 = pid3 plus (0. t_el2) ;
  119. pid5 = pid4 plus (0. t_el2) ;
  120. pid6 = pid2 moin (t_el2 0.) ;
  121. pid7 = pid3 moin (t_el2 0.) ;
  122. pid8 = pid4 moin (t_el2 0.) ;
  123. pid9 = pid1 moin (tt_el2 0.) ;
  124. pid10 = pid3 moin (tt_el2 0.) ;
  125. pid11 = pid5 moin (tt_el2 0.) ;
  126.  
  127. did1 = droi 1 pid1 pid2 ;
  128. did2 = droi 1 pid2 pid3 ;
  129. did3 = droi 1 pid3 pid4 ;
  130. did4 = droi 1 pid4 pid5 ;
  131. did5 = droi 1 pid9 pid6 ;
  132. did6 = droi 1 pid6 pid7 ;
  133. did7 = droi 1 pid7 pid8 ;
  134. did8 = droi 1 pid11 pid8 ;
  135. did9 = droi 1 pid10 pid7 ;
  136.  
  137. si1 = (regl 1 did1 did5) et (regl 1 did2 did6) et
  138. (regl 1 did3 did7) et (regl 1 did4 (inve did8)) et
  139. (regl 1 did8 did9) et (regl 1 did9 did5) ;
  140. elim si1 1.e-5 ;
  141.  
  142. *------------------( DERAF A 3 ELEMENT )-------------------
  143.  
  144. pad1 = pf moin (lc2 0.) ;
  145. pad2 = pad1 plus (0. t_el2) ;
  146. pad3 = pad2 plus (0. t_el2) ;
  147. pad4 = pad3 plus (0. t_el2) ;
  148. pad5 = pad2 moin (t_el2 0.) ;
  149. pad6 = pad3 moin (t_el2 0.) ;
  150. pad7 = pad1 moin (tt_el2 0.) ;
  151. pad8 = pad4 moin (tt_el2 0.) ;
  152.  
  153. dad1 = droi 1 pad1 pad2 ;
  154. dad2 = droi 1 pad2 pad3 ;
  155. dad3 = droi 1 pad3 pad4 ;
  156. dad4 = droi 1 pad7 pad5 ;
  157. dad5 = droi 1 pad5 pad6 ;
  158. dad6 = droi 1 pad6 pad8 ;
  159.  
  160. sa1 = (regl 1 dad1 dad4) et (regl 1 dad2 dad5) et
  161. (regl 1 dad3 dad6) et (regl 1 dad4 (inve dad6));
  162. saa1 = sa1 ;
  163. repe i0 1 ;
  164. ssa1 = sa1 plus ( 0. (3.*&i0*t_el2)) ;
  165. fin i0 ;
  166. sa1 = sa1 et ssa1 ;
  167. elim sa1 1.e-5 ;
  168.  
  169. *---------------------- PARTIE GAUCHE -----------------------
  170. sig = sa1 et si1 ; elim sig 1.e-5 ;
  171.  
  172. *---------------------- PARTIE DROITE -----------------------
  173. sid = sig syme droi ((coor 1 pf) 0.) ((coor 1 pf) lc2) ;
  174. elim sid 1.e-5 ;
  175.  
  176. *---------------------- PARTIE HAUTE -----------------------
  177.  
  178. *lignes diagonales pour la symetrie
  179. p_diagod = p2chd plus (lc1 lc1);
  180. p_diago = p2chg moin (lc1 0.);
  181. p_diagog = p_diago plus (0. lc1);
  182.  
  183. d_diagog = droi 1 p1chg p_diagog;
  184. d_diagod = droi 1 p1chd p_diagod;
  185.  
  186. sihg = sig syme droi p1chg p_diagog ;
  187. elim sihg 1.e-5 ;
  188. sihd = sid syme droi p1chd p_diagod ;
  189. elim sihd 1.e-5 ;
  190.  
  191. sih = sihd et sihg ; elim sih 1.e-5 ;
  192.  
  193. *---------------------- PARTIE COIN -----------------------
  194.  
  195. dg = droi 1 pid11 p2chg;
  196. dcg = dg tran 1 (0. tt_el2);
  197. dcd = dcg syme droi ((coor 1 pf) 0.) ((coor 1 pf) lc2) ;
  198. sic = dcd et dcg; elim sic 1.e-5;
  199. cout3 = sig et sid et sih et sic ; elim cout3 1.e-5 ;
  200.  
  201. cout_tot = cout1 et cout2 et cout3;
  202. elim d1cbd cout_tot 1.e-5 ;
  203.  
  204. **************************************************************
  205. ********************* RESTE DU MAILLAGE ********************
  206. ************** Partie au-dessus de la fissure **************
  207. **************************************************************
  208.  
  209. *Partie de gauche
  210. *----------------
  211. pt1 = mini (coor 1 cout_tot) 0.;
  212. pt2 = (mini (coor 1 cout_tot)) (maxi (coor 2 cout_tot));
  213. pt_partg = cout3 poin droit pt1 pt2 1.e-5 ;
  214. d_partg = (cont cout_tot) elem appuye strictement pt_partg ;
  215. p_ri = ri 0.;
  216. pg = d_partg tran
  217. (((coor 1 p_ri)-(mini(coor 1 cout_tot))) 0.) dini 1.6e-3 dfin 3.2e-3;
  218.  
  219. *Partie de droite
  220. *----------------
  221. pt3 = maxi (coor 1 cout_tot) 0.;
  222. pt4 = (maxi (coor 1 cout_tot)) (maxi (coor 2 cout_tot));
  223. pt_partd = cout_tot poin droit pt3 pt4 1.e-5 ;
  224. d_partd = (cont cout_tot) elem appuye strictement pt_partd ;
  225. p_re = re 0.;
  226. pd = d_partd tran
  227. (((coor 1 p_re)-(maxi(coor 1 cout_tot))) 0.) dini 1.6e-3 dfin 3.2e-3;
  228. bas_cout = pg et pd et cout_tot ; elim bas_cout 1.e-5 ;
  229.  
  230. *Partie du haut
  231. *--------------
  232. p5 = (mini (coor 1 bas_cout)) (maxi (coor 2 bas_cout));
  233. p6 = (maxi (coor 1 bas_cout)) (maxi (coor 2 bas_cout));
  234. pt_parth = bas_cout poin droit p5 p6 1.e-5 ;
  235. d_partd = (cont bas_cout) elem appuye strictement pt_parth ;
  236. ph = d_partd tran (0. ((h/2.) - (maxi(coor 2 bas_cout))))
  237. dini 1.6e-3 dfin t ;
  238.  
  239. *Structure haute
  240. *---------------
  241.  
  242. stru_hau = ph et bas_cout ; elim stru_hau 1.e-5 ;
  243.  
  244. *Structure basse
  245. *---------------
  246. p7 = (mini (coor 1 bas_cout)) (mini (coor 2 bas_cout));
  247. p8 = (maxi (coor 1 bas_cout)) (mini (coor 2 bas_cout));
  248.  
  249. stru_bas = stru_hau syme droit pf p8;
  250. elim stru_bas 1.e-5;
  251.  
  252. pa = stru_hau poin proc (ri 0.);
  253. pb = stru_hau poin proc (re 0.);
  254. pad = stru_bas poin proc (ri 0.);
  255.  
  256. lig1 = (cont stru_hau) elem compris p1cbd pb;
  257.  
  258. *Structure totale
  259. ***************************************************************
  260. s0 = stru_bas et stru_hau; elim stru_bas (d1cbd et lig1) 1.e-5;
  261. ***************************************************************
  262.  
  263. *DEFINTION DES LEVRES
  264. lvsup = (cont stru_hau) elem compris pa pf ;
  265. pff = (cont stru_bas) POINT PROC pf;
  266. lvinf = (cont stru_bas) elem compris pad pff;
  267. lvinf = INVE lvinf;
  268. *lvsup = lvsup coul roug ; lvinf = lvinf coul bleu;
  269.  
  270. *Definition des bords
  271. *bord haut
  272. l_hau = cote 3 ph;
  273.  
  274. *bord gauche
  275. p_gau = s0 poin droit (ri (mini (coor 2 s0)))
  276. (ri (maxi (coor 2 s0))) 1.e-5 ;
  277. l_gau = (cont s0) elem appuye strictement p_gau ;
  278.  
  279. *bord droit
  280. p_droi = s0 poin droit (re (mini (coor 2 s0)))
  281. (re (maxi (coor 2 s0))) 1.e-5 ;
  282. l_droi = (cont s0) elem appuye strictement p_droi ;
  283.  
  284. *bord bas
  285. p_bas = s0 poin droi (ri (mini(coor 2 s0)))
  286. (re (mini(coor 2 s0))) 1.e-5;
  287. l_bas = (cont s0) elem appuye strictement p_bas ;
  288.  
  289. si ig1 ;
  290. trac S0 titr ' Maillage ' ;
  291. fins ;
  292.  
  293. *=============================================================
  294. **************************************************************
  295. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  296. * FIN DU MAILLAGE
  297. *=============================================================
  298. **************************************************************
  299. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  300.  
  301. *=============================================================
  302. **************************************************************
  303. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  304. * PARTIE CALCULS
  305. *=============================================================
  306. **************************************************************
  307. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  308.  
  309. * PROPRIETE MATERIAUX A 300°C
  310. E0 = 185e3; nu0 = 0.3; alfa0 = 13.08e-6;
  311.  
  312. mo0 = mode s0 mecanique elastique isotrope ;
  313. ma0 = mate mo0 YOUN E0 nu nu0 alph alfa0 ;
  314. rg0 = rigi mo0 ma0 ;
  315.  
  316. *CONDITIONS AUX LIMITES
  317. *Blocages
  318. cl1 = bloq uz l_bas ;
  319. cl2 = rela ense uz l_hau ;
  320. cl0 = cl1 et cl2;
  321.  
  322. *Traction uniaxiale (via un modele de pression)
  323. moph = MODE l_hau 'CHARGEMENT' 'PRESSION' 'CONS' 'HAUT' ;
  324.  
  325. *Pression sur les levres (via un modele de pression)
  326. mopl = MODE (lvsup ET lvinf) 'CHARGEMENT' 'PRESSION' 'CONS' 'LEVRES' ;
  327.  
  328. *Elevation de temperature
  329. chr = ((s0 coor 1) - ri) / (re - ri) ;
  330. cht0 = nomc 'T' (dt0 * chr);
  331.  
  332.  
  333. ***********************
  334. * SOLUTIONS ANALYTIQUES
  335. ***********************
  336. *Fonctions d'influence
  337. i0 = 1.211 ;
  338. i1 = 0.718 ;
  339.  
  340. *Contraintes imposées pour le gradient de temperature
  341. sig0 = ((E0*alfa0*dt0)/(1-nu0)) * (ri/(3*t)) *
  342. ((2*(re**2))/(ri*(re+ri)) - 1);
  343. sig1 = -1. * ((E0*alfa0*dt0)/(1-nu0));
  344.  
  345. * J analytiques
  346. JT = (1-(nu0**2)) * ((i0*(-1.*p0T)*((pi*a)**(1./2.)))**2) / E0;
  347. JP = (1-(nu0**2)) * ((i0*(-1.*p0P)*((pi*a)**(1./2.)))**2) / E0;
  348. JTH = (1-(nu0**2)) *
  349. ((((i0*sig0)+ (i1*sig1*(a/t)))*((pi*a)**(1./2.))) **2)/E0;
  350.  
  351.  
  352. ****************************************************
  353. * CALCUL ELASTIQUE AVEC RESO - CALCUL DE J ELASTIQUE
  354. ****************************************************
  355.  
  356. * Construction des second membres
  357. maph = MATE moph 'PRES' p0T ;
  358. f0T = BSIG moph maph ;
  359. mapl = MATE mopl 'PRES' p0P ;
  360. f0P = BSIG mopl mapl ;
  361. sgth0 = THET mo0 ma0 cht0 ;
  362. f0TH = BSIG mo0 sgth0 ;
  363.  
  364. * RESOLUTION ELASTIQUE DES 3 PROBLEMES
  365. utestT utestP utestTH = RESO (rg0 ET cl0) f0T f0P f0TH;
  366.  
  367. *PROCEDURE G_THETA
  368. *cas 1 : traction seule
  369. tabJel = table ;
  370. tabJel . 'MODELE' = mo0 ET moph ;
  371. tabJel . 'CARACTERISTIQUES' = ma0 ET maph ;
  372. tabJel . 'BLOCAGES_MECANIQUES' = cl0 ;
  373. tabJel . 'SOLUTION_RESO' = utestT ;
  374. tabJel . 'OBJECTIF' = MOT 'J' ;
  375. tabJel . 'LEVRE_SUPERIEURE' = lvsup ;
  376. tabJel . 'LEVRE_INFERIEURE' = lvinf ;
  377. tabJel . 'FRONT_FISSURE' = pf ;
  378. tabJel . 'COUCHE' = 5 ;
  379. g_theta tabJel ;
  380. JelT1 = tabJel.resultats ;
  381.  
  382. *cas 2 : pression sur les levres
  383. tabJel . 'MODELE' = mo0 ET mopl;
  384. tabJel . 'CARACTERISTIQUES' = ma0 ET mapl ;
  385. tabJel . 'SOLUTION_RESO' = utestP ;
  386. g_theta tabJel ;
  387. JelP1 = tabJel.resultats ;
  388.  
  389. *cas 3 : gradient de temperature
  390. tabJel . 'MODELE' = mo0 ;
  391. tabJel . 'CARACTERISTIQUES' = ma0 ;
  392. tabJel . 'TEMPERATURES' = cht0 ;
  393. tabJel . 'SOLUTION_RESO' = utestTH ;
  394. g_theta tabJel ;
  395. JelTH1 = tabJel.resultats ;
  396.  
  397. *Erreurs sur J : solution analytique VS calcul RESO + G_THETA
  398. errT1 = ((JelT1-JT)/JT)*100.;
  399. errP1 = ((JelP1-JP)/JP)*100.;
  400. errTH1 = ((JelTH1-JTH)/JTH)*100.;
  401.  
  402.  
  403.  
  404. *******************************************************
  405. * CALCUL ELASTIQUE AVEC PASAPAS - CALCUL DE J ELASTIQUE
  406. *******************************************************
  407.  
  408. * Chargements de pression (obligatoires si modele de pression)
  409. evph = EVOL 'MANU' 'TEMP' (PROG 0. 1. 2. 3.)
  410. 'PRES' (PROG 0. 1. 0. 0.) ;
  411. chaph = CHAR 'PRES' (CHAN 'TYPE' maph 'CONTRAINTES') evph ;
  412. evpl = EVOL 'MANU' 'TEMP' (PROG 0. 1. 2. 3.)
  413. 'PRES' (PROG 0. 0. 1. 0.) ;
  414. chapl = CHAR 'PRES' (CHAN 'TYPE' mapl 'CONTRAINTES') evpl ;
  415.  
  416. * Chargement thermique
  417. chath = CHAR 'T' cht0 (EVOL 'MANU' (PROG 0. 1. 2. 3.)
  418. (PROG 0. 0. 0. 1.)) ;
  419.  
  420. *RESOLUTION AVEC PASAPAS DES 3 PROBLEMES (UN A CHAQUE PAS DE TEMPS)
  421. *AU PAS 1 : Traction seule
  422. *AU PAS 2 : Pression sur les levres
  423. *AU PAS 3 : Gradient de temperature
  424. tabT = TABL ;
  425. tabT . 'MODELE' = mo0 ET moph ET mopl ;
  426. tabT . 'CARACTERISTIQUES' = ma0 ET maph ET mapl ;
  427. tabT . 'BLOCAGES_MECANIQUES' = cl0 ;
  428. tabT . 'CHARGEMENT' = chaph ET chapl ET chath ;
  429. tabT . 'TEMPS_CALCULES' = PROG 1. 2. 3. ;
  430. PASAPAS tabT ;
  431.  
  432. *PROCEDURE G_THETA POUR LES 3 PROBLEMES (UN A CHAQUE PAS DE TEMPS)
  433. tabJel = TABL ;
  434. tabJel . 'SOLUTION_PASAPAS' = tabT ;
  435. tabJel . 'OBJECTIF' = MOT 'J' ;
  436. tabJel . 'LEVRE_SUPERIEURE' = lvsup ;
  437. tabJel . 'LEVRE_INFERIEURE' = lvinf ;
  438. tabJel . 'FRONT_FISSURE' = pf ;
  439. tabJel . 'COUCHE' = 5 ;
  440. g_theta tabJel ;
  441. JelT2 = tabJel.resultats.1 ;
  442. JelP2 = tabJel.resultats.2 ;
  443. JelTH2 = tabJel.resultats.3 ;
  444. *Erreurs sur J : solution analytique VS calcul PASAPAS + G_THETA
  445. errT2 = ((JelT2-JT)/JT)*100.;
  446. errP2 = ((JelP2-JP)/JP)*100.;
  447. errTH2 = ((JelTH2-JTH)/JTH)*100.;
  448.  
  449.  
  450.  
  451.  
  452. ****************************************
  453. * AFFICHAGE DES RESULTATS ET DES ERREURS
  454. ****************************************
  455. SAUT 5 'LIGNE' ;
  456. mess 'Solution Theorique : ' JT JP JTH ;
  457. mess 'Solution MEF (RESO) : ' JelT1 JelP1 JelTH1 ;
  458. mess 'Erreur en % : ' errT1 errP1 errTH1 ;
  459. mess 'Solution MEF (PASAPAS) : ' JelT2 JelP2 JelTH2 ;
  460. mess 'Erreur en % : ' errT2 errP2 errTH2 ;
  461.  
  462. * Test sur les erreurs
  463. errT = MAXI 'ABS' (PROG errT1 errT2) ;
  464. si ((abs errT) > 0.5) ;
  465. erre 'Erreur sur le calcul de JelT' ;
  466. fins ;
  467. errP = MAXI 'ABS' (PROG errP1 errP2) ;
  468. si ((abs errP) > 0.5) ;
  469. erre 'Erreur sur le calcul de JelP' ;
  470. fins ;
  471. errTH = MAXI 'ABS' (PROG errTH1 errTH2) ;
  472. si ((abs errTH) > 0.2) ;
  473. erre 'Erreur sur le calcul de JelTH' ;
  474. fins ;
  475.  
  476. FIN ;
  477.  
  478.  
  479.  
  480.  
  481.  

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