Télécharger pilotage_indirect_1.dgibi

Retour à la liste

Numérotation des lignes :

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

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