Télécharger hyshp.eso

Retour à la liste

Numérotation des lignes :

hyshp
  1. C HYSHP SOURCE CHAT 05/01/13 00:27:39 5004
  2. SUBROUTINE HYSHP(QSI,ETA,DZE,NEF,NBDDL,NDIM,SHY,IRET)
  3. C-----------------------------------------------------------------------
  4. C Fonctions de base des elements hybrides (elements de H(div))
  5. C-----------------------------------------------------------------------
  6. C
  7. C---------------------------
  8. C Parametres Entree/Sortie :
  9. C---------------------------
  10. C
  11. C E/ QSI | Coordonnees reduites (i.e. dans le repere local lie
  12. C E/ ETA | a l'element de reference [-1,1]x[-1,1]) du point ou
  13. C E/ DZE | on calcule les fonctions de base hybrides
  14. C E/ NEF : Numero de l'element fini hybride dans NOMTP
  15. C E/ NBDDL : Nombre de noeuds portant des degres de liberte
  16. C E/ NDIM : Dimension de SHY=IDIM*(IDIM+1) (IDIM=2 EN 2D,3 EN 3D)
  17. C /S SHY : Fonctions de base rangees par colonnes. On stocke la
  18. C valeur de la fonction, puis la derivee par rapport a
  19. C chacune des directions.
  20. C /S IRET : Vaut 1 si l'element n'est pas encore implante
  21. C
  22. C-----------------------------------------------------------------------
  23. C
  24. C Langage : FORTRAN77
  25. C
  26. C Auteurs : F.DABBENE 08/93
  27. C C.MARTIN 10/94 : Extension au 3D
  28. C-----------------------------------------------------------------------
  29. IMPLICIT INTEGER(I-N)
  30. IMPLICIT REAL*8(A-H,O-Z)
  31. C
  32. PARAMETER (XZER=0.D0, UN=1.D0, DEUX=2.D0, QUATRE=4.D0, HUIT=8.D0)
  33. DIMENSION SHY(NDIM,NBDDL)
  34. C
  35. IRET = 0
  36. C
  37. IF (NEF.EQ.99) THEN
  38. C
  39. C= Triangle a 3 Noeuds : HYT3
  40. C
  41. SHY(1,1) = QSI
  42. SHY(2,1) = ETA - UN
  43. SHY(3,1) = UN
  44. SHY(4,1) = XZER
  45. SHY(5,1) = XZER
  46. SHY(6,1) = UN
  47. C
  48. SHY(1,2) = QSI
  49. SHY(2,2) = ETA
  50. SHY(3,2) = UN
  51. SHY(4,2) = XZER
  52. SHY(5,2) = XZER
  53. SHY(6,2) = UN
  54. C
  55. SHY(1,3) = QSI - UN
  56. SHY(2,3) = ETA
  57. SHY(3,3) = UN
  58. SHY(4,3) = XZER
  59. SHY(5,3) = XZER
  60. SHY(6,3) = UN
  61. C
  62. ELSEIF (NEF.EQ.100) THEN
  63. C
  64. C= Carre a 4 Noeuds : HYQ4
  65. C
  66. SHY(1,1) = XZER
  67. SHY(2,1) = (ETA - UN) / QUATRE
  68. SHY(3,1) = XZER
  69. SHY(4,1) = XZER
  70. SHY(5,1) = XZER
  71. SHY(6,1) = UN / QUATRE
  72. C
  73. SHY(1,2) = (QSI + UN) / QUATRE
  74. SHY(2,2) = XZER
  75. SHY(3,2) = UN / QUATRE
  76. SHY(4,2) = XZER
  77. SHY(5,2) = XZER
  78. SHY(6,2) = XZER
  79. C
  80. SHY(1,3) = XZER
  81. SHY(2,3) = (ETA + UN) / QUATRE
  82. SHY(3,3) = XZER
  83. SHY(4,3) = XZER
  84. SHY(5,3) = XZER
  85. SHY(6,3) = UN / QUATRE
  86. C
  87. SHY(1,4) = (QSI - UN) / QUATRE
  88. SHY(2,4) = XZER
  89. SHY(3,4) = UN / QUATRE
  90. SHY(4,4) = XZER
  91. SHY(5,4) = XZER
  92. SHY(6,4) = XZER
  93. C
  94. ELSEIF (NEF.EQ.101) THEN
  95. C
  96. C= Tetraedre a 4 Noeuds : HYT4
  97. C
  98. SHY(1,1) = DEUX * QSI
  99. SHY(2,1) = DEUX * ETA - DEUX
  100. SHY(3,1) = DEUX * DZE
  101. SHY(4,1) = DEUX
  102. SHY(5,1) = XZER
  103. SHY(6,1) = XZER
  104. SHY(7,1) = XZER
  105. SHY(8,1) = DEUX
  106. SHY(9,1) = XZER
  107. SHY(10,1) = XZER
  108. SHY(11,1) = XZER
  109. SHY(12,1) = DEUX
  110. C
  111. SHY(1,2) = DEUX * QSI
  112. SHY(2,2) = DEUX * ETA
  113. SHY(3,2) = DEUX * DZE - DEUX
  114. SHY(4,2) = DEUX
  115. SHY(5,2) = XZER
  116. SHY(6,2) = XZER
  117. SHY(7,2) = XZER
  118. SHY(8,2) = DEUX
  119. SHY(9,2) = XZER
  120. SHY(10,2) = XZER
  121. SHY(11,2) = XZER
  122. SHY(12,2) = DEUX
  123. C
  124. SHY(1,3) = DEUX * QSI
  125. SHY(2,3) = DEUX * ETA
  126. SHY(3,3) = DEUX * DZE
  127. SHY(4,3) = DEUX
  128. SHY(5,3) = XZER
  129. SHY(6,3) = XZER
  130. SHY(7,3) = XZER
  131. SHY(8,3) = DEUX
  132. SHY(9,3) = XZER
  133. SHY(10,3) = XZER
  134. SHY(11,3) = XZER
  135. SHY(12,3) = DEUX
  136. C
  137. SHY(1,4) = DEUX * QSI - DEUX
  138. SHY(2,4) = DEUX * ETA
  139. SHY(3,4) = DEUX * DZE
  140. SHY(4,4) = DEUX
  141. SHY(5,4) = XZER
  142. SHY(6,4) = XZER
  143. SHY(7,4) = XZER
  144. SHY(8,4) = DEUX
  145. SHY(9,4) = XZER
  146. SHY(10,4) = XZER
  147. SHY(11,4) = XZER
  148. SHY(12,4) = DEUX
  149. C
  150. C
  151. ELSEIF (NEF.EQ.102) THEN
  152. C
  153. C= Prisme a 6 Noeuds : HYP6
  154. C
  155. SHY(1,1) = XZER
  156. SHY(2,1) = XZER
  157. SHY(3,1) = DZE - UN
  158. SHY(4,1) = XZER
  159. SHY(5,1) = XZER
  160. SHY(6,1) = XZER
  161. SHY(7,1) = XZER
  162. SHY(8,1) = XZER
  163. SHY(9,1) = XZER
  164. SHY(10,1) = XZER
  165. SHY(11,1) = XZER
  166. SHY(12,1) = UN
  167. C
  168. SHY(1,2) = XZER
  169. SHY(2,2) = XZER
  170. SHY(3,2) = DZE + UN
  171. SHY(4,2) = XZER
  172. SHY(5,2) = XZER
  173. SHY(6,2) = XZER
  174. SHY(7,2) = XZER
  175. SHY(8,2) = XZER
  176. SHY(9,2) = XZER
  177. SHY(10,2) = XZER
  178. SHY(11,2) = XZER
  179. SHY(12,2) = UN
  180. C
  181. SHY(1,3) = QSI / DEUX
  182. SHY(2,3) = (ETA - UN) / DEUX
  183. SHY(3,3) = XZER
  184. SHY(4,3) = UN / DEUX
  185. SHY(5,3) = XZER
  186. SHY(6,3) = XZER
  187. SHY(7,3) = XZER
  188. SHY(8,3) = UN / DEUX
  189. SHY(9,3) = XZER
  190. SHY(10,3) = XZER
  191. SHY(11,3) = XZER
  192. SHY(12,3) = XZER
  193. C
  194. SHY(1,4) = QSI / DEUX
  195. SHY(2,4) = ETA / DEUX
  196. SHY(3,4) = XZER
  197. SHY(4,4) = UN / DEUX
  198. SHY(5,4) = XZER
  199. SHY(6,4) = XZER
  200. SHY(7,4) = XZER
  201. SHY(8,4) = UN / DEUX
  202. SHY(9,4) = XZER
  203. SHY(10,4) = XZER
  204. SHY(11,4) = XZER
  205. SHY(12,4) = XZER
  206. C
  207. SHY(1,5) = (QSI - UN) / DEUX
  208. SHY(2,5) = ETA / DEUX
  209. SHY(3,5) = XZER
  210. SHY(4,5) = UN / DEUX
  211. SHY(5,5) = XZER
  212. SHY(6,5) = XZER
  213. SHY(7,5) = XZER
  214. SHY(8,5) = UN / DEUX
  215. SHY(9,5) = XZER
  216. SHY(10,5) = XZER
  217. SHY(11,5) = XZER
  218. SHY(12,5) = XZER
  219. C
  220. ELSEIF (NEF.EQ.103) THEN
  221. C
  222. C= Cube a 8 Noeuds : HYC8
  223. C
  224. SHY(1,1) = XZER
  225. SHY(2,1) = XZER
  226. SHY(3,1) = (DZE - UN) / HUIT
  227. SHY(4,1) = XZER
  228. SHY(5,1) = XZER
  229. SHY(6,1) = XZER
  230. SHY(7,1) = XZER
  231. SHY(8,1) = XZER
  232. SHY(9,1) = XZER
  233. SHY(10,1) = XZER
  234. SHY(11,1) = XZER
  235. SHY(12,1) = UN / HUIT
  236. C
  237. SHY(1,2) = XZER
  238. SHY(2,2) = XZER
  239. SHY(3,2) = (DZE + UN) / HUIT
  240. SHY(4,2) = XZER
  241. SHY(5,2) = XZER
  242. SHY(6,2) = XZER
  243. SHY(7,2) = XZER
  244. SHY(8,2) = XZER
  245. SHY(9,2) = XZER
  246. SHY(10,2) = XZER
  247. SHY(11,2) = XZER
  248. SHY(12,2) = UN / HUIT
  249. C
  250. SHY(1,3) = XZER
  251. SHY(2,3) = (ETA - UN) / HUIT
  252. SHY(3,3) = XZER
  253. SHY(4,3) = XZER
  254. SHY(5,3) = XZER
  255. SHY(6,3) = XZER
  256. SHY(7,3) = XZER
  257. SHY(8,3) = UN / HUIT
  258. SHY(9,3) = XZER
  259. SHY(10,3) = XZER
  260. SHY(11,3) = XZER
  261. SHY(12,3) = XZER
  262. C
  263. SHY(1,4) = (QSI + UN) / HUIT
  264. SHY(2,4) = XZER
  265. SHY(3,4) = XZER
  266. SHY(4,4) = UN / HUIT
  267. SHY(5,4) = XZER
  268. SHY(6,4) = XZER
  269. SHY(7,4) = XZER
  270. SHY(8,4) = XZER
  271. SHY(9,4) = XZER
  272. SHY(10,4) = XZER
  273. SHY(11,4) = XZER
  274. SHY(12,4) = XZER
  275. C
  276. SHY(1,5) = XZER
  277. SHY(2,5) = (ETA + UN) / HUIT
  278. SHY(3,5) = XZER
  279. SHY(4,5) = XZER
  280. SHY(5,5) = XZER
  281. SHY(6,5) = XZER
  282. SHY(7,5) = XZER
  283. SHY(8,5) = UN / HUIT
  284. SHY(9,5) = XZER
  285. SHY(10,5) = XZER
  286. SHY(11,5) = XZER
  287. SHY(12,5) = XZER
  288. C
  289. SHY(1,6) = (QSI - UN) / HUIT
  290. SHY(2,6) = XZER
  291. SHY(3,6) = XZER
  292. SHY(4,6) = UN / HUIT
  293. SHY(5,6) = XZER
  294. SHY(6,6) = XZER
  295. SHY(7,6) = XZER
  296. SHY(8,6) = XZER
  297. SHY(9,6) = XZER
  298. SHY(10,6) = XZER
  299. SHY(11,6) = XZER
  300. SHY(12,6) = XZER
  301. ELSE
  302. IRET = 1
  303. ENDIF
  304. C
  305. RETURN
  306. END
  307.  
  308.  

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