Download epthor.eso

Back to the list

   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