Télécharger pilotage_indirect_1.dgibi

Retour à la liste

Numérotation des lignes :

  1. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  2. * Problem description:
  3. *
  4. * In the example below, we study the effects caused by the progressive
  5. * strain localization. The structure consists of a bar under uniform
  6. * tension in which the load is applied via displacement control at the
  7. * right edge. At this edge, only the direction of the displacement
  8. * is known a priori. The displacement intensity is calculated in such
  9. * a way to respect the path equation specified by the user. Here, the
  10. * defaut path equation (CMSI) is utilised. The strain localization is
  11. * induced increasing the value of NELX. The higher this number the
  12. * more severe the snap-back becomes. On the other hand, the lower this
  13. * number, the more the snap-back tends to fade away.
  14. *
  15. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  16. 'OPTI' 'ECHO' 0;
  17. 'OPTI' 'TRAC' 'PSC';
  18. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'PLAN CONTR';
  19. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  20. * export psc figures
  21. PLT1 = VRAI;
  22. * export output text
  23. EXP1 = FAUX;
  24. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  25. *
  26. * DEFINING THE PARAMETRIC GEOMETRY
  27. *
  28. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  29. * bar height
  30. H1 = 0.1;
  31. * bar length
  32. L1 = 1.0;
  33. * total number of elements along the x direction
  34. NELX = 29;
  35. * total number of elements along the y direction
  36. NELY = 3;
  37. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  38.  
  39. PIN = 'TABLE';
  40.  
  41. 'SI' (NELX < 3);
  42. 'MESS' 'error: the NELX must be greater than 3 and odd';
  43. 'SINON';
  44. PIN.1 = 0. 0.;
  45. 'FINSI';
  46.  
  47. 'REPE' BOPO NELX;
  48. CX = 'COOR' 1 PIN.(&BOPO);
  49. CX = CX + (L1/NELX);
  50. CY = 'COOR' 2 PIN.(&BOPO);
  51. PIN.(&BOPO + 1) = CX CY;
  52. 'FIN' BOPO;
  53.  
  54. LINH = 'TABLE';
  55. 'REPE' BOLI NELX;
  56. LINH.(&BOLI) = 'DROI' 1 PIN.(&BOLI) PIN.(&BOLI + 1);
  57. 'FIN' BOLI;
  58.  
  59. 'REPE' BOLI NELX;
  60. 'SI' (&BOLI 'EGA' 1);
  61. MALHA = LINH.(&BOLI);
  62. 'SINON';
  63. MALHA = MALHA 'ET' LINH.(&BOLI);
  64. 'FINSI';
  65. 'FIN' BOLI;
  66.  
  67. PSU = 'TABLE';
  68. PSU.1 = 0. H1;
  69.  
  70. 'REPE' BOPO NELX;
  71. CX = 'COOR' 1 PSU.(&BOPO);
  72. CX = CX + (L1/NELX);
  73. CY = 'COOR' 2 PSU.(&BOPO);
  74. PSU.(&BOPO + 1) = CX CY;
  75. 'FIN' BOPO;
  76.  
  77. 'REPE' BOPO NELX;
  78. CX = 'COOR' 1 PSU.(&BOPO);
  79. CX = CX + (L1/NELX);
  80. CY = 'COOR' 2 PSU.(&BOPO);
  81. PSU.(&BOPO + 1) = CX CY;
  82. 'FIN' BOPO;
  83.  
  84. 'REPE' BOLI NELX;
  85. LINH.(NELX + &BOLI) = 'DROI' 1 PSU.(&BOLI) PSU.(&BOLI + 1);
  86. 'FIN' BOLI;
  87.  
  88. 'REPE' BOLI NELX;
  89. MALHA = MALHA 'ET' LINH.(NELX + &BOLI);
  90. 'FIN' BOLI;
  91.  
  92. *VERTICAL LINES
  93.  
  94. 'REPE' BOLI (NELX+1);
  95. LINH.((2*NELX) + &BOLI) = 'DROI' NELY PIN.(&BOLI) PSU.(&BOLI);
  96. 'FIN' BOLI;
  97.  
  98. 'REPE' BOLI (NELX+1);
  99. MALHA = MALHA 'ET' LINH.((2*NELX) + &BOLI);
  100. 'FIN' BOLI;
  101.  
  102. *SURFACES
  103. AREA = 'TABLE';
  104. 'REPE' BOEX NELX;
  105. AREA.(&BOEX) = 'DALL' LINH.(&BOEX)
  106. LINH.(&BOEX + (2*NELX) + 1)
  107. LINH.(&BOEX + NELX)
  108. LINH.(&BOEX + (2*NELX)) ;
  109. 'FIN' BOEX;
  110.  
  111. 'REPE' BOEX NELX;
  112. 'SI' (&BOEX 'EGA' 1);
  113. ELASPART = AREA.(&BOEX);
  114. 'SINON';
  115. 'SI' (&BOEX 'EGA' ((NELX+1)/2));
  116. DAMMPART = AREA.(&BOEX);
  117. 'SINON';
  118. ELASPART = ELASPART 'ET' AREA.(&BOEX);
  119. 'FINSI';
  120. 'FINSI';
  121. 'FIN' BOEX;
  122.  
  123. str1 = (DAMMPART 'ET' ELASPART);
  124. leftedg = LINH.(2*NELX + 1);
  125. PA = PIN.1;
  126. PB = PIN.(NELX+1);
  127. rigtedg = LINH.(3*NELX + 1);
  128.  
  129. 'SI' PLT1;
  130. 'TRAC' str1;
  131. 'FINSI';
  132. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  133. *
  134. * END OF PARAMETRIC GEOMETRY
  135. *
  136. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  137.  
  138. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  139. *
  140. * DEFINING MODEL AND MATERIAL
  141. *
  142. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  143. AT=1.0e0;
  144. AC=1.2e0;
  145. BC=1.5e+03;
  146. BT=1.0E4;
  147. epsd0=1.0E-4;
  148. YG=1.0E+9;
  149. BBT=1.06e0;
  150. NNU=0.0;
  151. RO =2.3E+03;
  152.  
  153. MOD1 = 'MODE' ELASPART 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  154. MAT1 = 'MATE' MOD1 'YOUN' YG 'NU' NNU 'RHO' RO;
  155.  
  156. MOD2 = 'MODE' DAMMPART 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  157. 'ENDOMMAGEMENT' 'MAZARS';
  158. MAT2 = 'MATE' MOD2 'YOUN' YG 'NU' NNU 'RHO' RO 'BTRA' BT
  159. 'KTR0' epsd0 'ATRA' AT 'ACOM' AC 'BCOM' BC 'BETA' BBT;
  160.  
  161. MODTOT = MOD1 'ET' MOD2;
  162. MATTOT = MAT1 'ET' MAT2;
  163.  
  164. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  165. *
  166. * END OF MODEL AND MATERIAL
  167. *
  168. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  169.  
  170. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  171. *
  172. * DEFINING BOUNDARY CONDITIONS (known a priori)
  173. *
  174. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  175. CL1 = 'BLOQ' 'UX' leftedg;
  176. CL2 = 'BLOQ' 'UY' PA;
  177. CLT = CL1 'ET' CL2;
  178.  
  179. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  180. *
  181. * END OF BOUNDARY CONDITIONS
  182. *
  183. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  184.  
  185. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  186. *
  187. * PROBLEM SOLUTION
  188. *
  189. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  190. *
  191. * number of time increments
  192. ntincrem = 24;
  193. *
  194. * control parameter
  195. TAU = 5.0E-5;
  196. *
  197. * direction of the applied displacement (u_hat)
  198. CL3 = 'BLOQ' 'UX' rigtedg;
  199. CLT = CLT 'ET' CL3;
  200. uch = 'DEPI' CL3 1.0;
  201. *
  202. lis_incr= 'PROG' 0. 'PAS' 1 (ntincrem. * 1) ;
  203. lis_tau = 'PROG' 0. 'PAS' TAU (ntincrem. * TAU) ;
  204. ev1 = 'EVOL' 'MANU' 't' lis_incr 'tau' lis_tau ;
  205. *
  206. **** preparing PASAPAS input table
  207. tab1 = 'TABLE';
  208. tab1 . 'MOVA' = 'D' ;
  209. tab1 . 'BLOCAGES_MECANIQUES' = CLT ;
  210. tab1 . 'CARACTERISTIQUES' = mattot ;
  211. tab1 . 'MODELE' = modtot ;
  212. tab1 . 'TEMPS_CALCULES' = lis_incr ;
  213.  
  214. **** lines to be included for ativating path-following control ******
  215. tab1 . 'PILOTAGE_INDIRECT' = VRAI;
  216. tab1 . 'DEPLACEMENTS_PILOTES' = uch ;
  217. tab1 . 'PARAMETRE_DE_PILOTAGE' = ev1 ;
  218.  
  219. PASAPAS tab1;
  220.  
  221. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  222. *
  223. * END OF SOLUTION
  224. *
  225. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  226.  
  227. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  228. *
  229. * BEGIN OF POST-PROCESSING
  230. *
  231. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  232. *
  233. **** procedure @TOTAL adapted
  234. 'DEBPROC' RESFORCE CH1*'CHPOINT' GEO*'MAILLAGE' COMP1*'MOT' ;
  235. CH2 = 'REDU' CH1 GEO ;
  236. CHTOT = 'RESU' CH2 ;
  237. P1 = ('EXTR' CHTOT MAIL) 'POIN' 1 ;
  238. TOT1 = 'EXTR' CHTOT COMP1 P1 ;
  239. 'FINPROC' TOT1 ;
  240. *
  241. *
  242. nn = 'DIME' tab1 . 'TEMPS';
  243. *
  244. PROF = 'PROG' 0.;
  245. PROT = 'PROG' 0.;
  246. PROD = 'PROG' 0.;
  247. *
  248. 'REPE' LAB (nn - 1 ) ;
  249. ii = &LAB ;
  250. TT = tab1 . 'TEMPS' . ii ;
  251. deplac = tab1 . 'DEPLACEMENTS' . ii ;
  252. force_indirect = 'REAC' CL3 deplac ;
  253. FF = RESFORCE force_indirect rigtedg 'FX' ;
  254. DD = 'EXTR' deplac 'UX' PB ;
  255.  
  256. PROT = PROT 'ET' ( 'PROG' TT) ;
  257. PROF = PROF 'ET' ( 'PROG' FF) ;
  258. PROD = PROD 'ET' ( 'PROG' DD) ;
  259. 'FIN' LAB ;
  260.  
  261. 'SI' PLT1;
  262. PROETA = TAB1 . 'COEFFICIENT_DE_PILOTAGE' ;
  263. evo11 = 'EVOL' 'TURQ' 'MANU' 'disp' PROD 'forc' PROF ;
  264. evo12 = 'EVOL' 'ROUG' 'MANU' 'increment' PROT 'eta' PROETA ;
  265. 'DESS' evo11 ;
  266. 'DESS' evo12 ;
  267. 'FINSI';
  268.  
  269. 'SI' EXP1;
  270. @EXCEL1 evo11 'forc_displ_cmsi.txt' ;
  271. 'FINSI';
  272.  
  273. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  274. *
  275. * END OF POST-PROCESSING
  276. *
  277. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  278.  
  279. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  280. *
  281. * BEGIN OF NON-REGRESSION TEST
  282. *
  283. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  284. refx = 'PROG' 0.;
  285. refx = refx 'ET' ('PROG' 5.00000E-05);
  286. refx = refx 'ET' ('PROG' 1.00000E-04);
  287. refx = refx 'ET' ('PROG' 9.30148E-05);
  288. refx = refx 'ET' ('PROG' 7.79353E-05);
  289. refx = refx 'ET' ('PROG' 6.24797E-05);
  290. refx = refx 'ET' ('PROG' 4.95454E-05);
  291. refx = refx 'ET' ('PROG' 3.98080E-05);
  292. refx = refx 'ET' ('PROG' 3.30212E-05);
  293. refx = refx 'ET' ('PROG' 2.86375E-05);
  294. refx = refx 'ET' ('PROG' 2.60834E-05);
  295. refx = refx 'ET' ('PROG' 2.48648E-05);
  296. refx = refx 'ET' ('PROG' 2.45930E-05);
  297. refx = refx 'ET' ('PROG' 2.49786E-05);
  298. refx = refx 'ET' ('PROG' 2.58132E-05);
  299. refx = refx 'ET' ('PROG' 2.69508E-05);
  300. refx = refx 'ET' ('PROG' 2.82906E-05);
  301. refx = refx 'ET' ('PROG' 2.97643E-05);
  302. refx = refx 'ET' ('PROG' 3.13260E-05);
  303. refx = refx 'ET' ('PROG' 3.29452E-05);
  304. refx = refx 'ET' ('PROG' 3.46019E-05);
  305. refx = refx 'ET' ('PROG' 3.62828E-05);
  306. refx = refx 'ET' ('PROG' 3.79792E-05);
  307. refx = refx 'ET' ('PROG' 3.96857E-05);
  308. refx = refx 'ET' ('PROG' 4.13987E-05);
  309.  
  310. refy = 'PROG' 0.;
  311. refy = refy 'ET' ('PROG' 5.00000E+03);
  312. refy = refy 'ET' ('PROG' 1.00000E+04);
  313. refy = refy 'ET' ('PROG' 9.09796E+03);
  314. refy = refy 'ET' ('PROG' 7.35759E+03);
  315. refy = refy 'ET' ('PROG' 5.57825E+03);
  316. refy = refy 'ET' ('PROG' 4.06006E+03);
  317. refy = refy 'ET' ('PROG' 2.87297E+03);
  318. refy = refy 'ET' ('PROG' 1.99148E+03);
  319. refy = refy 'ET' ('PROG' 1.35888E+03);
  320. refy = refy 'ET' ('PROG' 9.15782E+02);
  321. refy = refy 'ET' ('PROG' 6.10995E+02);
  322. refy = refy 'ET' ('PROG' 4.04277E+02);
  323. refy = refy 'ET' ('PROG' 2.65640E+02);
  324. refy = refy 'ET' ('PROG' 1.73513E+02);
  325. refy = refy 'ET' ('PROG' 1.12758E+02);
  326. refy = refy 'ET' ('PROG' 7.29506E+01);
  327. refy = refy 'ET' ('PROG' 4.70122E+01);
  328. refy = refy 'ET' ('PROG' 3.01917E+01);
  329. refy = refy 'ET' ('PROG' 1.93295E+01);
  330. refy = refy 'ET' ('PROG' 1.23410E+01);
  331. refy = refy 'ET' ('PROG' 7.85945E+00);
  332. refy = refy 'ET' ('PROG' 4.99400E+00);
  333. refy = refy 'ET' ('PROG' 3.16669E+00);
  334. refy = refy 'ET' ('PROG' 2.00421E+00);
  335.  
  336. tol1 = 1.0e-3;
  337. maxres = 0.;
  338. 'REPE' BTEST (nn - 1 ) ;
  339. V1 = 'EXTR' refx (&BTEST + 1);
  340. V2 = 'EXTR' prod (&BTEST + 1);
  341. res1 = 'ABS' ((V1 - V2)/V1);
  342. 'SI' (res1 > maxres); maxres = res1; 'FINSI';
  343.  
  344. W1 = 'EXTR' refy (&BTEST + 1);
  345. W2 = 'EXTR' prof (&BTEST + 1);
  346. res2 = 'ABS' ((W1 - W2)/W1);
  347. 'SI' (res2 > maxres); maxres = res2; 'FINSI';
  348.  
  349. 'FIN' BTEST ;
  350.  
  351. err1 = maxres > tol1;
  352.  
  353. 'SI' err1;
  354. 'ERRE' 5 ;
  355. 'FINSI';
  356.  
  357. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  358. *
  359. * END OF NON-REGRESSION TEST
  360. *
  361. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  362. 'FIN';
  363.  
  364.  
  365.  
  366.  

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