$$$$ TAKM_EFZ * TAKM_EFZ PROCEDUR FANDEUR 14/10/10 21:15:24 8178 * debproc TAKM_EFZ cycle*'LISTREEL' npass*'LISTENTI' model*'TABLE'; * * verification elementaire * lok=vrai; nbcl='DIME' cycle; 'SI' (('DIME' npass) 'NEG' nbcl); lok=faux; 'MESS' 'cycle et pas n"ont pas la meme longueur'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'GELA')); GELA=model.'GELA'; 'SINON'; lok=faux; 'MESS' 'GELA n"est pas dans model'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'SECZ')); SECZ=model.'SECZ'; 'SINON'; lok=faux; 'MESS' 'SECZ n"est pas dans model'; 'FINSI'; * 'SI' (lok 'ET' ('EXISTE' model 'TRAC')); TTRAC=model.'TRAC'; 'SINON'; lok=faux; 'MESS' 'TRAC n"est pas dans model'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'SFDP')); SFDP=model.'SFDP'; 'SINON'; lok=faux; 'MESS' 'SFDP n"est pas dans model'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'SFDN')); SFDN=model.'SFDN'; 'SINON'; SFDN=SFDP; 'MESS' 'SFDN est pris egal a SFDP'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'PINP')); PINP=model.'PINP'; 'SINON'; lok=faux; 'MESS' 'PINP n"est pas dans model'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'PINN')); PINN=model.'PINN'; 'SINON'; PINN=(-1)*PINP; 'MESS' 'PINN est pris egal a -PINP'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'SRDP')); SRDP=model.'SRDP'; 'SINON'; lok=faux; 'MESS' 'SRDP n"est pas dans model'; 'FINSI'; 'SI' (lok 'ET' ('EXISTE' model 'SRDN')); SRDN=model.'SRDN'; 'SINON'; SRDN=SRDP; 'MESS' 'SRDN est pris egal a SRDP'; 'FINSI'; * 'SI' (lok 'ET' ('EXISTE' model 'ELEN')); ELEN=model.'ELEN'; 'SINON'; ELEN='TIMO'; 'MESS' 'ELEN est pris egal a TIMO'; 'FINSI'; * 'SI' lok; * * maillage de 1 element * p1=0 0 0; p2=1 0 0;d1=p1 d 1 p2; * * champs nuls * xx yy zz='COOR' d1; deplx='EXCO' (0*xx) 'SCAL' 'NOID' 'UX'; deply='EXCO' (0*xx) 'SCAL' 'NOID' 'UY'; rotax='EXCO' (0*xx) 'SCAL' 'NOID' 'RX'; rotay='EXCO' (0*xx) 'SCAL' 'NOID' 'RY'; rotaz='EXCO' (0*xx) 'SCAL' 'NOID' 'RZ'; chnul=deplx + deply + rotax + rotay + rotaz; * * modele * xnu=.2; EELA=GELA*2*(1+xnu); * mo = 'MODE' d1 mecanique elastique plastique takemo_effz ELEN; ma= 'MATE' mo 'YOUN' EELA 'NU' xnu 'TRAC' TTRAC 'SFDP' SFDP 'SFDN' SFDN 'PINP' PINP 'PINN' PINN 'SRDP' SRDP 'SRDN' SRDN; ca= 'CARA' mo 'INRY' 1. 'SECZ' SECZ 'SECT' 1. 'INRZ' 1. 'TORS' 1.; mc=ma et ca; * * initialisation * cin=0.; ccour=prog 0.; mmoy=prog 0.; var0=zero mo 'VARINTER'; sig0=zero mo 'CONTRAIN'; * * loop sur les branches; * nbran=0; x1x=prog 0. 1.; 'REPETER' lab1 nbcl; nbran=nbran+1; * * chargement * cfin='EXTR' cycle nbran; npts='EXTR' npass nbran; y1y ='PROG' cin cfin; dx=1./npts; xxx='PROG' 0. pas dx 1.; yyy='IPOL' xxx x1x y1y; coury='ENLE' 1 yyy; * * increment elastique * dtx=(cfin-cin)/npts; deplz='EXCO' (dtx*xx) 'SCAL' 'NOID' 'UZ'; depy=chnul + deplz; esig=epsi mo mc depy; * * loop charge * j=0; momy='PROG'; 'REPETER' lab2 npts; j=j+1; sig var xxxx='ECOULE' mo sig0 var0 esig mc; * ssig='CHAN' 'CHPO' mo sig; momo='EXTR' ssig 'EFFZ' p1; momy='INSE' momy j momo; * var0=var; sig0=sig; * 'FIN' lab2; * * fin loop * ccour=ccour 'ET' coury; mmoy=mmoy 'ET' momy; cin=cfin; 'MENAGE'; 'FIN' lab1; 'FINSI'; * titre 'modele plastique TAKEMO_EFFZ'; courbe=evol manu 'Shear Def.' ccour 'Shear Force' mmoy; * 'FINPROC' courbe;