Download cq4gr1.eso

Back to the list

   1 : C CQ4GR1    SOURCE    CHAT      11/03/16    21:18:22     6902           
   2 :                         
   3 :       SUBROUTINE CQ4GR1(XE,RG,IPOIN1,IDISS,IXMATR,IPMINT,iel)                                
   4 : C=======================================================================        
   5 : C                                                                               
   6 : C      CALCULE LA MATRICE DE RAIDEUR LIEE A LA VARIATION DE PRESSION DUE
   7 : C      AU MOUVEMENT SUIVANT VECZ DANS UN CHAMP DE PESANTEUR
   8 : c      élément coq4 
   9 : C
  10 : C      cette matrice est non symetrique mais combinée avec la mattrice kp
  11 : c      donne une matrice symetrique c'est pourquoi on calcule les matrices 
  12 : c      symetriques et dissymetriques
  13 : c
  14 : c                               
  15 : C                                                                               
  16 : C   ENTREE                                                                      
  17 : C      XE(4,4)=COODONNEES DE L ELEMENT                                          
  18 : C      RG     =MASSE VOLUMIQUE * ACCELERATION DE GRAVITE
  19 : C      IPOIN1 =VECTEUR(POINT) DEFINISSANT LE SENS DE GRAVITE 
  20 : *      IDISS : 0 ---> MATRICE SYMETRIQUE
  21 : *              1 ---> MATRICE DISSYMETRIQUE 
  22 : *     IXMATR : pointeur du segment xmatri 
  23 : *      ipmint:  pointeur sur le segment d'integration                   
  24 : C   TRAVAIL                                                                     
  25 : C      XEL(4,4)   =COORDONNEES LOCALES DE L ELEMENT                             
  26 : C      BPSS(3,3)  =MATRICE DE PASSAGE
  27 : C      VECN(3)    =VECTEUR DEFINISSANT LA NORMALE 
  28 : C      VECZ(3)    =VECTEUR DEFINISSANT LE SENS DE GRAVITE 
  29 : *      rel    : matrice masse (repeur local) avec rho=1. Elle sert à
  30 : *              calculer les termes de la matrice de rigidité qui sont
  31 : *              similaires.                                                                                  
  32 : C   
  33 : *   ON CALCULE :                                                                     
  34 : C      RE(24,24)=MATRICE DE RAIDEUR REPERE GLOBAL (dans le segment xmatri)                
  35 : C                                                                               
  36 : C      JUILLET 95  I. POLITOPOULOS                                               
  37 : C                                                                               
  38 : C=======================================================================
  39 :       IMPLICIT INTEGER(I-N)
  40 :       IMPLICIT REAL*8(A-H,O-Z) 
  41 : -INC CCOPTIO
  42 : -INC SMCOORD
  43 : -INC SMRIGID 
  44 : -INC SMINTE                                                                     
  45 : -INC SMMODEL 
  46 :                                                          
  47 :       DIMENSION XE(3,4),XEL(3,4),BPSS(3,3),XRE(24,24) 
  48 :       DIMENSION VECZ(3),VECN(3),RHOMAT(6,6), SHPWRK(6,4) 
  49 :       DIMENSION BGENE(6,24),REL(24,24)                                                               
  50 :  
  51 :       MINTE=IPMINT                                                                                                                                                    
  52 : C                                                                               
  53 : C     COORDONNEES LOCALES                                                       
  54 : C                                                                               
  54 :       CALL CQ4LOC(XE,XEL,BPSS,IERT,0)                                                  
  55 : C                                                                               
  56 : C     MISE A 0 DE LA MATRICE                                            
  57 : C
  58 :       XMATRI = IXMATR  
  59 :                                                                                                                                    
  60 : C
  61 : C     CONSTRUCTION DE LA NORMALE
  62 : **** il serait plus correct d'utiliser celle calculée dans cq4loc
  63 : **** mais elle n'est pas en sortie et je suis paresseux 
  64 : C
  65 :       XG1 = XE(1,2) - XE(1,1)
  66 :       YG1 = XE(2,2) - XE(2,1)
  67 :       ZG1 = XE(3,2) - XE(3,1)
  68 :       XG2 = XE(1,3) - XE(1,1)
  69 :       YG2 = XE(2,3) - XE(2,1)
  70 :       ZG2 = XE(3,3) - XE(3,1)
  71 :       VECN(1) = YG1*ZG2 - ZG1*YG2
  72 :       VECN(2) = ZG1*XG2 - XG1*ZG2
  73 :       VECN(3) = XG1*YG2 - YG1*XG2
  74 :       XNORM = VECN(1)*VECN(1) + VECN(2)*VECN(2) + VECN(3)*VECN(3)
  75 :       XNORM = SQRT(XNORM) 
  76 :         DO 10 IA=1,3
  77 :           VECN(IA) = VECN(IA)/XNORM
  78 :   10    CONTINUE
  79 : 
  80 : C
  81 : C    DETERMINATION ET NORMALISATION DE VECZ
  82 : C
  83 :       IF (IPOIN1.NE.0) THEN
  84 :        VECZ(1) = XCOOR((IPOIN1-1)*(IDIM+1) + 1)
  85 :        VECZ(2) = XCOOR((IPOIN1-1)*(IDIM+1) + 2) 
  86 :        VECZ(3) = XCOOR((IPOIN1-1)*(IDIM+1) + 3)
  87 :       ELSE
  88 :        VECZ(1) = VECN(1)
  89 :        VECZ(2) = VECN(2)
  90 :        VECZ(3) = VECN(3)
  91 :       ENDIF
  92 :       XNORM = VECZ(1)*VECZ(1) + VECZ(2)*VECZ(2) + VECZ(3)*VECZ(3)
  93 :       XNORM = SQRT(XNORM) 
  94 :         DO 20 IA=1,3
  95 :           VECZ(IA) = VECZ(IA)/XNORM 
  96 :   20    CONTINUE  
  97 : 
  98 : 
  99 : c
 100 : c   construction de la matrice masse dans le repere local avec rho=1
 101 : c 
 101 :          CALL ZERO(RHOMAT,6,6)                                                  
 102 :          RHOMAT( 1, 1)=1.D0   
 103 :          RHOMAT( 2, 2)=1.D0
 104 :          RHOMAT( 3, 3)=1.D0 
 104 :          CALL ZERO(REL,24,24)
 105 :          DO 21 IGAU=1,4                                                  
 105 :             CALL NCOQ4(IGAU,XEL,SHPTOT,SHPWRK,BGENE,DJAC,IERT)      
 106 : C           IERT=1 JACOBIANO=<0                                                 
 106 :             IF(IERT.EQ.1) CALL ERREUR(664)                                                
 107 :             DJAC=DJAC*POIGAU(IGAU)
 108 :             LRE = 24                                              
 108 :             CALL BDBST(BGENE,DJAC,RHOMAT,LRE,6,REL)                             
 109 :  21      CONTINUE                                                                             
 110 :            
 111 :                                                    
 112 : C                                                                               
 113 : C     TERMES DE LA MATRICE DANS LE REPERE GLOBAL                                         
 114 : C                                                                               
 115 :       DO 100 IA=1,19,6
 116 :        DO 110 IC= 1,3
 117 :         IAA = IA + IC - 1                                                                                     
 118 :          DO 120 IB=1,19,6
 119 :           DO 130 ID = 1,3 
 120 :            IBB = IB + ID -1                                                                                                  
 121 :               XRE(IBB  ,IAA) =REL(IB,IA)*VECN(ID)*VECZ(IC)*RG                                                     
 122 :   130     CONTINUE
 123 :   120   CONTINUE                                                       
 124 :   110  CONTINUE                                                                  
 125 :   100 CONTINUE
 126 : 
 127 : *  symetrisation de la matrice 
 128 :       DO 200 IA=1,19,6
 129 :        DO 210 IC= 1,3
 130 :         IAA = IA + IC - 1                                                                                     
 131 :          DO 220 IB=1,19,6
 132 :           DO 230 ID = 1,3 
 133 :            IBB = IB + ID -1
 134 :            IF (IDISS.EQ.0) THEN
 135 :             RE(IAA,IBB,iel) = 0.5D0*(XRE(IAA, IBB) + XRE(IBB,IAA))
 136 :            ELSE
 137 :              RE(IAA,IBB,iel) = XRE(IAA,IBB)
 138 :            ENDIF
 139 :   230     CONTINUE
 140 :   220   CONTINUE                                                       
 141 :   210  CONTINUE                                                                  
 142 :   200 CONTINUE
 143 : 
 144 :  
 145 :       RETURN
 146 :       END                                                     
 147 :  
 148 :  
 149 :  
 150 :  
 151 :  
 152 :  
 153 :  
 154 :  
 155 :  
 156 :  
 157 :  
 158 :  
 159 :  
 160 :  

© Cast3M 2003 - All rights reserved.
Disclaimer