Télécharger chama3.eso

Retour à la liste

Numérotation des lignes :

  1. C CHAMA3 SOURCE FANDEUR 19/10/08 21:15:11 10329
  2.  
  3. C=======================================================================
  4. C= C H A M A 3 =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul du MCHAML (champ par element aux noeuds) des flux nodaux =
  10. C= equivalents a des sources volumiques. Cas TRIDIMENSIONNEL MASSIF =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= IPSONO (E) Pointeur sur le segment MELVAL des SOURCES =
  15. C= IPGEOM (E) Pointeur sur un objet MAILLAGE elementaire =
  16. C= IPINTE (E) Pointeur sur un segment MINTE contenant les =
  17. C= caracteristiques d'integration =
  18. C= IPCHEQ (S) Pointeur sur un segment MELVAL contenant les =
  19. C= flux de chaleur nodaux equivalents =
  20. C= =
  21. C= Variables locales : =
  22. C= ------------------- =
  23. C= XEL(3,NBPTEL) Coordonnees GLOBALES des noeuds d'un element =
  24. C= VOLU Volume elementaire au point de Gauss =
  25. C= AEL Vecteur de travail =
  26. C=======================================================================
  27.  
  28. SUBROUTINE CHAMA3 (IPSONO,IPGEOM,IPINTE, IPCHEQ)
  29.  
  30. IMPLICIT INTEGER(I-N)
  31. IMPLICIT REAL*8 (A-H,O-Z)
  32.  
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. -INC CCREEL
  37.  
  38. -INC SMCHAML
  39. -INC SMELEME
  40. -INC SMINTE
  41. -INC SMCOORD
  42.  
  43. SEGMENT MMAT1
  44. REAL*8 XEL(3,NBPTEL), AEL(NBPTEL)
  45. ENDSEGMENT
  46.  
  47. C 1 - INITIALISATION
  48. C ====================
  49. C 1.1 - Recuperation d'informations sur le maillage elementaire
  50. C =====
  51. MELEME=IPGEOM
  52. SEGACT,MELEME
  53. NBPTEL=NUM(/1)
  54. NbElt=NUM(/2)
  55. C =====
  56. C 1.2 - Recuperation d'informations sur l'element fini du maillage
  57. C =====
  58. MINTE=IPINTE
  59. c* SEGACT,MINTE
  60. NBPGAU=POIGAU(/1)
  61. C* NBNO=SHPTOT(/2)
  62. C* On doit avoir -> NBNO = NBPTEL
  63. C =====
  64. C 1.3 - Activation du MCHAML contenant les valeurs des sources
  65. C =====
  66. MELVA1=IPSONO
  67. SEGACT,MELVA1
  68. NBPTE1=MELVA1.VELCHE(/1)
  69. NEL1=MELVA1.VELCHE(/2)
  70. * IPSONO s'appuie normalement sur IPINTE
  71. * On doit avoir : NBPGAU = NBPTE1 si NBPTE1 != 1 (champ constant par element)
  72. * NEL1 = NELT si NEL1 != 1 (champ uniforme)
  73. C =====
  74. C 1.4 - Initialisation du segment de travail MMAT1
  75. C =====
  76. SEGINI,MMAT1
  77. C =====
  78. C 1.5 - Initialisation du segment resultat MELVAL contenant les valeurs
  79. C des flux nodaux pour chaque element du maillage (IPGEOM)
  80. C =====
  81. N1PTEL=NBPTEL
  82. N1EL=NbElt
  83. N2PTEL=0
  84. N2EL=0
  85. SEGINI,MELVAL
  86. IPCHEQ=MELVAL
  87.  
  88. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAMOD
  89. C ============================================================
  90. DO iElt=1,NbElt
  91.  
  92. IEMIN1 = MIN(NEL1,iElt)
  93. C =====
  94. C 2.1 - Mise a zero de la source nodale equivalente AEL
  95. C =====
  96. DO iNoe = 1, NBPTEL
  97. AEL(iNoe) = XZero
  98. ENDDO
  99. C =====
  100. C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element
  101. C =====
  102. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,iElt,XEL)
  103. C =====
  104. C 2.3 - Boucle sur les points de Gauss de l'element iElt
  105. C =====
  106. DO iGau=1,NBPGAU
  107. C =======
  108. C 2.3.1 - Calcul du volume associe au point de Gauss iGau
  109. C =======
  110. V1=XZERO
  111. V2=XZERO
  112. V3=XZERO
  113. V4=XZERO
  114. V5=XZERO
  115. V6=XZERO
  116. V7=XZERO
  117. V8=XZERO
  118. V9=XZERO
  119. DO iNoe = 1, NBPTEL
  120. V1=V1+SHPTOT(2,iNoe,iGau)*XEL(2,iNoe)
  121. V2=V2+SHPTOT(3,iNoe,iGau)*XEL(3,iNoe)
  122. V3=V3+SHPTOT(3,iNoe,iGau)*XEL(2,iNoe)
  123. V4=V4+SHPTOT(2,iNoe,iGau)*XEL(3,iNoe)
  124. V5=V5+SHPTOT(3,iNoe,iGau)*XEL(1,iNoe)
  125. V6=V6+SHPTOT(2,iNoe,iGau)*XEL(1,iNoe)
  126. V7=V7+SHPTOT(4,iNoe,iGau)*XEL(1,iNoe)
  127. V8=V8+SHPTOT(4,iNoe,iGau)*XEL(2,iNoe)
  128. V9=V9+SHPTOT(4,iNoe,iGau)*XEL(3,iNoe)
  129. ENDDO
  130. VOLU=(V3*V9-V2*V8)*V6+(V2*V7-V5*V9)*V1+(V5*V8-V3*V7)*V4
  131. VOLU=ABS(VOLU)*POIGAU(iGau)
  132. C =======
  133. C 2.3.2 - Calcul de la contribution du point de Gauss a AEL
  134. C pour cet element (MCHAML aux noeuds)
  135. C =======
  136. IGMIN1 = MIN(iGau,NBPTE1)
  137. R_z = VOLU * MELVA1.VELCHE(IGMIN1,IEMIN1)
  138. DO iNoe = 1, NBPTEL
  139. AEL(iNoe) = AEL(iNoe) + SHPTOT(1,iNoe,iGau) * R_z
  140. ENDDO
  141. ENDDO
  142. C =====
  143. C 2.4 - Calcul des flux equivalents sur cet element (MCHAML aux noeuds)
  144. C =====
  145. DO iNoe = 1,NBPTEL
  146. VELCHE(iNoe,iElt) = AEL(iNoe)
  147. ENDDO
  148. ENDDO
  149.  
  150. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  151. C ====================================================
  152. SEGSUP,MMAT1
  153.  
  154. C* RETURN
  155. END
  156.  
  157.  
  158.  

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