Download bdbs1.eso

Back to the list

   1 : C BDBS1     SOURCE    CHAT      05/01/12    21:37:51     5004           
   2 : 
   3 : C=======================================================================
   4 : C=                             B D B S 1                               =
   5 : C=                             ---------                               =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=   Calcul de la contribution du point de Gauss iGau a la matrice de  =
  10 : C=   RIGIDITE elastique REL d'un element fini. Traitement de cas par-  =
  11 : C=   ticuliers suivant l'element fini et le type de materiau utilise.  =
  12 : C=   Contribution : Jacobien.transpose(BGENE)*DHOOK*BGENE              =
  13 : C=                                                                     =
  14 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  15 : C=  ------------                                                       =
  16 : C=   BGENE    (E)   Matrice B (B-Barre dans le cas incompressible)     =
  17 : C=   DJac     (E)   "Volume" associe au point de Gauss                 =
  18 : C=   DHOOK    (E)   Matrice de Hooke au point de Gauss                 =
  19 : C=   LRE      (E)   Nombre de DDL de l'element fini                    =
  20 : C=   NSTRS    (E)   Nombre de composantes de contraintes/deformations  =
  21 : C=   REL     (E/S)  Matrice de rigidite de l'element fini              =
  22 : C=   MFR      (E)   Formulation associee a l'element fini              =
  23 : C=   IFOU     (E)   Mode de calcul utilise (cf. IFOUR dans CCOPTIO)    =
  24 : C=   MATE     (E)   Type du materiau utilise                           =
  25 : C=   iGau     (E)   Numero du point de Gauss considere                 =
  26 : C=   Excen    (E)   Excentrement (coque avec couplage membrane-flexion)=
  27 : C=   IMAT     (E)   =1 si                                              =
  28 : C=                                                                     =
  29 : C=  Remarque : Actuellement, NSTRS doit etre inferieur ou egal a 10 !  =
  30 : C=======================================================================
  31 : 
  32 :       SUBROUTINE BDBS1 (BGENE,DJac,DHOOK,LRE,NSTRS,REL,MFR,IFOU,MATE,
  33 :      .                  iGau,IMAT,Excen)
  34 : 
  35 :       IMPLICIT INTEGER(I-N)
  36 :       IMPLICIT REAL*8 (A-H,O-Z)
  37 : 
  38 : -INC CCREEL
  39 : 
  40 :       DIMENSION DHOOK(NSTRS,*),REL(LRE,*),BGENE(NSTRS,*)
  41 :       DIMENSION WORK1(10),WORK2(10),TRD1(3,3),TRD2(3,3),TRG(3,3)
  42 : 
  43 : C  1 - Determination de la methode de multiplication matricielle la
  44 : C      plus adaptee a l'element fini et au type de materiau utilise
  45 : C ==================================================================
  46 :       IMULT=0
  47 :       IF (IMAT.EQ.1) THEN
  48 :         IF (MFR.EQ.1.AND.MATE.EQ.1) THEN
  49 :           IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN
  50 :             IMULT=1
  51 :           ELSE IF (IFOU.EQ. 2) THEN
  52 :             IMULT=2
  53 :           ENDIF
  54 :         ELSE IF (MFR.EQ.3) THEN
  55 :           IF (MATE.EQ.1.AND.Excen.EQ.XZero) IMULT=3
  56 : C*      ELSE IF (MFR.EQ.31.AND.MATE.EQ.1) THEN
  57 : C*        IF (IFOU.EQ.-1.OR.IFOU.EQ.-2) THEN
  58 : C*          IMULT=1
  59 : C*        ELSE IF (IFOU.EQ. 2) THEN
  60 : C*          IMULT=2
  61 : C*        ENDIF
  62 :         ENDIF
  63 :       ENDIF
  64 : 
  65 : C  2 - Calcul de la contribution DJac*transpose(BGENE)*DHOOK*BGENE
  66 : C =================================================================
  67 : C  2.1 - Multiplication matricielle normale
  68 : C =====
  69 :       IF (IMULT.EQ.0) THEN
  70 :         DO IX=1,LRE
  71 :           DO j=1,NSTRS
  72 :             WORK1(j)=DJac*BGENE(j,IX)
  73 :           ENDDO
  74 :           DO i=1,NSTRS
  75 :             CC=XZero
  76 :             DO j=1,NSTRS
  77 :               CC=CC+WORK1(j)*DHOOK(i,j)
  78 :             ENDDO
  79 :             WORK2(i)=CC
  80 :           ENDDO
  81 :           DO IY=1,IX
  82 :             CC=XZero
  83 :             DO i=1,NSTRS
  84 :               CC=CC+BGENE(i,IY)*WORK2(i)
  85 :             ENDDO
  86 :             REL(IX,IY)=REL(IX,IY)+CC
  87 :             REL(IY,IX)=REL(IX,IY)
  88 :           ENDDO
  89 :         ENDDO
  90 : C =====
  91 : C  2.2 - Cas des elements massifs 2D incompressibles et isotropes
  92 : C =====
  93 :       ELSE IF (IMULT.EQ.1) THEN
  94 :         LRE2=LRE-1
  95 :         D1=DHOOK(1,1)*DJac
  96 :         D2=DHOOK(1,2)*DJac
  97 :         G=DHOOK(4,4)*DJac
  98 :         DO j=1,LRE2,2
  99 :           j1=j+1
 100 :           DO i=1,LRE2,2
 101 :             i1=i+1
 102 :             Tr11=BGENE(1,i )*BGENE(1,j )
 103 :             Tr21=BGENE(2,i1)*BGENE(1,j )
 104 :             Tr12=BGENE(1,i )*BGENE(2,j1)
 105 :             Tr22=BGENE(2,i1)*BGENE(2,j1)
 106 :             REL(i ,j )=REL(i ,j )+D1*Tr11+G*Tr22
 107 :             REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12
 108 :             REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21
 109 :             REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*Tr11
 110 :           ENDDO
 111 :         ENDDO
 112 : C =====
 113 : C  2.3 - Cas des elements massifs 3D incompressibles et isotropes
 114 : C =====
 115 :       ELSE IF (IMULT.EQ.2) THEN
 116 :         LRE3=LRE-2
 117 :         D1=DHOOK(1,1)*DJac
 118 :         D2=DHOOK(1,2)*DJac
 119 :         G=DHOOK(4,4)*DJac
 120 :         DO j=1,LRE3,3
 121 :           j1=j+1
 122 :           j2=j+2
 123 :           DO i=1,LRE3,3
 124 :             i1=i+1
 125 :             i2=i+2
 126 :             TR11=BGENE(1,i )*BGENE(1,j )
 127 :             TR12=BGENE(1,i )*BGENE(2,j1)
 128 :             TR13=BGENE(1,i )*BGENE(3,j2)
 129 :             TR21=BGENE(2,i1)*BGENE(1,j )
 130 :             TR22=BGENE(2,i1)*BGENE(2,j1)
 131 :             TR23=BGENE(2,i1)*BGENE(3,j2)
 132 :             TR31=BGENE(3,i2)*BGENE(1,j )
 133 :             TR32=BGENE(3,i2)*BGENE(2,j1)
 134 :             Tr33=BGENE(3,i2)*BGENE(3,j2)
 135 :             REL(i ,j )=REL(i ,j )+D1*Tr11+G*(Tr22+Tr33)
 136 :             REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12
 137 :             REL(i2,j )=REL(i2,j )+D2*Tr31+G*Tr13
 138 :             REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21
 139 :             REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*(Tr11+Tr33)
 140 :             REL(i2,j1)=REL(i2,j1)+D2*Tr32+G*Tr23
 141 :             REL(i ,j2)=REL(i ,j2)+D2*Tr13+G*Tr31
 142 :             REL(i1,j2)=REL(i1,j2)+D2*Tr23+G*Tr32
 143 :             REL(i2,j2)=REL(i2,j2)+D1*Tr33+G*(Tr11+Tr22)
 144 :           ENDDO
 145 :         ENDDO
 146 : C =====
 147 : C  2.4 - Cas des coques minces 3D isotropes
 148 : C =====
 149 :       ELSE IF (IMULT.EQ.3) THEN
 150 :         LRE6=LRE-5
 151 :         D1=DHOOK(1,1)*DJac
 152 :         D2=DHOOK(1,2)*DJac
 153 :         G=DHOOK(3,3)*DJac
 154 :         DH1=DHOOK(4,4)*DJac
 155 :         DH2=DHOOK(5,4)*DJac
 156 :         GH=DHOOK(6,6)*DJac
 157 :         DO j=1,LRE6,6
 158 :           j1=j+1
 159 :           DO i=1,LRE6,6
 160 :             i1=i+1
 161 :             Tr11=BGENE(1,i )*BGENE(1,j )
 162 :             Tr21=BGENE(2,i1)*BGENE(1,j )
 163 :             Tr12=BGENE(1,i )*BGENE(2,j1)
 164 :             Tr22=BGENE(2,i1)*BGENE(2,j1)
 165 :             REL(i ,j )=REL(i ,j )+D1*Tr11+G*Tr22
 166 :             REL(i1,j )=REL(i1,j )+D2*Tr21+G*Tr12
 167 :             REL(i ,j1)=REL(i ,j1)+D2*Tr12+G*Tr21
 168 :             REL(i1,j1)=REL(i1,j1)+D1*Tr22+G*Tr11
 169 :             DO l=1,3
 170 :               jl=j1+l
 171 :               DO k=1,3
 172 :                 ik=i1+k
 173 :                 TrD1(k,l)=( BGENE(4,ik)*BGENE(4,jl)
 174 :      .                     +BGENE(5,ik)*BGENE(5,jl))*DH1
 175 :                 TrD2(k,l)=( BGENE(4,ik)*BGENE(5,jl)
 176 :      .                     +BGENE(5,ik)*BGENE(4,jl))*DH2
 177 :                 TrG(k,l)=BGENE(6,ik)*BGENE(6,jl)*GH
 178 :               ENDDO
 179 :             ENDDO
 180 :             DO l=1,3
 181 :               jl=j1+l
 182 :               DO k=1,3
 183 :                 ik=i1+k
 184 :                 REL(ik,jl)=REL(ik,jl)+TrD1(k,l)+TrD2(k,l)+TrG(k,l)
 185 :               ENDDO
 186 :             ENDDO
 187 :           ENDDO
 188 :         ENDDO
 189 :       ENDIF
 190 : 
 191 :       RETURN
 192 :       END
 193 : 
 194 :  
 195 :  

© Cast3M 2003 - All rights reserved.
Disclaimer