1 : C EPTHOR SOURCE AM 11/05/18 21:15:11 6972 2 : 3 : C======================================================================= 4 : C= E P T H O R = 5 : C= ----------- = 6 : C= = 7 : C= Fonction : = 8 : C= ---------- = 9 : C= Calcul des deformations d'origine THERMIQUE dans le cas des mate- = 10 : C= riaux ORTHOTROPES. Sous-programme appele par EPTHP (epthp.eso). = 11 : C= = 12 : C= Parametres : (E)=Entree (S)=Sortie = 13 : C= ------------ = 14 : C= MFR (E) Numero de la FORMULATION utilisee = 15 : C= MELE (E) Numero de l'element fini dans NOMTP (cf. CCHAMP) = 16 : C= VALMAT (E) Tableau des caracteristiques du materiau = 17 : C= NDEFS (E) Nombre de composantes de deformations = 18 : C= TEMP (E) Temperature au point de Gauss considere = 19 : C= THIF (E) | Temperatures des differentes couches = 20 : C= THM (E) | dans les cas des elements coques = 21 : C= THSU (E) | (couches INFErieure, MOYEnne, SUPErieure) = 22 : C= E3 (E) Excentrement dans la cas d'elements coques = 23 : C= EPAIST (E) Epaisseur dans le cas d'elements coques = 24 : C= RES (S) Tableau des valeurs des deformation thermiques = 25 : C= KERRE (S) Indicateur d'erreur si non nul = 26 : C= TXR,XLOC,XGLOB,ROTS (E/S) Tableaux de travail = 27 : C======================================================================= 28 : 29 : SUBROUTINE EPTHOR (MFR,MELE,VALMAT,NDEFS,TEMP,THIF,THM,THSU,E3, 30 : . EPAIST,TXR,XLOC,XGLOB,ROTS,RES,KERRE) 31 : 32 : IMPLICIT INTEGER(I-N) 33 : IMPLICIT REAL*8 (A-H,O-Z) 34 : 35 : -INC CCOPTIO 36 : -INC CCREEL 37 : 38 : DIMENSION VALMAT(*),RES(*),XLOC(IDIM,*),XGLOB(IDIM,*), 39 : . TXR(IDIM,*),ROTS(NDEFS,*),EPS1(6) 40 : 41 : KERRE=0 42 : 43 : C 1 - Elements MASSIFS et POREUX 44 : C ================================ 45 : IF (MFR.EQ.1.OR.MFR.EQ.33.OR.MFR.EQ.31) THEN 46 : C ===== 47 : C 1.1 - Bidimensionnel PLAN Contraintes Planes 48 : C ===== 49 : IF (IFOUR.EQ.-2) THEN 50 : ALP1=VALMAT(1) 51 : ALP2=VALMAT(2) 52 : XLOC(1,1)=VALMAT(3) 53 : XLOC(2,1)=VALMAT(4) 54 : XLOC(1,2)=-XLOC(2,1) 55 : XLOC(2,2)=XLOC(1,1) 56 : DO k=1,IDIM 57 : DO j=1,IDIM 58 : ZZ=XZero 59 : DO i=1,IDIM 60 : ZZ=ZZ+TXR(j,i)*XLOC(i,k) 61 : ENDDO 62 : XGLOB(j,k)=ZZ 63 : ENDDO 64 : ENDDO 65 : CC=XGLOB(1,1)*XGLOB(1,1) 66 : SS=XGLOB(2,1)*XGLOB(2,1) 67 : CS=XGLOB(1,1)*XGLOB(2,1) 68 : RES(1)=(CC*ALP1+SS*ALP2)*TEMP 69 : RES(2)=(CC*ALP2+SS*ALP1)*TEMP 70 : RES(3)=XZero 71 : RES(4)=2.*CS*(ALP1-ALP2)*TEMP 72 : C ===== 73 : C 1.2 - Bidimensionnel PLAN (DP/DPGE) et Axisymetrie et Fourier 74 : C ===== 75 : ELSE IF (IFOUR.EQ.-1.OR.IFOUR.EQ.-3.OR. 76 : . IFOUR.EQ.0.OR.IFOUR.EQ.1) THEN 77 : ALP1=VALMAT(1) 78 : ALP2=VALMAT(2) 79 : ALP3=VALMAT(3) 80 : XLOC(1,1)=VALMAT(4) 81 : XLOC(2,1)=VALMAT(5) 82 : XLOC(1,2)=-XLOC(2,1) 83 : XLOC(2,2)=XLOC(1,1) 84 : DO k=1,IDIM 85 : DO j=1,IDIM 86 : ZZ=XZero 87 : DO i=1,IDIM 88 : ZZ=ZZ+TXR(j,i)*XLOC(i,k) 89 : ENDDO 90 : XGLOB(j,k)=ZZ 91 : ENDDO 92 : ENDDO 93 : CC=XGLOB(1,1)*XGLOB(1,1) 94 : SS=XGLOB(2,1)*XGLOB(2,1) 95 : CS=XGLOB(1,1)*XGLOB(2,1) 96 : RES(1)=(CC*ALP1+SS*ALP2)*TEMP 97 : RES(2)=(CC*ALP2+SS*ALP1)*TEMP 98 : RES(3)=ALP3*TEMP 99 : RES(4)=2.*CS*(ALP1-ALP2)*TEMP 100 : IF (IFOUR.EQ.1) THEN 101 : RES(5)=XZero 102 : RES(6)=XZero 103 : ENDIF 104 : C ===== 105 : C 1.3 - Tridimensionnel 106 : C ===== 107 : ELSE IF (IFOUR.EQ.2) THEN 108 : ALP1=VALMAT(1) 109 : ALP2=VALMAT(2) 110 : ALP3=VALMAT(3) 111 : XLOC(1,1)=VALMAT(4) 112 : XLOC(2,1)=VALMAT(5) 113 : XLOC(3,1)=VALMAT(6) 114 : XLOC(1,2)=VALMAT(7) 115 : XLOC(2,2)=VALMAT(8) 116 : XLOC(3,2)=VALMAT(9) 116 : CALL CROSS2(XLOC(1,1),XLOC(1,2),XLOC(1,3),IRR) 117 : DO k=1,IDIM 118 : DO j=1,IDIM 119 : ZZ=XZero 120 : DO i=1,IDIM 121 : ZZ=ZZ+TXR(j,i)*XLOC(i,k) 122 : ENDDO 123 : XGLOB(j,k)=ZZ 124 : ROTS(j,k)=ZZ*ZZ 125 : ENDDO 126 : ENDDO 127 : DO i=1,3 128 : ROTS(i,4)=XGLOB(i,1)*XGLOB(i,2) 129 : ROTS(i,5)=XGLOB(i,2)*XGLOB(i,3) 130 : ROTS(i,6)=XGLOB(i,1)*XGLOB(i,3) 131 : ROTS(4,i)=2.*XGLOB(1,i)*XGLOB(2,i) 132 : ROTS(5,i)=2.*XGLOB(2,i)*XGLOB(3,i) 133 : ROTS(6,i)=2.*XGLOB(1,i)*XGLOB(3,i) 134 : ENDDO 135 : DO i=4,6 136 : i1=i-3 137 : i2=i1+1 138 : IF (i2.GT.3) i2=i2-3 139 : DO j=4,6 140 : j1=j-3 141 : j2=j1+1 142 : IF (j2.GT.3) j2=j2-3 143 : ROTS(i,j)= XGLOB(i1,j1)*XGLOB(i2,j2) 144 : . +XGLOB(i1,j2)*XGLOB(i2,j1) 145 : ENDDO 146 : ENDDO 147 : DO i=1,6 148 : ZZ=ROTS(6,i) 149 : ROTS(6,i)=ROTS(5,i) 150 : ROTS(5,i)=ZZ 151 : ENDDO 152 : DO i=1,6 153 : ZZ=ROTS(i,6) 154 : ROTS(i,6)=ROTS(i,5) 155 : ROTS(i,5)=ZZ 156 : ENDDO 157 : RES(1)=(ROTS(1,1)*ALP1+ROTS(1,2)*ALP2+ROTS(1,3)*ALP3)*TEMP 158 : RES(2)=(ROTS(2,1)*ALP1+ROTS(2,2)*ALP2+ROTS(2,3)*ALP3)*TEMP 159 : RES(3)=(ROTS(3,1)*ALP1+ROTS(3,2)*ALP2+ROTS(3,3)*ALP3)*TEMP 160 : RES(4)=(ROTS(4,1)*ALP1+ROTS(4,2)*ALP2+ROTS(4,3)*ALP3)*TEMP 161 : RES(5)=(ROTS(5,1)*ALP1+ROTS(5,2)*ALP2+ROTS(5,3)*ALP3)*TEMP 162 : RES(6)=(ROTS(6,1)*ALP1+ROTS(6,2)*ALP2+ROTS(6,3)*ALP3)*TEMP 163 : C ===== 164 : C 1.4 - Unidimensionnel (1D) 165 : C ===== 166 : ELSE IF (IFOUR.GE.3.AND.IFOUR.LE.15.AND.MFR.EQ.1) THEN 167 : RES(1)=VALMAT(1)*TEMP 168 : IF (IFOUR.EQ.6) THEN 169 : RES(2)=XZero 170 : RES(3)=XZero 171 : ELSE IF (IFOUR.EQ.4.OR.IFOUR.EQ.8) THEN 172 : RES(2)=VALMAT(2)*TEMP 173 : RES(3)=XZero 174 : ELSE IF (IFOUR.EQ.5.OR.IFOUR.EQ.10.OR.IFOUR.EQ.13) THEN 175 : RES(2)=XZero 176 : RES(3)=VALMAT(2)*TEMP 177 : ELSE 178 : RES(2)=VALMAT(2)*TEMP 179 : RES(3)=VALMAT(3)*TEMP 180 : ENDIF 181 : C ===== 182 : C 1.5 - Cas non prevus 183 : C ===== 184 : ELSE 185 : KERRE=19 186 : ENDIF 187 : 188 : C 2 - Element JOINT 3D : JOI4 189 : C ============================== 190 : ELSE IF (MELE.EQ.88) THEN 191 : IF (IFOUR.EQ.2) THEN 192 : RES(1)=XZero 193 : RES(2)=XZero 194 : RES(3)=VALMAT(1)*TEMP 195 : ELSE 196 : KERRE=19 197 : ENDIF 198 : 199 : C 3 - Elements COQUES MINCES sauf COQ2 200 : C ====================================== 201 : ELSE IF (MELE.EQ.27.OR.MELE.EQ.28.OR.MELE.EQ.49.OR. 202 : . MELE.EQ.93) THEN 203 : IF (IFOUR.GT.0) THEN 204 : FACM=(THSU+THIF+4.D0*THM)/6.D0 205 : FACF=(THSU-THIF)/EPAIST 206 : ALP1=VALMAT(1) 207 : ALP2=VALMAT(2) 208 : V1X=VALMAT(3) 209 : V1Y=VALMAT(4) 210 : CC=V1X*V1X 211 : SS=V1Y*V1Y 212 : CS=V1X*V1Y 213 : RES(4)=CC*ALP1+SS*ALP2 214 : RES(5)=CC*ALP2+SS*ALP1 215 : RES(6)=2.*CS*(ALP1-ALP2) 216 : RES(1)=RES(4)*FACM 217 : RES(2)=RES(5)*FACM 218 : RES(3)=RES(6)*FACM 219 : RES(4)=RES(4)*FACF 220 : RES(5)=RES(5)*FACF 221 : RES(6)=RES(6)*FACF 222 : ELSE IF (IFOUR.LE.0) THEN 223 : KERRE=19 224 : ENDIF 225 : 226 : C 4 - Element COQ2 227 : C ================== 228 : ELSE IF (MELE.EQ.44)THEN 229 : FACM=(THSU+THIF+4.D0*THM)/6.D0 230 : FACF=(THSU-THIF)/EPAIST 231 : ALP1=VALMAT(1) 232 : ALP2=VALMAT(2) 233 : V1X=VALMAT(3) 234 : V1Y=VALMAT(4) 235 : CC=V1X*V1X 236 : SS=V1Y*V1Y 237 : IF (IFOUR.GT.0) THEN 238 : CS=V1X*V1Y 239 : RES(4)=CC*ALP1+SS*ALP2 240 : RES(5)=CC*ALP2+SS*ALP1 241 : RES(6)=2.*CS*(ALP1-ALP2) 242 : RES(1)=RES(4)*FACM 243 : RES(2)=RES(5)*FACM 244 : RES(3)=RES(6)*FACM 245 : RES(4)=RES(4)*FACF 246 : RES(5)=RES(5)*FACF 247 : RES(6)=RES(6)*FACF 248 : ELSE IF (IFOUR.EQ.0) THEN 249 : RES(3)=CC*ALP1+SS*ALP2 250 : RES(4)=CC*ALP2+SS*ALP1 251 : RES(1)=RES(3)*FACM 252 : RES(2)=RES(4)*FACM 253 : RES(3)=RES(3)*FACF 254 : RES(4)=RES(4)*FACF 255 : ELSE 256 : KERRE=19 257 : ENDIF 258 : 259 : C 5 - Elements COQUES EPAISSES 260 : C ============================== 261 : ELSE IF (MELE.EQ.41.OR.MELE.EQ.56) THEN 262 : THG=0.5*E3*((E3+1.)*THSU+(E3-1.)*THIF)+(1.-E3*E3)*THM 263 : ALP1=VALMAT(1) 264 : ALP2=VALMAT(2) 265 : V1X=VALMAT(3) 266 : V1Y=VALMAT(4) 267 : CC=V1X*V1X 268 : SS=V1Y*V1Y 269 : CS=V1X*V1Y 270 : RES(1)=(CC*ALP1+SS*ALP2)*THG 271 : RES(2)=(CC*ALP2+SS*ALP1)*THG 272 : RES(3)=2.*CS*(ALP1-ALP2)*THG 273 : RES(4)=XZero 274 : RES(5)=XZero 275 : 276 : C 6 - Elements JOI1 277 : C ============================== 278 : ELSE IF (MELE.EQ.265) THEN 279 : IF (IDIM.EQ.3) THEN 280 : ALPN=VALMAT(1) 281 : ALP1=VALMAT(2) 282 : ALP2=VALMAT(3) 283 : ALQN=VALMAT(4) 284 : ALQ1=VALMAT(5) 285 : ALQ2=VALMAT(6) 286 : * 287 : EPS1(1)=ALPN 288 : EPS1(2)=ALP1 289 : EPS1(3)=ALP2 290 : EPS1(4)=ALQN 291 : EPS1(5)=ALQ1 292 : EPS1(6)=ALQ2 293 : * 294 : DO I=1,6 295 : RES(I)=EPS1(I)*TEMP 296 : ENDDO 297 : * 298 : ELSE IF (IDIM.EQ.2) THEN 299 : ALPN=VALMAT(1) 300 : ALPS=VALMAT(2) 301 : ALQS=VALMAT(3) 302 : * 303 : EPS1(1)=ALPN 304 : EPS1(2)=ALPS 305 : EPS1(2)=ALQS 306 : * 307 : DO I=1,3 308 : RES(I)=EPS1(I)*TEMP 309 : ENDDO 310 : ENDIF 311 : 312 : C 7 - Autres cas non prevus 313 : C =========================== 314 : ELSE 315 : KERRE=19 316 : ENDIF 317 : 318 : RETURN 319 : END 320 : 321 : 322 : 323 : 324 : 325 : 326 :
© Cast3M 2003 - All rights reserved.
Disclaimer