1 : C ELAST1 SOURCE CHAT 05/01/12 23:29:27 5004 2 : SUBROUTINE ELAST1(ISENS,IFOUR,VAR,NNVARI,XMATT,NCOMAT, 3 : & YUNGV,XNUV,XCAR,ICARA,MFR,NSTRS,DD,DDV,KERRE,INDIC,ITHHER) 4 : C 5 : C---------------------------------------------------------------------------- 6 : C Objet: Calcul de la matrice de Hooke endommagee(ISENS=1) 7 : C ou son inverse(ISENS=2) et de sa derivee par rapport 8 : C a T a la temperature T0 dans le cas de la plasticite avec 9 : C ecrouissage et endommagement isotropes(materiau 26) 10 : C et dans le cas de la viscoplasticite avec endommagement 11 : C isotrope(materiau 29) en regime anisotherme 12 : C---------------------------------------------------------------------------- 13 : C 14 : C---------------------------------------------------------------------------- 15 : C Entree: ISENS= 1 DD en sortie est la matrice de Hooke endommagee 16 : C d'ou SIG=DD*EPSELAS 17 : C = 2 DD en sortie est la matrice de Hooke inverse 18 : C endommagee d'ou EPSELAS=DD*SIG 19 : C avec SIG contraintes et EPSELAS deformations elastiques 20 : C IFOUR= -2 EN CONTR. PLANES 21 : C -1 EN DEFORM. PLANES 22 : C 0 EN AXISYMETRIE 23 : C 1 EN SERIE DE FOURIER 24 : C 2 EN TRIDIM 25 : C NSTRS nombre de composantes des contraintes ou 26 : C des deformations 27 : C NNVARI nombre de variables internes pilotant les 28 : C equations du modele 29 : C VAR(NVARI) tableau des variables internes 30 : C XMATT(NCOMAT) tableau des parametres scalaires du materiau 31 : C a une temperature T donnee 32 : C dont XMATT(1) module d'Young et XMATT(2) coeff de Poisson 33 : C YUNGV derivee /T du module d'Young a T 34 : C XNUV derivee /T du coeff de Poisson a T 35 : C MFR indice de la formulation mecanique(seulement massif 36 : C pour les materiaux endommageables) 37 : C ICARA nombre de caracteristiques geometriques des elements 38 : C finis 39 : C XCAR(ICARA) tableau des caracteristiques geometriques des 40 : C elements finis 41 : C INDIC=0, 1 OU -1 pour plasticite avec endommagement 42 : C =2 OU -2 pour viscoplasticite avec endommagement 43 : C ITHHER = 0 pas de chargement thermique et materiau constant 44 : C = 1 chargement thermique et materiau constant 45 : C = 2 chargement thermique et materiau(T) 46 : C-------------------------------------------------------------------------------- 47 : C 48 : C-------------------------------------------------------------------------------- 49 : C Sortie: DD(NSTRS,NSTRS) matrice de Hooke endommagee si ISENS=1 50 : C son inverse si ISENS=2 51 : C DDV(NSTRS,NSTRS) derivee de la matrice de Hooke 52 : C endommagee si ISENS=1 53 : C son inverse si ISENS=2 54 : C KERRE indice qui regit les erreurs 55 : C Il vaut 99 si la formulation mecanique n'est pas disponible ou 56 : C s'il y a incompatibilite entre MFR et IFOUR 57 : C _______________________________________________________________________________ 58 : C 59 : IMPLICIT INTEGER(I-N) 60 : IMPLICIT REAL*8 (A-H,O-Z) 61 : DIMENSION VAR(*),XCAR(*),XMATT(*) 62 : DIMENSION DD(NSTRS,NSTRS),DDV(NSTRS,NSTRS) 63 : C 63 : CALL ZERO(DD,NSTRS,NSTRS) 63 : CALL ZERO(DDV,NSTRS,NSTRS) 64 : KERRE=0 65 : C 66 : YUNG=XMATT(1) 67 : XNU=XMATT(2) 68 : XD=VAR(3) 69 : * write(6,*) 'elast1 ifour mfr ',ifour,mfr 70 : C 71 : D1=1.D0-XD 72 : C 73 : C ==================================================================== 74 : C SI LE PT. DE GAUSS EST ROMPU, ON DIV. SON MOD. D'YOUNG PAR 1 MILLION 75 : C ==================================================================== 76 : IF (INDIC.EQ.2.OR.INDIC.EQ.-2) THEN 77 : IF (XD.EQ.1.D0) D1=1.D-6 78 : GOTO 3 79 : ENDIF 80 : C 81 : DC=XMATT(7) 82 : IF (INDIC.EQ.-1.AND.XD.GE.DC) D1=1.D-6 83 : C 84 : 3 CONTINUE 85 : COEFF1=(D1*YUNG)/(1.D0-XNU*XNU) 86 : COEFF2=1.D0/(D1*YUNG) 87 : COEFF3=(D1*YUNG)/((1.D0+XNU)*(1.D0-2.D0*XNU)) 88 : COEFF4=(1.D0-2.D0*XNU)/2.D0 89 : C 90 : IF (ITHHER.EQ.2) THEN 91 : COEF1V=YUNGV+(2.D0*XNUV*YUNG*XNU/(1.D0-XNU*XNU)) 92 : COEF1V=COEF1V*D1/(1.D0-XNU*XNU) 93 : C 94 : COEF2V=-YUNGV/(YUNG*YUNG*D1) 95 : C 96 : DEN=(1.D0+XNU)*(1.D0-2.D0*XNU) 97 : COEF3V=(1.D0+(4.D0*XNU))*YUNG*XNUV 98 : COEF3V=COEF3V/DEN 99 : COEF3V=COEF3V+YUNGV 100 : COEF3V=D1*COEF3V/DEN 101 : C 102 : COEF4V=-XNUV 103 : ENDIF 104 : C 105 : IF (MFR.NE.1) GOTO 20 106 : C 107 : C------------ 108 : C MASSIFS 109 : C------------ 110 : IF (IFOUR.EQ.-2) GOTO 10 111 : C 112 : C ---------------------------------- 113 : C DEFORMATIONS PLANES ET AXISYMETRIE 114 : C ---------------------------------- 115 : IF (ISENS.EQ.1) THEN 116 : C 117 : C---------------- 118 : C SIG=DD*EPSELAS 119 : C---------------- 120 : DD(1,1)=COEFF3*(1.D0-XNU) 121 : DD(1,2)=COEFF3*XNU 122 : DD(1,3)=DD(1,2) 123 : DD(2,2)=DD(1,1) 124 : DD(2,3)=DD(1,2) 125 : DD(3,3)=DD(1,1) 126 : DD(2,1)=DD(1,2) 127 : DD(3,1)=DD(1,2) 128 : DD(3,2)=DD(1,2) 129 : C 130 : IF (ITHHER.EQ.2) THEN 131 : DDV(1,1)=(COEF3V*(1.D0-XNU))-(COEFF3*XNUV) 132 : DDV(1,2)=(COEF3V*XNU)+(COEFF3*XNUV) 133 : DDV(1,3)=DDV(1,2) 134 : DDV(2,2)=DDV(1,1) 135 : DDV(2,3)=DDV(1,2) 136 : DDV(3,3)=DDV(1,1) 137 : DDV(2,1)=DDV(1,2) 138 : DDV(3,1)=DDV(1,2) 139 : DDV(3,2)=DDV(1,2) 140 : ENDIF 141 : LA=4 142 : LB=4 143 : C 144 : C --------------------------- 145 : C LB=6 POUR TRIDIM ET FOURIER 146 : C --------------------------- 147 : IF (IFOUR.GT.0) LB=6 148 : DO 5 IA=LA,LB 149 : DD(IA,IA)=COEFF3*COEFF4 150 : IF (ITHHER.EQ.2) THEN 151 : DDV(IA,IA)=(COEF3V*COEFF4)+(COEFF3*COEF4V) 152 : ENDIF 153 : 5 CONTINUE 154 : ELSE 155 : C 156 : C------------------- 157 : C EPSELAS=DD*SIG 158 : C------------------- 159 : DD(1,1)=COEFF2 160 : DD(1,2)=-XNU*COEFF2 161 : DD(1,3)=DD(1,2) 162 : DD(2,2)=DD(1,1) 163 : DD(2,3)=DD(1,2) 164 : DD(3,3)=DD(1,1) 165 : DD(2,1)=DD(1,2) 166 : DD(3,1)=DD(1,3) 167 : DD(3,2)=DD(2,3) 168 : IF (ITHHER.EQ.2) THEN 169 : DDV(1,1)=COEF2V 170 : DDV(1,2)=-( (XNUV*COEFF2)+(XNU*COEF2V) ) 171 : DDV(1,3)=DDV(1,2) 172 : DDV(2,2)=DDV(1,1) 173 : DDV(2,3)=DDV(1,2) 174 : DDV(3,3)=DDV(1,1) 175 : DDV(2,1)=DDV(1,2) 176 : DDV(3,1)=DDV(1,3) 177 : DDV(3,2)=DDV(2,3) 178 : ENDIF 179 : LA=4 180 : LB=4 181 : C 182 : C --------------------------- 183 : C LB=6 POUR TRIDIM ET FOURIER 184 : C --------------------------- 185 : IF (IFOUR.GT.0) LB=6 186 : DO 7 IA=LA,LB 187 : DD(IA,IA)=(1.D0+XNU)*DD(1,1)*2.D0 188 : IF (ITHHER.EQ.2) THEN 189 : DDV(IA,IA)=2.D0*( (XNUV*COEFF2)+((1.D0+XNU)*COEF2V) ) 190 : ENDIF 191 : 7 CONTINUE 192 : C 193 : ENDIF 194 : C 195 : GOTO 500 196 : C 197 : C ------------- 198 : C CONTR. PLANES 199 : C ------------- 200 : 10 IF (ISENS.EQ.1) THEN 201 : C 202 : C----------------- 203 : C SIG=DD*EPSELAS 204 : C----------------- 205 : DD(1,1)=COEFF1 206 : DD(1,2)=COEFF1*XNU 207 : DD(2,2)=COEFF1 208 : DD(4,4)=COEFF1*((1.D0-XNU)/2.D0) 209 : DD(2,1)=DD(1,2) 210 : IF (ITHHER.EQ.2) THEN 211 : DDV(1,1)=COEF1V 212 : DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) 213 : DDV(2,2)=COEF1V 214 : DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) 215 : DDV(2,1)=DDV(1,2) 216 : ENDIF 217 : ELSE 218 : C 219 : C------------------ 220 : C EPSELAS=DD*SIG 221 : C------------------ 222 : DD(1,1)=COEFF2 223 : DD(1,2)=-COEFF2*XNU 224 : DD(2,2)=COEFF2 225 : DD(4,4)=COEFF2*2.D0*(1.D0+XNU) 226 : DD(2,1)=DD(1,2) 227 : DD(3,1)=DD(1,2) 228 : DD(3,2)=DD(1,2) 229 : C 230 : IF (ITHHER.EQ.2) THEN 231 : DDV(1,1)=COEF2V 232 : DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) 233 : DDV(2,2)=COEF2V 234 : DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) 235 : DDV(2,1)=DDV(1,2) 236 : DDV(3,1)=DDV(1,2) 237 : DDV(3,2)=DDV(1,2) 238 : ENDIF 239 : ENDIF 240 : C 241 : GOTO 500 242 : C 243 : 20 IF (MFR.NE.5) GOTO 30 244 : C 245 : C------------------------------------------ 246 : C COQUES EPAISSES TRIDIM 247 : C------------------------------------------ 248 : C 249 : C 250 : IF(IFOUR.EQ.2) THEN 251 : XK=1.2d0 252 : IF (ISENS.EQ.1) THEN 253 : C sig= DD * EPSELAS 254 : AUX=COEFF1 255 : AUX1=COEFF1*XNU 256 : GEGE=YUNG*D1*0.5D0/(1.D0+XNU) 257 : C 258 : DD(1,1)=AUX 259 : DD(2,1)=AUX1 260 : DD(1,2)=AUX1 261 : DD(2,2)=AUX 262 : DD(3,3)=GEGE 263 : DD(4,4)=GEGE/XK 264 : DD(5,5)=DD(4,4) 265 : IF (ITHHER.EQ.2) THEN 266 : DDV(1,1)=COEF1V 267 : DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) 268 : DDV(2,2)=COEF1V 269 : 270 : DDV(2,1)=DDV(1,2) 271 : DDV(3,3)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) 272 : DDV(4,4)=DDV(3,3) * XK 273 : DDV(5,5)=DDV(3,3) * XK 274 : ENDIF 275 : ELSE 276 : C eps = DD* SIG 277 : C------------------ 278 : DD(1,1)=COEFF2 279 : DD(1,2)=-COEFF2*XNU 280 : DD(2,2)=COEFF2 281 : DD(3,3)=COEFF2*2.D0*(1.D0+XNU) 282 : DD(2,1)=DD(1,2) 283 : DD(4,4)=DD(3,3)/XK 284 : DD(5,5)=DD(3,3)/XK 285 : C 286 : IF (ITHHER.EQ.2) THEN 287 : DDV(1,1)=COEF2V 288 : DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) 289 : DDV(2,2)=COEF2V 290 : DDV(3,3)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) 291 : DDV(2,1)=DDV(1,2) 292 : DDV(4,4)=DDV(3,3)/XK 293 : DDV(5,5)=DDV(3,3)/XK 294 : ENDIF 295 : ENDIF 296 : ELSE 297 : IRET=0 298 : ENDIF 299 : GO TO 500 300 : 30 IF(MFR.NE.3) go to 40 301 : IF (ISENS.EQ.1) THEN 302 : C 303 : C----------------- 304 : C SIG=DD*EPSELAS 305 : C----------------- 306 : DD(1,1)=COEFF1 307 : DD(1,2)=COEFF1*XNU 308 : DD(2,2)=COEFF1 309 : DD(4,4)=COEFF1*((1.D0-XNU)/2.D0) 310 : C voir petite ruse de hookis pour (3,3) 311 : DD(3,3)=COEFF1*1.d-6 312 : DD(2,1)=DD(1,2) 313 : IF (ITHHER.EQ.2) THEN 314 : DDV(1,1)=COEF1V 315 : DDV(1,2)=(COEF1V*XNU)+(COEFF1*XNUV) 316 : DDV(2,2)=COEF1V 317 : DDV(4,4)=0.5D0*( (COEF1V*(1.D0-XNU))-(COEFF1*XNUV) ) 318 : DDV(2,1)=DDV(1,2) 319 : ENDIF 320 : ELSE 321 : C 322 : C------------------ 323 : C EPSELAS=DD*SIG 324 : C------------------ 325 : DD(1,1)=COEFF2 326 : DD(1,2)=-COEFF2*XNU 327 : DD(2,2)=COEFF2 328 : DD(4,4)=COEFF2*2.D0*(1.D0+XNU) 329 : DD(2,1)=DD(1,2) 330 : DD(3,1)=DD(1,2) 331 : DD(3,2)=DD(1,2) 332 : C 333 : IF (ITHHER.EQ.2) THEN 334 : DDV(1,1)=COEF2V 335 : DDV(1,2)=-( (COEF2V*XNU)+(COEFF2*XNUV) ) 336 : DDV(2,2)=COEF2V 337 : DDV(4,4)=2.D0*( ((1.D0+XNU)*COEF2V)+(XNUV*COEFF2) ) 338 : DDV(2,1)=DDV(1,2) 339 : DDV(3,1)=DDV(1,2) 340 : DDV(3,2)=DDV(1,2) 341 : ENDIF 342 : ENDIF 343 : 344 : GO TO 500 345 : C FORMULATION NON DISPONIBLE 346 : 40 KERRE=99 347 : 500 CONTINUE 348 : RETURN 349 : END 350 : 351 : 352 : 353 :
© Cast3M 2003 - All rights reserved.
Disclaimer