Télécharger capac2.eso

Retour à la liste

Numérotation des lignes :

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

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