*______________________________________________* * Machine à deux tores pour flexion equibiaxee * * Premier essai de maillage pour identifier * * les parametres d optimisation * *______________________________________________* 'OPTION' 'ELEM' QUA8 'DIME' 2 'MODE' axis; *____________________* * geometrie * *--------------------* *________________________ *parametres geometriques *------------------------ ep_util = 5e-3 ; lg_util = 10e-3 ; rayontot = 55e-3 ; surep = 14e-3 ; rayonrou = 5e-3 ; lg_racc = 14e-3 ; rayracc = 130e-3 ; coefcont = 1.5 ; posappb = rayonrou '+' 2e-3; posapph = rayonrou '+' 8e-3; *___________________________ *parametres de maillage *--------------------------- ma_roul1 = 11 ; ma_roul2 = 20 ; ma_roul3 = (ma_roul1 '+' ma_roul2 '+' ma_roul1)/2 ; ma_util = 20 ; ma_a3 = 15 ; ma_1b = 8 ; ma_cth = 20 ; ma_ctb = 20 ; ma_entr = 30 ; ma_racc = 12 ; ma_ep = 12 ; *__________________ *liste des points *------------------ pta = rayontot 0. ; ptb = (lg_util '+' lg_racc) 0. ; ptbprim = lg_util 0. ; ptc = 0. 0. ; ptd = 0. ep_util ; pte = lg_util (ep_util) ; ptf = (lg_util '+' lg_racc ) (ep_util '+' surep) ; ptg = rayontot (surep '+' ep_util) ; ct1 = (lg_util '+' lg_racc '+' posappb '-'(coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) (ep_util '+' surep) ; ct2 = (lg_util '+' lg_racc '+' posappb ) ( surep '+' ep_util '-' (0.1*rayonrou)); ct3 = (lg_util '+' lg_racc '+' posappb '+'(coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) (ep_util '+' surep) ; ct1prim = (lg_util '+' lg_racc '+' posappb '-' (coefcont*( (rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) 0. ; ct3prim = (lg_util '+' lg_racc '+' posappb '+' (coefcont*( (rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) 0. ; ct1h = (rayontot '-' posapph '-' (coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) (ep_util '+' surep); ct2h = (rayontot '-' posapph) (ep_util '+' surep '-' (0.1*rayonrou)) ; ct3h = ((rayontot '-' posapph) '+'(coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5)) ) (ep_util '+' surep); ct1hprim = (rayontot '-' posapph '-' (coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5))) 0.; ct3hprim = ((rayontot '-' posapph ) '+'(coefcont*((rayonrou**2 '-' (0.9*0.9*(rayonrou**2)))**0.5)) ) 0.; capph = (rayontot '-' posapph) (ep_util '+' (0.9*rayonrou) '+' surep); gapph = (rayontot '-' posapph '-' rayonrou) (ep_util '+' (0.9*rayonrou) '+' surep); dapph = (rayontot '-' posapph '+' rayonrou) (ep_util '+' (0.9*rayonrou) '+' surep); cinth = (rayontot '-' posapph) (ep_util '+' (-0.1*rayonrou) '+' surep ); int1h = (rayontot '-' posapph '-' (rayonrou*0.4)) (ep_util '+' (0.9*rayonrou) '+' surep) ; int2h = (rayontot '-' posapph '-' (rayonrou*0.4)) (ep_util '+' (0.9*rayonrou) '+' surep '-' (0.5*rayonrou)); int3h = (rayontot '-' posapph '+' (rayonrou*0.4)) (ep_util '+' (0.9*rayonrou) '+' surep '-' (0.5*rayonrou)); int4h = (rayontot '-' posapph '+' (rayonrou*0.4)) (ep_util '+' (0.9*rayonrou) '+' surep) ; cappb = (lg_util '+' lg_racc '+' posappb) (-1*(0.9*rayonrou '+' ep_util '+' surep)); cappb2 = (lg_util '+' lg_racc '+' posappb) (-1*(ep_util '+' surep) '+' (0.1*rayonrou)); gappb = (lg_util '+' posappb '+' lg_racc '-' rayonrou) (-1*(0.9*rayonrou '+' ep_util '+' surep)); dappb = (lg_util '+' posappb '+' lg_racc '+' rayonrou) (-1*(0.9*rayonrou '+' ep_util '+' surep)); int1 = (lg_util '+' posappb '+' lg_racc '-' (rayonrou*0.4) ) (-1*(0.9*rayonrou '+' ep_util '+' surep)); int2 = (lg_util '+' posappb '+' lg_racc '-' (rayonrou*0.4) ) (-1*(rayonrou*0.5 '+' ep_util '+' surep)); int3 = (lg_util '+' posappb '+' lg_racc '+' (rayonrou*0.4) ) (-1*(rayonrou*0.5 '+' ep_util '+' surep)); int4 = (lg_util '+' posappb '+' lg_racc '+' (rayonrou*0.4) ) (-1*(0.9*rayonrou '+' ep_util '+' surep)); *____________________ *liste des lignes *-------------------- la3 = droit ma_a3 pta ct3hprim ; l3h1h = droit ma_cth ct3hprim ct1hprim ; l_entreb = droit ma_entr ct1hprim ct3prim ; l31 = droit ma_ctb ct3prim ct1prim ; l1b = droit ma_1b ct1prim ptb ; lbb = droit ma_racc ptb ptbprim ; lbprimc = droit ma_util ptbprim ptc ; lg3 = droit ma_a3 ptg ct3h ; l_entreh = droit ma_entr ct1h ct3; arc123 = cer3 ma_ctb ct3 ct2 ct1 ; arc123 = arc123 'COULEUR' vert ; l1f = droit ma_1b ct1 ptf ; arc123h = cer3 ma_cth ct3h ct2h ct1h ; arc123h = arc123h 'COULEUR' vert ; led = droit ma_util pte ptd ; c_conge = ('COORDONNEE' 1 pte) ((((rayracc)**2 '-'(lg_racc**2) + surep**2))**0.5) ; arcef = 'CERCLE' (ma_racc ) pte c_conge ptf ; arcef = inverse arcef ; arch1 = 'CERCLE' ma_roul3 gapph ((rayontot '-' posapph) (ep_util '+' (0.9*rayonrou) '+' surep )) cinth ; arch2 = 'CERCLE' ma_roul3 cinth ((rayontot '-' posapph) (ep_util '+' (0.9*rayonrou) '+' surep )) dapph ; arch = arch1 'ET' arch2 ; l12h = 'DROIT' ma_roul1 int1h int2h ; l23h = 'DROIT' ma_roul2 int2h int3h ; l34h = 'DROIT' ma_roul1 int3h int4h ; lcar1h = l12h 'ET' l23h 'ET' l34h ; l12 = 'DROIT' ma_roul1 int1 int2 ; l23 = 'DROIT' ma_roul2 int2 int3 ; l34 = 'DROIT' ma_roul1 int3 int4 ; lcar1 = l12 'ET' l23 'ET' l34 ; arcb1 = 'CERCLE' ma_roul3 gappb cappb cappb2 ; arcb2 = 'CERCLE' ma_roul3 cappb2 cappb dappb ; arcb = arcb1 'ET' arcb2 ; *____________________________ *surfaces *---------------------------- ************************************** * disque * ************************************** sur_dis1 = la3 regler ma_ep lg3; sur_dis2 = arc123h regler ma_ep l3h1h ; sur_dis3 = l_entreb regler ma_ep l_entreh ; sur_dis4 = arc123 regler ma_ep l31 ; sur_dis5 = l1f regler ma_ep l1b ; sur_dis6 = arcef regler ma_ep lbb; sur_dis7 = led regler ma_ep lbprimc ; sur_util = sur_dis7 ; disque1 = sur_dis1 'ET' sur_dis2 'ET' sur_dis3 'ET' sur_dis4 'ET' sur_dis5 'ET' sur_dis6 ;; disque2 = disque1 'SYMETRIE' 'DROIT' pta ptb; sur_util =sur_util 'ET' ( sur_util 'SYMETRIE' 'DROIT' pta ptb ); disque = disque1 'ET' disque2 'ET' sur_util; ***************************** * tore h * ***************************** sint2h = 'REGLER' ma_roul2 l12h ('INVERSE' l34h); sint1h = 'REGLER' 8 lcar1h arch ; torh = sint1h 'ET' sint2h ; ***************************** * tore b * ***************************** sint2 = 'REGLER' ma_roul2 l12 ('INVERSE' l34); sint1 = 'REGLER' 8 lcar1 arcb ; torb = sint1 'ET' sint2 ; 'TRACER' qual (disque 'ET' torh 'ET' torb) ; 'ELIMINATION' 0.0000001 torb ; 'ELIMINATION' 0.0000001 torh ; 'ELIMINATION' 0.0000001 disque ; *'OPTION' donn 5 ; *_________________________* * conditions aux limites * *_________________________* *_____________________________________ *contacts *------------------------------------- ********************** * appui bas * ********************** gppb = torb 'POIN' proc (gappb); dppb = torb 'POIN' proc (dappb); larcb = 'CONTOUR' torb 'ELEM' 'COMPRIS' dppb gppb ; suptorb = 'CONTOUR' torb 'ELEM' 'COMPRIS' gppb dppb ; suptorb = suptorb 'COULEUR' vert ; ppc = disque 'POIN' proc (('COORDONNEE' ptf 1) (-1*('COORDONNEE' ct1 2))); ppb = disque 'POIN' proc (('COORDONNEE' ct1hprim 1) (-1*('COORDONNEE' ct1 2))) ; pdisqb = 'CONTOUR' disque 'ELEM' 'COMPRIS' ppb ppc ; pdisqb = 'INVERSE' pdisqb ; ************************ * appui haut * ************************ gpph = torh 'POIN' proc (gapph) ; dpph = torh 'POIN' proc (dapph) ; larch = 'CONTOUR' torh 'ELEM' 'COMPRIS' dpph gpph ; suptorh = 'CONTOUR' torh 'ELEM' 'COMPRIS' gpph dpph ; suptorh = suptorh 'COULEUR' bleu ; ppf = disque 'POIN' proc (ct3) ; ppg = disque 'POIN' proc (ptg) ; pdisqh = 'CONTOUR' disque 'ELEM' 'COMPRIS' ppf ppg ; righ pdisqh1 larch1 = contseg3 pdisqh larch ; rigb larcb1 pdisqb1 = contseg3 larcb pdisqb ; pdisqh1 = 'ORIENTER' pdisqh1 ; larch1 = 'ORIENTER' larch1 ; larch1 = 'INVERSE' larch1 ; pdisqb1 = inverse pdisqb1 ; tach = impo 'MAIL' pdisqh1 larch1; tacb = impo 'MAIL' pdisqb1 larcb1; ptcl = torb 'POIN' proc (cappb); *_____________ *deplacements *------------- cl1h = 'BLOQUE' Uz suptorh ; cl2h = 'BLOQUE' ur suptorh ; cl1b = rela ense uz suptorb; *cl1b2 = 'BLOQUE' uz suptorb ; cl1b2 = 'BLOQUE' uz ptcl ; cl2b = 'BLOQUE' ur suptorb ; CdLIM = CL1H 'ET' CL2H 'ET' CL1B 'ET' CL2B 'ET' righ 'ET' rigb ; *'ET' cl1b2; *_________________________* * maillage total * *_________________________* mailtot = torh 'ET' torb 'ET' disque ; *_________________________* * modele * *_________________________* MO1 = 'MODE' TORH MECANIQUE ELASTIQUE ISOTROPE ; MO2 = 'MODE' TORB MECANIQUE ELASTIQUE ISOTROPE ; MO3 = 'MODE' DISQUE MECANIQUE ELASTIQUE ISOTROPE ; MOTOT = MO1 'ET' MO2 'ET' MO3 ; *_________________________* * materiau * *_________________________* MA1 = 'MATERIAU' MO1 'YOUN' 200E9 'NU' 0.3 'RHO' 7800 ; MA2 = 'MATERIAU' MO2 'YOUN' 200e9 'NU' 0.3 'RHO' 7800 ; MA3 = 'MATERIAU' MO3 'YOUN' 200e9 'NU' 0.3 'RHO' 7800 ; MATOT = MA1 'ET' MA2 'ET' MA3 ; *_________________________* * rigidite calul lineaire * *_________________________* RI = 'RIGIDITE' MOTOT MATOT ; RITOT = RI 'ET' CdLIM; 'ELIMINATION' 0.0000001 torb ; 'ELIMINATION' 0.0000001 torh ; 'ELIMINATION' 0.0000001 disque ; *_________________________* * chargement * *_________________________* tps = 'PROG' 0.001 0.025 0.05 ; *0.075 0.1 ; fo1 = 'PROG' 1000. 5000. 10000. ; fp = forc fz (1.) ptcl ; *ddep = 1e-3 ; *ddep2 = 5e-5 ; *ddep3 = ((ddep '+' ddep2)/2) ; *dep01 = 'PROG' ddep2 ddep3 ddep ; dep01 = 'PROG' 1e-5 5e-5 1e-5 ; *1.5e-5 2e-5; F1 = DEPI (cl1b) 1. ; evchar = 'EVOL' 'MANU' 'temps' tps dep01 ; cha1 = CHAR 'dimp' F1 evchar ; *evchar = 'EVOL' 'MANUEL' 'temps' tps 'dep' fo1 ; *cha1 = 'CHARGEMENT' 'meca' fp evchar ; tab2 = table ; tab2.modele = motot ; tab2.caracteristiques = matot ; tab2.blocages_mecaniques = CdLIM ; tab2.chargement = cha1 ; tab2.contact = (tacb 'ET' tach) ; tab2.grands_deplacements = faux ; tab2.grandes_deformations = faux ; tab2.temps_calcules = tps; tab2.temps_sauves = tps; pasapas tab2 ; ********************************** * post traitement * ********************************** ind_i = 'DIME' (tab2.contraintes) ; dep = tab2.deplacements ; sig00 = tab2.contraintes ; i = 0 ; c1 = 0; repeter boucd ind_i; c1 = c1 '+' 1 ; def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 2. rouge ; 'SI' (c1 multi 2); def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 2. vert ; sinon; 'SI' (c1 multi 3); def = 'DEFORME' (disque 'ET' torb 'ET' torh) dep.i 2. bleu ; 'FINSI' ; 'FINSI' ; 'SI' (c1 'EGA' 1 ); defp = def;. sinon ; defp = defp 'ET' def ; 'FINSI' ; i = i '+' 1 ; 'FIN' boucd ; *'TRACER' defp ; i = 2; *repeter boucs ind_i ; repeter boucs 1 ; sig_i = sig00.i; sigrr_i = 'EXCO' smrr sig_i; sigtt_i = 'EXCO' smtt sig_i; sigzz_i = 'EXCO' smzz sig_i; sigrz_i = 'EXCO' smrz sig_i; vm_i = vmis motot sig_i ; tr_i = tres motot sig_i ; LISOV = 'PROG' -1E9 -5e8 -1E8 -3e7 -1E7 -1E6 -1e5 1e5 1e6 1e7 5e7 1e8 1e9 5e9; 'SI' (i > 0); titre 'smrr temps:' i; 'TRACER' sigrr_i lisov motot ('CONTOUR' disque); titre 'smtt temps:' i; 'TRACER' sigtt_i lisov motot ('CONTOUR' disque); titre 'smzz temps:' i; 'TRACER' sigzz_i lisov motot ('CONTOUR' disque); titre 'smrz temps:' i; 'TRACER' sigrz_i lisov motot ('CONTOUR' disque); titre 'vm temps:' i; 'TRACER' vm_i lisov motot ('CONTOUR' disque); titre 'tr temps:' i; 'TRACER' tr_i lisov motot ('CONTOUR' disque); 'FINSI' ; i = i '+' 1; 'FIN' boucs ; ************************* * prepa util du critere * ************************* pt_int1 = disque 'POIN' proc (0 ep_util) ; pt_int2 = disque 'POIN' proc (0 (-1*ep_util)) ; li12 = 'CONTOUR' disque 'ELEM' 'COMPRIS' pt_int2 pt_int1 ; 'OPTION' 'SAUVER' '2tor.sauvdgibi' ; 'SAUVER' tab2 ep_util lg_util rayontot surep rayonrou lg_racc rayracc coefcont posappb posapph;