Télécharger capac2.eso

Retour à la liste

Numérotation des lignes :

capac2
  1. C CAPAC2 SOURCE CB215821 17/01/16 21:15:09 9279
  2.  
  3. C=======================================================================
  4. C= C A P A C 2 =
  5. C= ----------- =
  6. C= =
  7. C= Fonction : =
  8. C= ---------- =
  9. C= Calcul de la matrice de CAPACITE CALORIFIQUE pour les elements =
  10. C= finis COQUEs de type COQ4, COQ6 et COQ8 =
  11. C= =
  12. C= Parametres : (E)=Entree (S)=Sortie =
  13. C= ------------ =
  14. C= NEF (E) Numero de l'ELEMENT FINI dans NOMTP (cf. CCHAMP) =
  15. C= IMAIL (E) Numero du segment IMODEL dans le segment MMODEL =
  16. C= IPCHA1 (E) Pointeur sur un segment MCHEL1 de caracteristiques=
  17. C= CLAT (E) Chaleur latente du changement de phase =
  18. C= IPRIGI (E/S) Matrice de CAPACITE resultat (ACTIF) =
  19. C= =
  20. C= P. DOWLATYARI, aout 1990. =
  21. C=======================================================================
  22.  
  23. SUBROUTINE CAPAC2 (NEF,IPMAIL,IPINT1,IPINT2,IVAMAT,NVAMAT,
  24. & IVAPHA,NVAPHA, IPMATR,NLIGR,INFOR)
  25.  
  26. IMPLICIT INTEGER(I-N)
  27. IMPLICIT REAL*8 (A-H,O-Z)
  28.  
  29.  
  30. -INC PPARAM
  31. -INC CCOPTIO
  32. -INC CCREEL
  33. -INC CCHAMP
  34.  
  35. -INC SMCHAML
  36. -INC SMCOORD
  37. -INC SMELEME
  38. -INC SMINTE
  39. -INC SMRIGID
  40.  
  41. CHARACTER*16 MOFOR
  42.  
  43. SEGMENT MMAT1
  44. REAL*8 XE(3,NBNN),CAPSS(NBNN,NBNN),CAPV(NLIGR,NLIGR)
  45. REAL*8 TXR(3,3,NBNN),EXC(NBNN),FORME(NBNN)
  46. REAL*8 VACOMP(NBPGAU),EP(NBPGAU)
  47. ENDSEGMENT
  48.  
  49. SEGMENT MPTVAL
  50. INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  51. CHARACTER*16 TYVAL(NCOSOU)
  52. ENDSEGMENT
  53.  
  54. DIMENSION XJ(3,3)
  55.  
  56. SEGMENT SVACOM
  57. REAL*8 VACOMG(NVAMAT)
  58. ENDSEGMENT
  59.  
  60. C= Coefficients d'integration dans l'epaisseur (Degay 04/95)
  61. PARAMETER (X1s15=0.066666666666666666666666666667D0)
  62. PARAMETER (X2s15=0.133333333333333333333333333333D0)
  63. PARAMETER (X8s15=0.533333333333333333333333333333D0)
  64. PARAMETER (Xm1s30=-0.033333333333333333333333333333D0)
  65. DATA Coef11,Coef12,Coef13 / X2s15 , X1s15 , Xm1s30 /
  66. DATA Coef21,Coef22,Coef23 / X1s15 , X8s15 , X1s15 /
  67. DATA Coef31,Coef32,Coef33 / Xm1s30 , X1s15 , X2s15 /
  68.  
  69. SEGINI,SVACOM
  70.  
  71. C 1 - INITIALISATIONS ET VERIFICATIONS
  72. C ======================================
  73. MELEME = IPMAIL
  74. c* SEGACT,MELEME
  75. NBNN = NUM(/1)
  76. NBELEM = NUM(/2)
  77. NBNN2 = 2*NBNN
  78. NBNN3 = 3*NBNN
  79. C =====
  80. MINTE1 = IPINT1
  81. SEGACT,MINTE1
  82. NBPGAU = MINTE1.POIGAU(/1)
  83. C =====
  84. MINTE2 = IPINT2
  85. SEGACT,MINTE2
  86. C =====
  87. MPTVAL = IVAMAT
  88. c* SEGACT,MPTVAL
  89. c*C- Verification sur la constance du champ d'epaisseur :
  90. c*C- epaisseur toujours placee en derniere position du mptval
  91. c* IPMELV = IVAL(NVAMAT)
  92. c* CALL QUELCH(IPMELV,IOK)
  93. c* IF (IOK.NE.0) THEN
  94. c* CALL ERREUR(566)
  95. c* GOTO 9990
  96. c* ENDIF
  97. C =====
  98. c* IF (IVAPHA.NE.0) THEN
  99. c* MPTVAL = IVAPHA
  100. c* SEGACT,MPTVAL
  101. c* ENDIF
  102. C =====
  103. xMATRI = IPMATR
  104. c* SEGACT,XMATRI*MOD
  105. c* NLIGRP = NBNN3 = NLIGR
  106. c* NLIGRD = NBNN3 = NLIGR
  107. C =====
  108. SEGINI,MMAT1
  109.  
  110. E3 = XZERO
  111.  
  112. C 2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  113. C ============================================================
  114. DO iElt = 1, NBELEM
  115. C =====
  116. C 2.1 - Recuperation des coordonnees GLOABLES des noeuds de l'element
  117. C =====
  118. CALL DOXE(XCOOR,IDIM,NBNN,NUM,iElt,XE)
  119. C =====
  120. C 2.2 - Calcul des axes locaux lies a l'element COQUE pour tous les
  121. C noeuds de l'element fini
  122. C =====
  123. CALL CQ8LOC(XE,NBNN,MINTE2.SHPTOT,TXR,iOK)
  124. IF (iOK.EQ.0) THEN
  125. CALL ERREUR(515)
  126. GOTO 9990
  127. ENDIF
  128. C =====
  129. C 2.3 - Recuperation des caracteristiques materielles pour tous les
  130. C points de Gauss de l'element (avec calcul du terme Rho.Cp.Vol
  131. C et prise en compte d'un eventuel changement de phase)
  132. C =====
  133. DO iGau = 1, NBPGAU
  134. C MPTVAL = IVAMAT
  135. DO i = 1, NVAMAT
  136. MELVAL = IVAL(i)
  137. IGMN = MIN(iGau,VELCHE(/1))
  138. IEMN = MIN(iElt,VELCHE(/2))
  139. VACOMG(i) = VELCHE(IGMN,IEMN)
  140. ENDDO
  141. VALRHO = VACOMG(1)
  142.  
  143. C CAS THERMIQUE on fait RHO.CP
  144. IF (INFOR .EQ. 1) VACOMG(1) = VALRHO * VACOMG(2)
  145.  
  146. VACOMP(iGau) = VACOMG(1)
  147. EP(iGau) = VACOMG(NVAMAT)
  148. ENDDO
  149. C =====
  150. C 2.4 - Mise a zero de la matrice de CAPACITE de l'element iElt
  151. C =====
  152. CALL ZERO(CAPV,NLIGR,NLIGR)
  153. C =====
  154. C 2.5 - Boucle sur les points de Gauss de l'element iElt
  155. C =====
  156. DO iGau = 1, NBPGAU
  157. C =======
  158. C 2.5.1 - Calcul du jacobien associe a ce point de Gauss
  159. C =======
  160. CALL CQ8JCE(iGau,NBNN,E3,XE,EP,EXC,TXR,MINTE1.SHPTOT,XJ,
  161. & DJAC,iOK)
  162. C =======
  163. C 2.5.2 - Erreur si le jacobien est nul en ce point de Gauss
  164. C =======
  165. IF (iOK.LT.0) THEN
  166. INTERR(1) = iElt
  167. CALL ERREUR(405)
  168. GOTO 9990
  169. ENDIF
  170. C =======
  171. C 2.5.3 - Calcul de la contribution du point de Gauss a la matrice
  172. C CAPACITE elementaire pour cet element fini
  173. C =======
  174. CAPA = DJAC * minte1.POIGAU(iGau) * VACOMP(iGau)
  175. CALL ZERO(CAPSS,NBNN,NBNN)
  176. DO i0 = 1, NBNN
  177. FORME(i0) = MINTE1.SHPTOT(1,i0,iGau)
  178. ENDDO
  179. CALL NTNST(FORME,CAPA,NBNN,1,CAPSS)
  180. C =======
  181. C 2.5.4 - Ajout de termes specifiques dus a l'integration (analytique)
  182. C suivant l'epaisseur de l'element de type COQUE
  183. C =======
  184. DO j0=1,NBNN
  185. j1=j0+NBNN
  186. j2=j1+NBNN
  187. DO i0=1,NBNN
  188. i1=i0+NBNN
  189. i2=i1+NBNN
  190. Cte=CAPSS(i0,j0)
  191. CAPV(i0,j0)=CAPV(i0,j0) + Cte*Coef11
  192. CAPV(i1,j0)=CAPV(i1,j0) + Cte*Coef21
  193. CAPV(i2,j0)=CAPV(i2,j0) + Cte*Coef31
  194. CAPV(i0,j1)=CAPV(i0,j1) + Cte*Coef12
  195. CAPV(i1,j1)=CAPV(i1,j1) + Cte*Coef22
  196. CAPV(i2,j1)=CAPV(i2,j1) + Cte*Coef32
  197. CAPV(i0,j2)=CAPV(i0,j2) + Cte*Coef13
  198. CAPV(i1,j2)=CAPV(i1,j2) + Cte*Coef23
  199. CAPV(i2,j2)=CAPV(i2,j2) + Cte*Coef33
  200. ENDDO
  201. ENDDO
  202. ENDDO
  203. C =====
  204. C 2.6 - Stockage de la matrice de CAPACITE pour cet element fini
  205. C (remplissage de XMATRI)
  206. C =====
  207. CALL REMPMT(CAPV,NLIGR,RE(1,1,iElt))
  208. ENDDO
  209.  
  210. C 3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
  211. C ====================================================
  212. 9990 CONTINUE
  213. SEGSUP,MMAT1,SVACOM
  214. c* SEGDES,MELEME,MINTE,MINTE2,XMATRI
  215. c* MPTVAL = IVAMAT
  216. c* SEGDES,MPTVAL
  217. c* IF (IVAPHA.NE.0) THEN
  218. c* MPTVAL = IVAPHA
  219. c* SEGDES,MPTVAL
  220. c* ENDIF
  221.  
  222. RETURN
  223. END
  224.  
  225.  
  226.  

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