Télécharger continu_gdep1.dgibi

Retour à la liste

Numérotation des lignes :

  1.  
  2. ***********************************************************************
  3. *
  4. * continu_gdep1.dgibi
  5. * = cas test basé sur gdep1.dgibi (de la base cast3m),
  6. * mais avec une comparaison avec la procedure de CONTINUation
  7. *
  8. * Mots-clé :
  9. * flambage, grand deplacements
  10. *
  11. * Objectif :
  12. * Il s'agit de trouver la position post flambage d'un poteau
  13. * charge axialement a une extremite (+perturbation)
  14. * et encastre a l'autre extremite.
  15. *
  16. * Reference :
  17. * STEPHEN P. TIMOSHENKO and JAMES M. GERE, Theory of elastic stability
  18. * New York : MCGraw-Hill book company, 1963, p.78
  19. *
  20. ***********************************************************************
  21.  
  22.  
  23. ***************************************************
  24. *** ***
  25. *** OPTIONS ***
  26. *** ***
  27. ***************************************************
  28.  
  29. *rem : malgré le fait que l'on soit en grand déplacements,
  30. * on considère ici des déformations linéaires ...
  31. OPTI 'TRAC' 'PSC' 'EPTR' 5 'POTR' 'HELVETICA_16';
  32. OPTI DIME 3 ELEM SEG2 ;
  33. *
  34. COMPLET = vrai;
  35. GRAPH = FAUX;
  36. * GRAPH = VRAI ;
  37. SAUT PAGE ;
  38.  
  39.  
  40. ***************************************************
  41. *** ***
  42. *** PROCEDURES ***
  43. *** ***
  44. ***************************************************
  45.  
  46. * AUTOPILO = procedure de PILOTAGE appelée par PASAPAS
  47.  
  48. * le PILOTAGE est fait sur l'amplitude du deplacement du point P2
  49. * auquel on attribut le signe du deplacement transversal (UY)
  50. 'DEBPROC' AUTOPILO DELT*'CHPOINT' DELA*'CHPOINT' ZMOD*'MMODEL'
  51. ZMAT*'MCHAML' TTT*TABLE;
  52. Ux = ( EXTR DELT P2 'UX' ) ;
  53. Uy = ( EXTR DELT P2 'UY' ) ;
  54. U = (ux*ux + (uy*uy))**0.5 ;
  55. NORM1 = U * uy / (abs uy) ;
  56. FINPROC NORM1;
  57.  
  58.  
  59. ***************************************************
  60. *** ***
  61. *** DONNEES DU PROBLEME ***
  62. *** ***
  63. ***************************************************
  64.  
  65. * MAILLAGE
  66. *
  67. P1 = 0. 0. 0. ; P2 = 12. 0. 0. ;
  68. * L1 = D 12 P1 P2 ;
  69. * on ajoute ici l'avant dernier point
  70. PP1 = 11. 0. 0. ;
  71. L1 = (DROI 11 P1 PP1) DROI 1 P2 ;
  72.  
  73. * MODELE
  74. *
  75. MOD1 = MODEL L1 MECANIQUE ELASTIQUE POUT;
  76. *
  77. * CARACTERISTIQUES MATERIELLES ET GEOMETRIQUES
  78. *
  79. MAT1 = MATER MOD1 YOUN 2.E7 NU 0.0 ;
  80. CAR1 = CARA MOD1 'SECT' 0.15 'INRY' 2.8125E-4 'INRZ' 2.8125E-4
  81. 'TORS' 0.00001 ;
  82.  
  83. * MATRICE DE RIGIDITE
  84. *
  85. RIG1 = RIGI MOD1 (MAT1 ET CAR1) ;
  86.  
  87. * FORCES ET CONDITIONS AUX LIMITES
  88. *
  89. CL1 = BLOQ P1 'DEPL' 'ROTA' ;
  90. F1 = FORCE (-1. 0. 0. ) P2 ;
  91.  
  92.  
  93. ***************************************************
  94. *** ***
  95. *** RESOLUTION LINEAIRE ***
  96. *** + CALCUL DES MODES DE FLAMBAGE ***
  97. *** ***
  98. ***************************************************
  99.  
  100. * RESOLUTION
  101. *
  102. DEP1 = RESO (RIG1 ET CL1) F1 ;
  103. SIG1 = SIGM MOD1 (MAT1 ET CAR1) DEP1 ;
  104. *
  105. * MATRICE DE RAIDEUR GEOMETRIQUE
  106. *
  107. KS1 = KSIGM MOD1 SIG1 (CAR1) 'FLAM' ;
  108.  
  109. * CALCUL DE MODES DE FLAMBAGE
  110. *
  111. TAB1 = TABLE ;
  112. TAB1.OBJM = MOD1 ;
  113. TAB1.LAM1 = 0. ;
  114. TAB1.LAM2 = 1000. ;
  115. TAB1.NMOD = 1 ;
  116. TAB1.CLIM = (CL1 ) ;
  117. TAB1.RIGI = RIG1 ;
  118. TAB1.KSIG = KS1 ;
  119. TABFL = FLAMBAGE TAB1 ;
  120. LAMB1 = (TABFL . 1) . LAMB ;
  121.  
  122.  
  123. ***************************************************
  124. *** ***
  125. *** CALCUL NON-LINEAIRE GEOMETRIQUE ***
  126. *** ***
  127. ***************************************************
  128.  
  129. * NORMALISATION DE LA FORCE AXIALE + PETITE PERTURBATION LATERALE
  130. *
  131. F11 = F1 * LAMB1 ;
  132. * F3 = FORCE (0. 1. 0.) P2 ;
  133. * bp : on diminue la perturbation (=le défaut) de maniere a bifurquer
  134. * + franchement et a obtenir une valeur de ALPHA + précise
  135. F3 = FORCE (0. (lamb1 * 1.E-4) 0.) P2 ;
  136.  
  137. * OBJET CHARGEMENT
  138. *
  139. LI1 = PROG 0. 2. ;
  140. LI2 = PROG 0. 2. ;
  141. EV = EVOL MANU T LI1 F(T) LI2 ;
  142. CHA1 = CHAR 'MECA' ( F11 ET F3) EV ;
  143.  
  144. * liste des temps a calculer
  145. LIS1T = prog 0. pas 0.1 1. PAS 0.05 1.15 1.152;
  146.  
  147. * table des grandeurs a recuperer
  148. TRES1 = tabl;
  149. TRES1 . 1 = tabl;
  150. TRES1 . 1 . 'POINT_MESURE' = P2;
  151. TRES1 . 1 . 'COMPOSANTE' = mot 'UX';
  152. TRES1 . 1 . 'COULEUR' = mot 'ROSE';
  153. TRES1 . 1 . 'TITRE' = mot 'UX continuation';
  154. TRES1 . 2 = tabl;
  155. TRES1 . 2 . 'POINT_MESURE' = P2;
  156. TRES1 . 2 . 'COMPOSANTE' = mot 'UY';
  157. TRES1 . 2 . 'COULEUR' = mot 'ROUG';
  158. TRES1 . 2 . 'TITRE' = mot 'UY continuation';
  159. TRES1 . 3 = tabl;
  160. TRES1 . 3 . 'POINT_MESURE' = P2;
  161. TRES1 . 3 . 'COMPOSANTE' = mot 'UZ';
  162. TRES1 . 3 . 'COULEUR' = mot 'DEFA';
  163. TRES1 . 3 . 'TITRE' = mot 'UZ continuation';
  164.  
  165. *---- PREPARATION DE LA TABLE POUR CONTINU
  166.  
  167. TAB1 = tabl ;
  168. TAB1 . 'MODELE' = MOD1;
  169. TAB1 . 'CARACTERISTIQUES' = (MAT1 ET CAR1);
  170. TAB1 . 'CHARGEMENT' = CHA1;
  171. TAB1 . 'GRANDS_DEPLACEMENTS' = VRAI ;
  172. TAB1 . 'HYPOTHESE_DEFORMATIONS' = mot 'LINEAIRE' ;
  173. TAB1 . 'BLOCAGES_MECANIQUES' = CL1;
  174. TAB1 . 'PRECISION' = 1.E-6;
  175. TAB1 . 'TEMPS_CALCULES' = LIS1T;
  176. TAB1 . 'MAXIPAS' = 500;
  177. TAB1 . 'ACCELERATION' = 4;
  178. TAB1 . 'PAS_SAUVES' = mot 'TOUS';
  179.  
  180. * calcul d'une norme de deplacement
  181. * u1max = (XTX ((LAMB1*DEP1) enle 'LX'))**0.5; mess ' u1max = ' u1max;
  182. * * on arrondi au dessus et on fait *1000
  183. * nu1max = flot (extr (chai u1max) 10 12);
  184. * u1max = 1000. * (10**nu1max); mess ' u1max = ' u1max;
  185. * on prend un deplacement uy de 2% de la longueur de la poutre réparti
  186. uyref = 0.02 * (coor L1 1);
  187. u1max = (XTX uyref)**0.5; mess ' u1max = ' u1max;
  188.  
  189. TAB1 . 'MAXI_DEPLACEMENT' = u1max;
  190. TAB1 . 'RESULTATS' = TRES1;
  191.  
  192. opti debug 1 ;
  193. CONTINU TAB1;
  194. * opti donn 5 trac x;
  195.  
  196. * tracé
  197. Tdess1 = tabl ;
  198. Tdess1 . 'TITRE' = tabl ;
  199. repe btitre 3 ;
  200. Tdess1 . 'TITRE' . &btitre = TRES1 . &btitre . 'TITRE';
  201. fin btitre;
  202. Tdess1 . 1 = mot 'MARQ CROI REGU' ;
  203. Tdess1 . 2 = mot 'MARQ TRID REGU' ;
  204. Tdess1 . 3 = mot 'MARQ ROND REGU' ;
  205.  
  206. evcon = TAB1 . 'RESULTATS' . 'RESULTATS_EVOL';
  207. si GRAPH ;
  208. dess evcon Tdess1 LEGE NO
  209. 'TITX' 't' 'POSX' 'CENT'
  210. 'TITY' 'u' 'POSY' 'CENT' 'TITR' 'continu_gdep1 (continu)';
  211. finsi;
  212. ev2 = extr evcon 'COUR' 2;
  213. t2 = extr ev2 'ABSC'; uy2 = extr ev2 'ORDO'; nuy2 = dime uy2;
  214. uy2fin = extr uy2 nuy2;
  215. t2fin = extr t2 nuy2;
  216.  
  217. * * recup des itérés
  218. * tit = TRES1 . 0 . 'ITERES';
  219. * uyit = TRES1 . 2 . 'ITERES'; nit = dime uyit; mess nit;
  220. * evuy = evol 'MANU' TRES1 . 0 . 'ITERES' uyit;
  221. * dess (evcon et evuy) Tdess1 LEGE NO;
  222.  
  223. * *offset pour mieux zoomer
  224. * ev2b=evol 'ROUG' manu (t2-(prog nuy2*t2fin)) (uy2 - (prog nuy2*uy2fin));
  225. * evuy = evol 'MANU' (tit - (prog nit*t2fin)) (uyit - (prog nit*uy2fin));
  226. * tabit = tabl;
  227. * tabit . 1 = mot 'MARQ S PLUS';
  228. * tabit . 2 = mot 'MARQ S ROND';
  229. * dess evuy tabit ;
  230. * dess (ev2b et evuy) tabit ;
  231. * itprog = prog 1 PAS 1 nit;
  232. * dess (evol manu itprog (tit - (prog nit*t2fin)));
  233. * dess (evol manu itprog (uyit - (prog nit*uy2fin)));
  234.  
  235. * opti donn 5 trac X;
  236.  
  237. *---- PREPARATION DE LA TABLE POUR PASAPAS
  238. *
  239. *
  240. TAB2 = TABLE;
  241. TAB2 . 'GRANDS_DEPLACEMENTS' = VRAI ;
  242. TAB2 . 'AUTOMATIQUE' = VRAI ;
  243. TAB2 . 'MAXITERATION'= 100 ;
  244. TAB2 . 'AUTOPAS' =1000 ;
  245. TAB2 . 'BLOCAGES_MECANIQUES' = CL1;
  246. TAB2 . 'MODELE' = MOD1;
  247. TAB2 . 'CARACTERISTIQUES' = (MAT1 ET CAR1);
  248. TAB2 . 'CHARGEMENT' = CHA1;
  249. TAB2 . 'K_SIGMA'=FAUX;
  250. TAB2 . 'REAC_GRANDS'=10.E-2 ;
  251. TAB2 . 'PRECISION' = 1.E-6;
  252. TAB2 . 'HYPOTHESE_DEFORMATIONS' = 'LINEAIRE' ;
  253.  
  254. * calcul en plusieurs fois :
  255. *
  256. * LIS1A = prog 0. 0.65;
  257. * TAB2.'TEMPS_CALCULES' = LIS1A;
  258. * TAB2.'AUTOCRIT' = 0.05 ;
  259. * PASAPAS TAB2 ;
  260. * *
  261. * TAB2.'AUTOCRIT' = 0.1 ;
  262. * LIS1B = prog 0.65 0.9;
  263. * TAB2.'TEMPS_CALCULES' = LIS1B;
  264. * PASAPAS TAB2 ;
  265. * *
  266. * si complet;
  267. * LIS1C = prog 0.9 1.;
  268. * TAB2.'AUTOCRIT' = 0.2 ;
  269. * TAB2.'TEMPS_CALCULES' = LIS1C;
  270. * PASAPAS TAB2 ;
  271. * *
  272. * LIS1D = prog 1. 1.152;
  273. * TAB2.'AUTOCRIT' = 0.5 ;
  274. * TAB2.'TEMPS_CALCULES' = LIS1D;
  275. * PASAPAS TAB2 ;
  276. * finsi;
  277.  
  278. * calcul en 1 seule fois :
  279. TAB2 . 'TEMPS_CALCULES' = LIS1T;
  280. * TAB2.'AUTOCRIT' = 0.02 ;
  281. TAB2 . 'AUTOCRIT' = 0.05 ;
  282. PASAPAS TAB2 ;
  283.  
  284.  
  285. uxp2 = prog; uyp2 = prog; uzp2 = prog; tprog = prog;
  286. npas = dime TAB2 . 'TEMPS';
  287. ipas = -1;
  288. repe Bpas npas; ipas = ipas + 1 ;
  289. t = TAB2 . 'TEMPS' . ipas ;
  290. u = TAB2 . 'DEPLACEMENTS' . ipas ;
  291. f = TIRE TAB2.'CHARGEMENT' t;
  292. fr = TAB2 . 'REACTIONS' . ipas;
  293. vf = (vect f 'FORC' ROUG 0.01) et (vect fr 'FORC' ROSE 0.01);
  294. def0 = defo u L1 0. GRIS;
  295. def1 = defo u L1 1. vf;
  296. motit = chai 'deformee au pas ' ipas ' t='t;
  297. si GRAPH; trac (def0 et def1) 'TITR' motit; finsi;
  298. uxp2 = uxp2 et (extr u 'UX' P2);
  299. uyp2 = uyp2 et (extr u 'UY' P2);
  300. uzp2 = uzp2 et (extr u 'UZ' P2);
  301. tprog = tprog et t;
  302. fin Bpas ;
  303.  
  304. evuxp2 = EVOL VIOL MANU tprog uxp2;
  305. evuyp2 = EVOL BLEU MANU tprog uyp2;
  306. evuzp2 = EVOL TURQ MANU tprog uzp2;
  307. si GRAPH ;
  308. dess (evuxp2 et evuyp2 et evuzp2)
  309. 'TITX' 't' 'POSX' 'CENT'
  310. 'TITY' 'u' 'POSY' 'CENT' 'TITR' 'continu_gdep1 (pasapas)';
  311. finsi;
  312.  
  313. evopas = evuxp2 et evuyp2 et evuzp2;
  314. Tdess1 . 4 = mot 'TIRR' ;
  315. Tdess1 . 5 = mot 'TIRR' ;
  316. Tdess1 . 6 = mot 'TIRR' ;
  317. Tdess1 . 'TITRE' . 4 = mot 'UX pasapas AUTO';
  318. Tdess1 . 'TITRE' . 5 = mot 'UY pasapas AUTO';
  319. Tdess1 . 'TITRE' . 6 = mot 'UZ pasapas AUTO';
  320.  
  321. si GRAPH ;
  322. dess (evcon et evopas) Tdess1 LEGE NO
  323. 'TITX' 't' 'POSX' 'CENT'
  324. 'TITY' 'u' 'POSY' 'CENT' 'TITR' 'continu_gdep1';
  325. finsi;
  326.  
  327.  
  328.  
  329. ***************************************************
  330. *** ***
  331. *** TEST DE NON REGRESSION ***
  332. *** ***
  333. ***************************************************
  334.  
  335. * RESULTATS ANALYTIQUES
  336. ALPHATH = 60. ;
  337.  
  338. * resultats CONTINU pour un chargement = 1.152 * PCR
  339. DEP1a = TAB1 . 'DEPLACEMENTS' . (nuy2 - 2);
  340. DEP1b = TAB1 . 'DEPLACEMENTS' . (nuy2 - 1);
  341. ta = TAB1 . 'TEMPS' . (nuy2 - 2);
  342. tb = TAB1 . 'TEMPS' . (nuy2 - 1);
  343. t = 1.152; gamt = (t - ta) / (tb - ta);
  344. DEP1 = ((1. - gamt) * DEP1a) + (gamt * DEP1b);
  345. XX1 = (EXTR DEP1 PP1 UX) + (COOR 1 PP1) ;
  346. YY1 = (EXTR DEP1 PP1 UY) + (COOR 2 PP1) ;
  347. XX2 = (EXTR DEP1 P2 UX) + (COOR 1 P2) ;
  348. YY2 = (EXTR DEP1 P2 UY) + (COOR 2 P2) ;
  349. TN = ((YY2 - YY1)/(XX2 - XX1)) ;
  350. ALPHA1 = ATG TN ;
  351.  
  352.  
  353. * resultats PASAPAS pour un chargement = 1.152 * PCR
  354. DEP2 = PECHE TAB2 'DEPLACEMENTS' ;
  355. XX1 = (EXTR DEP2 PP1 UX) + (COOR 1 PP1) ;
  356. YY1 = (EXTR DEP2 PP1 UY) + (COOR 2 PP1) ;
  357. XX2 = (EXTR DEP2 P2 UX) + (COOR 1 P2) ;
  358. YY2 = (EXTR DEP2 P2 UY) + (COOR 2 P2) ;
  359. TN = ((YY2 - YY1)/(XX2 - XX1)) ;
  360. ALPHA2 = ATG TN ;
  361.  
  362. MESS ALPHATH ALPHA1 ALPHA2;
  363. MESS 0. (ALPHA1/ALPHATH - 1.) (ALPHA2/ALPHATH - 1.);
  364.  
  365. *** table TNR ***
  366.  
  367. TABTNR = TABL ;
  368.  
  369. TABTNR.'ANA' = TABL ;
  370. TABTNR.'ANA'. 1 = CHAI 'CONTINU' ;
  371. TABTNR.'ANA'. 2 = CHAI 'PASAPAS' ;
  372.  
  373. TABTNR.'DESC' = TABL ;
  374. TABTNR.'DESC'. 1 = CHAI '\alpha(\lambda=1.152)' ;
  375. TABTNR.'DESC'. 2 = CHAI '\alpha(\lambda=1.152)' ;
  376.  
  377. TABTNR.'NOMS' = TABL ;
  378. TABTNR.'NOMS' . 1 = 'CHAI' 'ALPHA1 ' ;
  379. TABTNR.'NOMS' . 2 = 'CHAI' 'ALPHA2 ' ;
  380.  
  381. TABTNR.'CAL' = PROG ALPHA1 ALPHA2;
  382.  
  383. TABTNR.'REF' = PROG ALPHATH ALPHATH;
  384.  
  385. TABTNR.'TOL' = PROG 2.E-2 2.E-2;
  386.  
  387. OPTI ECHO 0 ;
  388. error = 0 ;
  389. FORMA1 = '(1PE12.5)' ;
  390. FORMA2 = '(1PE10.0)' ;
  391. MESS '###_DEBUT_DES_TESTS_DE_NON-REGRESSION_###' ;
  392. MESS (CHAI 'ANALYSE : VARIABLE : DESCRIPTION : VALEUR REF. :'
  393. ' VALEUR CALC. : ERR. RELAT. : TOLERANCE : ETAT') ;
  394. REPE BOU1 (DIME TABTNR.'NOMS') ;
  395. ana = CHAI TABTNR.'ANA'. &BOU1 ;
  396. nom = CHAI TABTNR. 'NOMS' . &BOU1 ;
  397. des = CHAI TABTNR. 'DESC' . &BOU1 ;
  398. ref = EXTR TABTNR.'REF' &BOU1 ;
  399. cal = EXTR TABTNR.'CAL' &BOU1 ;
  400. tol = EXTR TABTNR.'TOL' &BOU1 ;
  401. err = ABS (cal - ref) ;
  402. SI ((ABS ref) '>EG' 1.E-10) ;
  403. err = err / (ABS (ref)) ;
  404. FINSI ;
  405. SI (err '>EG' tol) ;
  406. error = error + 1 ;
  407. etat = CHAI ERREUR ;
  408. SINON ;
  409. etat = CHAI 'OK' ;
  410. FINSI ;
  411. MESS (CHAI ana ' : '
  412. nom ' : '
  413. des ' : '
  414. FORMAT FORMA1 ref ' : '
  415. FORMAT FORMA1 cal ' : '
  416. FORMAT FORMA1 err ' : '
  417. FORMAT FORMA2 tol ' : '
  418. etat) ;
  419. FIN BOU1 ;
  420. *
  421. ******************
  422. * Emission de la banniere de fin de TEST
  423. ******************
  424. *
  425. * opti DONN 5 ECHO 1 'TRAC' X;
  426. MESS '###_FIN_DES_TESTS_DE_NON-REGRESSION_###' ;
  427. TEMPS ;
  428. SI (error '>' 0) ;
  429. MESS 'Il y a ' error ' erreur(s) !' ;
  430. ERRE 5 ;
  431. SINON ;
  432. MESS 'Aucun probleme detecte !' ;
  433. FINSI ;
  434. *
  435.  
  436. FIN ;
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  

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