Télécharger pilotage_indirect_1_cmep.dgibi
*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * Problem description: * * In the example below, we study the effects caused by the progressive * strain localization. The structure consists of a bar under uniform * tension in which the load is applied via displacement control at the * right edge. At this edge, only the direction of the displacement * is known a priori. The displacement intensity is calculated in such * a way to respect the path equation specified by the user. Here, the * defaut path equation (CMSI) is replaced by the CMEP * (Lorentz and Badel, 2004) via the user procedure PILOINDI. According * to this formulation, the elastic predictor of the damage criterion * function is controlled during the simulation. For more details, the * interested reader is referred to (Lorentz and Badel, 2004; * Rastiello et al., 2019; Oliveira et al., 2021; * Rastiello et al., 2022). An unstable response is induced by * increasing the value of NELX. The higher this number, the more * severe the snap-back becomes. On the other hand, the lower this * number, the more the snap-back tends to fade away. * * E. Lorentz and P. Badel. A new path-following constraint for * strain-softening finite element simulations, Int. J. Numer. Methods * Eng., Volume 60, 2004, no. 2, pp. 499-526 * * G. Rastiello, F. Riccard,, B. Richard. Discontinuity-scale * path-following methods for the embedded discontinuity modeling of * failure in solids. Computer Methods in Applied Mechanics and * Engineering. Volume 349, 2019, Pages 431-457, ISSN 0045-7825, * https://doi.org/10.1016/j.cma.2019.02.030. * * H. Oliveira, G. Rastiello, A. Millard, I. Bitar, B. Richard. * Implementation of path-following solvers in the finite element toolbox * Cast3M: formulations, algorithms and applications. Volume 161, 2021, * 103055, ISSN 0965-9978, * https://doi.org/10.1016/j.advengsoft.2021.103055. * * G. Rastiello, H.L. Oliveira, A. Millard. Path-following * methods for unstable structural responses induced by strain softening: * a critical review. Comptes Rendus. Mécanique, Tome 350 (2022), * pp. 205-236. * doi : 10.5802/crmeca.112. * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * Contact: * Giuseppe RASTIELLO * CEA Paris-Saclay, Université Paris-Saclay * DES/ISAS/DM2S/SEMT/EMSI * email : giuseppe.rastiello[at]cea.fr * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *'OPTI' 'ECHO' 0; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * export psc figures PLT1 = FAUX; * export output text EXP1 = FAUX; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * DEFINING THE PARAMETRIC GEOMETRY * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * bar height H1 = 0.1; * bar length L1 = 1.0; * total number of elements along the x direction NELX = 29; * total number of elements along the y direction NELY = 3; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PIN = 'TABLE'; 'SI' (NELX < 3); 'SINON'; PIN.1 = 0. 0.; 'FINSI'; 'REPE' BOPO NELX; CX = CX + (L1/NELX); PIN.(&BOPO + 1) = CX CY; 'FIN' BOPO; LINH = 'TABLE'; 'REPE' BOLI NELX; 'FIN' BOLI; 'REPE' BOLI NELX; 'SI' (&BOLI 'EGA' 1); MALHA = LINH.(&BOLI); 'SINON'; MALHA = MALHA 'ET' LINH.(&BOLI); 'FINSI'; 'FIN' BOLI; PSU = 'TABLE'; PSU.1 = 0. H1; 'REPE' BOPO NELX; CX = CX + (L1/NELX); PSU.(&BOPO + 1) = CX CY; 'FIN' BOPO; 'REPE' BOPO NELX; CX = CX + (L1/NELX); PSU.(&BOPO + 1) = CX CY; 'FIN' BOPO; 'REPE' BOLI NELX; 'FIN' BOLI; 'REPE' BOLI NELX; MALHA = MALHA 'ET' LINH.(NELX + &BOLI); 'FIN' BOLI; *VERTICAL LINES 'REPE' BOLI (NELX+1); 'FIN' BOLI; 'REPE' BOLI (NELX+1); MALHA = MALHA 'ET' LINH.((2*NELX) + &BOLI); 'FIN' BOLI; *SURFACES AREA = 'TABLE'; 'REPE' BOEX NELX; LINH.(&BOEX + (2*NELX) + 1) LINH.(&BOEX + NELX) LINH.(&BOEX + (2*NELX)) ; 'FIN' BOEX; 'REPE' BOEX NELX; 'SI' (&BOEX 'EGA' 1); ELASPART = AREA.(&BOEX); 'SINON'; 'SI' (&BOEX 'EGA' ((NELX+1)/2)); DAMMPART = AREA.(&BOEX); 'SINON'; ELASPART = ELASPART 'ET' AREA.(&BOEX); 'FINSI'; 'FINSI'; 'FIN' BOEX; str1 = (DAMMPART 'ET' ELASPART); leftedg = LINH.(2*NELX + 1); PA = PIN.1; PB = PIN.(NELX+1); rigtedg = LINH.(3*NELX + 1); 'SI' PLT1; 'TRAC' str1; 'FINSI'; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF PARAMETRIC GEOMETRY * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * DEFINING MODEL AND MATERIAL * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ AT=1.0e0; AC=1.2e0; BC=1.5e+03; BT=1.0E4; epsd0=1.0E-4; YG=1.0E+9; BBT=1.06e0; NNU=0.0; RO =2.3E+03; MOD2 = 'MODE' DAMMPART 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' 'ENDOMMAGEMENT' 'MAZARS'; MAT2 = 'MATE' MOD2 'YOUN' YG 'NU' NNU 'RHO' RO 'BTRA' BT 'KTR0' epsd0 'ATRA' AT 'ACOM' AC 'BCOM' BC 'BETA' BBT; MODTOT = MOD1 'ET' MOD2; MATTOT = MAT1 'ET' MAT2; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF MODEL AND MATERIAL * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * DEFINING BOUNDARY CONDITIONS (known a priori) * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CLT = CL1 'ET' CL2; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF BOUNDARY CONDITIONS * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * SPECIFYING THE PATH-FOLLOWING EQUATION (CMEP) * Note: this constraint equation is model-dependent. One controls * the maximum value of the elastic predictor of the damage criterion * function on the domain. In this test case, the element experiencing * the maximum value of the elastic predictor function is known a priori * (it is the weakened finite element), so one could directly control this * quantity. A nested interval algorithm is implemented here for the * sake of generality. This makes the implementation usable in more * general/complex situations. * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DUII*'CHPOINT' DTAU*'FLOTTANT'; WTAB=PRECED.'WTABLE'; MODTOT = WTAB.'MO_TOT'; CHATAU = 'MANU' 'CHML' MODTOT 'EPTI' DTAU 'TYPE' 'DEFORMATIONS' 'STRESSES'; * --- calulating epsilon tilde EPS_POS_1 = 'BORNER' EPS_PRIN 'SI11' 'MINIMUM' 0.0; EPS_POS_2 = 'BORNER' EPS_PRIN 'SI22' 'MINIMUM' 0.0; EPS_POS_3 = 'BORNER' EPS_PRIN 'SI33' 'MINIMUM' 0.0; EPS_TILD = (AUX1 + AUX2 + AUX3)**(0.5); * --- elastic predictor calculation * ----- calculation of CH_AUX1 CH_AUX1 = F_TILD - CHATAU; * ----- calculation of CH_AUX2 * --- building macaulay tensor * --- rotating macaulay tensor to global 'SI' ((WTAB.'SOUS_INCREMENT' 'EGA' 1) 'ET' (WTAB.'PAS' 'EGA' 1)); 'TYPE' 'DEFORMATIONS' 'STRESSES'; CH_LAMB = -1.0*(CH_AUX1); 'SINON'; VAVA = 1.E-10; NUM1 = 'BORNER' NUM1 'EPTI' 'MINIMUM' VAVA; EPS_TILD = 'BORNER' EPS_TILD 'EPTI' 'MINIMUM' VAVA; CH_AUX2 = NUM1*(EPS_TILD**(-1.0)); CH_AUX2 = 'BORNER' CH_AUX2 'EPTI' 'MINIMUM' VAVA; CH_LAMB = -1.0*(CH_AUX1*(CH_AUX2**(-1.0))); 'FINSI'; * ----- Nested intervals CH_LAMB_MAX = (MA1*CH_LAMB); CH_LAMB_MIN = (MA2*CH_LAMB); big_value = 1.0E20; CH_LAMB_MAX = CH_LAMB_MAX + (big_value*MA2); CH_LAMB_MIN = CH_LAMB_MIN - (big_value*MA1); D_eta= LIM_SUP; 'FINPROC' D_ETA ; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF USER DEFINED PROCEDURE * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * PROBLEM SOLUTION * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * number of time increments ntincrem = 25; * * control parameter TAU = 5.0E-5; * * direction of the applied displacement (u_hat) CLT = CLT 'ET' CL3; * * **** preparing PASAPAS input table tab1 = 'TABLE'; tab1 . 'MOVA' = 'D' ; tab1 . 'BLOCAGES_MECANIQUES' = CLT ; tab1 . 'CARACTERISTIQUES' = mattot ; tab1 . 'MODELE' = modtot ; tab1 . 'TEMPS_CALCULES' = lis_incr ; **** lines to be included for ativating path-following control ****** tab1 . 'PILOTAGE_INDIRECT' = VRAI; tab1 . 'DEPLACEMENTS_PILOTES' = uch ; tab1 . 'PARAMETRE_DE_PILOTAGE' = ev1 ; PASAPAS tab1; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF SOLUTION * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * BEGIN OF POST-PROCESSING * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * **** procedure @TOTAL adapted 'FINPROC' TOT1 ; * * * * 'REPE' LAB (nn - 1 ) ; ii = &LAB ; TT = tab1 . 'TEMPS' . ii ; deplac = tab1 . 'DEPLACEMENTS' . ii ; FF = RESFORCE force_indirect rigtedg 'FX' ; pelcur = tab1 . 'VARIABLES_INTERNES' . ii ; EPS_POS_1 = 'BORNER' EPS_PRIN 'SI11' 'MINIMUM' 0.0; EPS_POS_2 = 'BORNER' EPS_PRIN 'SI22' 'MINIMUM' 0.0; EPS_POS_3 = 'BORNER' EPS_PRIN 'SI33' 'MINIMUM' 0.0; EPS_TILD = (AUX1 + AUX2 + AUX3)**(0.5); * --- elastic predictor calculation pelan = pelcur; 'FIN' LAB ; 'SI' PLT1; PROETA = TAB1 . 'COEFFICIENT_DE_PILOTAGE' ; 'DESS' evo11 ; 'DESS' evo12 ; 'DESS' evo13 ; 'FINSI'; 'SI' EXP1; 'FINSI'; fin; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF POST-PROCESSING * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * BEGIN OF NON-REGRESSION TEST * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tol1 = 1.0e-4; maxres = 0.; 'REPE' BTEST (nn - 1 ) ; res1 = 'ABS' ((V1 - V2)/V1); 'SI' (res1 > maxres); maxres = res1; 'FINSI'; res2 = 'ABS' ((W1 - W2)/W1); 'SI' (res2 > maxres); maxres = res2; 'FINSI'; 'FIN' BTEST ; err1 = maxres > tol1; 'SI' err1; 'FINSI'; *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ * * END OF NON-REGRESSION TEST * *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 'FIN';
© Cast3M 2003 - Tous droits réservés.
Mentions légales