elast1
C ELAST1 SOURCE CHAT 05/01/12 23:29:27 5004 C C---------------------------------------------------------------------------- C Objet: Calcul de la matrice de Hooke endommagee(ISENS=1) C ou son inverse(ISENS=2) et de sa derivee par rapport C a T a la temperature T0 dans le cas de la plasticite avec C ecrouissage et endommagement isotropes(materiau 26) C et dans le cas de la viscoplasticite avec endommagement C isotrope(materiau 29) en regime anisotherme C---------------------------------------------------------------------------- C C---------------------------------------------------------------------------- C Entree: ISENS= 1 DD en sortie est la matrice de Hooke endommagee C d'ou SIG=DD*EPSELAS C = 2 DD en sortie est la matrice de Hooke inverse C endommagee d'ou EPSELAS=DD*SIG C avec SIG contraintes et EPSELAS deformations elastiques C IFOUR= -2 EN CONTR. PLANES C -1 EN DEFORM. PLANES C 0 EN AXISYMETRIE C 1 EN SERIE DE FOURIER C 2 EN TRIDIM C NSTRS nombre de composantes des contraintes ou C des deformations C NNVARI nombre de variables internes pilotant les C equations du modele C VAR(NVARI) tableau des variables internes C XMATT(NCOMAT) tableau des parametres scalaires du materiau C a une temperature T donnee C dont XMATT(1) module d'Young et XMATT(2) coeff de Poisson C YUNGV derivee /T du module d'Young a T C XNUV derivee /T du coeff de Poisson a T C MFR indice de la formulation mecanique(seulement massif C pour les materiaux endommageables) C ICARA nombre de caracteristiques geometriques des elements C finis C XCAR(ICARA) tableau des caracteristiques geometriques des C elements finis C INDIC=0, 1 OU -1 pour plasticite avec endommagement C =2 OU -2 pour viscoplasticite avec endommagement C ITHHER = 0 pas de chargement thermique et materiau constant C = 1 chargement thermique et materiau constant C = 2 chargement thermique et materiau(T) C-------------------------------------------------------------------------------- C C-------------------------------------------------------------------------------- C Sortie: DD(NSTRS,NSTRS) matrice de Hooke endommagee si ISENS=1 C son inverse si ISENS=2 C DDV(NSTRS,NSTRS) derivee de la matrice de Hooke C endommagee si ISENS=1 C son inverse si ISENS=2 C KERRE indice qui regit les erreurs C Il vaut 99 si la formulation mecanique n'est pas disponible ou C s'il y a incompatibilite entre MFR et IFOUR C _______________________________________________________________________________ C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8 (A-H,O-Z) DIMENSION VAR(*),XCAR(*),XMATT(*) DIMENSION DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS) C KERRE=0 C YUNG=XMATT(1) XNU=XMATT(2) XD=VAR(3) * write(6,*) 'elast1 ifour mfr ',ifour,mfr C D1=1.D0-XD C C ==================================================================== C SI LE PT. DE GAUSS EST ROMPU, ON DIV. SON MOD. D'YOUNG PAR 1 MILLION C ==================================================================== IF (XD.EQ.1.D0) D1=1.D-6 GOTO 3 ENDIF C DC=XMATT(7) C 3 CONTINUE COEFF1=(D1*YUNG)/(1.D0-XNU*XNU) COEFF2=1.D0/(D1*YUNG) COEFF3=(D1*YUNG)/((1.D0+XNU)*(1.D0-2.D0*XNU)) COEFF4=(1.D0-2.D0*XNU)/2.D0 C IF (ITHHER.EQ.2) THEN COEF1V=YUNGV+(2.D0*XNUV*YUNG*XNU/(1.D0-XNU*XNU)) COEF1V=COEF1V*D1/(1.D0-XNU*XNU) C COEF2V=-YUNGV/(YUNG*YUNG*D1) C DEN=(1.D0+XNU)*(1.D0-2.D0*XNU) COEF3V=(1.D0+(4.D0*XNU))*YUNG*XNUV COEF3V=COEF3V/DEN COEF3V=COEF3V+YUNGV COEF3V=D1*COEF3V/DEN C COEF4V=-XNUV ENDIF C IF (MFR.NE.1) GOTO 20 C C------------ C MASSIFS C------------ IF (IFOUR.EQ.-2) GOTO 10 C C ---------------------------------- C DEFORMATIONS PLANES ET AXISYMETRIE C ---------------------------------- IF (ISENS.EQ.1) THEN C C---------------- C SIG=DD*EPSELAS C---------------- DD(1,1)=COEFF3*(1.D0-XNU) DD(1,2)=COEFF3*XNU DD(1,3)=DD(1,2) DD(2,2)=DD(1,1) DD(2,3)=DD(1,2) DD(3,3)=DD(1,1) DD(2,1)=DD(1,2) DD(3,1)=DD(1,2) DD(3,2)=DD(1,2) C IF (ITHHER.EQ.2) THEN DDV(1,1)=(COEF3V*(1.D0-XNU))-(COEFF3*XNUV) DDV(1,2)=(COEF3V*XNU)+(COEFF3*XNUV) DDV(1,3)=DDV(1,2) DDV(2,2)=DDV(1,1) DDV(2,3)=DDV(1,2) DDV(3,3)=DDV(1,1) DDV(2,1)=DDV(1,2) DDV(3,1)=DDV(1,2) DDV(3,2)=DDV(1,2) ENDIF LA=4 LB=4 C C --------------------------- C LB=6 POUR TRIDIM ET FOURIER C --------------------------- IF (IFOUR.GT.0) LB=6 DO 5 IA=LA,LB DD(IA,IA)=COEFF3*COEFF4 IF (ITHHER.EQ.2) THEN DDV(IA,IA)=(COEF3V*COEFF4)+(COEFF3*COEF4V) ENDIF 5 CONTINUE ELSE C C------------------- C EPSELAS=DD*SIG C------------------- DD(1,1)=COEFF2 DD(1,2)=-XNU*COEFF2 DD(1,3)=DD(1,2) DD(2,2)=DD(1,1) DD(2,3)=DD(1,2) DD(3,3)=DD(1,1) DD(2,1)=DD(1,2) DD(3,1)=DD(1,3) DD(3,2)=DD(2,3) IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF2V DDV(1,2)=-( (XNUV*COEFF2)+(XNU*COEF2V) ) DDV(1,3)=DDV(1,2) DDV(2,2)=DDV(1,1) DDV(2,3)=DDV(1,2) DDV(3,3)=DDV(1,1) DDV(2,1)=DDV(1,2) DDV(3,1)=DDV(1,3) DDV(3,2)=DDV(2,3) ENDIF LA=4 LB=4 C C --------------------------- C LB=6 POUR TRIDIM ET FOURIER C --------------------------- IF (IFOUR.GT.0) LB=6 DO 7 IA=LA,LB DD(IA,IA)=(1.D0+XNU)*DD(1,1)*2.D0 IF (ITHHER.EQ.2) THEN DDV(IA,IA)=2.D0*( (XNUV*COEFF2)+((1.D0+XNU)*COEF2V) ) ENDIF 7 CONTINUE C ENDIF C GOTO 500 C C ------------- C CONTR. PLANES C ------------- 10 IF (ISENS.EQ.1) THEN C C----------------- C SIG=DD*EPSELAS C----------------- DD(1,1)=COEFF1 DD(1,2)=COEFF1*XNU DD(2,2)=COEFF1 DD(4,4)=COEFF1*((1.D0-XNU)/2.D0) DD(2,1)=DD(1,2) IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF1V DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) DDV(2,2)=COEF1V DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) DDV(2,1)=DDV(1,2) ENDIF ELSE C C------------------ C EPSELAS=DD*SIG C------------------ DD(1,1)=COEFF2 DD(1,2)=-COEFF2*XNU DD(2,2)=COEFF2 DD(4,4)=COEFF2*2.D0*(1.D0+XNU) DD(2,1)=DD(1,2) DD(3,1)=DD(1,2) DD(3,2)=DD(1,2) C IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF2V DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) DDV(2,2)=COEF2V DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) DDV(2,1)=DDV(1,2) DDV(3,1)=DDV(1,2) DDV(3,2)=DDV(1,2) ENDIF ENDIF C GOTO 500 C 20 IF (MFR.NE.5) GOTO 30 C C------------------------------------------ C COQUES EPAISSES TRIDIM C------------------------------------------ C C IF(IFOUR.EQ.2) THEN XK=1.2d0 IF (ISENS.EQ.1) THEN C sig= DD * EPSELAS AUX=COEFF1 AUX1=COEFF1*XNU GEGE=YUNG*D1*0.5D0/(1.D0+XNU) C DD(1,1)=AUX DD(2,1)=AUX1 DD(1,2)=AUX1 DD(2,2)=AUX DD(3,3)=GEGE DD(4,4)=GEGE/XK DD(5,5)=DD(4,4) IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF1V DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) DDV(2,2)=COEF1V DDV(2,1)=DDV(1,2) DDV(3,3)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) DDV(4,4)=DDV(3,3) * XK DDV(5,5)=DDV(3,3) * XK ENDIF ELSE C eps = DD* SIG C------------------ DD(1,1)=COEFF2 DD(1,2)=-COEFF2*XNU DD(2,2)=COEFF2 DD(3,3)=COEFF2*2.D0*(1.D0+XNU) DD(2,1)=DD(1,2) DD(4,4)=DD(3,3)/XK DD(5,5)=DD(3,3)/XK C IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF2V DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) DDV(2,2)=COEF2V DDV(3,3)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) DDV(2,1)=DDV(1,2) DDV(4,4)=DDV(3,3)/XK DDV(5,5)=DDV(3,3)/XK ENDIF ENDIF ELSE IRET=0 ENDIF GO TO 500 30 IF(MFR.NE.3) go to 40 IF (ISENS.EQ.1) THEN C C----------------- C SIG=DD*EPSELAS C----------------- DD(1,1)=COEFF1 DD(1,2)=COEFF1*XNU DD(2,2)=COEFF1 DD(4,4)=COEFF1*((1.D0-XNU)/2.D0) C voir petite ruse de hookis pour (3,3) DD(3,3)=COEFF1*1.d-6 DD(2,1)=DD(1,2) IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF1V DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) DDV(2,2)=COEF1V DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) DDV(2,1)=DDV(1,2) ENDIF ELSE C C------------------ C EPSELAS=DD*SIG C------------------ DD(1,1)=COEFF2 DD(1,2)=-COEFF2*XNU DD(2,2)=COEFF2 DD(4,4)=COEFF2*2.D0*(1.D0+XNU) DD(2,1)=DD(1,2) DD(3,1)=DD(1,2) DD(3,2)=DD(1,2) C IF (ITHHER.EQ.2) THEN DDV(1,1)=COEF2V DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) DDV(2,2)=COEF2V DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) DDV(2,1)=DDV(1,2) DDV(3,1)=DDV(1,2) DDV(3,2)=DDV(1,2) ENDIF ENDIF GO TO 500 C FORMULATION NON DISPONIBLE 40 KERRE=99 500 CONTINUE RETURN END
© Cast3M 2003 - Tous droits réservés.
Mentions légales