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