Télécharger capac3.eso

Retour à la liste

Numérotation des lignes :

capac3
  1. C CAPAC3 SOURCE CB215821 17/01/16 21:15:10 9279
  2.  
  3. C=======================================================================
  4. C= C A P A C 3 =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul de la matrice de CAPACITE CALORIFIQUE pour des elements de =
  10. C= COQUE TRIANGLE (COQ3) a integration semi-analytique =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= NEF (E) Numero de l'ELEMENT FINI dans NOMTP =
  15. C= IPMAIL (E) Numero du segment IMODEL dans le segment MMODEL =
  16. C= CLAT (E) Chaleur latente du changement de phase =
  17. C= IPRIGI (E/S) Matrice de CAPACITE (RIGIDITE) resultat (ACTIF) =
  18. C=======================================================================
  19.  
  20. SUBROUTINE CAPAC3 (NEF,IPMAIL,IPINTE,IVAMAT,NVAMAT,IVAPHA,NVAPHA,
  21. & IPMATR,NLIGR,INFOR)
  22.  
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8 (A-H,O-Z)
  25.  
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC CCREEL
  30. -INC CCHAMP
  31.  
  32. -INC SMCHAML
  33. -INC SMCOORD
  34. -INC SMELEME
  35. -INC SMINTE
  36. -INC SMRIGID
  37.  
  38. CHARACTER*16 MOFOR
  39.  
  40. SEGMENT MMAT1
  41. REAL*8 XE(3,NBNN),FORME(NBNN)
  42. REAL*8 CAPSS(NBNN,NBNN),CAPV(NLIGR,NLIGR)
  43. ENDSEGMENT
  44.  
  45. SEGMENT MPTVAL
  46. INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  47. CHARACTER*16 TYVAL(NCOSOU)
  48. ENDSEGMENT
  49.  
  50. C= Quelques constantes numeriques
  51. PARAMETER (X1s15=0.066666666666666666666666666667D0)
  52. PARAMETER (X2s15=0.133333333333333333333333333333D0)
  53. PARAMETER (X8s15=0.533333333333333333333333333333D0)
  54. PARAMETER (X1s30=0.033333333333333333333333333333D0)
  55.  
  56. SEGMENT SVACOM
  57. REAL*8 VACOMP(NVAMAT)
  58. ENDSEGMENT
  59.  
  60. SEGINI,SVACOM
  61.  
  62. C 1 - INITIALISATIONS ET VERIFICATIONS
  63. C ======================================
  64. MELEME = IPMAIL
  65. c* SEGACT,MELEME
  66. NBNN = NUM(/1)
  67. NBELEM = NUM(/2)
  68. NBNN2 = 2*NBNN
  69. c* NBNN3 = 3*NBNN
  70. C =====
  71. MINTE = IPINTE
  72. c* SEGACT,MINTE
  73. NBPGAU = POIGAU(/1)
  74. C =====
  75. MPTVAL = IVAMAT
  76. c* SEGACT,MPTVAL
  77. C- Test sur la constance du champ d'epaisseur : supprime
  78. c* IPMELV = IVAL(3)
  79. c* CALL QUELCH(IPMELV,IOK)
  80. c* IF (IOK.NE.0) THEN
  81. c* CALL ERREUR(566)
  82. c* GOTO 9990
  83. c* ENDIF
  84. C =====
  85. c* IF (IVAPHA.NE.0) THEN
  86. c* MPTVAL = IVAPHA
  87. c* SEGACT,MPTVAL
  88. c* ENDIF
  89. C =====
  90. XMATRI = IPMATR
  91. c* SEGACT,XMATRI*MOD
  92. c* NLIGRP = NBNN3 = NLIGR
  93. c* NLIGRD = NBNN3 = NLIGR
  94. C =====
  95. SEGINI,MMAT1
  96.  
  97. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  98. C ============================================================
  99. DO iElt = 1, NBELEM
  100. C =====
  101. C 2.1 - Recuperation des coordonnees GLOABLES des noeuds de l'element
  102. C =====
  103. CALL ZERO(CAPV,NLIGR,NLIGR)
  104. C =====
  105. C 2.2 - Recuperation des coordonnees GLOABLES des noeuds de l'element
  106. C =====
  107. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iElt,XE)
  108. C =====
  109. C 2.3 - Boucle sur les points de Gauss de l'element iElt
  110. C =====
  111. DO iGau = 1, NBPGAU
  112.  
  113. C- Calcul du volume associe a ce point de Gauss (jacobien)
  114. S1=XZero
  115. S2=XZero
  116. S3=XZero
  117. S4=XZero
  118. S5=XZero
  119. S6=XZero
  120. DO iNoe = 1, NBNN
  121. S1=S1+SHPTOT(2,iNoe,iGau)*XE(2,iNoe)
  122. S2=S2+SHPTOT(3,iNoe,iGau)*XE(3,iNoe)
  123. S3=S3+SHPTOT(3,iNoe,iGau)*XE(2,iNoe)
  124. S4=S4+SHPTOT(2,iNoe,iGau)*XE(3,iNoe)
  125. S5=S5+SHPTOT(3,iNoe,iGau)*XE(1,iNoe)
  126. S6=S6+SHPTOT(2,iNoe,iGau)*XE(1,iNoe)
  127. ENDDO
  128. SurfX=S1*S2-S3*S4
  129. SurfY=S4*S5-S2*S6
  130. SurfZ=S6*S3-S5*S1
  131. DJAC = ABS(SurfX*SurfX+SurfY*SurfY+SurfZ*SurfZ)
  132. C- Verification que le volume n'est pas nul en ce point de Gauss
  133. IF (DJAC.LT.XPETIT) THEN
  134. INTERR(1) = iElt
  135. CALL ERREUR(259)
  136. GOTO 9990
  137. ENDIF
  138. DJAC = SQRT(DJAC)
  139.  
  140. C MPTVAL = IVAMAT
  141. DO i = 1, NVAMAT
  142. MELVAL = IVAL(i)
  143. IGMN = MIN(iGau,VELCHE(/1))
  144. IEMN = MIN(iElt,VELCHE(/2))
  145. VACOMP(i) = VELCHE(IGMN,IEMN)
  146. ENDDO
  147. VALRHO = VACOMP(1)
  148.  
  149. C CAS THERMIQUE on fait RHO.CP
  150. IF (INFOR .EQ. 1) VACOMP(1) = VALRHO * VACOMP(2)
  151.  
  152. CAPA = DJAC * POIGAU(iGau) * VACOMP(1)
  153. C- Calcul de la contribution du point de Gauss a la matrice
  154. C- CAPACITE elementaire pour cet element fini
  155. CALL ZERO(CAPSS,NBNN,NBNN)
  156. do iou=1,nbnn
  157. forme(iou)=shptot(1,iou,igau)
  158. enddo
  159. CALL NTNST(FORME,CAPA,NBNN,1,CAPSS)
  160.  
  161. C- Ajout de termes specifiques dus a l'integration (analytique)
  162. C- suivant l'epaisseur de l'element de type COQUE
  163. C =======
  164. C- Erreur si l'epaisseur est est nulle
  165. EP = VACOMP(NVAMAT)
  166. c* IF (EP.LE.XPetit) THEN
  167. c* CALL ERREUR(517)
  168. c* GOTO 9990
  169. c* ENDIF
  170. C1 = X2s15*EP
  171. C2 = X1s15*EP
  172. C3 = -X1s30*EP
  173. C4 = X8s15*EP
  174. C5 = C2
  175. C6 = C1
  176. DO j=1,NBNN
  177. j1 = j + NBNN
  178. j2 = j + NBNN2
  179. DO i=1,NBNN
  180. i1 = i + NBNN
  181. i2 = i + NBNN2
  182. Cte = CAPSS(i,j)
  183. CAPV( i, j) = CAPV( i, j) + C1*Cte
  184. CAPV(i1, j) = CAPV(i1, j) + C2*Cte
  185. CAPV(i2, j) = CAPV(i2, j) + C3*Cte
  186. CAPV(i1,j1) = CAPV(i1,j1) + C4*Cte
  187. CAPV(i2,j1) = CAPV(i2,j1) + C5*Cte
  188. CAPV(i2,j2) = CAPV(i2,j2) + C6*Cte
  189. ENDDO
  190. ENDDO
  191. ENDDO
  192. C =====
  193. C 2.4 - Stockage de la matrice de CAPACITE pour cet element fini
  194. C (remplissage de XMATRI)
  195. C =====
  196. CALL REMPMT(CAPV,NLIGR,RE(1,1,iElt))
  197. ENDDO
  198.  
  199. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  200. C ====================================================
  201. 9990 CONTINUE
  202. SEGSUP,MMAT1,SVACOM
  203. c* SEGDES,MELEME,MINTE,XMATRI
  204. c* MPTVAL = IVAMAT
  205. c* SEGDES,MPTVAL
  206. c* IF (IVAPHA.NE.0) THEN
  207. c* MPTVAL = IVAPHA
  208. c* SEGDES,MPTVAL
  209. c* ENDIF
  210.  
  211. RETURN
  212. END
  213.  
  214.  
  215.  
  216.  
  217.  

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