Download coq4rj.eso

Back to the list

   1 : C COQ4RJ    SOURCE    CHAT      05/01/12    22:21:44     5004           
   2 :       SUBROUTINE COQ4RJ (IGAU,BGENE,DJAC,EXCENT,NOPLAN,DHOOK,REL)
   3 : ************************************************************************
   4 : *
   5 : *                             C O Q 4 R J
   6 : *                             -----------
   7 : *
   8 : * FONCTION:
   9 : * ---------
  10 : *
  11 : *     Calcul du produit Bt.D.B en 1 point de Gauss, pour le COQ4 non-isotrope.
  12 : *
  13 : * PARAMETRES:   (E)=ENTREE   (S)=SORTIE   (+ = CONTENU DANS UN COMMUN)
  14 : * -----------
  15 : *
  16 : *     IGAU    (E)  Numéro du point de Gauss.
  17 : *     BGENE   (E)  Matrice "B".
  18 : *     DJAC    (E)  Jacobien.
  19 : *     EXCENT  (E)  Excentrement.
  20 : *     NOPLAN  (E)  = 1 si élément non plan,
  21 : *                  = 0 sinon.
  22 : *     DHOOK   (E)  Matrice de Hooke intégrée dans l'épaisseur.
  23 : *                  Séparation par blocs:
  24 : *                  membrane, puis flexion, puis cisaillement transverse.
  25 : *             (S)  Contenu modifie.
  26 : *     REL     (E)  Matrice de Raideur.
  27 : *             (S)  Completée par la contribution du point de Gauss
  28 : *                  courant.
  29 : *
  30 :       IMPLICIT INTEGER(I-N)
  31 :       PARAMETER (NSTRS=8, LRE=24)
  32 :       REAL*8 DJAC,EXCENT
  33 :       REAL*8 DHOOK(NSTRS,NSTRS),REL(LRE,LRE),BGENE(NSTRS,LRE)
  34 : *
  35 : * VARIABLES:
  36 : * ----------
  37 : *
  38 :       REAL*8 DB(NSTRS,LRE)
  39 : *
  40 : * MODE DE FONCTIONNEMENT:
  41 : * -----------------------
  42 : *
  43 : *     Utilisation de la valeur de "Bm" au point central pour toute ou
  44 : *     partie de la raideur de membrane:
  45 : *     - tout si élément non plan,
  46 : *     - rien sinon.
  47 : *
  48 : *     Utilisation de la valeur de "Bf" au point central pour la raideur
  49 : *     de couplage membrane/flexion due à l'excentrement dans les mêmes
  50 : *     conditions que pour la membrane.
  51 : *
  52 : * AUTEUR, DATE DE CREATION:
  53 : * -------------------------
  54 : *
  55 : *     Michel BULIK       26 Novembre 1996 d'après COQ4RI écrit par
  56 : *     Pascal MANIGOT     27 Mars 1991
  57 : *
  58 : ************************************************************************
  59 : *
  60 : *
  61 : *     On multiplie les termes de la matrice de Hooke par le Jacobien,
  62 : *     elle est déja intégrée dans l'épaisseur ...
  63 : *
  64 :       DO 100 J=1,NSTRS
  65 :          DO 100 I=1,NSTRS
  66 :             DHOOK(I,J) = DJAC * DHOOK(I,J)
  67 :  100        CONTINUE
  68 : *        END DO
  69 : *     END DO
  70 : *
  71 : *     Mise à 0 de DB, en cas de coque non excentrée INCMAX=2 permet
  72 : *     d'éviter pas mal de multiplications par 0 ...
  73 : *
  73 :       CALL ZERO (DB,NSTRS,LRE)
  74 :       IF (ABS(EXCENT) .GT. 1.D-30) THEN
  75 :          INCMAX = 5
  76 :       ELSE
  77 :          INCMAX = 2
  78 :       END IF
  79 : *
  80 : *     Calcul de DB ...
  81 : *
  82 :       DO 110 NOEUD=1,4
  83 :          N6 = 6 * (NOEUD - 1)
  84 : *
  85 : *                                                eD.Bm | eD.h.Bf
  86 :          DO 120 J=1,INCMAX
  87 :             DO 120 I=1,3
  88 :                DO 120 K=1,3
  89 :                   DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
  90 :  120              CONTINUE
  91 : *              END DO
  92 : *           END DO
  93 : *        END DO
  94 : *
  95 : *        Pour le calcul de la raideur et lorsque IGAU=5, seules les
  96 : *        lignes de 1 à 3 de la matrice B peuvent contenir des termes
  97 : *        non nuls, d'où cette condition :
  98 : *
  99 :          IF (IGAU .LE. 4) THEN
 100 :             DO 160 J=3,5
 101 : *                                                e3/12.D.Bf
 102 :                DO 140 I=4,6
 103 :                   DO 140 K=4,6
 104 :                      DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
 105 :  140                 CONTINUE
 106 : *                 END DO
 107 : *              END DO
 108 : *                                                5/6.eG.Bc
 109 : *
 110 : * ATTENTION !!! en orthotrope, cela n'est pas correct !!!!!!!!!!!!!!!!!!
 111 : * car les termes (7,8) et (8,7) de D sont en général non nuls ...
 112 : *
 113 : *              DB(7,J+N6) = DB(7,J+N6) + DHOOK(7,7)*BGENE(7,J+N6)
 114 : *              DB(8,J+N6) = DB(8,J+N6) + DHOOK(8,8)*BGENE(8,J+N6)
 115 : *
 116 :                DO 150 I=7,8
 117 :                   DO 150 K=7,8
 118 :                      DB(I,J+N6) = DB(I,J+N6) + DHOOK(I,K)*BGENE(K,J+N6)
 119 :  150                 CONTINUE
 120 : *                 END DO
 121 : *              END DO
 122 : 
 123 :  160           CONTINUE
 124 : *           END DO
 125 :          END IF
 126 : *
 127 :   110    CONTINUE
 128 : *     END DO
 129 : *
 130 : *     Intégration elle-même ...
 131 : *
 132 :       IF (IGAU .LE. 4) THEN
 133 : *        Intégration exacte.
 134 : *
 135 : *        Rigidité de Flexion et Cisaillement transverse.
 136 :          DO 200 M=3,5
 137 :             DO 200 L=3,5
 138 :                DO 200 NOEUD = 1,4
 139 :                   L6 = 6 * (NOEUD - 1)
 140 :                   DO 200 NOEUD2 = 1,4
 141 :                      M6 = 6 * (NOEUD2 - 1)
 142 :                      DO 200 I=4,8
 143 :                         REL(L+L6,M+M6)
 144 :      &                  = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
 145 :  200                    CONTINUE
 146 : *                    END DO
 147 : *                 END DO
 148 : *              END DO
 149 : *           END DO
 150 : *        END DO
 151 : *
 152 :          IF (NOPLAN .EQ. 0) THEN
 153 : *           Intégration exacte raideur de membrane et de couplage
 154 : *           membrane/flexion, avec cisaillement:
 155 :             DO 220 M=1,INCMAX
 156 :                DO 220 L=1,INCMAX
 157 :                   DO 220 NOEUD = 1,4
 158 :                      L6 = 6 * (NOEUD - 1)
 159 :                      DO 220 NOEUD2 = 1,4
 160 :                         M6 = 6 * (NOEUD2 - 1)
 161 :                         REL(L+L6,M+M6) = REL(L+L6,M+M6)
 162 :      &                                 + BGENE(1,L+L6)*DB(1,M+M6)
 163 :      &                                 + BGENE(2,L+L6)*DB(2,M+M6)
 164 :      &                                 + BGENE(3,L+L6)*DB(3,M+M6)
 165 :  220                    CONTINUE
 166 : *                    END DO
 167 : *                 END DO
 168 : *              END DO
 169 : *           END DO
 170 :          END IF
 171 : *
 172 :       ELSE IF (IGAU .EQ. 5) THEN
 173 : *
 174 : *        Intégration réduite raideur de membrane et de couplage
 175 : *        membrane/flexion:
 176 :          IF (NOPLAN .EQ. 1) THEN
 177 :          
 178 :          DO 240 M=1,INCMAX
 179 :             DO 240 L=1,INCMAX
 180 :                DO 240 NOEUD = 1,4
 181 :                   L6 = 6 * (NOEUD - 1)
 182 :                   DO 240 NOEUD2 = 1,4
 183 :                      M6 = 6 * (NOEUD2 - 1)
 184 :                      DO 240 I= 1,3
 185 :                         REL(L+L6,M+M6)
 186 :      &                  = REL(L+L6,M+M6) + BGENE(I,L+L6)*DB(I,M+M6)
 187 :  240                    CONTINUE
 188 : *                    END DO
 189 : *                 END DO
 190 : *              END DO
 191 : *           END DO
 192 : *        END DO
 193 : *
 194 :          END IF
 195 :          
 196 :       END IF
 197 : *
 198 :       END
 199 :  
 200 :  

© Cast3M 2003 - All rights reserved.
Disclaimer