Download capac2.eso

Back to the list

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

© Cast3M 2003 - All rights reserved.
Disclaimer