1 : C THETAN SOURCE AM 08/02/14 21:31:37 6050 2 : SUBROUTINE THETAN(MFR,MELE,VALMAT,LHOOK,NSTRS,TEMP, 3 : 1 SD,TXR,XLOC,XGLOB,ROTS,DHOOK,RES,KERRE) 4 : ******************************************************************* 5 : * APPELE PAR THETAP :CONTRAINTES THERMIQUES POUR LES MATERIAUX 6 : * ANISOTROPES 7 : * 8 : * ENTREES : 9 : * MFR = NUMERO DE LA FORMULATION 10 : * MELE = NUMERO DE L'ELEMENT FINI 11 : * VALMAT = TABLEAU DE MATERIAU 12 : * LHOOK = DIMENSION DE LA MATRICE DE HOOKE 13 : * NSTRS = NOMBRE DE COMPOSANTES DES CONTRAINTES 14 : * TEMP = TEMPERATURES 15 : * SD = SECTION 16 : * TXR,XLOC,XGLOB,ROTS,DHOOK = TABLEAUX DE TRAVAIL 17 : * SORTIES : 18 : * RES = TABLEAU DE CONTRAINTES 19 : * KERRE= INDICATEUR D'ERREUR 20 : * 21 : * P DOWLATYARI MARS 92 22 : *********************************************************************** 23 : IMPLICIT INTEGER(I-N) 24 : IMPLICIT REAL*8(A-H,O-Z) 25 : * 26 : -INC CCOPTIO 27 : -INC CCHAMP 28 : * 29 : DIMENSION XLOC(IDIM,*),XGLOB(IDIM,*) 30 : DIMENSION ROTS(NSTRS,*),DHOOK(LHOOK,*) 31 : DIMENSION TXR(IDIM,*),RES(NSTRS) 32 : DIMENSION VALMAT(*) 33 : * 34 : DIMENSION SIG1(6),SIG2(6) 35 : * 36 : KERRE=0 37 : * 38 : * TEST SUR LA FORMULATION 39 : * 40 : *-------------------------------------------------------------- 41 : * CAS MASSIF ET POREUX 42 : *-------------------------------------------------------------- 43 : IF(MFR.EQ.1.OR.MFR.EQ.33.OR.MFR.EQ.31) THEN 44 : * 44 : CALL ZERO (XGLOB,IDIM,IDIM) 45 : 46 : * 47 : * CONTRAINTES PLANES 48 : * 49 : IF(IFOUR.EQ.-2)THEN 50 : * 50 : CALL ZERO(DHOOK,LHOOK,LHOOK) 51 : D11=VALMAT(1) 52 : D21=VALMAT(2) 53 : D22=VALMAT(3) 54 : D31=VALMAT(12) 55 : D32=VALMAT(13) 56 : D33=VALMAT(14) 57 : IF (D33.EQ.0.D0) D33=D11*1.D-6 58 : D41=VALMAT(4) 59 : D42=VALMAT(5) 60 : D43=VALMAT(15) 61 : D44=VALMAT(6) 62 : DHOOK(1,1)=D11 - ((D31**2)/D33) 63 : DHOOK(2,1)=D21 - ((D31*D32)/D33) 64 : DHOOK(1,2)=DHOOK(2,1) 65 : DHOOK(2,2)=D22 - ((D32**2)/D33) 66 : DHOOK(4,1)=D41 - ((D31*D43)/D33) 67 : DHOOK(1,4)=DHOOK(4,1) 68 : DHOOK(4,2)=D42 - ((D32*D43)/D33) 69 : DHOOK(2,4)=DHOOK(4,2) 70 : DHOOK(4,4)=D44 - ((D43**2)/D33) 71 : ALP1= VALMAT(7) 72 : ALP2= VALMAT(8) 73 : AL12= VALMAT(9) 74 : ALP3=0.D0 75 : XLOC(1,1)=VALMAT(10) 76 : XLOC(2,1)=VALMAT(11) 77 : XLOC(1,2)=-XLOC(2,1) 78 : XLOC(2,2)=XLOC(1,1) 79 : * DEFINITION DES AXES ORTHO./AXES GLOBAUX 80 : DO 3310 K=1,IDIM 81 : DO 3310 J=1,IDIM 82 : DO 3310 I=1,IDIM 83 : XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 84 : 3310 CONTINUE 85 : CC=XGLOB(1,1)*XGLOB(1,1) 86 : SS=XGLOB(2,1)*XGLOB(2,1) 87 : CS=XGLOB(1,1)*XGLOB(2,1) 88 : * 89 : * EN AXES D'ORTHOTROPIE 90 : * 91 : DO 3315 I=1,4 92 : SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 93 : 1 + DHOOK(I,4)*AL12 94 : 3315 CONTINUE 95 : * 96 : * CHGT D'AXES 97 : * 98 : SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4) 99 : SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4) 100 : SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4) 101 : * 102 : RES(1)=SIG2(1)*TEMP 103 : RES(2)=SIG2(2)*TEMP 104 : RES(3)=0.D0 105 : RES(4)=SIG2(4)*TEMP 106 : 107 : * 108 : * DEFORMATIONS PLANES OU AXI OU FOURIER 109 : * 110 : ELSEIF(IFOUR.EQ.-1.OR.IFOUR.EQ.0 111 : 1 .OR.IFOUR.EQ.1.OR.IFOUR.EQ.-3)THEN 112 : DHOOK(1,1)=VALMAT(1) 113 : DHOOK(2,1)=VALMAT(2) 114 : DHOOK(1,2)=DHOOK(2,1) 115 : DHOOK(2,2)=VALMAT(3) 116 : DHOOK(3,1)=VALMAT(4) 117 : DHOOK(1,3)=DHOOK(3,1) 118 : DHOOK(3,2)=VALMAT(5) 119 : DHOOK(2,3)=DHOOK(3,2) 120 : DHOOK(3,3)=VALMAT(6) 121 : DHOOK(4,1)=VALMAT(7) 122 : DHOOK(1,4)=DHOOK(4,1) 123 : DHOOK(4,2)=VALMAT(8) 124 : DHOOK(2,4)=DHOOK(4,2) 125 : DHOOK(4,3)=VALMAT(9) 126 : DHOOK(3,4)=DHOOK(4,3) 127 : DHOOK(4,4)=VALMAT(10) 128 : ALP1= VALMAT(11) 129 : ALP2= VALMAT(12) 130 : AL12= VALMAT(13) 131 : ALP3= VALMAT(14) 132 : XLOC(1,1)=VALMAT(15) 133 : XLOC(2,1)=VALMAT(16) 134 : XLOC(1,2)=-XLOC(2,1) 135 : XLOC(2,2)=XLOC(1,1) 136 : C DEFINITION DES AXES ORTHO./AXES GLOBAUX 137 : DO 3320 K=1,IDIM 138 : DO 3320 J=1,IDIM 139 : DO 3320 I=1,IDIM 140 : XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 141 : 3320 CONTINUE 142 : CC=XGLOB(1,1)*XGLOB(1,1) 143 : SS=XGLOB(2,1)*XGLOB(2,1) 144 : CS=XGLOB(1,1)*XGLOB(2,1) 145 : * 146 : * EN AXES D'ORTHOTROPIE 147 : * 148 : DO 3300 I=1,4 149 : SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 150 : 1 +DHOOK(I,4)*AL12 151 : 3300 CONTINUE 152 : * 153 : * CHGT D'AXES 154 : * 155 : SIG2(1)=CC*SIG1(1)+SS*SIG1(2)-2.D0*CS*SIG1(4) 156 : SIG2(2)=CC*SIG1(2)+SS*SIG1(1)+2.D0*CS*SIG1(4) 157 : SIG2(4)=CS*(SIG1(1)-SIG1(2))+(CC-SS)*SIG1(4) 158 : SIG2(3)=SIG1(3) 159 : * 160 : IF(IFOUR.EQ.-1.OR.IFOUR.EQ.0)THEN 161 : RES(1)=SIG2(1)*TEMP 162 : RES(2)=SIG2(2)*TEMP 163 : RES(3)=SIG2(3)*TEMP 164 : RES(4)=SIG2(4)*TEMP 165 : ELSE 166 : RES(1)=SIG2(1)*TEMP 167 : RES(2)=SIG2(2)*TEMP 168 : RES(3)=SIG2(3)*TEMP 169 : RES(4)=SIG2(4)*TEMP 170 : RES(5)=0.D0 171 : RES(6)=0.D0 172 : ENDIF 173 : * 174 : * TRIDIMENSIONNEL 175 : * 176 : ELSEIF(IFOUR.EQ.2)THEN 177 : DHOOK(1,1)=VALMAT(1) 178 : DHOOK(2,1)=VALMAT(2) 179 : DHOOK(1,2)=DHOOK(2,1) 180 : DHOOK(2,2)=VALMAT(3) 181 : DHOOK(3,1)=VALMAT(4) 182 : DHOOK(1,3)=DHOOK(3,1) 183 : DHOOK(3,2)=VALMAT(5) 184 : DHOOK(2,3)=DHOOK(3,2) 185 : DHOOK(3,3)=VALMAT(6) 186 : DHOOK(4,1)=VALMAT(7) 187 : DHOOK(1,4)=DHOOK(4,1) 188 : DHOOK(4,2)=VALMAT(8) 189 : DHOOK(2,4)=DHOOK(4,2) 190 : DHOOK(4,3)=VALMAT(9) 191 : DHOOK(3,4)=DHOOK(4,3) 192 : DHOOK(4,4)=VALMAT(10) 193 : DHOOK(5,1)=VALMAT(11) 194 : DHOOK(1,5)=DHOOK(5,1) 195 : DHOOK(5,2)=VALMAT(12) 196 : DHOOK(2,5)=DHOOK(5,2) 197 : DHOOK(5,3)=VALMAT(13) 198 : DHOOK(3,5)=DHOOK(5,3) 199 : DHOOK(5,4)=VALMAT(14) 200 : DHOOK(4,5)=DHOOK(5,4) 201 : DHOOK(5,5)=VALMAT(15) 202 : DHOOK(6,1)=VALMAT(16) 203 : DHOOK(1,6)=DHOOK(6,1) 204 : DHOOK(6,2)=VALMAT(17) 205 : DHOOK(2,6)=DHOOK(6,2) 206 : DHOOK(6,3)=VALMAT(18) 207 : DHOOK(3,6)=DHOOK(6,3) 208 : DHOOK(6,4)=VALMAT(19) 209 : DHOOK(4,6)=DHOOK(6,4) 210 : DHOOK(6,5)=VALMAT(20) 211 : DHOOK(5,6)=DHOOK(6,5) 212 : DHOOK(6,6)=VALMAT(21) 213 : ALP1= VALMAT(22) 214 : ALP2= VALMAT(23) 215 : ALP3= VALMAT(24) 216 : AL12= VALMAT(25) 217 : AL13= VALMAT(26) 218 : AL23= VALMAT(27) 219 : XLOC(1,1)=VALMAT(28) 220 : XLOC(2,1)=VALMAT(29) 221 : XLOC(3,1)=VALMAT(30) 222 : XLOC(1,2)=VALMAT(31) 223 : XLOC(2,2)=VALMAT(32) 224 : XLOC(3,2)=VALMAT(33) 224 : CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR) 225 : C DEFINITION DES AXES ORTHO./AXES GLOBAUX 226 : DO 3330 K=1,IDIM 227 : DO 3330 J=1,IDIM 228 : DO 3330 I=1,IDIM 229 : XGLOB(J,K)=TXR(J,I)*XLOC(I,K)+XGLOB(J,K) 230 : 3330 CONTINUE 231 : * 232 : * MATRICE DE TRANSFORMATION 233 : * 234 : DO 3331 IC=1,3 235 : DO 3331 IL=1,3 236 : ROTS (IL,IC)=XGLOB(IL,IC)*XGLOB(IL,IC) 237 : 3331 CONTINUE 238 : C 239 : DO 3332 IL=1,3 240 : ROTS (IL,4)=2.D0*XGLOB(IL,1)*XGLOB(IL,2) 241 : ROTS (IL,5)=2.D0*XGLOB(IL,2)*XGLOB(IL,3) 242 : ROTS (IL,6)=2.D0*XGLOB(IL,1)*XGLOB(IL,3) 243 : 3332 CONTINUE 244 : C 245 : DO 3333 IC=1,3 246 : ROTS (4,IC)=XGLOB(1,IC)*XGLOB(2,IC) 247 : ROTS (5,IC)=XGLOB(2,IC)*XGLOB(3,IC) 248 : ROTS (6,IC)=XGLOB(1,IC)*XGLOB(3,IC) 249 : 3333 CONTINUE 250 : C 251 : DO 3334 IL=4,6 252 : IL1=IL-3 253 : IL2=IL1+1 254 : IF(IL2.GT.3)IL2=IL2-3 255 : DO 3334 IC=4,6 256 : IC1=IC-3 257 : IC2=IC1+1 258 : IF(IC2.GT.3)IC2=IC2-3 259 : ROTS (IL,IC)=XGLOB(IL1,IC1)*XGLOB(IL2,IC2)+ 260 : . XGLOB(IL1,IC2)*XGLOB(IL2,IC1) 261 : 3334 CONTINUE 262 : DO 3335 IC=1,6 263 : AA=ROTS (6,IC) 264 : ROTS (6,IC)=ROTS (5,IC) 265 : ROTS (5,IC)=AA 266 : 3335 CONTINUE 267 : DO 3336 IL=1,6 268 : AA=ROTS (IL,6) 269 : ROTS (IL,6)=ROTS (IL,5) 270 : ROTS (IL,5)=AA 271 : 3336 CONTINUE 272 : * 273 : * EN AXES D'ORTHOTROPIE 274 : * 275 : DO 3340 I=1,6 276 : SIG1(I)=DHOOK(I,1)*ALP1+DHOOK(I,2)*ALP2+DHOOK(I,3)*ALP3 277 : 1 +DHOOK(I,4)*AL12+DHOOK(I,5)*AL13+DHOOK(I,6)*AL23 278 : 3340 CONTINUE 279 : * 280 : * CHGT D'AXES 281 : * 282 : DO 3350 I=1,6 283 : SIG2(I)=0.D0 284 : DO 3350 J=1,6 285 : SIG2(I)=ROTS(I,J)*SIG1(J)+SIG2(I) 286 : 3350 CONTINUE 287 : * 288 : RES(1)=SIG2(1)*TEMP 289 : RES(2)=SIG2(2)*TEMP 290 : RES(3)=SIG2(3)*TEMP 291 : RES(4)=SIG2(4)*TEMP 292 : RES(5)=SIG2(5)*TEMP 293 : RES(6)=SIG2(6)*TEMP 294 : ELSE 295 : KERRE=19 296 : GOTO 99 297 : ENDIF 298 : *____________________________________________________________________ 299 : * 300 : * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 2D JOI2 ET JOI3 301 : *____________________________________________________________________ 302 : * 303 : ELSEIF (MELE.EQ.85.OR.MELE.EQ.86) THEN 304 : * 305 : ZKN = VALMAT(2) 306 : ALPN= VALMAT(3) 307 : C 308 : IF (IFOUR.EQ.-2.OR.IFOUR.EQ.-1.OR.IFOUR.EQ.0) THEN 309 : RES(1)=0.D0 310 : RES(2)=ALPN * ZKN * TEMP 311 : ELSE 312 : KERRE=19 313 : GOTO 99 314 : ENDIF 315 : *____________________________________________________________________ 316 : * 317 : * SECTEUR DE CALCUL POUR LES ELEMENTS JOINTS 3D JOI4 318 : *____________________________________________________________________ 319 : * 320 : ELSE IF (MELE.EQ.88) THEN 321 : ZKN = VALMAT(3) 322 : ALPN= VALMAT(4) 323 : IF (IFOUR.EQ.2) THEN 324 : RES(1)=0.D0 325 : RES(2)=0.D0 326 : RES(3)=ALPN * ZKN * TEMP 327 : ELSE 328 : KERRE=19 329 : GOTO 99 330 : ENDIF 331 : *____________________________________________________________________ 332 : * 333 : * ELEMENTS POUTRES ET TUYAUX 334 : *____________________________________________________________________ 335 : * 336 : ELSEIF(MELE.EQ.29.OR.MELE.EQ.42.OR.MELE.EQ.84)THEN 337 : YOU=VALMAT(1) 338 : ALPH=VALMAT(2) 339 : AUX = YOU*ALPH*SD 340 : * 341 : RES(1)= AUX*TEMP 342 : * 343 : *____________________________________________________________________ 344 : * 345 : * ELEMENTS BARRES CERCES ET POINT 346 : *____________________________________________________________________ 347 : * 348 : ELSEIF(MELE.EQ.46.OR.MELE.EQ.95.OR.MELE.EQ.45)THEN 349 : * 350 : IF(MELE.EQ.45.AND.IFOUR.NE.-3) THEN 351 : KERRE=86 352 : GO TO 99 353 : ENDIF 354 : IF(MELE.EQ.95.AND.IFOUR.NE.0) THEN 355 : KERRE=86 356 : GO TO 99 357 : ENDIF 358 : * 359 : YOU=VALMAT(1) 360 : ALPH=VALMAT(2) 361 : AUX = YOU*ALPH*SD 362 : RES(1)= AUX*TEMP 363 : ELSE 364 : KERRE=19 365 : ENDIF 366 : * 367 : 99 CONTINUE 368 : RETURN 369 : END 370 : 371 : 372 : 373 : 374 : 375 :
© Cast3M 2003 - All rights reserved.
Disclaimer