Télécharger pilotage_indirect_1_cmep.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 replaced by the CMEP
  11. * (Lorentz and Badel, 2004) via the user procedure PILOINDI. According
  12. * to this formulation, the elastic predictor of the damage criterion
  13. * function is controlled during the simulation. For more details, the
  14. * interested reader is referred to (Lorentz and Badel, 2004;
  15. * Rastiello et al., 2019; Oliveira et al., 2021;
  16. * Rastiello et al., 2022). An unstable response is induced by
  17. * increasing the value of NELX. The higher this number, the more
  18. * severe the snap-back becomes. On the other hand, the lower this
  19. * number, the more the snap-back tends to fade away.
  20. *
  21. * E. Lorentz and P. Badel. A new path-following constraint for
  22. * strain-softening finite element simulations, Int. J. Numer. Methods
  23. * Eng., Volume 60, 2004, no. 2, pp. 499-526
  24. *
  25. * G. Rastiello, F. Riccard,, B. Richard. Discontinuity-scale
  26. * path-following methods for the embedded discontinuity modeling of
  27. * failure in solids. Computer Methods in Applied Mechanics and
  28. * Engineering. Volume 349, 2019, Pages 431-457, ISSN 0045-7825,
  29. * https://doi.org/10.1016/j.cma.2019.02.030.
  30. *
  31. * H. Oliveira, G. Rastiello, A. Millard, I. Bitar, B. Richard.
  32. * Implementation of path-following solvers in the finite element toolbox
  33. * Cast3M: formulations, algorithms and applications. Volume 161, 2021,
  34. * 103055, ISSN 0965-9978,
  35. * https://doi.org/10.1016/j.advengsoft.2021.103055.
  36. *
  37. * G. Rastiello, H.L. Oliveira, A. Millard. Path-following
  38. * methods for unstable structural responses induced by strain softening:
  39. * a critical review. Comptes Rendus. Mécanique, Tome 350 (2022),
  40. * pp. 205-236.
  41. * doi : 10.5802/crmeca.112.
  42. *
  43. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  44. * Contact:
  45. * Giuseppe RASTIELLO
  46. * CEA Paris-Saclay, Université Paris-Saclay
  47. * DES/ISAS/DM2S/SEMT/EMSI
  48. * email : giuseppe.rastiello[at]cea.fr
  49. *
  50. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  51. *'OPTI' 'ECHO' 0;
  52. 'OPTI' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'PLAN CONTR';
  53. 'OPTI' 'TRAC' 'PSC';
  54. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  55. * export psc figures
  56. PLT1 = FAUX;
  57. * export output text
  58. EXP1 = FAUX;
  59. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  60. *
  61. * DEFINING THE PARAMETRIC GEOMETRY
  62. *
  63. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  64. * bar height
  65. H1 = 0.1;
  66. * bar length
  67. L1 = 1.0;
  68. * total number of elements along the x direction
  69. NELX = 29;
  70. * total number of elements along the y direction
  71. NELY = 3;
  72. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  73.  
  74. PIN = 'TABLE';
  75.  
  76. 'SI' (NELX < 3);
  77. 'MESS' 'error: the NELX must be greater than 3 and odd';
  78. 'SINON';
  79. PIN.1 = 0. 0.;
  80. 'FINSI';
  81.  
  82. 'REPE' BOPO NELX;
  83. CX = 'COOR' 1 PIN.(&BOPO);
  84. CX = CX + (L1/NELX);
  85. CY = 'COOR' 2 PIN.(&BOPO);
  86. PIN.(&BOPO + 1) = CX CY;
  87. 'FIN' BOPO;
  88.  
  89. LINH = 'TABLE';
  90. 'REPE' BOLI NELX;
  91. LINH.(&BOLI) = 'DROI' 1 PIN.(&BOLI) PIN.(&BOLI + 1);
  92. 'FIN' BOLI;
  93.  
  94. 'REPE' BOLI NELX;
  95. 'SI' (&BOLI 'EGA' 1);
  96. MALHA = LINH.(&BOLI);
  97. 'SINON';
  98. MALHA = MALHA 'ET' LINH.(&BOLI);
  99. 'FINSI';
  100. 'FIN' BOLI;
  101.  
  102. PSU = 'TABLE';
  103. PSU.1 = 0. H1;
  104.  
  105. 'REPE' BOPO NELX;
  106. CX = 'COOR' 1 PSU.(&BOPO);
  107. CX = CX + (L1/NELX);
  108. CY = 'COOR' 2 PSU.(&BOPO);
  109. PSU.(&BOPO + 1) = CX CY;
  110. 'FIN' BOPO;
  111.  
  112. 'REPE' BOPO NELX;
  113. CX = 'COOR' 1 PSU.(&BOPO);
  114. CX = CX + (L1/NELX);
  115. CY = 'COOR' 2 PSU.(&BOPO);
  116. PSU.(&BOPO + 1) = CX CY;
  117. 'FIN' BOPO;
  118.  
  119. 'REPE' BOLI NELX;
  120. LINH.(NELX + &BOLI) = 'DROI' 1 PSU.(&BOLI) PSU.(&BOLI + 1);
  121. 'FIN' BOLI;
  122.  
  123. 'REPE' BOLI NELX;
  124. MALHA = MALHA 'ET' LINH.(NELX + &BOLI);
  125. 'FIN' BOLI;
  126.  
  127. *VERTICAL LINES
  128.  
  129. 'REPE' BOLI (NELX+1);
  130. LINH.((2*NELX) + &BOLI) = 'DROI' NELY PIN.(&BOLI) PSU.(&BOLI);
  131. 'FIN' BOLI;
  132.  
  133. 'REPE' BOLI (NELX+1);
  134. MALHA = MALHA 'ET' LINH.((2*NELX) + &BOLI);
  135. 'FIN' BOLI;
  136.  
  137. *SURFACES
  138. AREA = 'TABLE';
  139. 'REPE' BOEX NELX;
  140. AREA.(&BOEX) = 'DALL' LINH.(&BOEX)
  141. LINH.(&BOEX + (2*NELX) + 1)
  142. LINH.(&BOEX + NELX)
  143. LINH.(&BOEX + (2*NELX)) ;
  144. 'FIN' BOEX;
  145.  
  146. 'REPE' BOEX NELX;
  147. 'SI' (&BOEX 'EGA' 1);
  148. ELASPART = AREA.(&BOEX);
  149. 'SINON';
  150. 'SI' (&BOEX 'EGA' ((NELX+1)/2));
  151. DAMMPART = AREA.(&BOEX);
  152. 'SINON';
  153. ELASPART = ELASPART 'ET' AREA.(&BOEX);
  154. 'FINSI';
  155. 'FINSI';
  156. 'FIN' BOEX;
  157.  
  158. str1 = (DAMMPART 'ET' ELASPART);
  159. leftedg = LINH.(2*NELX + 1);
  160. PA = PIN.1;
  161. PB = PIN.(NELX+1);
  162. rigtedg = LINH.(3*NELX + 1);
  163.  
  164. 'SI' PLT1;
  165. 'TRAC' str1;
  166. 'FINSI';
  167. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  168. *
  169. * END OF PARAMETRIC GEOMETRY
  170. *
  171. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  172.  
  173. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  174. *
  175. * DEFINING MODEL AND MATERIAL
  176. *
  177. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  178. AT=1.0e0;
  179. AC=1.2e0;
  180. BC=1.5e+03;
  181. BT=1.0E4;
  182. epsd0=1.0E-4;
  183. YG=1.0E+9;
  184. BBT=1.06e0;
  185. NNU=0.0;
  186. RO =2.3E+03;
  187.  
  188. MOD1 = 'MODE' ELASPART 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE';
  189. MAT1 = 'MATE' MOD1 'YOUN' YG 'NU' NNU 'RHO' RO;
  190.  
  191. MOD2 = 'MODE' DAMMPART 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE'
  192. 'ENDOMMAGEMENT' 'MAZARS';
  193. MAT2 = 'MATE' MOD2 'YOUN' YG 'NU' NNU 'RHO' RO 'BTRA' BT
  194. 'KTR0' epsd0 'ATRA' AT 'ACOM' AC 'BCOM' BC 'BETA' BBT;
  195.  
  196. MODTOT = MOD1 'ET' MOD2;
  197. MATTOT = MAT1 'ET' MAT2;
  198.  
  199. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  200. *
  201. * END OF MODEL AND MATERIAL
  202. *
  203. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  204.  
  205. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  206. *
  207. * DEFINING BOUNDARY CONDITIONS (known a priori)
  208. *
  209. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  210. CL1 = 'BLOQ' 'UX' leftedg;
  211. CL2 = 'BLOQ' 'UY' PA;
  212. CLT = CL1 'ET' CL2;
  213.  
  214. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  215. *
  216. * END OF BOUNDARY CONDITIONS
  217. *
  218. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  219.  
  220. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  221. *
  222. * SPECIFYING THE PATH-FOLLOWING EQUATION (CMEP)
  223. * Note: this constraint equation is model-dependent. One controls
  224. * the maximum value of the elastic predictor of the damage criterion
  225. * function on the domain. In this test case, the element experiencing
  226. * the maximum value of the elastic predictor function is known a priori
  227. * (it is the weakened finite element), so one could directly control this
  228. * quantity. A nested interval algorithm is implemented here for the
  229. * sake of generality. This makes the implementation usable in more
  230. * general/complex situations.
  231. *
  232. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  233.  
  234. 'DEBP' PILOINDI PRECED*'TABLE' U*'CHPOINT' DU*'CHPOINT' DUI*'CHPOINT'
  235. DUII*'CHPOINT' DTAU*'FLOTTANT';
  236.  
  237. WTAB=PRECED.'WTABLE';
  238. MODTOT = WTAB.'MO_TOT';
  239. Var_int_ini = 'REDU' CONTI.'VARIABLES_INTERNES' MODTOT ;
  240.  
  241. CHATAU = 'MANU' 'CHML' MODTOT 'EPTI' DTAU
  242. 'TYPE' 'DEFORMATIONS' 'STRESSES';
  243. EPTI_ANT = ('MAXI'('EXCO' 'EPTI' Var_int_ini));
  244.  
  245. EPS_TOT = 'EPSI' MODTOT (u + Du + duI);
  246. def_II = 'EPSI' MODTOT duII;
  247.  
  248. * --- calulating epsilon tilde
  249.  
  250. EPS_PRIN = 'PRIN' EPS_TOT MODTOT ;
  251. EPS_POS_1 = 'BORNER' EPS_PRIN 'SI11' 'MINIMUM' 0.0;
  252. EPS_POS_2 = 'BORNER' EPS_PRIN 'SI22' 'MINIMUM' 0.0;
  253. EPS_POS_3 = 'BORNER' EPS_PRIN 'SI33' 'MINIMUM' 0.0;
  254.  
  255. AUX1 = EPS_POS_1 '*' EPS_POS_1 ('MOTS' 'SI11')
  256. ('MOTS' 'SI11') ('MOTS' 'EPTI') ;
  257. AUX2 = EPS_POS_2 '*' EPS_POS_2 ('MOTS' 'SI22')
  258. ('MOTS' 'SI22') ('MOTS' 'EPTI') ;
  259. AUX3 = EPS_POS_3 '*' EPS_POS_3 ('MOTS' 'SI33')
  260. ('MOTS' 'SI33') ('MOTS' 'EPTI') ;
  261.  
  262. EPS_TILD = (AUX1 + AUX2 + AUX3)**(0.5);
  263.  
  264. * --- elastic predictor calculation
  265. F_TILD = EPS_TILD - ('EXCO' 'EPTI' Var_int_ini);
  266.  
  267. * ----- calculation of CH_AUX1
  268. CH_AUX1 = F_TILD - CHATAU;
  269.  
  270. * ----- calculation of CH_AUX2
  271.  
  272. * --- building macaulay tensor
  273. EPS_MAC = 'ZERO' MOD2 'DEFORMAT';
  274. EPS_MAC = EPS_MAC + ('EXCO' 'SI11' EPS_POS_1 'EPXX');
  275. EPS_MAC = EPS_MAC + ('EXCO' 'SI22' EPS_POS_2 'EPYY');
  276. EPS_MAC = EPS_MAC + ('EXCO' 'SI33' EPS_POS_3 'EPZZ');
  277.  
  278. * --- rotating macaulay tensor to global
  279. R = ('EXCO' EPS_PRIN 'COX1' 'UX,X') ;
  280. R = R 'ET' ('EXCO' EPS_PRIN 'COX2' 'UX,Y') ;
  281. R = R 'ET' ('EXCO' EPS_PRIN 'COX3' 'UX,Z') ;
  282. R = R 'ET' ('EXCO' EPS_PRIN 'COY1' 'UY,X') ;
  283. R = R 'ET' ('EXCO' EPS_PRIN 'COY2' 'UY,Y') ;
  284. R = R 'ET' ('EXCO' EPS_PRIN 'COY3' 'UY,Z') ;
  285. R = R 'ET' ('EXCO' EPS_PRIN 'COZ1' 'UZ,X') ;
  286. R = R 'ET' ('EXCO' EPS_PRIN 'COZ2' 'UZ,Y') ;
  287. R = R 'ET' ('EXCO' EPS_PRIN 'COZ3' 'UZ,Z') ;
  288. R = 'CHAN' R 'TYPE' 'GRADIENT' ;
  289.  
  290. DII_P = 'RTEN' DEF_II MOD2 R ;
  291.  
  292. LIS1 = 'MOTS' 'EPXX' 'EPYY' 'EPZZ' 'GAXY';
  293. LIS2 = 'MOTS' 'SMXX' 'SMYY' 'SMZZ' 'SMXY';
  294. DII_P = 'CHAN' DII_P 'TYPE' 'CONTRAINTES' ;
  295. DII_P = 'CHAN' 'COMP' LIS1 LIS2 DII_P;
  296. NUM1 = 'ENER' MOD2 EPS_MAC DII_P ;
  297. NUM1 = 'CHAN' 'COMP' 'EPTI' NUM1;
  298.  
  299. 'SI' ((WTAB.'SOUS_INCREMENT' 'EGA' 1) 'ET' (WTAB.'PAS' 'EGA' 1));
  300. CH_AUX2 = 'MANU' 'CHML' MODTOT 'EPTI' 0.0
  301. 'TYPE' 'DEFORMATIONS' 'STRESSES';
  302. CH_LAMB = -1.0*(CH_AUX1);
  303. 'SINON';
  304. NUM1 = 'REDU' NUM1 DAMMPART;
  305. EPS_TILD = 'REDU' EPS_TILD DAMMPART;
  306.  
  307. VAVA = 1.E-10;
  308. NUM1 = 'BORNER' NUM1 'EPTI' 'MINIMUM' VAVA;
  309. EPS_TILD = 'BORNER' EPS_TILD 'EPTI' 'MINIMUM' VAVA;
  310.  
  311. CH_AUX2 = NUM1*(EPS_TILD**(-1.0));
  312. CH_AUX2 = 'REDU' CH_AUX2 DAMMPART;
  313. CH_AUX1 = 'REDU' CH_AUX1 DAMMPART;
  314. CH_AUX2 = 'BORNER' CH_AUX2 'EPTI' 'MINIMUM' VAVA;
  315. CH_LAMB = -1.0*(CH_AUX1*(CH_AUX2**(-1.0)));
  316. 'FINSI';
  317.  
  318. * ----- Nested intervals
  319. MA1 = 'MASQ' CH_AUX2 'EGSUPE' 0. ;
  320. CH_LAMB_MAX = (MA1*CH_LAMB);
  321.  
  322. MA2 = 'MASQ' CH_AUX2 'INFERIEUR' 0. ;
  323. CH_LAMB_MIN = (MA2*CH_LAMB);
  324.  
  325. big_value = 1.0E20;
  326. CH_LAMB_MAX = CH_LAMB_MAX + (big_value*MA2);
  327. CH_LAMB_MIN = CH_LAMB_MIN - (big_value*MA1);
  328.  
  329. LIM_INF = 'MAXI' CH_LAMB_MIN 'AVEC' ('MOTS' 'EPTI');
  330. LIM_SUP = 'MINI' CH_LAMB_MAX 'AVEC' ('MOTS' 'EPTI');
  331.  
  332. D_eta= LIM_SUP;
  333.  
  334. 'FINPROC' D_ETA ;
  335.  
  336. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  337. *
  338. * END OF USER DEFINED PROCEDURE
  339. *
  340. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  341.  
  342. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  343. *
  344. * PROBLEM SOLUTION
  345. *
  346. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  347. *
  348. * number of time increments
  349. ntincrem = 25;
  350. *
  351. * control parameter
  352. TAU = 5.0E-5;
  353. *
  354. * direction of the applied displacement (u_hat)
  355. CL3 = 'BLOQ' 'UX' rigtedg;
  356. CLT = CLT 'ET' CL3;
  357. uch = 'DEPI' CL3 1.0;
  358. *
  359. lis_incr= 'PROG' 0. 'PAS' 1 (ntincrem. * 1) ;
  360. lis_tau = 'PROG' 0. 'PAS' TAU (ntincrem. * TAU) ;
  361. ev1 = 'EVOL' 'MANU' 't' lis_incr 'tau' lis_tau ;
  362. *
  363. **** preparing PASAPAS input table
  364. tab1 = 'TABLE';
  365. tab1 . 'MOVA' = 'D' ;
  366. tab1 . 'BLOCAGES_MECANIQUES' = CLT ;
  367. tab1 . 'CARACTERISTIQUES' = mattot ;
  368. tab1 . 'MODELE' = modtot ;
  369. tab1 . 'TEMPS_CALCULES' = lis_incr ;
  370.  
  371. **** lines to be included for ativating path-following control ******
  372. tab1 . 'PILOTAGE_INDIRECT' = VRAI;
  373. tab1 . 'DEPLACEMENTS_PILOTES' = uch ;
  374. tab1 . 'PARAMETRE_DE_PILOTAGE' = ev1 ;
  375.  
  376. PASAPAS tab1;
  377.  
  378. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  379. *
  380. * END OF SOLUTION
  381. *
  382. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  383.  
  384. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  385. *
  386. * BEGIN OF POST-PROCESSING
  387. *
  388. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  389. *
  390. **** procedure @TOTAL adapted
  391. 'DEBPROC' RESFORCE CH1*'CHPOINT' GEO*'MAILLAGE' COMP1*'MOT' ;
  392. CH2 = 'REDU' CH1 GEO ;
  393. CHTOT = 'RESU' CH2 ;
  394. P1 = ('EXTR' CHTOT MAIL) 'POIN' 1 ;
  395. TOT1 = 'EXTR' CHTOT COMP1 P1 ;
  396. 'FINPROC' TOT1 ;
  397. *
  398. *
  399. nn = 'DIME' tab1 . 'TEMPS';
  400. *
  401. PROF = 'PROG' 0.;
  402. PROT = 'PROG' 0.;
  403. PROD = 'PROG' 0.;
  404. LISCT= 'PROG' 0.;
  405. *
  406. pelan = zero modtot 'VARINTER';
  407. 'REPE' LAB (nn - 1 ) ;
  408. ii = &LAB ;
  409. TT = tab1 . 'TEMPS' . ii ;
  410. deplac = tab1 . 'DEPLACEMENTS' . ii ;
  411. force_indirect = 'REAC' CL3 deplac ;
  412. FF = RESFORCE force_indirect rigtedg 'FX' ;
  413. DD = 'EXTR' deplac 'UX' PB ;
  414.  
  415. pelcur = tab1 . 'VARIABLES_INTERNES' . ii ;
  416. EPS_TOT = 'EPSI' MODTOT (deplac);
  417. EPS_PRIN = 'PRIN' EPS_TOT MODTOT ;
  418. EPS_POS_1 = 'BORNER' EPS_PRIN 'SI11' 'MINIMUM' 0.0;
  419. EPS_POS_2 = 'BORNER' EPS_PRIN 'SI22' 'MINIMUM' 0.0;
  420. EPS_POS_3 = 'BORNER' EPS_PRIN 'SI33' 'MINIMUM' 0.0;
  421.  
  422. AUX1 = EPS_POS_1 '*' EPS_POS_1 ('MOTS' 'SI11')
  423. ('MOTS' 'SI11') ('MOTS' 'EPTI') ;
  424. AUX2 = EPS_POS_2 '*' EPS_POS_2 ('MOTS' 'SI22')
  425. ('MOTS' 'SI22') ('MOTS' 'EPTI') ;
  426. AUX3 = EPS_POS_3 '*' EPS_POS_3 ('MOTS' 'SI33')
  427. ('MOTS' 'SI33') ('MOTS' 'EPTI') ;
  428.  
  429. EPS_TILD = (AUX1 + AUX2 + AUX3)**(0.5);
  430.  
  431. * --- elastic predictor calculation
  432. F_TILD = EPS_TILD - ('EXCO' 'EPTI' pelan);
  433. F_TILD = REDU F_TILD mod2;
  434. pelan = pelcur;
  435.  
  436. CT = 'MAXI' F_TILD ;
  437.  
  438. PROT = PROT 'ET' ( 'PROG' TT) ;
  439. PROF = PROF 'ET' ( 'PROG' FF) ;
  440. PROD = PROD 'ET' ( 'PROG' DD) ;
  441. LISCT= LISCT 'ET' ( 'PROG' CT) ;
  442. 'FIN' LAB ;
  443.  
  444. 'SI' PLT1;
  445. PROETA = TAB1 . 'COEFFICIENT_DE_PILOTAGE' ;
  446. evo11 = 'EVOL' 'TURQ' 'MANU' 'disp' PROD 'forc' PROF ;
  447. evo12 = 'EVOL' 'ROUG' 'MANU' 'increment' PROT 'eta' PROETA ;
  448. evo13 = 'EVOL' 'BLEU' 'MANU' 'increment' PROT 'max el pred' LISCT ;
  449. 'DESS' evo11 ;
  450. 'DESS' evo12 ;
  451. 'DESS' evo13 ;
  452. 'FINSI';
  453.  
  454. 'SI' EXP1;
  455. @EXCEL1 evo11 'forc_displ_cmep.txt' ;
  456. @EXCEL1 evo13 'crit_pilo_cmep.txt' ;
  457. 'FINSI';
  458. fin;
  459. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  460. *
  461. * END OF POST-PROCESSING
  462. *
  463. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  464.  
  465. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  466. *
  467. * BEGIN OF NON-REGRESSION TEST
  468. *
  469. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  470. refx = 'PROG' 0.;
  471. refx = refx 'ET' ('PROG' 5.00000E-05);
  472. refx = refx 'ET' ('PROG' 1.00000E-04);
  473. refx = refx 'ET' ('PROG' 9.30148E-05);
  474. refx = refx 'ET' ('PROG' 7.79353E-05);
  475. refx = refx 'ET' ('PROG' 6.24797E-05);
  476. refx = refx 'ET' ('PROG' 4.95454E-05);
  477. refx = refx 'ET' ('PROG' 3.98080E-05);
  478. refx = refx 'ET' ('PROG' 3.30212E-05);
  479. refx = refx 'ET' ('PROG' 2.86375E-05);
  480. refx = refx 'ET' ('PROG' 2.60834E-05);
  481. refx = refx 'ET' ('PROG' 2.48648E-05);
  482. refx = refx 'ET' ('PROG' 2.45930E-05);
  483. refx = refx 'ET' ('PROG' 2.49786E-05);
  484. refx = refx 'ET' ('PROG' 2.58132E-05);
  485. refx = refx 'ET' ('PROG' 2.69508E-05);
  486. refx = refx 'ET' ('PROG' 2.82906E-05);
  487. refx = refx 'ET' ('PROG' 2.97642E-05);
  488. refx = refx 'ET' ('PROG' 3.13260E-05);
  489. refx = refx 'ET' ('PROG' 3.29452E-05);
  490. refx = refx 'ET' ('PROG' 3.46019E-05);
  491.  
  492. refy = 'PROG' 0.;
  493. refy = refy 'ET' ('PROG' 5.00000E+03);
  494. refy = refy 'ET' ('PROG' 1.00000E+04);
  495. refy = refy 'ET' ('PROG' 9.09796E+03);
  496. refy = refy 'ET' ('PROG' 7.35759E+03);
  497. refy = refy 'ET' ('PROG' 5.57825E+03);
  498. refy = refy 'ET' ('PROG' 4.06006E+03);
  499. refy = refy 'ET' ('PROG' 2.87297E+03);
  500. refy = refy 'ET' ('PROG' 1.99148E+03);
  501. refy = refy 'ET' ('PROG' 1.35888E+03);
  502. refy = refy 'ET' ('PROG' 9.15782E+02);
  503. refy = refy 'ET' ('PROG' 6.10995E+02);
  504. refy = refy 'ET' ('PROG' 4.04277E+02);
  505. refy = refy 'ET' ('PROG' 2.65640E+02);
  506. refy = refy 'ET' ('PROG' 1.73513E+02);
  507. refy = refy 'ET' ('PROG' 1.12758E+02);
  508. refy = refy 'ET' ('PROG' 7.29507E+01);
  509. refy = refy 'ET' ('PROG' 4.70123E+01);
  510. refy = refy 'ET' ('PROG' 3.01917E+01);
  511. refy = refy 'ET' ('PROG' 1.93295E+01);
  512. refy = refy 'ET' ('PROG' 1.23410E+01);
  513.  
  514. tol1 = 1.0e-4;
  515. maxres = 0.;
  516. 'REPE' BTEST (nn - 1 ) ;
  517. V1 = 'EXTR' refx (&BTEST + 1);
  518. V2 = 'EXTR' prod (&BTEST + 1);
  519. res1 = 'ABS' ((V1 - V2)/V1);
  520. 'SI' (res1 > maxres); maxres = res1; 'FINSI';
  521.  
  522. W1 = 'EXTR' refy (&BTEST + 1);
  523. W2 = 'EXTR' prof (&BTEST + 1);
  524. res2 = 'ABS' ((W1 - W2)/W1);
  525. 'SI' (res2 > maxres); maxres = res2; 'FINSI';
  526.  
  527. 'FIN' BTEST ;
  528.  
  529. err1 = maxres > tol1;
  530.  
  531. 'SI' err1;
  532. 'ERRE' 5 ;
  533. 'FINSI';
  534.  
  535. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  536. *
  537. * END OF NON-REGRESSION TEST
  538. *
  539. *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  540. 'FIN';
  541.  
  542.  

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