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