Télécharger trihm3.eso

Retour à la liste

Numérotation des lignes :

trihm3
  1. C TRIHM3 SOURCE CHAT 05/01/13 03:47:17 5004
  2. SUBROUTINE TRIHM3(IGAU,ITEL,NBNO,XEL,SHPTOT,SHP,RHOS,RHOF,B11,B22,
  3. #B12,F11,F12,SFLU,SCEL,POIGAU,VKL12,VKL22,VKL23,VKL33,LRE,
  4. #REL,ISDJC,IRET)
  5. C=======================================================================
  6. C
  7. C CALCULE LA MATRICE DE MASSE DANS LE CAS PLAN POUR
  8. C LA FORMULATION (37) HOMOGENE
  9. C=======================================================================
  10. C NBDL = NOMBRE DE DDL PAR NOEUD
  11. C INPUT
  12. C IGAU=NUMERO DU POINT DE GAUSS
  13. C ITEL=NUMERO DE L ELEMENT DANS NOMTP
  14. C NBNO=NOMBRE DE NOEUDS
  15. C XEL =COORDONNEES DE L ELEMENT
  16. C RHOS = MASSE DU SOLIDE
  17. C RHOF = MASSE VOLUMIQUE DU FLUIDE
  18. C B11,B22,B12 = PERMEABILITE ACOUSTIQUE DU MILIEU
  19. C F11,F12 = NORME
  20. C SFLU = SURFACE FLUIDE DANS LA CELLULE ELEMENTAIRE
  21. C SCEL = SURFACE DE LA CELLULE ELEMENTAIRE
  22. C POIGAU=MINTE1.POIGAU(IGAU)
  23. C VKL12=-((COEFPR*COEFPI)/(RHOF*C**2))*SFLU/SCEL
  24. C VKL22=-(COEFPI**2)/(RHOF*SCEL)
  25. C VKL23= COEFPI/SCEL
  26. C VKL33= 1/SCEL
  27. C LRE =NOMBRE DE D.D.L DE LA MATRICE DE RIGIDITE
  28. C SHPTOT(6,NBNO,NBGAU)=FONCTIONS DE FORMES ET DERIVEES
  29. C ISDJC= INDICATEUR DU SIGNE DU JACOBIEN
  30. C ZONE DE TRAVAIL
  31. C SHP(6,NBNO)=TABLEAU DE TRAVAIL
  32. C OUTPUT
  33. C REL=MATRICE DE RIGIDITE
  34. C ISDJC= INDICATEUR DU SIGNE DU JACOBIEN
  35. C IRET=INDICATEUR = 1 : SUCCES
  36. C = 0 : ECHEC (ITEL INCOMPATIBLE AVEC LA FORMULATION
  37. C = 2 : ECHEC ( JACOBIEN NUL )
  38. C=======================================================================
  39. IMPLICIT INTEGER(I-N)
  40. IMPLICIT REAL*8 (A-H,O-Z)
  41. DIMENSION XEL(3,*),SHP(6,*),SHPTOT(6,NBNO,*),REL(LRE,*)
  42. IF (ITEL.EQ.92) GOTO 10
  43. C
  44. C ERREUR : TYPE D' ELEMENT INCOMPATIBLE AVEC LA FORMULATION
  45. C
  46. IRET = 0
  47. GOTO 666
  48. 10 CONTINUE
  49. C
  50. C SHP(1,I) : FONCTION DE FORME
  51. C SHP(2,I) : DERIVEE % X DE LA FONCTION DE FORME
  52. C SHP(3,I) : DERIVEE % Y DE LA FONCTION DE FORME
  53. C
  54. DO 101 NP=1,NBNO
  55. SHP(1,NP)=SHPTOT(1,NP,IGAU)
  56. SHP(2,NP)=SHPTOT(2,NP,IGAU)
  57. SHP(3,NP)=SHPTOT(3,NP,IGAU)
  58. 101 CONTINUE
  59. IDIM=2
  60. CALL JACOBI(XEL,SHP,IDIM,NBNO,DJAC)
  61. IF (DJAC.EQ.0.) GOTO 667
  62. IRET = 1
  63. IF (DJAC.LT.0.) ISDJC = ISDJC + 1
  64. DJAC=ABS(DJAC)*POIGAU
  65. C
  66. C TERMES EN P*PI
  67. C NBDL : NOMBRE DE D.D.L PAR NOEUD ( = 4 )
  68. C
  69. NBDL = 4
  70. IX1=0
  71. IY1=0
  72. DO 102 IX=2,LRE ,NBDL
  73. IX1=IX1 + 1
  74. DO 103 IY=1,IX ,NBDL
  75. IY1=IY1 + 1
  76. REL(IY,IX) = REL(IY,IX) + DJAC*VKL12*SHP(1,IX1)*SHP(1,IY1)
  77. REL(IX,IY) = REL(IY,IX)
  78. 103 CONTINUE
  79. IY1=0
  80. 102 CONTINUE
  81. DO 104 IX=2,LRE-NBDL,NBDL
  82. IX1=IX +NBDL-1
  83. DO 105 IY=IX1,LRE ,NBDL
  84. REL(IX,IY) = REL(IX-1,IY+1)
  85. REL(IY,IX) = REL(IX,IY)
  86. 105 CONTINUE
  87. 104 CONTINUE
  88. C
  89. C TERMES EN PI*PI
  90. C
  91. IX1=0
  92. IY1=0
  93. DO 106 IX=2,LRE ,NBDL
  94. IX1=IX1 + 1
  95. DO 107 IY=2,IX ,NBDL
  96. IY1=IY1 + 1
  97. REL(IY,IX) = REL(IY,IX) + DJAC*VKL22*((B11*SHP(2,IX1)*SHP(2,IY1)+
  98. #B22*SHP(3,IX1)*SHP(3,IY1)+B12*(SHP(2,IX1)*SHP(3,IY1)+SHP(3,IX1)*
  99. #SHP(2,IY1))))
  100. REL(IX,IY) = REL(IY,IX)
  101. 107 CONTINUE
  102. IY1=0
  103. 106 CONTINUE
  104. C
  105. C TERMES EN PI*(UX,UY)
  106. C
  107. D11=(SCEL-B11)*F12
  108. D22=(SCEL-B22)*F12
  109. D12=-B12*F12
  110. IX1=0
  111. IY1=0
  112. DO 108 IX=3,LRE ,NBDL
  113. IX1=IX1 + 1
  114. DO 109 IY=2,IX ,NBDL
  115. IY1=IY1 + 1
  116. REL(IY,IX) = REL(IY,IX) + DJAC*VKL23 * ( D11*SHP(2,IY1) +
  117. #D12*SHP(3,IY1) ) * SHP(1,IX1)
  118. REL(IY,IX+1) = REL(IY,IX+1)+DJAC*VKL23 * ( D12*SHP(2,IY1) +
  119. #D22*SHP(3,IY1) ) * SHP(1,IX1)
  120. REL(IX,IY) = REL(IY,IX)
  121. REL(IX+1,IY) = REL(IY,IX+1)
  122. 109 CONTINUE
  123. IY1=0
  124. 108 CONTINUE
  125. IX1=1
  126. IY1=0
  127. DO 110 IX=2+NBDL,LRE ,NBDL
  128. IX1=IX1 + 1
  129. DO 111 IY=3,IX ,NBDL
  130. IY1=IY1 + 1
  131. REL(IY,IX) = REL(IY,IX) + DJAC*VKL23 * ( D11*SHP(2,IX1) +
  132. #D12*SHP(3,IX1) ) * SHP(1,IY1)
  133. REL(IY+1,IX) = REL(IY+1,IX) + DJAC*VKL23 * (D12*SHP(2,IX1)+
  134. #D22*SHP(3,IX1) ) * SHP(1,IY1)
  135. REL(IX,IY) = REL(IY,IX)
  136. REL(IX,IY+1) = REL(IY+1,IX)
  137. 111 CONTINUE
  138. IY1=0
  139. 110 CONTINUE
  140. C
  141. C TERMES EN (UX,UY)*(UX,UY)
  142. C
  143. H11=RHOS + RHOF*(SFLU-B11)*F11
  144. H22=RHOS + RHOF*(SFLU-B22)*F11
  145. H12= (-1.)*RHOF*B12*F11
  146. IX1=0
  147. IY1=0
  148. DO 112 IX=3,LRE ,NBDL
  149. IX1=IX1 + 1
  150. DO 113 IY=3,IX ,NBDL
  151. IY1=IY1 + 1
  152. REL(IY,IX) = REL(IY,IX) + DJAC*VKL33*H11*SHP(1,IY1)*SHP(1,IX1)
  153. REL(IY,IX+1) = REL(IY,IX+1)+DJAC*VKL33*H12*SHP(1,IY1)*SHP(1,IX1)
  154. REL(IY+1,IX+1)=REL(IY+1,IX+1)+DJAC*VKL33*H22*SHP(1,IY1)*SHP(1,IX1)
  155. REL(IX,IY) = REL(IY,IX)
  156. REL(IY+1,IX) = REL(IY,IX+1)
  157. REL(IX+1,IY) = REL(IY,IX+1)
  158. REL(IX,IY+1) = REL(IY+1,IX)
  159. REL(IX+1,IY+1) = REL(IY+1,IX+1)
  160. 113 CONTINUE
  161. IY1=0
  162. 112 CONTINUE
  163. GOTO 666
  164. C
  165. C MESSAGE D ERREUR : ELEMENT A SURFACE NULLE
  166. C
  167. 667 CONTINUE
  168. IRET = 2
  169. GOTO 666
  170. C
  171. 666 CONTINUE
  172. RETURN
  173. END
  174.  
  175.  

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