Télécharger nmatst.eso

Retour à la liste

Numérotation des lignes :

nmatst
  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.  
  56. CALL ZERO(XGENE,NST,LRE)
  57.  
  58. IF (ITEL.EQ.28) GOTO 28
  59.  
  60. C 1 - Elements MASSIFS en MECANIQUE
  61. C ===================================
  62. IFR=IFOU+4
  63. GOTO (100,110,110,120,130,140,150,150,150,150,
  64. . 150,150,150,150,150,160,160,160,170 ),IFR
  65. RETURN
  66. C =====
  67. C 1.1 - Elements MASSIFS/JOINTS 2D PLAN GENE
  68. C =====
  69. 100 IF (ITEL.EQ.85.OR.ITEL.EQ.168.OR.ITEL.EQ.169) GOTO 110
  70. XXX=XZero
  71. YYY=XZero
  72. DO NP=1,NBNO
  73. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  74. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  75. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  76. XXX=XXX+(SHP(1,NP)*XEL(1,NP))
  77. YYY=YYY+(SHP(1,NP)*XEL(2,NP))
  78. ENDDO
  79. IF (ITEL.EQ.170) THEN
  80. IDIM=1
  81. NBNOS=NBNO/2
  82. XXX=XUnDemi*XXX
  83. YYY=XUnDemi*YYY
  84. CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  85. ELSE
  86. IDIM=2
  87. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  88. ENDIF
  89. K=0
  90. NNN=NST-1
  91. DO NP=1,NBNO
  92. DO INST=1,NNN
  93. XGENE(INST,K+INST)=SHP(1,NP)
  94. ENDDO
  95. K=K+NNN
  96. ENDDO
  97. XGENE(3,K+1)=XUn
  98. XGENE(3,K+2)=XDPGE-XXX
  99. XGENE(3,K+3)=YYY-YDPGE
  100. RETURN
  101. C =====
  102. C 1.2 - Elements MASSIFS/JOINTS 2D PLAN DEFO ou PLAN CONT
  103. C =====
  104. 110 DO NP=1,NBNO
  105. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  106. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  107. IF (ITEL.NE.85) SHP(3,NP)=SHPTOT(3,NP,IGAU)
  108. ENDDO
  109. IDIM=2
  110. IF (ITEL.EQ.48.OR.ITEL.EQ.85.OR.ITEL.EQ.170) IDIM=1
  111. IF (ITEL.EQ.85.OR.ITEL.EQ.170.OR.ITEL.EQ.168.OR.ITEL.EQ.169) THEN
  112. NBNOS=NBNO/2
  113. CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  114. ELSE
  115. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  116. ENDIF
  117. C NST = 2 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
  118. C NST = 3 POUR SURFACE LIBRE
  119. K=0
  120. DO NP=1,NBNO
  121. DO INST=1,NST
  122. XGENE(INST,K+INST)=SHP(1,NP)
  123. ENDDO
  124. K=K+NST
  125. ENDDO
  126. RETURN
  127. C =====
  128. C 1.3 - Elements MASSIFS/JOINTS 2D AXISymetrique
  129. C =====
  130. 120 DO NP=1,NBNO
  131. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  132. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  133. IF (ITEL.NE.85) SHP(3,NP)=SHPTOT(3,NP,IGAU)
  134. ENDDO
  135. IF (ITEL.EQ.85) THEN
  136. IDIM=1
  137. NBNOS=NBNO/2
  138. CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  139. ELSE
  140. IDIM=2
  141. IF (ITEL.EQ.48) IDIM=1
  142. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  143. ENDIF
  144. C NST = 2 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
  145. C NST = 3 POUR SURFACE LIBRE
  146. K=0
  147. DO NP=1,NBNO
  148. DO INST=1,NST
  149. XGENE(INST,K+INST)=SHP(1,NP)
  150. ENDDO
  151. K=K+NST
  152. ENDDO
  153. RETURN
  154. C =====
  155. C 1.4 - Elements MASSIFS 2D FOURIER
  156. C =====
  157. 130 DO NP=1,NBNO
  158. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  159. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  160. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  161. ENDDO
  162. IDIM=2
  163. IF (ITEL.EQ.48) IDIM=1
  164. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  165. C NST = 3 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
  166. C NST = 3 POUR SURFACE LIBRE
  167. K=0
  168. DO NP=1,NBNO
  169. DO INST=1,NST
  170. XGENE(INST,K+INST)=SHP(1,NP)
  171. ENDDO
  172. K=K+NST
  173. ENDDO
  174. RETURN
  175. C =====
  176. C 1.5 - Elements MASSIFS/JOINTS 3D
  177. C =====
  178. 140 DO NP=1,NBNO
  179. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  180. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  181. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  182. IF (ITEL.NE.87.AND.ITEL.NE.88) SHP(4,NP)=SHPTOT(4,NP,IGAU)
  183. ENDDO
  184. IF (ITEL.EQ.87.OR.ITEL.EQ.88.OR.ITEL.EQ.171.OR.ITEL.EQ.172) THEN
  185. IDIM=2
  186. NBNOS=NBNO/2
  187. CALL DEVOLU(XEL,SHP,MFR,NBNOS,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  188. ELSE
  189. IDIM=3
  190. IF (ITEL.EQ.53.OR.ITEL.EQ.54) IDIM=2
  191. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  192. ENDIF
  193. C NST = 3 POUR MASSIFS MECA ET 2 POUR MASSIF FLUIDES
  194. C NST = 3 POUR JOINTS TRIDIM
  195. C NST = 3 POUR SURFACE LIBRE
  196. K=0
  197. DO NP=1,NBNO
  198. DO INST=1,NST
  199. XGENE(INST,K+INST)=SHP(1,NP)
  200. ENDDO
  201. K=K+NST
  202. ENDDO
  203. RETURN
  204. C =====
  205. C 1.6 - Elements MASSIFS 1D
  206. C =====
  207. C= 1.6.1 - Modes 1D PLAN
  208. 150 DO NP=1,NBNO
  209. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  210. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  211. ENDDO
  212. IDIM=1
  213. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  214. DO NP=1,NBNO
  215. XGENE(1,NP)=SHP(1,NP)
  216. ENDDO
  217. IF (IFOU.GE.7) THEN
  218. XGENE(2,NP)=XUn
  219. IF (IFOU.EQ.11) XGENE(3,NP+1)=XUn
  220. ENDIF
  221. RETURN
  222. C= 1.6.2 - Modes 1D AXIS
  223. 160 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
  228. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  229. DO NP=1,NBNO
  230. XGENE(1,NP)=SHP(1,NP)
  231. ENDDO
  232. IF (IFOU.EQ.14) XGENE(2,NP)=XUn
  233. RETURN
  234. C= 1.6.3 - Mode 1D SPHE
  235. 170 DO NP=1,NBNO
  236. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  237. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  238. ENDDO
  239. IDIM=1
  240. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,IDIM,DIM3,RR,DJAC)
  241. DO NP=1,NBNO
  242. XGENE(1,NP)=SHP(1,NP)
  243. ENDDO
  244. RETURN
  245.  
  246. C 2 - Element COQUE DKT en MECANIQUE
  247. C ====================================
  248. 28 DO NP=1,NBNO
  249. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  250. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  251. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  252. ENDDO
  253. CALL DEVOLU(XEL,SHP,MFR,NBNO,IFOU,NIFOU,2,DIM3,RR,DJAC)
  254. K=1
  255. DO NP=1,NBNO
  256. XGENE(1,K )=SHP(1,NP)
  257. XGENE(2,K+1)=SHP(1,NP)
  258. K=K+6
  259. ENDDO
  260. CALL MFDKT(XX(IGAU),YY(IGAU),XEL,BB)
  261. KK=3
  262. IA=1
  263. DO NP=1,3
  264. XGENE(3,KK )=BB(IA )
  265. XGENE(3,KK+1)=BB(IA+1)
  266. XGENE(3,KK+2)=BB(IA+2)
  267. KK=KK+6
  268. IA=IA+3
  269. ENDDO
  270. RETURN
  271.  
  272. END
  273.  
  274.  
  275.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales