Download nmatst.eso

Back to the list

   1 : C NMATST    SOURCE    CHAT      05/01/13    01:57:42     5004           
   2 : 
   3 : C=======================================================================
   4 : C=                          N M A T S T                                =
   5 : C=                          -----------                                =
   6 : C=  Fonction :                                                         =
   7 : C=  ----------                                                         =
   8 : C=   Calcul de la matrice N contenant les fonctions de forme de l'ele- =
   9 : C=   ment fini au point de Gauss considere, matrice N intervenant lors =
  10 : C=   du calcul de la matrice MASSE et aussi lors du calcul des forces  =
  11 : C=   nodales equivalentes a une densite de forces volumiques (CNEQ).   =
  12 : C=                                                                     =
  13 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  14 : C=  ------------                                                       =
  15 : C=   IGAU     (E)   Numero du point de Gauss considere                 =
  16 : C=   ITEL     (E)   Type de l'element fini (cf. NOMTP dans bdata.eso)  =
  17 : C=   MFR      (E)   Formulation associee a l'element fini              =
  18 : C=   NBNO     (E)   Nombre de noeuds de l'element fini                 =
  19 : C=   LRE      (E)   Nombre de DDL de l'element fini                    =
  20 : C=   IFOU     (E)   Mode de calcul utilise (cf. IFOUR dans CCOPTIO)    =
  21 : C=   NIFOU    (E)   Numero du mode de Fourier (si IFOU=1)              =
  22 : C=   NST      (E)   Nombre de lignes de la matrice N                   =
  23 : C=   DIM3     (E)   Epaisseur dans l'hypothese des contraintes planes  =
  24 : C=   XEL      (E)   Coordonnees des noeuds de l'element fini etudie    =
  25 : C=   SHPTOT   (E)   Fonctions de forme et leurs derivees               =
  26 : C=   SHP      (S)   Fonctions de forme et leurs derivees actuelles     =
  27 : C=   XGENE    (S)   Matrice des fcts de forme (N) au point de Gauss    =
  28 : C=   DJAC     (S)   Jacobien au point de Gauss etudie                  =
  29 : C=   XDPGE,YDPGE   (E)   Coordonnees du noeud support (mode PLAN GENE) =
  30 : C=                                                                     =
  31 : C=  Remarque :                                                         =
  32 : C=  ----------                                                         =
  33 : C=   Lors de l'entree dans le sous-programme, SHPTOT(2 a 4,*) contient =
  34 : C=   les DERIVEES des fonctions de forme par rapport aux coordonnees   =
  35 : C=   de REFERENCE Qsi,Eta,Dzeta.                                       =
  36 : C=   En sortie du sous-programme, SHP(2 a 4,*) contient les DERIVEES   =
  37 : C=   des fonctions de FORME par rapport aux coordonnees REELLES x,y,z. =
  38 : C=======================================================================
  39 : 
  40 :       SUBROUTINE NMATST (IGAU,ITEL,MFR,NBNO,LRE,IFOU,NIFOU,NST,DIM3,
  41 :      .                   XEL,SHPTOT,SHP,XGENE,DJAC,XDPGE,YDPGE)
  42 : 
  43 :       IMPLICIT INTEGER(I-N)
  44 :       IMPLICIT REAL*8 (A-H,O-Z)
  45 : 
  46 : -INC CCREEL
  47 : 
  48 :       PARAMETER (XUn=1.,XUndemi=0.5)
  49 : 
  50 :       DIMENSION XEL(3,*),XGENE(NST,*),SHP(6,*),SHPTOT(6,NBNO,*)
  51 :       DIMENSION BB(9),XX(3),YY(3)
  52 : 
  53 :       DATA XX / 0.5,0.0,0.5 /
  54 :       DATA YY / 0.0,0.5,0.5 /
  55 : 
  55 :       CALL ZERO(XGENE,NST,LRE)
  56 : 
  57 :       IF (ITEL.EQ.28) GOTO 28
  58 : 
  59 : C  1 - Elements MASSIFS en MECANIQUE
  60 : C ===================================
  61 :       IFR=IFOU+4
  62 :       GOTO (100,110,110,120,130,140,150,150,150,150,
  63 :      .      150,150,150,150,150,160,160,160,170     ),IFR
  64 :       RETURN
  65 : C =====
  66 : C  1.1 - Elements MASSIFS/JOINTS 2D PLAN GENE
  67 : C =====
  68 :  100  IF (ITEL.EQ.85.OR.ITEL.EQ.168.OR.ITEL.EQ.169) GOTO 110
  69 :       XXX=XZero
  70 :       YYY=XZero
  71 :       DO NP=1,NBNO
  72 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
  73 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
  74 :         SHP(3,NP)=SHPTOT(3,NP,IGAU)
  75 :         XXX=XXX+(SHP(1,NP)*XEL(1,NP))
  76 :         YYY=YYY+(SHP(1,NP)*XEL(2,NP))
  77 :       ENDDO
  78 :       IF (ITEL.EQ.170) THEN
  79 :         IDIM=1
  80 :         NBNOS=NBNO/2
  81 :         XXX=XUnDemi*XXX
  82 :         YYY=XUnDemi*YYY
  82 :         CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  83 :       ELSE
  84 :         IDIM=2
  84 :         CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  85 :       ENDIF
  86 :       K=0
  87 :       NNN=NST-1
  88 :       DO NP=1,NBNO
  89 :         DO INST=1,NNN
  90 :           XGENE(INST,K+INST)=SHP(1,NP)
  91 :         ENDDO
  92 :         K=K+NNN
  93 :       ENDDO
  94 :       XGENE(3,K+1)=XUn
  95 :       XGENE(3,K+2)=XDPGE-XXX
  96 :       XGENE(3,K+3)=YYY-YDPGE
  97 :       RETURN
  98 : C =====
  99 : C  1.2 - Elements MASSIFS/JOINTS 2D PLAN DEFO ou PLAN CONT
 100 : C =====
 101 :  110  DO NP=1,NBNO
 102 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 103 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 104 :         IF (ITEL.NE.85) SHP(3,NP)=SHPTOT(3,NP,IGAU)
 105 :       ENDDO
 106 :       IDIM=2
 107 :       IF (ITEL.EQ.48.OR.ITEL.EQ.85.OR.ITEL.EQ.170) IDIM=1
 108 :       IF (ITEL.EQ.85.OR.ITEL.EQ.170.OR.ITEL.EQ.168.OR.ITEL.EQ.169) THEN
 109 :         NBNOS=NBNO/2
 109 :         CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 110 :       ELSE
 110 :         CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 111 :       ENDIF
 112 : C  NST = 2 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
 113 : C  NST = 3 POUR SURFACE LIBRE
 114 :       K=0
 115 :       DO NP=1,NBNO
 116 :         DO INST=1,NST
 117 :           XGENE(INST,K+INST)=SHP(1,NP)
 118 :         ENDDO
 119 :         K=K+NST
 120 :       ENDDO
 121 :       RETURN
 122 : C =====
 123 : C  1.3 - Elements MASSIFS/JOINTS 2D AXISymetrique
 124 : C =====
 125 :  120  DO NP=1,NBNO
 126 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 127 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 128 :         IF (ITEL.NE.85) SHP(3,NP)=SHPTOT(3,NP,IGAU)
 129 :       ENDDO
 130 :       IF (ITEL.EQ.85) THEN
 131 :         IDIM=1
 132 :         NBNOS=NBNO/2
 132 :         CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 133 :       ELSE
 134 :         IDIM=2
 135 :         IF (ITEL.EQ.48) IDIM=1
 135 :         CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 136 :       ENDIF
 137 : C  NST = 2 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
 138 : C  NST = 3 POUR SURFACE LIBRE
 139 :       K=0
 140 :       DO NP=1,NBNO
 141 :         DO INST=1,NST
 142 :           XGENE(INST,K+INST)=SHP(1,NP)
 143 :         ENDDO
 144 :         K=K+NST
 145 :       ENDDO
 146 :       RETURN
 147 : C =====
 148 : C  1.4 - Elements MASSIFS 2D FOURIER
 149 : C =====
 150 :  130  DO NP=1,NBNO
 151 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 152 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 153 :         SHP(3,NP)=SHPTOT(3,NP,IGAU)
 154 :       ENDDO
 155 :       IDIM=2
 156 :       IF (ITEL.EQ.48) IDIM=1
 156 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 157 : C  NST = 3 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
 158 : C  NST = 3 POUR SURFACE LIBRE
 159 :       K=0
 160 :       DO NP=1,NBNO
 161 :         DO INST=1,NST
 162 :           XGENE(INST,K+INST)=SHP(1,NP)
 163 :         ENDDO
 164 :         K=K+NST
 165 :       ENDDO
 166 :       RETURN
 167 : C =====
 168 : C  1.5 - Elements MASSIFS/JOINTS 3D
 169 : C =====
 170 :  140  DO NP=1,NBNO
 171 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 172 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 173 :         SHP(3,NP)=SHPTOT(3,NP,IGAU)
 174 :         IF (ITEL.NE.87.AND.ITEL.NE.88) SHP(4,NP)=SHPTOT(4,NP,IGAU)
 175 :       ENDDO
 176 :       IF (ITEL.EQ.87.OR.ITEL.EQ.88.OR.ITEL.EQ.171.OR.ITEL.EQ.172) THEN
 177 :         IDIM=2
 178 :         NBNOS=NBNO/2
 178 :         CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 179 :       ELSE
 180 :         IDIM=3
 181 :         IF (ITEL.EQ.53.OR.ITEL.EQ.54) IDIM=2
 181 :         CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 182 :       ENDIF
 183 : C  NST = 3 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
 184 : C  NST = 3 POUR JOINTS TRIDIM
 185 : C  NST = 3 POUR SURFACE LIBRE
 186 :       K=0
 187 :       DO NP=1,NBNO
 188 :         DO INST=1,NST
 189 :           XGENE(INST,K+INST)=SHP(1,NP)
 190 :         ENDDO
 191 :         K=K+NST
 192 :       ENDDO
 193 :       RETURN
 194 : C =====
 195 : C  1.6 - Elements MASSIFS 1D
 196 : C =====
 197 : C= 1.6.1 - Modes 1D PLAN
 198 :  150  DO NP=1,NBNO
 199 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 200 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 201 :       ENDDO
 202 :       IDIM=1
 202 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 203 :       DO NP=1,NBNO
 204 :         XGENE(1,NP)=SHP(1,NP)
 205 :       ENDDO
 206 :       IF (IFOU.GE.7) THEN
 207 :         XGENE(2,NP)=XUn
 208 :         IF (IFOU.EQ.11) XGENE(3,NP+1)=XUn
 209 :       ENDIF
 210 :       RETURN
 211 : C= 1.6.2 - Modes 1D AXIS
 212 :  160  DO NP=1,NBNO
 213 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 214 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 215 :       ENDDO
 216 :       IDIM=1
 216 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 217 :       DO NP=1,NBNO
 218 :         XGENE(1,NP)=SHP(1,NP)
 219 :       ENDDO
 220 :       IF (IFOU.EQ.14) XGENE(2,NP)=XUn
 221 :       RETURN
 222 : C= 1.6.3 - Mode 1D SPHE
 223 :  170  DO NP=1,NBNO
 224 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 225 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 226 :       ENDDO
 227 :       IDIM=1
 227 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
 228 :       DO NP=1,NBNO
 229 :         XGENE(1,NP)=SHP(1,NP)
 230 :       ENDDO
 231 :       RETURN
 232 : 
 233 : C  2 - Element COQUE DKT en MECANIQUE
 234 : C ====================================
 235 :  28   DO NP=1,NBNO
 236 :         SHP(1,NP)=SHPTOT(1,NP,IGAU)
 237 :         SHP(2,NP)=SHPTOT(2,NP,IGAU)
 238 :         SHP(3,NP)=SHPTOT(3,NP,IGAU)
 239 :       ENDDO
 239 :       CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,2,DIM3,RR,DJAC)
 240 :       K=1
 241 :       DO NP=1,NBNO
 242 :         XGENE(1,K  )=SHP(1,NP)
 243 :         XGENE(2,K+1)=SHP(1,NP)
 244 :         K=K+6
 245 :       ENDDO
 245 :       CALL MFDKT(XX(IGAU),YY(IGAU),XEL,BB)
 246 :       KK=3
 247 :       IA=1
 248 :       DO NP=1,3
 249 :         XGENE(3,KK  )=BB(IA  )
 250 :         XGENE(3,KK+1)=BB(IA+1)
 251 :         XGENE(3,KK+2)=BB(IA+2)
 252 :         KK=KK+6
 253 :         IA=IA+3
 254 :       ENDDO
 255 :       RETURN
 256 : 
 257 :       END
 258 :  
 259 :  

© Cast3M 2003 - All rights reserved.
Disclaimer