Download idmat5.eso

Back to the list

   1 : C IDMAT5    SOURCE    PV        09/03/12    21:24:58     6325           
   2 :       SUBROUTINE IDMAT5 (NUDIR1,NUMP1,NUDIR2,NUMP3,ANG,MELEME,MINTE,            
   3 :      1                   MINTE1,IPEPAI,IPEXCE,NPG2,ITHER,IPVAL)                 
   4 :       IMPLICIT INTEGER(I-N)
   5 :       IMPLICIT REAL*8(A-H,O-Z)                                                  
   6 : *                                                                               
   7 : ************************************************************************        
   8 : *                                                                               
   9 : *                             I D M A T 5                                       
  10 : *                             -----------                                       
  11 : *                                                                               
  12 : * FONCTION:                                                                     
  13 : * ---------                                                                     
  14 : *                                                                               
  15 : *     CALCUL DES COSINUS-DIRECTEURS DU 1ER AXE D'ORTHOTROPIE /REPERES           
  16 : *                                                                               
  17 : *     LOCAUX D'UNE COQUE EPAISSE                                                
  18 : *                                                                               
  19 : *                                                                               
  20 : * MODULES UTILISES:                                                             
  21 : * -----------------                                                             
  22 : *                                                                               
  23 : -INC CCOPTIO                                                                    
  24 : -INC SMCOORD                                                                    
  25 : -INC CCREEL                                                                     
  26 : -INC SMELEME                                                                    
  27 : -INC SMINTE                                                                     
  28 : -INC SMCHAML                                                                    
  29 : *                                                                               
  30 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)          
  31 : * -----------                                                                   
  32 : *                                                                               
  33 : *     NUDIR1  (E)  NUMERO DE DIRECTIVE UTILISEE DANS LA LISTE:                  
  34 : *                  "DIRECTION", "RADIAL",                                       
  35 : *                  POUR LA DEFINITION DES DIRECTIONS D'ORTHOTROPIE.             
  36 : *     NUMP1   (E)  NUMERO DU POINT P ASSOCIE A NUDIR1                           
  37 : *     NUDIR2  (E)  NUMERO DE DIRECTIVE UTILISEE DANS LA LISTE:                  
  38 : *                  "PARALLELE", "PERPENDIC.", "INCLINE",                        
  39 : *                  POUR LA DEFINITION DES DIRECTIONS D'ORTHOTROPIE.             
  40 : *     NUMP3   (E)  NUMERO DU POINT P ASSOCIE A NUDIR2                           
  41 : *     ANG     (E)  ANGLE UTILISE DANS LA DEFINITION DES DIRECTIONS              
  42 : *                  D ORTHOTROPIE (INCLINE)                                      
  43 : *     MELEME  (E)  POINTEUR DE "MAILLAGE" A 1 SEUL TYPE D'ELEMENT.              
  44 : *     MINTE   (E)  SEGMENT CONTENANT LES FONCTIONS DE FORME ET LEURS            
  45 : *                  DERIVEES AU POINTS DE GAUSS                                  
  46 : *     MINTE1  (E)  SEGMENT CONTENANT LES FONCTIONS DE FORME ET LEURS            
  47 : *                  DERIVEES AU NOEUDS                                           
  48 : *     IPEPAI  (E)  POINTEUR DU SEGMENT CONTENANT LES EPAISSEURS                 
  49 : *     IPEXCE  (E)  POINTEUR DU SEGMENT CONTENANT LES EXCENTREMENTS              
  50 : *     XVAL    (S)  DIRECTIONS D'ORTHOTROPIE PAR POINT DE GAUSS                  
  51 : *                  ON FOURNIT LE COSINUS ET LE SINUS DE L'ANGLE QUE FAIT        
  52 : *                  LA DIRECTION 1 D'ORTHOTROPIE AVEC L'AXE 1 DU REPRE           
  53 : *                  LIE  AU POINT DE GAUSS                                       
  54 : *     NPG2    (E)  NOMBRE DE POINTS DE GAUSS                                    
  55 : *                                                                               
  56 : *                                                                               
  57 : * VARIABLES:                                                                    
  58 : * ----------                                                                    
  59 : *                                                                               
  60 : *     COSA     = COSINUS DE L'ANGLE DE LA DIRECTION 1 D'ORTHOTROPIE AVEC        
  61 : *               L'AXE 1 DU REPERE LOCAL SITUE AU POINT DE GAUSS CONSIDER        
  62 : *     SINA     = SINUS DE L'ANGLE DE LA DIRECTION 1 D'ORTHOTROPIE AVEC L        
  63 : *               'AXE 1 DU REPERE LOCAL SITUE AU POINT DE GAUSS CONSIDERE        
  64 : *     XI,YI,ZI = COSINUS-DIRECTEURS DE L'AXE 1 DU REPERE LOCAL SITUE AU         
  65 : *                POINT DE GAUSS CONSIDERE                                       
  66 : *     XN,YN,ZN = COSINUS-DIRECTEURS DE L'AXE 3 DU REPERE LOCAL SITUE AU         
  67 : *                 POINT DE GAUSS CONSIDERE                                      
  68 : *     XDIR1,.. = COORDONNEES DE LA DIRECTION FOURNIE POUR DETERMINER LES        
  69 : *                DIRECTIONS D'ORTHOTROPIE.                                      
  70 : *                                                                               
  71 : * REMARQUES:                                                                    
  72 : * ----------                                                                    
  73 : *                                                                               
  74 : *  LA PREMIERE DIRECTION D'ORTHOTROPIE  EST  DEFINIE A CHAQUE POINT DE          
  75 : *  GAUSS PAR RAPPORT A UN REPERE LOCAL DONT LES DEUX PREMIERS AXES SONT         
  76 : *  SITUES DANS LE PLAN TANGENT                                                  
  77 : *                                                                               
  78 : * AUTEUR, DATE DE CREATION:                                                     
  79 : * -------------------------                                                     
  80 : *                                                                               
  81 : *     P DOWLATYARI       JANVIER 1991                                           
  82 : *                                                                               
  83 : * LANGAGE:                                                                      
  84 : * --------                                                                      
  85 : *                                                                               
  86 : *     ESOPE77 FORTRAN77 + EXTENSION                                             
  87 : *                                                                               
  88 : *                                                                               
  89 : ************************************************************************        
  90 : *                                                                               
  91 : *                                                                               
  92 :       REAL*8 XJ(3,3),TT(9)                                                      
  93 : *                                                                               
  94 :       SEGMENT GEOM                                                              
  95 :          REAL*8 EP(NBNN),TXR(3,3,NBNN),EXC(NBNN),XE(3,NBNN)                     
  96 :       ENDSEGMENT                                                                
  97 : *                                                                               
  98 :       SEGMENT XVAL                                                              
  99 :          REAL*8 CVAL(NPG2,NBELEM),SVAL(NPG2,NBELEM)                             
 100 :       ENDSEGMENT                                                                
 101 : *                                                                               
 102 : *                                                                               
 103 : * CONSTANTES:                                                                   
 104 : * -----------                                                                   
 105 : *                                                                               
 106 : *     COS1D  = VALEUR APPROCHEE DE  COSINUS(1 DEGRE).                           
 107 : *     SIN1D  = VALEUR APPROCHEE DE  SINUS(1 DEGRE).                             
 108 : *                                                                               
 109 :       PARAMETER (COS1D = 0.999 85 D0)                                           
 110 :       PARAMETER (SIN1D = 0.017 45 D0)                                           
 111 :       PARAMETER (UNDEMI= 0.5D0  )                                               
 112 : *                                                                               
 113 :          SEGACT MELEME                                                          
 114 :          SEGACT MINTE                                                           
 115 :          SEGACT MINTE1                                                          
 116 :          NBELEM=NUM(/2)                                                         
 117 :          NBNN  = NUM(/1)                                                        
 118 : *                                                                               
 119 : *        DIRECTION FOURNIE, AVANT PROJECTION SUR LA COQUE.                      
 120 : *                                                                               
 121 : *        ON CHERCHE LE POINT NUMP1 RATACHER A LA DIRECTIVE DIRECTION            
 122 : *                                                                               
 122 :          CALL EXCOO1 (NUMP1,XDIR1,YDIR1,ZDIR1,REEL1)                            
 123 :          IF (NUDIR1 .EQ. 1) THEN                                                
 124 :             XNORM = SQRT(XDIR1**2 + YDIR1**2 + ZDIR1**2)                        
 125 :             XDIR1 = XDIR1 / XNORM                                               
 126 :             YDIR1 = YDIR1 / XNORM                                               
 127 :             ZDIR1 = ZDIR1 / XNORM                                               
 128 :          END IF                                                                 
 129 :          XDIR2 = XDIR1                                                          
 130 :          YDIR2 = YDIR1                                                          
 131 :          ZDIR2 = ZDIR1                                                          
 132 : *                                                                               
 133 :          SEGINI XVAL                                                            
 134 :          IPVAL=XVAL                                                             
 135 :          SEGINI GEOM                                                            
 136 : *                                                                               
 137 : *                                                                               
 138 : *                                                                               
 139 :          DO 10 IEL=1,NBELEM                                                     
 140 : *                                                                               
 141 : *        ON CHERCHE LES COORDONNEES DES NOEUDS DE L'ELEMENT IEL,                
 142 : *        DANS LE REPERE GLOBAL                                                  
 143 : *                                                                               
 143 :          CALL DOXE(XCOOR,IDIM,NBNN,NUM,IEL,XE)                                  
 144 : *                                                                               
 145 : *                                                                               
 146 : *       CALCUL DES AXES LOCAUX A TOUS LES NOEUDS DE L'ELEMENT                   
 147 : *                                                                               
 148 : *                                                                               
 148 :          CALL CQ8LOC (XE,NBNN,MINTE1.SHPTOT,TXR,IRR)                            
 149 :          IF(IRR.EQ.0)THEN                                                       
 150 : *                                                                               
 151 : *        ECHEC DANS LE CALCUL DES AXES LOCAUX                                   
 152 : *                                                                               
 152 :         CALL ERREUR (515)                                                       
 153 :          SEGSUP ,GEOM,XVAL                                                      
 154 :          SEGDES,MELEME,MINTE,MINTE1                           
 155 :          RETURN                                                                 
 156 :          ENDIF                                                                  
 157 : *                                                                               
 158 : *        ON CHERCHE LES EPAISSEURS ET LES EXCENTREMENTS                         
 159 :            DO 20  IG=1,NBNN                                                     
 160 :              MELVAL=IPEPAI                                                      
 161 :              IGMN=MIN(IG,VELCHE(/1))                                            
 162 :              IBMN=MIN(IEL,VELCHE(/2))                                           
 163 :              EP(IG)=VELCHE(IGMN,IBMN)                                           
 164 :              IF(IPEXCE.NE.0)THEN                                                
 165 :                MELVAL=IPEXCE                                                    
 166 :                IGMN=MIN(IG,VELCHE(/1))                                          
 167 :                IBMN=MIN(IEL,VELCHE(/2))                                         
 168 :                EXC(IG)=VELCHE(IGMN,IBMN)                                        
 169 :            ELSE                                                                 
 170 :               EXC(IG)=XZERO                                                     
 171 :              ENDIF                                                              
 172 :  20        CONTINUE                                                             
 173 :          NPG1=NPG2/2                                                            
 174 : *                                                                               
 175 : *          BOUCLE SUR LES POINTS DE GAUSS                                       
 176 : *                                                                               
 177 :          DO  50  IGAU = 1,NPG2                                                  
 178 : *                                                                               
 179 : *                                                                               
 180 : *        CALCUL DU JACOBIEN ET DE SON DETERMINENT EN CE POINT DE GAUSS          
 181 : *                                                                               
 182 :          E3=DZEGAU(IGAU)                                                       
 183 : *                                                                               
 183 :          CALL CQ8JCE(IGAU,NBNN,E3,XE,EP,EXC,TXR,SHPTOT,XJ,DJAC,IRR)            
 184 :          IF (IRR.LT.0)THEN                                                      
 185 : *        JACOBIEN NUL DANS L'ELEMENT IEL                                        
 186 :          INTERR(1)=IEL                                                          
 186 :          CALL ERREUR (405)                                                      
 187 :           SEGSUP ,GEOM,XVAL                                                     
 188 :           SEGDES,MELEME,MINTE,MINTE1                          
 189 :           RETURN                                                                
 190 :          ENDIF                                                                  
 191 : *                                                                               
 192 : *    DETERMINATION DES COSINUS DIRECTEURS DES AXES LOCAUX EN CE POINT           
 193 : *                                                                               
 194 : *                                                                               
 195 :          DO 30 I=1,3                                                            
 196 :          DO 30 J=1,2                                                            
 197 :           K=3*(J-1)+I                                                           
 198 :           TT(K)    = XJ(J,I)                                                    
 199 :    30    CONTINUE                                                               
 200 : *                                                                               
 201 : *    PRODUITS VECTORIELS ET NORMALISATIONS                                      
 202 : *                                                                               
 202 :          CALL CROSS2(TT(1),TT(4),TT(7),IRR)                                     
 202 :          CALL CROSS2(TT(7),TT(1),TT(4),IRR)                                     
 202 :          CALL CROSS2(TT(4),TT(7),TT(1),IRR)                                     
 203 : *                                                                               
 204 :         IF (NUDIR1 .EQ. 1) THEN                                                 
 205 :              XDIR1 = XDIR2                                                      
 206 :              YDIR1 = YDIR2                                                      
 207 :              ZDIR1 = ZDIR2                                                      
 208 :            ELSE                                                                 
 209 : *           OPTION "RADIAL": L'ORIENTATION DE L'ORTHOTROPIE EST                 
 210 : *           DETERMINEE A PARTIR DU VECTEUR DE VALEUR (PTGAUSS - P1              
 211 :              XDIR1 = - XDIR2                                                    
 212 :              YDIR1 = - YDIR2                                                    
 213 :              ZDIR1 = - ZDIR2                                                    
 214 :              DO 40 INOE=1,NBNN                                                  
 215 :         XDIR1 = XDIR1 + SHPTOT(1,INOE,IGAU)*(XE(1,INOE)+                       
 216 :      1        UNDEMI*EP(INOE)*E3*TXR(1,3,INOE)+EXC(INOE)*TXR(1,3,INOE))         
 217 :         YDIR1 = YDIR1 + SHPTOT(1,INOE,IGAU)*(XE(2,INOE)+                       
 218 :      1        UNDEMI*EP(INOE)*E3*TXR(2,3,INOE)+EXC(INOE)*TXR(2,3,INOE))         
 219 :         ZDIR1 = ZDIR1 + SHPTOT(1,INOE,IGAU)*(XE(3,INOE)+                       
 220 :      1        UNDEMI*EP(INOE)*E3*TXR(3,3,INOE)+EXC(INOE)*TXR(3,3,INOE))         
 221 :   40        CONTINUE                                                            
 222 :             XNORM = SQRT(XDIR1**2 + YDIR1**2 + ZDIR1**2)                        
 223 :             XDIR1 = XDIR1 / XNORM                                               
 224 :             YDIR1 = YDIR1 / XNORM                                               
 225 :             ZDIR1 = ZDIR1 / XNORM                                               
 226 :         END IF                                                                  
 227 :         XI=TT(1)                                                                
 228 :         YI=TT(2)                                                                
 229 :         ZI=TT(3)                                                                
 230 :         XN=TT(7)                                                                
 231 :         YN=TT(8)                                                                
 232 :         ZN=TT(9)                                                                
 233 : *                                                                               
 234 : *     PROJECTION SUR LE PLAN TANGENT LE VECTEUR D'ORIENTATION DE                
 235 : *     L'ORTROTHOPIE.                                                            
 236 : *                                                                               
 237 :             P1N = XDIR1*XN + YDIR1*YN + ZDIR1*ZN                                
 238 :             IF (ABS(P1N) .GT. COS1D) THEN                                       
 239 : *               DIRECTION FOURNIE ORTHOGONALE A LA COQUE.                       
 239 :                   CALL ERREUR (344)                                             
 240 :                   SEGSUP ,GEOM,XVAL                                             
 241 :                   SEGDES,MELEME,MINTE,MINTE1                  
 242 :                   RETURN                                                        
 243 :              END IF                                                             
 244 :              XDIR1 = XDIR1 - P1N*XN                                             
 245 :              YDIR1 = YDIR1 - P1N*YN                                             
 246 :              ZDIR1 = ZDIR1 - P1N*ZN                                             
 247 :              XNORM = SQRT(XDIR1**2 + YDIR1**2 + ZDIR1**2)                       
 248 :              XDIR1 = XDIR1 / XNORM                                              
 249 :              YDIR1 = YDIR1 / XNORM                                              
 250 :              ZDIR1 = ZDIR1 / XNORM                                              
 251 : *                                                                               
 252 : *              ANGLE DU VECTEUR PROJETE AVEC LA DIRECTION 1 DE LA COQUE:        
 253 :              COSA = XI * XDIR1 + YI * YDIR1 + ZI * ZDIR1                        
 254 :              SINA = XN * (YI*ZDIR1 - ZI*YDIR1)                                  
 255 :      &              + YN * (ZI*XDIR1 - XI*ZDIR1)                                
 256 :      &              + ZN * (XI*YDIR1 - YI*XDIR1)                                
 257 : *                                                                               
 258 : *                                                                               
 259 :              IF (NUDIR2 .EQ. 2) THEN                                            
 260 : *                 ON AJOUTE PI/2 A L'ANGLE:                                     
 261 :                   REEL1 = COSA                                                  
 262 :                   COSA = - SINA                                                 
 263 :                   SINA = REEL1                                                  
 264 :              ELSE IF (NUDIR2 .EQ. 3) THEN                                       
 265 :                   COSB = COS(ANG)                                               
 266 :                   SINB = SIN(ANG)                                               
 266 :                   CALL EXCOO1 (NUMP3,  XDIR1,YDIR1,ZDIR1,REEL1)                 
 267 :                   REEL1 = XN * XDIR1 + YN * YDIR1 + ZN * ZDIR1                  
 268 :                   IF (REEL1 .GT. XPETIT) THEN                                   
 269 : *                    ON AJOUTE "ANGLE":                                         
 270 :                      REEL1 = SINA*COSB + COSA*SINB                              
 271 :                      COSA = COSA*COSB - SINA*SINB                               
 272 :                      SINA = REEL1                                               
 273 :                   ELSE IF (REEL1 .LT. (-XPETIT) ) THEN                          
 274 : *                    ON RETRANCHE "ANGLE":                                      
 275 :                      REEL1 = SINA*COSB - COSA*SINB                              
 276 :                      COSA = COSA*COSB + SINA*SINB                               
 277 :                      SINA = REEL1                                               
 278 :                   ELSE                                                          
 279 : *                    POINT P3 DONNE POUR ORIENTATION INAPROPRIE.                
 279 :                      CALL ERREUR (278)                                          
 280 :                      SEGSUP ,GEOM,XVAL                                          
 281 :                      SEGDES,MELEME,MINTE,MINTE1               
 282 :                      RETURN                                                     
 283 :                   END IF                                                        
 284 :             END IF                                                              
 285 : *                                                                               
 286 :             CVAL(IGAU,IEL) = COSA                                               
 287 :             SVAL(IGAU,IEL) = SINA                                               
 288 : *                                                                               
 289 :   50        CONTINUE                                                            
 290 : *                                                                               
 291 :   10   CONTINUE                                                                 
 292 : *                                                                               
 293 : *                                                                               
 294 :         SEGSUP ,GEOM                                                            
 295 :         SEGDES,XVAL                                                             
 296 :         SEGDES,MELEME,MINTE,MINTE1                            
 297 : *                                                                               
 298 :       RETURN                                                                    
 299 :       END                                                                       
 300 :  
 301 :  
 302 :  
 303 :  
 304 :  

© Cast3M 2003 - All rights reserved.
Disclaimer