Télécharger lfroa.eso

Retour à la liste

Numérotation des lignes :

lfroa
  1. C LFROA SOURCE FANDEUR 11/07/19 21:16:22 7042
  2.  
  3. SUBROUTINE LFROA(IPOGEO,IPMATR,IPMINT,IVAMAT,
  4. 1 IVACAR,MELE,MFR,LRE,NDDL)
  5. C
  6. C***********************************************************************
  7. C *
  8. C Routine appelée par FRVISQ. *
  9. C *
  10. C Calcule l'amortissement de frontière pour les liquides de face LSE2 *
  11. C dans le cas 2D, ou de face LTR3 ou LQU4 dans le cas 3D. *
  12. C *
  13. C Entrées : *
  14. C -------- *
  15. C *
  16. C IPOGEO : pointeur sur le maillage de l'enveloppe des massifs, *
  17. C type MELEME *
  18. C IPMATR : pointeur sur le segment IMATRI, chapeau des rigidités *
  19. C élémentaires *
  20. C IPMINT : pointeur sur le segment d'intégration, type MINTE *
  21. C IVAMAT : pointeur sur un segment MPTVAL de données matériau *
  22. C IVACAR : pointeur sur un segment MPTVAL de caractéristiques *
  23. C (épaisseur dans le cas contraintes planes) *
  24. C MELE : numéro de l'élément fini associé à la face du massif *
  25. C MFR : numéro de la formulation *
  26. C LRE : taille de la matrice d'amortissement à construire *
  27. C NDDL : nombre de degrés de liberté *
  28. C *
  29. C Remplit le segment XMATRI pour chaque élément de la sous-zone. *
  30. C***********************************************************************
  31. C
  32. IMPLICIT INTEGER(I-N)
  33. IMPLICIT REAL*8(A-H,O-Z)
  34. C
  35.  
  36. -INC PPARAM
  37. -INC CCOPTIO
  38. -INC CCREEL
  39.  
  40. -INC SMRIGID
  41. -INC SMELEME
  42. -INC SMCOORD
  43. -INC SMCHAML
  44. -INC SMINTE
  45. C
  46. SEGMENT MPTVAL
  47. INTEGER IPOS(NS),NSOF(NS)
  48. INTEGER IVAL(NCOSOU)
  49. CHARACTER*16 TYVAL(NCOSOU)
  50. ENDSEGMENT
  51. C
  52. SEGMENT,MWORK
  53. REAL*8 XE(3,NBNN)
  54. REAL*8 REL(LRE,LRE)
  55. REAL*8 SHPWRK(6,NBNN),BGENE(NDDL,LRE)
  56. REAL*8 VALMAT(NV1)
  57. REAL*8 RCLMAT(NDDL,NDDL)
  58. ENDSEGMENT
  59. C
  60. MELEME=IPOGEO
  61. c* SEGACT MELEME
  62. NBNN=NUM(/1)
  63. NBELEM=NUM(/2)
  64. C
  65. MINTE=IPMINT
  66. c* SEGACT,MINTE
  67. NBPGAU=POIGAU(/1)
  68. C
  69. DIM3=1.D0
  70. C
  71. xMATRI=IPMATR
  72. c* SEGACT,xMATRI*MOD
  73. c* NLIGRD=LRE
  74. c* NLIGRP=LRE
  75.  
  76. NV1=5
  77. SEGINI,MWORK
  78. C
  79. C boucle sur les éléments
  80. C
  81. DO 1 IB=1,NBELEM
  82. C
  83. C on cherche les coordonnées de l'élément IB
  84. C
  85. CALL DOXE(XCOOR,IDIM,NBNN,NUM,IB,XE)
  86. CALL ZERO(REL,LRE,LRE)
  87. CALL ZERO(RCLMAT,NDDL,NDDL)
  88. C
  89. C boucle sur les points de Gauss
  90. C
  91. DO 10 IGAU=1,NBPGAU
  92. C
  93. C récupération de l'épaisseur
  94. C
  95. IF (IFOUR.EQ.-2) THEN
  96. IF (IVACAR.NE.0) THEN
  97. MPTVAL=IVACAR
  98. MELVAL=IVAL(1)
  99. IF (MELVAL.NE.0) THEN
  100. IGMN=MIN(IGAU,VELCHE(/1))
  101. IBMN=MIN(IB,VELCHE(/2))
  102. DIM3=VELCHE(IGMN,IBMN)
  103. ELSE
  104. DIM3=1.D0
  105. ENDIF
  106. ENDIF
  107. ENDIF
  108. C
  109. C récupération des données matériau
  110. C
  111. MPTVAL=IVAMAT
  112. DO 11 J=1,5
  113. MELVAL=IVAL(J)
  114. IGMN=MIN(IGAU,VELCHE(/1))
  115. IBMN=MIN(IB,VELCHE(/2))
  116. VALMAT(J)=VELCHE(IGMN,IBMN)
  117. 11 CONTINUE
  118. C
  119. RHO=VALMAT(1)
  120. CSON=VALMAT(2)
  121. ROREF=VALMAT(3)
  122. CREF=VALMAT(4)
  123. RLCAR=VALMAT(5)
  124. C
  125. C coefficient d'amortissement normalisé
  126. C
  127. RCL=(1.D0/CSON/rho)*ROREF*RLCAR*roref*cref**2/rlcar
  128. C
  129. C matrice RCLMAT
  130. C
  131. RCLMAT(1,1)=RCL
  132. RCLMAT(2,2)=RCL
  133. C
  134. C calcul de la matrice N des fonctions de forme
  135. C
  136. XDPGE=0.D0
  137. YDPGE=0.D0
  138. CALL NMATST(IGAU,MELE,MFR,NBNN,LRE,IFOUR,NIFOUR,NDDL,
  139. 1 DIM3,XE,SHPTOT,SHPWRK,BGENE,DJAC,XDPGE,YDPGE)
  140. C
  141. C mise à zéro des composantes sur p
  142. C
  143. DO 21 J=1,LRE
  144. BGENE(2,J)=0.D0
  145. 21 CONTINUE
  146. C
  147. C calcul du jacobien
  148. C
  149. IF (IDIM.EQ.3) THEN
  150. DXDQSI=0.D0
  151. DYDQSI=0.D0
  152. DZDQSI=0.D0
  153. DXDETA=0.D0
  154. DYDETA=0.D0
  155. DZDETA=0.D0
  156. DO 40 I=1,NBNN
  157. DXDQSI=DXDQSI+SHPTOT(2,I,IGAU)*XE(1,I)
  158. DYDQSI=DYDQSI+SHPTOT(2,I,IGAU)*XE(2,I)
  159. DXDETA=DXDETA+SHPTOT(3,I,IGAU)*XE(1,I)
  160. DYDETA=DYDETA+SHPTOT(3,I,IGAU)*XE(2,I)
  161. DZDQSI=DZDQSI+SHPTOT(2,I,IGAU)*XE(3,I)
  162. DZDETA=DZDETA+SHPTOT(3,I,IGAU)*XE(3,I)
  163. 40 CONTINUE
  164. DJAC=SQRT((DYDQSI*DZDETA-DYDETA*DZDQSI)**2+
  165. 1 (DXDETA*DZDQSI-DXDQSI*DZDETA)**2+
  166. 2 (DXDQSI*DYDETA-DXDETA*DYDQSI)**2)
  167. ELSE
  168. c* ELSE IF(IDIM.EQ.2) THEN
  169. DXDQSI=0.D0
  170. DYDQSI=0.D0
  171. DO I=1,NBNN
  172. DXDQSI=DXDQSI+SHPTOT(2,I,IGAU)*XE(1,I)
  173. DYDQSI=DYDQSI+SHPTOT(2,I,IGAU)*XE(2,I)
  174. ENDDO
  175. DJAC=SQRT(DXDQSI**2+DYDQSI**2)
  176. ENDIF
  177. C
  178. C calcul de l'élément de volume
  179. C
  180. IF (IFOUR.LT.0.OR.IFOUR.EQ.2) THEN
  181. R=1.D0
  182. IF (IFOUR.EQ.-2) R=DIM3
  183. ELSE
  184. R=0.D0
  185. DO I=1,NBNN
  186. R=R+SHPTOT(1,I,IGAU)*XE(1,I)
  187. ENDDO
  188. IF (IFOUR.EQ.0.OR.(IFOUR.EQ.1
  189. 1 .AND.NIFOUR.EQ.0)) THEN
  190. R=2*XPI*R
  191. ELSE
  192. c* ELSEIF (IFOUR.EQ.1.AND.NIFOUR.NE.0) THEN
  193. R=XPI*R
  194. ENDIF
  195. ENDIF
  196. C
  197. C construction de la matrice d'amortissement
  198. C
  199. DJAC=DJAC*POIGAU(IGAU)*R
  200. CALL BDBST(BGENE,DJAC,RCLMAT,LRE,NDDL,REL)
  201. C
  202. 10 CONTINUE
  203. C
  204. C remplissage de XMATRI
  205. C
  206. CALL REMPMT(REL,LRE,RE(1,1,ib))
  207. *
  208. ** la matrice calculée ci dessus serait correcte si l'on avait
  209. ** une formulation uniquement en pi. Comme on retient la formulation
  210. ** en p et pi et pour ne rien ajouter sur la ligne en pi (si non on
  211. ** ne satisfait plus la relation entre p et pi) on aboutit à une matrice
  212. ** disymetrique avec des termes uniquement sur le lignes en pi et collones
  213. ** en p. D'où la matrice suivante :
  214.  
  215. do 30 i = 1, lre
  216. do 31 j = 2, lre
  217. ix = mod(j,2)
  218. if (ix.eq.0) then
  219. re(i,j,ib) = -re( i,(j-1),ib)
  220. re( i,(j-1),ib) = 0.d0
  221. endif
  222. 31 continue
  223. 30 continue
  224.  
  225. 1 CONTINUE
  226.  
  227. SEGSUP,MWORK
  228. c* SEGDES MELEME,MINTE,xMATRI
  229.  
  230. RETURN
  231. END
  232.  
  233.  
  234.  

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