Télécharger tconv1.eso

Retour à la liste

Numérotation des lignes :

tconv1
  1. C TCONV1 SOURCE OF166741 25/02/21 21:18:47 12166
  2. SUBROUTINE TCONV1(ipmail,IPINTE,IVAMAT,ipmatr,LRE,NLG,NEF)
  3.  
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6.  
  7. C=======================================================================
  8. C= T C O N V 1 =
  9. C= ----------- =
  10. C= =
  11. C= Fonction : =
  12. C= ---------- =
  13. C= Calcul de la matrice de CONVECTION des elements a integration =
  14. C= numerique =
  15. C= =
  16. C= Clement BERTHINIER, le 04 fevrier 2021. =
  17. C=======================================================================
  18.  
  19. -INC PPARAM
  20. -INC CCOPTIO
  21. -INC CCREEL
  22.  
  23. -INC SMCOORD
  24. -INC SMELEME
  25. -INC SMRIGID
  26. -INC SMCHAML
  27. -INC SMINTE
  28.  
  29. -INC TMPTVAL
  30.  
  31. SEGMENT MMAT1
  32. REAL*8 CEL(LRE,LRE),XE(3,NBNN)
  33. REAL*8 SHP(6,NBNN),FORME(NBNN)
  34. ENDSEGMENT
  35.  
  36. MELEME = IPMAIL
  37. NBNN = NUM(/1)
  38. NBELEM = NUM(/2)
  39.  
  40. MINTE = IPINTE
  41. NBPGAU = POIGAU(/1)
  42.  
  43. C Preparation du champ de caracteristiques 'H'
  44. MPTVAL = IVAMAT
  45. MELVAL = MPTVAL.IVAL(1)
  46. IVEL1 = VELCHE(/1)
  47. IVEL2 = VELCHE(/2)
  48.  
  49. XMATRI = IPMATR
  50.  
  51. SEGINI,MMAT1
  52.  
  53. C 1.7 - Comme on traite la CONVECTION et les echanges FACE A FACE, on
  54. C introduit le nombre de NOEUDS pour les elements FACE A FACE.
  55. C ===
  56. NBN2 = NBNN
  57. IF ((NEF.EQ.12) .OR. (NEF.EQ.13) .OR. (NEF.EQ.18) .OR.
  58. & (NEF.EQ.19) .OR. (NEF.EQ.20) .OR. (NEF.EQ.21) .OR.
  59. & ((IDIM.EQ.1).AND.(NEF.EQ.2)) )
  60. & NBN2 = NBNN / 2
  61. C Equivalent a ? IF (ICON.GE.7) NBN2 = NBNN / 2
  62.  
  63.  
  64. C 3.2 - Boucle sur les elements du maillage elementaire (ipmail)
  65. C ==============================================================
  66. DO iel = 1, nbelem
  67.  
  68. iemn = MIN(iel,IVEL2)
  69. C- Mise a zero de la matrice de CONVECTION de l'element iel
  70. CALL ZERO(CEL,LRE,LRE)
  71. C- Recuperation des coordonnees GLOABLES des noeuds de l'element
  72. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iel,XE)
  73.  
  74. C- BOUCLE sur les points de Gauss de l'element iel
  75. iFois = 0
  76. DO igau = 1, NBPGAU
  77.  
  78. C-- Calcul du jacobien, des fonctions de forme et de leurs
  79. C-- derivees au point de Gauss igau
  80. CALL TCONV3(NLG,igau,NBNN,NBN2,XE,SHPTOT,SHP,FORME,DJAC)
  81. IF (IERR.NE.0) RETURN
  82. IF (DJAC.LT.XZERO) iFois=iFois+1
  83. DJAC = ABS(DJAC)
  84. C-- Erreur si le jacobien est nul en ce point de Gauss
  85. IF (DJAC.LT.XPETIT) THEN
  86. INTERR(1) = iel
  87. CALL ERREUR(259)
  88. RETURN
  89. ENDIF
  90. C-- Calcul du terme .Vol en ce point de Gauss
  91. igmn = MIN(igau,IVEL1)
  92. COEF = DJAC * POIGAU(igau) * VELCHE(igmn,iemn)
  93. C-- Calcul de la contribution du point de Gauss a la matrice de
  94. C-- CONVECTION elementaire pour cet element fini
  95. CALL NTNST(FORME,COEF,LRE,1,CEL)
  96. ENDDO
  97. C- FIN DE LA BOUCLE sur les points d'integration de l'element iel
  98.  
  99. C- Erreur si, en un point de Gauss, le jacobien change de signe.
  100. IF (iFois.NE.0.AND.iFois.NE.NBPGAU) THEN
  101. INTERR(1) = iel
  102. CALL ERREUR(195)
  103. RETURN
  104. ENDIF
  105. C- Stockage de la matrice de CONVECTION pour cet element fini :
  106. C- remplissage de xmatri
  107. CALL REMPMT(CEL,LRE,xmatri.re(1,1,iel))
  108.  
  109. ENDDO
  110. C= FIN DE LA BOUCLE sur les elements
  111.  
  112. SEGSUP,MMAT1
  113.  
  114. RETURN
  115. END
  116.  
  117.  
  118.  

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