Download thetan.eso

Back to the list

   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