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. OPTI 'EPSI' 'LINEAIRE';
  30. *rem : malgré le fait que l'on soit en grand déplacements,
  31. * on considère ici des déformations linéaires ...
  32. OPTI 'TRAC' 'PSC' 'EPTR' 5 'POTR' 'HELVETICA_16';
  33. OPTI DIME 3 ELEM SEG2 ;
  34. *
  35. COMPLET = vrai;
  36. GRAPH = FAUX;
  37. * GRAPH = VRAI ;
  38. SAUT PAGE ;
  39.  
  40.  
  41. ***************************************************
  42. *** ***
  43. *** PROCEDURES ***
  44. *** ***
  45. ***************************************************
  46.  
  47. * AUTOPILO = procedure de PILOTAGE appelée par PASAPAS
  48.  
  49. * le PILOTAGE est fait sur l'amplitude du deplacement du point P2
  50. * auquel on attribut le signe du deplacement transversal (UY)
  51. 'DEBPROC' AUTOPILO DELT*'CHPOINT' DELA*'CHPOINT' ZMOD*'MMODEL'
  52. ZMAT*'MCHAML' TTT*TABLE;
  53. Ux = ( EXTR DELT P2 'UX' ) ;
  54. Uy = ( EXTR DELT P2 'UY' ) ;
  55. U = (ux*ux + (uy*uy))**0.5 ;
  56. NORM1 = U * uy / (abs uy) ;
  57. FINPROC NORM1;
  58.  
  59.  
  60. ***************************************************
  61. *** ***
  62. *** DONNEES DU PROBLEME ***
  63. *** ***
  64. ***************************************************
  65.  
  66. * MAILLAGE
  67. *
  68. P1 = 0. 0. 0. ; P2 = 12. 0. 0. ;
  69. * L1 = D 12 P1 P2 ;
  70. * on ajoute ici l'avant dernier point
  71. PP1 = 11. 0. 0. ;
  72. L1 = (DROI 11 P1 PP1) DROI 1 P2 ;
  73.  
  74. * MODELE
  75. *
  76. MOD1 = MODEL L1 MECANIQUE ELASTIQUE epsilon lineaire POUT;
  77. *
  78. * CARACTERISTIQUES MATERIELLES ET GEOMETRIQUES
  79. *
  80. MAT1 = MATER MOD1 YOUN 2.E7 NU 0.0 ;
  81. CAR1 = CARA MOD1 'SECT' 0.15 'INRY' 2.8125E-4 'INRZ' 2.8125E-4
  82. 'TORS' 0.00001 ;
  83.  
  84. * MATRICE DE RIGIDITE
  85. *
  86. RIG1 = RIGI MOD1 (MAT1 ET CAR1) ;
  87.  
  88. * FORCES ET CONDITIONS AUX LIMITES
  89. *
  90. CL1 = BLOQ P1 'DEPL' 'ROTA' ;
  91. F1 = FORCE (-1. 0. 0. ) P2 ;
  92.  
  93.  
  94. ***************************************************
  95. *** ***
  96. *** RESOLUTION LINEAIRE ***
  97. *** + CALCUL DES MODES DE FLAMBAGE ***
  98. *** ***
  99. ***************************************************
  100.  
  101. * RESOLUTION
  102. *
  103. DEP1 = RESO (RIG1 ET CL1) F1 ;
  104. SIG1 = SIGM MOD1 (MAT1 ET CAR1) DEP1 ;
  105. *
  106. * MATRICE DE RAIDEUR GEOMETRIQUE
  107. *
  108. KS1 = KSIGM MOD1 SIG1 (CAR1) 'FLAM' ;
  109.  
  110. * CALCUL DE MODES DE FLAMBAGE
  111. *
  112. TAB1 = TABLE ;
  113. TAB1.OBJM = MOD1 ;
  114. TAB1.LAM1 = 0. ;
  115. TAB1.LAM2 = 1000. ;
  116. TAB1.NMOD = 1 ;
  117. TAB1.CLIM = (CL1 ) ;
  118. TAB1.RIGI = RIG1 ;
  119. TAB1.KSIG = KS1 ;
  120. TABFL = FLAMBAGE TAB1 ;
  121. LAMB1 = (TABFL . 1) . LAMB ;
  122.  
  123.  
  124. ***************************************************
  125. *** ***
  126. *** CALCUL NON-LINEAIRE GEOMETRIQUE ***
  127. *** ***
  128. ***************************************************
  129.  
  130. * NORMALISATION DE LA FORCE AXIALE + PETITE PERTURBATION LATERALE
  131. *
  132. F11 = F1 * LAMB1 ;
  133. * F3 = FORCE (0. 1. 0.) P2 ;
  134. * bp : on diminue la perturbation (=le défaut) de maniere a bifurquer
  135. * + franchement et a obtenir une valeur de ALPHA + précise
  136. F3 = FORCE (0. (lamb1 * 1.E-4) 0.) P2 ;
  137.  
  138. * OBJET CHARGEMENT
  139. *
  140. LI1 = PROG 0. 2. ;
  141. LI2 = PROG 0. 2. ;
  142. EV = EVOL MANU T LI1 F(T) LI2 ;
  143. CHA1 = CHAR 'MECA' ( F11 ET F3) EV ;
  144.  
  145. * liste des temps a calculer
  146. LIS1T = prog 0. pas 0.1 1. PAS 0.05 1.15 1.152;
  147.  
  148. * table des grandeurs a recuperer
  149. TRES1 = tabl;
  150. TRES1 . 1 = tabl;
  151. TRES1 . 1 . 'POINT_MESURE' = P2;
  152. TRES1 . 1 . 'COMPOSANTE' = mot 'UX';
  153. TRES1 . 1 . 'COULEUR' = mot 'ROSE';
  154. TRES1 . 1 . 'TITRE' = mot 'UX continuation';
  155. TRES1 . 2 = tabl;
  156. TRES1 . 2 . 'POINT_MESURE' = P2;
  157. TRES1 . 2 . 'COMPOSANTE' = mot 'UY';
  158. TRES1 . 2 . 'COULEUR' = mot 'ROUG';
  159. TRES1 . 2 . 'TITRE' = mot 'UY continuation';
  160. TRES1 . 3 = tabl;
  161. TRES1 . 3 . 'POINT_MESURE' = P2;
  162. TRES1 . 3 . 'COMPOSANTE' = mot 'UZ';
  163. TRES1 . 3 . 'COULEUR' = mot 'DEFA';
  164. TRES1 . 3 . 'TITRE' = mot 'UZ continuation';
  165.  
  166. *---- PREPARATION DE LA TABLE POUR CONTINU
  167.  
  168. TAB1 = tabl ;
  169. TAB1 . 'MODELE' = MOD1;
  170. TAB1 . 'CARACTERISTIQUES' = (MAT1 ET CAR1);
  171. TAB1 . 'CHARGEMENT' = CHA1;
  172. TAB1 . 'GRANDS_DEPLACEMENTS' = VRAI ;
  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.  
  253. * calcul en plusieurs fois :
  254. *
  255. * LIS1A = prog 0. 0.65;
  256. * TAB2.'TEMPS_CALCULES' = LIS1A;
  257. * TAB2.'AUTOCRIT' = 0.05 ;
  258. * PASAPAS TAB2 ;
  259. * *
  260. * TAB2.'AUTOCRIT' = 0.1 ;
  261. * LIS1B = prog 0.65 0.9;
  262. * TAB2.'TEMPS_CALCULES' = LIS1B;
  263. * PASAPAS TAB2 ;
  264. * *
  265. * si complet;
  266. * LIS1C = prog 0.9 1.;
  267. * TAB2.'AUTOCRIT' = 0.2 ;
  268. * TAB2.'TEMPS_CALCULES' = LIS1C;
  269. * PASAPAS TAB2 ;
  270. * *
  271. * LIS1D = prog 1. 1.152;
  272. * TAB2.'AUTOCRIT' = 0.5 ;
  273. * TAB2.'TEMPS_CALCULES' = LIS1D;
  274. * PASAPAS TAB2 ;
  275. * finsi;
  276.  
  277. * calcul en 1 seule fois :
  278. TAB2 . 'TEMPS_CALCULES' = LIS1T;
  279. * TAB2.'AUTOCRIT' = 0.02 ;
  280. TAB2 . 'AUTOCRIT' = 0.05 ;
  281. PASAPAS TAB2 ;
  282.  
  283.  
  284. uxp2 = prog; uyp2 = prog; uzp2 = prog; tprog = prog;
  285. npas = dime TAB2 . 'TEMPS';
  286. ipas = -1;
  287. repe Bpas npas; ipas = ipas + 1 ;
  288. t = TAB2 . 'TEMPS' . ipas ;
  289. u = TAB2 . 'DEPLACEMENTS' . ipas ;
  290. f = TIRE TAB2.'CHARGEMENT' t;
  291. fr = TAB2 . 'REACTIONS' . ipas;
  292. vf = (vect f 'FORC' ROUG 0.01) et (vect fr 'FORC' ROSE 0.01);
  293. def0 = defo u L1 0. GRIS;
  294. def1 = defo u L1 1. vf;
  295. motit = chai 'deformee au pas ' ipas ' t='t;
  296. si GRAPH; trac (def0 et def1) 'TITR' motit; finsi;
  297. uxp2 = uxp2 et (extr u 'UX' P2);
  298. uyp2 = uyp2 et (extr u 'UY' P2);
  299. uzp2 = uzp2 et (extr u 'UZ' P2);
  300. tprog = tprog et t;
  301. fin Bpas ;
  302.  
  303. evuxp2 = EVOL VIOL MANU tprog uxp2;
  304. evuyp2 = EVOL BLEU MANU tprog uyp2;
  305. evuzp2 = EVOL TURQ MANU tprog uzp2;
  306. si GRAPH ;
  307. dess (evuxp2 et evuyp2 et evuzp2)
  308. 'TITX' 't' 'POSX' 'CENT'
  309. 'TITY' 'u' 'POSY' 'CENT' 'TITR' 'continu_gdep1 (pasapas)';
  310. finsi;
  311.  
  312. evopas = evuxp2 et evuyp2 et evuzp2;
  313. Tdess1 . 4 = mot 'TIRR' ;
  314. Tdess1 . 5 = mot 'TIRR' ;
  315. Tdess1 . 6 = mot 'TIRR' ;
  316. Tdess1 . 'TITRE' . 4 = mot 'UX pasapas AUTO';
  317. Tdess1 . 'TITRE' . 5 = mot 'UY pasapas AUTO';
  318. Tdess1 . 'TITRE' . 6 = mot 'UZ pasapas AUTO';
  319.  
  320. si GRAPH ;
  321. dess (evcon et evopas) Tdess1 LEGE NO
  322. 'TITX' 't' 'POSX' 'CENT'
  323. 'TITY' 'u' 'POSY' 'CENT' 'TITR' 'continu_gdep1';
  324. finsi;
  325.  
  326.  
  327.  
  328. ***************************************************
  329. *** ***
  330. *** TEST DE NON REGRESSION ***
  331. *** ***
  332. ***************************************************
  333.  
  334. * RESULTATS ANALYTIQUES
  335. ALPHATH = 60. ;
  336.  
  337. * resultats CONTINU pour un chargement = 1.152 * PCR
  338. DEP1a = TAB1 . 'DEPLACEMENTS' . (nuy2 - 2);
  339. DEP1b = TAB1 . 'DEPLACEMENTS' . (nuy2 - 1);
  340. ta = TAB1 . 'TEMPS' . (nuy2 - 2);
  341. tb = TAB1 . 'TEMPS' . (nuy2 - 1);
  342. t = 1.152; gamt = (t - ta) / (tb - ta);
  343. DEP1 = ((1. - gamt) * DEP1a) + (gamt * DEP1b);
  344. XX1 = (EXTR DEP1 PP1 UX) + (COOR 1 PP1) ;
  345. YY1 = (EXTR DEP1 PP1 UY) + (COOR 2 PP1) ;
  346. XX2 = (EXTR DEP1 P2 UX) + (COOR 1 P2) ;
  347. YY2 = (EXTR DEP1 P2 UY) + (COOR 2 P2) ;
  348. TN = ((YY2 - YY1)/(XX2 - XX1)) ;
  349. ALPHA1 = ATG TN ;
  350.  
  351.  
  352. * resultats PASAPAS pour un chargement = 1.152 * PCR
  353. DEP2 = PECHE TAB2 'DEPLACEMENTS' ;
  354. XX1 = (EXTR DEP2 PP1 UX) + (COOR 1 PP1) ;
  355. YY1 = (EXTR DEP2 PP1 UY) + (COOR 2 PP1) ;
  356. XX2 = (EXTR DEP2 P2 UX) + (COOR 1 P2) ;
  357. YY2 = (EXTR DEP2 P2 UY) + (COOR 2 P2) ;
  358. TN = ((YY2 - YY1)/(XX2 - XX1)) ;
  359. ALPHA2 = ATG TN ;
  360.  
  361. MESS ALPHATH ALPHA1 ALPHA2;
  362. MESS 0. (ALPHA1/ALPHATH - 1.) (ALPHA2/ALPHATH - 1.);
  363.  
  364. *** table TNR ***
  365.  
  366. TABTNR = TABL ;
  367.  
  368. TABTNR.'ANA' = TABL ;
  369. TABTNR.'ANA'. 1 = CHAI 'CONTINU' ;
  370. TABTNR.'ANA'. 2 = CHAI 'PASAPAS' ;
  371.  
  372. TABTNR.'DESC' = TABL ;
  373. TABTNR.'DESC'. 1 = CHAI '\alpha(\lambda=1.152)' ;
  374. TABTNR.'DESC'. 2 = CHAI '\alpha(\lambda=1.152)' ;
  375.  
  376. TABTNR.'NOMS' = TABL ;
  377. TABTNR.'NOMS' . 1 = 'CHAI' 'ALPHA1 ' ;
  378. TABTNR.'NOMS' . 2 = 'CHAI' 'ALPHA2 ' ;
  379.  
  380. TABTNR.'CAL' = PROG ALPHA1 ALPHA2;
  381.  
  382. TABTNR.'REF' = PROG ALPHATH ALPHATH;
  383.  
  384. TABTNR.'TOL' = PROG 2.E-2 2.E-2;
  385.  
  386. OPTI ECHO 0 ;
  387. error = 0 ;
  388. FORMA1 = '(1PE12.5)' ;
  389. FORMA2 = '(1PE10.0)' ;
  390. MESS '###_DEBUT_DES_TESTS_DE_NON-REGRESSION_###' ;
  391. MESS (CHAI 'ANALYSE : VARIABLE : DESCRIPTION : VALEUR REF. :'
  392. ' VALEUR CALC. : ERR. RELAT. : TOLERANCE : ETAT') ;
  393. REPE BOU1 (DIME TABTNR.'NOMS') ;
  394. ana = CHAI TABTNR.'ANA'. &BOU1 ;
  395. nom = CHAI TABTNR. 'NOMS' . &BOU1 ;
  396. des = CHAI TABTNR. 'DESC' . &BOU1 ;
  397. ref = EXTR TABTNR.'REF' &BOU1 ;
  398. cal = EXTR TABTNR.'CAL' &BOU1 ;
  399. tol = EXTR TABTNR.'TOL' &BOU1 ;
  400. err = ABS (cal - ref) ;
  401. SI ((ABS ref) '>EG' 1.E-10) ;
  402. err = err / (ABS (ref)) ;
  403. FINSI ;
  404. SI (err '>EG' tol) ;
  405. error = error + 1 ;
  406. etat = CHAI ERREUR ;
  407. SINON ;
  408. etat = CHAI 'OK' ;
  409. FINSI ;
  410. MESS (CHAI ana ' : '
  411. nom ' : '
  412. des ' : '
  413. FORMAT FORMA1 ref ' : '
  414. FORMAT FORMA1 cal ' : '
  415. FORMAT FORMA1 err ' : '
  416. FORMAT FORMA2 tol ' : '
  417. etat) ;
  418. FIN BOU1 ;
  419. *
  420. ******************
  421. * Emission de la banniere de fin de TEST
  422. ******************
  423. *
  424. * opti DONN 5 ECHO 1 'TRAC' X;
  425. MESS '###_FIN_DES_TESTS_DE_NON-REGRESSION_###' ;
  426. TEMPS ;
  427. SI (error '>' 0) ;
  428. MESS 'Il y a ' error ' erreur(s) !' ;
  429. ERRE 5 ;
  430. SINON ;
  431. MESS 'Aucun probleme detecte !' ;
  432. FINSI ;
  433. *
  434.  
  435. FIN ;
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  

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