Download bmatst.eso

Back to the list

   1 : C BMATST    SOURCE    FANDEUR   10/08/31    21:15:17     6735           
   2 : 
   3 : C=======================================================================
   4 : C=                          B M A T S T                                =
   5 : C=                          -----------                                =
   6 : C=  Fonction :                                                         =
   7 : C=  ----------                                                         =
   8 : C=   Calcul de la matrice B reliant les deformations en un point d'un  =
   9 : C=   element fini aux ddls de deplacement aux noeuds de cet element    =
  10 : C=   Le jacobien est egalement evalue au point de Gauss pour verifier  =
  11 : C=   ulterieurement si l'element fini n'est pas trop distordu.         =
  12 : C=                                                                     =
  13 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  14 : C=  ------------                                                       =
  15 : C=   iGau     (E)   Numero du point de Gauss considere                 =
  16 : C=   NBPGAU   (E)   Nombre de points de Gauss de l'element fini        =
  17 : C=   POIGAU,QSIGAU   (E)   |  Poids et coordonnees de reference des    =
  18 : C=   ETAGAU,DZEGAU   (E)   |  differents points de Gauss de l'element  =
  19 : C=   ITEL     (E)   Type de l'element fini (cf. NOMTP dans bdata.eso)  =
  20 : C=   MFR      (E)   Formulation associee a l'element fini              =
  21 : C=   NBNO     (E)   Nombre de noeuds de l'element fini                 =
  22 : C=   LRE      (E)   Nombre de DDL de l'element fini                    =
  23 : C=   IFOU     (E)   Mode de calcul utilise (cf. IFOUR dans CCOPTIO)    =
  24 : C=   NST      (E)   Nombre de composantes de deformations              =
  25 : C=   NN       (E)   Numero du mode de Fourier (si IFOU=1)              =
  26 : C=   DIM3     (E)   Epaisseur dans l'hypothese des contraintes planes  =
  27 : C=   XEL      (E)   Coordonnees des noeuds de l'element fini etudie    =
  28 : C=   SHPTOT   (E)   Fonctions de forme et leurs derivees               =
  29 : C=   SHP      (S)   Fonctions de forme et leurs derivees actuelles     =
  30 : C=   BGENE    (S)   Matrice de gradients (B) calcule au point de Gauss =
  31 : C=   DJac     (S)   Jacobien au point de Gauss etudie                  =
  32 : C=   XDPGE,YDPGE   (E)   Coordonnees du noeud support (mode PLAN GENE) =
  33 : C=                                                                     =
  34 : C=  Remarque :                                                         =
  35 : C=  ----------                                                         =
  36 : C=   Lors de l'entree dans le sous-programme, SHPTOT(2 a 4,*) contient =
  37 : C=   les DERIVEES des fonctions de forme par rapport aux coordonnees   =
  38 : C=   de REFERENCE Qsi,Eta,Dzeta.                                       =
  39 : C=   En sortie du sous-programme, SHP(2 a 4,*) contient les DERIVEES   =
  40 : C=   des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  41 : C=   Pour les elements finis massifs incompressibles, la matrice B est =
  42 : C=   modifiee ulterieurement par appel au sous-programme BBAR.         =
  43 : C=======================================================================
  44 : 
  45 :       SUBROUTINE BMATST (iGau,NBPGAU,POIGAU,QSIGAU,ETAGAU,DZEGAU,
  46 :      &                   ITEL,MFR,NBNO,LRE,IFOU,NST,NN,DIM3,XEL,
  47 :      &                   SHPTOT,SHP,BGENE,DJAC,XDPGE,YDPGE)
  48 : 
  49 :       IMPLICIT INTEGER(I-N)
  50 :       IMPLICIT REAL*8 (A-H,O-Z)
  51 : 
  52 : -INC CCREEL
  53 : 
  54 :       DIMENSION XEL(3,*),BGENE(NST,*),SHP(6,*),SHPTOT(6,NBNO,*),
  55 :      &          POIGAU(*),QSIGAU(*),ETAGAU(*),DZEGAU(*)
  56 : 
  57 :       RR=XZero
  57 :       CALL ZERO(BGENE,NST,LRE)
  58 : 
  59 :       IFOR=IFOU+4
  60 :       GOTO ( 5,10,10,20,30,40,50,50,50,50,50,50,50,50,50,
  61 :      &      60,60,60,70),IFOR
  62 :       GOTO 100
  63 : 
  64 : C ===
  65 : C  1 - Elements MASSIFS 2D PLAN GENE
  66 : C ===
  67 :  5    XXX=XZero
  68 :       YYY=XZero
  69 :       DO i=1,NBNO
  70 :         SHP(1,i)=SHPTOT(1,i,iGau)
  71 :         SHP(2,i)=SHPTOT(2,i,iGau)
  72 :         SHP(3,i)=SHPTOT(3,i,iGau)
  73 :         XXX=XXX+SHP(1,i)*XEL(1,i)
  74 :         YYY=YYY+SHP(1,i)*XEL(2,i)
  75 :       ENDDO
  75 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  76 :       K=1
  77 :       DO i=1,NBNO
  78 :         BGENE(1,K)=SHP(2,i)
  79 :         BGENE(2,K+1)=SHP(3,i)
  80 :         BGENE(4,K)=SHP(3,i)
  81 :         BGENE(4,K+1)=SHP(2,i)
  82 :         K=K+2
  83 :       ENDDO
  84 :       BGENE(3,K)=1.D0
  85 :       BGENE(3,K+1)=XDPGE-XXX
  86 :       BGENE(3,K+2)=YYY-YDPGE
  87 :       GOTO 100
  88 : C ===
  89 : C  2 - Elements MASSIFS 2D PLAN DEFO ou PLAN CONT
  90 : C ===
  91 :  10   DO i=1,NBNO
  92 :         SHP(1,i)=SHPTOT(1,i,iGau)
  93 :         SHP(2,i)=SHPTOT(2,i,iGau)
  94 :         SHP(3,i)=SHPTOT(3,i,iGau)
  95 :       ENDDO
  95 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
  96 :       K=1
  97 :       DO i=1,NBNO
  98 :         BGENE(1,K)=SHP(2,i)
  99 :         BGENE(2,K+1)=SHP(3,i)
 100 :         BGENE(4,K)=SHP(3,i)
 101 :         BGENE(4,K+1)=SHP(2,i)
 102 :         K=K+2
 103 :       ENDDO
 104 :       GOTO 100
 105 : C ===
 106 : C  3 - Elements MASSIFS 2D AXISymetrique
 107 : C ===
 108 :  20   DO i=1,NBNO
 109 :         SHP(1,i)=SHPTOT(1,i,iGau)
 110 :         SHP(2,i)=SHPTOT(2,i,iGau)
 111 :         SHP(3,i)=SHPTOT(3,i,iGau)
 112 :       ENDDO
 112 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
 113 :       K=1
 114 :       DO i=1,NBNO
 115 :         BGENE(1,K)=SHP(2,i)
 116 :         BGENE(2,K+1)=SHP(3,i)
 117 :         BGENE(3,K)=SHP(1,i)/RR
 118 :         BGENE(4,K)=SHP(3,i)
 119 :         BGENE(4,K+1)=SHP(2,i)
 120 :         K=K+2
 121 :       ENDDO
 122 :       GOTO 100
 123 : C ===
 124 : C  4 - Elements MASSIFS 2D FOURIER
 125 : C ===
 126 :  30   DO i=1,NBNO
 127 :         SHP(1,i)=SHPTOT(1,i,iGau)
 128 :         SHP(2,i)=SHPTOT(2,i,iGau)
 129 :         SHP(3,i)=SHPTOT(3,i,iGau)
 130 :       ENDDO
 130 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,2,DIM3,RR,DJAC)
 131 :       XNSUR=DBLE(NN)/RR
 132 :       K=1
 133 :       DO i=1,NBNO
 134 :         BGENE(1,K)=SHP(2,i)
 135 :         BGENE(2,K+1)=SHP(3,i)
 136 :         BGENE(3,K)=SHP(1,i)/RR
 137 :         BGENE(3,K+2)=SHP(1,i)*XNSUR
 138 :         BGENE(4,K)=SHP(3,i)
 139 :         BGENE(4,K+1)=SHP(2,i)
 140 :         BGENE(5,K)=-SHP(1,i)*XNSUR
 141 :         BGENE(5,K+2)=SHP(2,i)-SHP(1,i)/RR
 142 :         BGENE(6,K+1)=-SHP(1,i)*XNSUR
 143 :         BGENE(6,K+2)=SHP(3,i)
 144 :         K=K+3
 145 :       ENDDO
 146 :       GOTO  100
 147 : C ===
 148 : C  6 - Elements MASSIFS 3D
 149 : C ===
 150 :  40   DO i=1,NBNO
 151 :         SHP(1,i)=SHPTOT(1,i,iGau)
 152 :         SHP(2,i)=SHPTOT(2,i,iGau)
 153 :         SHP(3,i)=SHPTOT(3,i,iGau)
 154 :         SHP(4,i)=SHPTOT(4,i,iGau)
 155 :       ENDDO
 155 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,3,DIM3,RR,DJAC)
 156 :       K=1
 157 :       DO i=1,NBNO
 158 :         BGENE(1,K)=SHP(2,i)
 159 :         BGENE(2,K+1)=SHP(3,i)
 160 :         BGENE(3,K+2)=SHP(4,i)
 161 :         BGENE(4,K)=SHP(3,i)
 162 :         BGENE(4,K+1)=SHP(2,i)
 163 :         BGENE(5,K)=SHP(4,i)
 164 :         BGENE(5,K+2)=SHP(2,i)
 165 :         BGENE(6,K+1)=SHP(4,i)
 166 :         BGENE(6,K+2)=SHP(3,i)
 167 :         K=K+3
 168 :       ENDDO
 169 :       GOTO 100
 170 : C ===
 171 : C  7 - Elements MASSIFS 1D
 172 : C ===
 173 : C= 7.1 - Modes 1D PLAN
 174 :  50   DO i=1,NBNO
 175 :         SHP(1,i)=SHPTOT(1,i,iGau)
 176 :         SHP(2,i)=SHPTOT(2,i,iGau)
 177 :       ENDDO
 177 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
 178 :       DO i=1,NBNO
 179 :         BGENE(1,i)=SHP(2,i)
 180 :       ENDDO
 181 :       IF (IFOU.EQ.7.OR.IFOU.EQ.8) THEN
 182 :         BGENE(2,i)=1.
 183 :       ELSE IF (IFOU.EQ.9.OR.IFOU.EQ.10) THEN
 184 :         BGENE(3,i)=1.
 185 :       ELSE IF (IFOU.EQ.11) THEN
 186 :         BGENE(2,i)=1.
 187 :         BGENE(3,i+1)=1.
 188 :       ENDIF
 189 :       GOTO 100
 190 : C= 7.2 - Modes 1D AXIS
 191 :  60   DO i=1,NBNO
 192 :         SHP(1,i)=SHPTOT(1,i,iGau)
 193 :         SHP(2,i)=SHPTOT(2,i,iGau)
 194 :       ENDDO
 194 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
 195 :       DO i=1,NBNO
 196 :         BGENE(1,i)=SHP(2,i)
 197 :         BGENE(3,i)=SHP(1,i)/RR
 198 :       ENDDO
 199 :       IF (IFOU.EQ.14) BGENE(2,i)=1.
 200 :       GOTO 100
 201 : C= 7.3 - Mode 1D SPHE
 202 :  70   DO i=1,NBNO
 203 :         SHP(1,i)=SHPTOT(1,i,iGau)
 204 :         SHP(2,i)=SHPTOT(2,i,iGau)
 205 :       ENDDO
 205 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NN,1,DIM3,RR,DJAC)
 206 :       DO i=1,NBNO
 207 :         BGENE(1,i)=SHP(2,i)
 208 :         ZZ=SHP(1,i)/RR
 209 :         BGENE(2,i)=ZZ
 210 :         BGENE(3,i)=ZZ
 211 :       ENDDO
 212 :       GOTO 100
 213 :  100  CONTINUE
 214 : 
 215 :       RETURN
 216 :       END
 217 : 
 218 :  

© Cast3M 2003 - All rights reserved.
Disclaimer