Télécharger chama1.eso

Retour à la liste

Numérotation des lignes :

chama1
  1. C CHAMA1 SOURCE FANDEUR 19/10/08 21:15:09 10329
  2.  
  3. C=======================================================================
  4. C= C H A M A 1 =
  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 UNIDIMENSIONNEL 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 CHAMA1 (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= Quelques constantes (2.Pi et 4.Pi)
  48. PARAMETER (X2Pi=6.283185307179586476925286766559D0)
  49. PARAMETER (X4Pi=12.566370614359172953850573533118D0)
  50.  
  51. C 1 - INITIALISATION
  52. C ====================
  53. C 1.1 - Recuperation d'informations sur le maillage elementaire
  54. C =====
  55. MELEME=IPGEOM
  56. SEGACT,MELEME
  57. NBPTEL=NUM(/1)
  58. NbElt=NUM(/2)
  59. C =====
  60. C 1.2 - Recuperation d'informations sur l'element fini du maillage
  61. C =====
  62. MINTE=IPINTE
  63. C* SEGACT,MINTE
  64. NBPGAU=POIGAU(/1)
  65. C* NBNO=SHPTOT(/2)
  66. C* On doit avoir -> NBNO = NBPTEL
  67. C =====
  68. C 1.3 - Activation du MCHAML contenant les valeurs des sources
  69. C =====
  70. MELVA1=IPSONO
  71. SEGACT,MELVA1
  72. NBPTE1=MELVA1.VELCHE(/1)
  73. NEL1=MELVA1.VELCHE(/2)
  74. * IPSONO s'appuie normalement sur IPINTE
  75. * On doit avoir : NBPGAU = NBPTE1 si NBPTE1 != 1 (champ constant par element)
  76. * NEL1 = NELT si NEL1 != 1 (champ uniforme)
  77. C =====
  78. C 1.4 - Initialisation du segment de travail MMAT1
  79. C =====
  80. SEGINI,MMAT1
  81. C =====
  82. C 1.5 - Initialisation du segment resultat MELVAL contenant les valeurs
  83. C des flux nodaux pour chaque element du maillage (IPGEOM)
  84. C =====
  85. N1PTEL=NBPTEL
  86. N1EL=NbElt
  87. N2PTEL=0
  88. N2EL=0
  89. SEGINI,MELVAL
  90. IPCHEQ=MELVAL
  91.  
  92. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IMAMOD
  93. C ============================================================
  94. DO iElt=1,NbElt
  95.  
  96. IEMIN1 = MIN(NEL1,iElt)
  97. C =====
  98. C 2.1 - Mise a zero de la source nodale equivalente AEL
  99. C =====
  100. DO iNoe = 1, NBPTEL
  101. AEL(iNoe) = XZero
  102. ENDDO
  103. C =====
  104. C 2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element
  105. C =====
  106. CALL DOXE(XCOOR,IDIM,NBPTEL,NUM,iElt,XEL)
  107. C =====
  108. C 2.3 - Boucle sur les points de Gauss de l'element iElt
  109. C =====
  110. DO iGau=1,NBPGAU
  111. C =======
  112. C 2.3.1 - Calcul du volume associe au point de Gauss iGau
  113. C Traitement des modes 1D axisymetriques et spherique
  114. C =======
  115. VOLU=XZERO
  116. DO iNoe = 1, NBPTEL
  117. VOLU=VOLU+SHPTOT(2,iNoe,iGau)*XEL(1,iNoe)
  118. ENDDO
  119. IF (IFOMOD.EQ.4.OR.IFOMOD.EQ.5) THEN
  120. CALL DISTRR(XEL,SHPTOT(1,1,iGau),NBPTEL,RR)
  121. IF (IFOMOD.EQ.5) THEN
  122. VOLU=X4Pi*RR*RR*VOLU
  123. ELSE
  124. VOLU=X2Pi*RR*VOLU
  125. ENDIF
  126. ENDIF
  127. VOLU=ABS(VOLU)*POIGAU(iGau)
  128. C =======
  129. C 2.3.2 - Calcul de la contribution du point de Gauss a AEL
  130. C pour cet element (MCHAML aux noeuds)
  131. C =======
  132. IGMIN1 = MIN(iGau,NBPTE1)
  133. R_z = VOLU * MELVA1.VELCHE(IGMIN1,IEMIN1)
  134. DO iNoe = 1, NBPTEL
  135. AEL(iNoe) = AEL(iNoe) + SHPTOT(1,iNoe,iGau) * R_z
  136. ENDDO
  137. ENDDO
  138. C =====
  139. C 2.4 - Calcul des flux equivalents sur cet element (MCHAML aux noeuds)
  140. C =====
  141. DO iNoe = 1,NBPTEL
  142. VELCHE(iNoe,iElt) = AEL(iNoe)
  143. ENDDO
  144. ENDDO
  145.  
  146. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  147. C ====================================================
  148. SEGSUP,MMAT1
  149.  
  150. C* RETURN
  151. END
  152.  
  153.  
  154.  

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