Download capanu.eso

Back to the list

   1 : C CAPANU    SOURCE    FANDEUR   11/07/19    21:15:30     7042           
   2 : 
   3 : C=======================================================================
   4 : C=                            C A P A N U                              =
   5 : C=                            -----------                              =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=  Calcul de la matrice de CAPACITE CALORIFIQUE pour EF MASSIF        =
  10 : C=                                                                     =
  11 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  12 : C=  ------------                                                       =
  13 : C=   NEF      (E)   Numero de l'ELEMENT FINI dans NOMTP (cf. CCHAMP)   =
  14 : C=   IMAIL    (E)   Numero du segment IMODEL dans le segment MMODEL    =
  15 : C=   IPMODL   (E)   Pointeur sur un segment IMODEL             (ACTIF) =
  16 : C=   IPCHA1   (E)   Pointeur sur un segment MCHELM de CARACTERISTIQUES =
  17 : C=   IPRIGI  (E/S)  Pointeur sur l'objet RIGIDITE (CAPACITE)   (ACTIF) =
  18 : C=                                                                     =
  19 : C=  Variables locales :                                                =
  20 : C=  -------------------                                                =
  21 : C=   NBNN            Nombre de NOEUDS dans l'element considere         =
  22 : C=   NbElem          Nombre d'ELEMENTS dans le maillage elementaire    =
  23 : C=   NBPGAU          Nombre de points de Gauss de l'element fini       =
  24 : C=   CAP(NBNN,NBNN)  Matrice de CAPACITE ELEMENTAIRE                   =
  25 : C=   XE(3,NBNN)      Coordonnees GLOBALES des noeuds de l'ELEMENT      =
  26 : C=   SHP(6,NBNN)     Tableau de TRAVAIL                                =
  27 : C=   FORME(NBNN)     Fonctions de FORME                                =
  28 : C=   VACOMP          Valeurs des composantes recherchees               =
  29 : C=                                                                     =
  30 : C=  Denis ROBERT, le 15 fevrier 1988.                                  =
  31 : C=======================================================================
  32 : 
  33 :       SUBROUTINE CAPANU (NEF,IPMAIL,IPINTE,IVAMAT,NVAMAT,IVAPHA,NVAPHA,
  34 :      &                   IPMATR,NLIGR)
  35 : 
  36 :       IMPLICIT INTEGER(I-N)
  37 :       IMPLICIT REAL*8 (A-H,O-Z)
  38 : 
  39 : -INC CCOPTIO
  40 : -INC CCREEL
  41 : 
  42 : -INC SMCHAML
  43 : -INC SMCOORD
  44 : -INC SMELEME
  45 : -INC SMINTE
  46 : -INC SMRIGID
  47 : 
  48 :       SEGMENT MPTVAL
  49 :         INTEGER IPOS(NS),NSOF(NS),IVAL(NCOSOU)
  50 :         CHARACTER*16 TYVAL(NCOSOU)
  51 :       ENDSEGMENT
  52 : 
  53 :       SEGMENT MMAT1
  54 :         REAL*8 CAP(NLIGR,NLIGR),XE(3,NBNN)
  55 :         REAL*8 SHP(6,NBNN),FORME(NBNN)
  56 :       ENDSEGMENT
  57 : 
  58 :       REAL*8 VACOMP(3)
  59 : 
  60 : C  1 - INITIALISATIONS ET VERIFICATIONS
  61 : C ======================================
  62 :       MINTE = IPINTE
  63 : C*      SEGACT,MINTE
  64 :       NBPGAU = POIGAU(/1)
  65 : C =====
  66 :       MELEME = IPMAIL
  67 : C*      SEGACT,MELEME
  68 :       NBNN   = NUM(/1)
  69 :       NBELEM = NUM(/2)
  70 : C =====
  71 :       MPTVAL = IVAMAT
  72 : c*      SEGACT,MPTVAL
  73 :       IF (IVAPHA.NE.0) THEN
  74 :         MPTVAL = IVAPHA
  75 : c*        SEGACT,MPTVAL
  76 :       ENDIF
  77 : C =====
  78 :       XMATRI = IPMATR
  79 : C*      SEGACT,XMATRI*MOD
  80 : C =====
  81 :       SEGINI,MMAT1
  82 : 
  83 : C  2 - BOUCLE SUR LES ELEMENTS DU MAILLAGE ELEMENTAIRE IPMAIL
  84 : C ============================================================
  85 :       DO iElt = 1, NBELEM
  86 : C =====
  87 : C  2.1 - Mise a zero de la matrice de CAPACITE de l'element iElt
  88 : C =====
  88 :         CALL ZERO(CAP,NLIGR,NLIGR)
  89 : C =====
  90 : C  2.2 - Recuperation des coordonnees GLOBALES des noeuds de l'element
  91 : C =====
  91 :         CALL DOXE(XCOOR,IDIM,NBNN,NUM,iElt,XE)
  92 : C =====
  93 : C  2.3 - Boucle sur les points de Gauss de l'element iElt
  94 : C =====
  95 :         iFois=0
  96 :         DO iGau = 1, NBPGAU
  97 : C =======
  98 : C  2.3.1 - Calcul du jacobien, des fonctions de forme et de leurs
  99 : C          derivees au point de Gauss iGau
 100 : C =======
 100 :           CALL CAPA4(0,iGau,NBNN,XE,SHPTOT,SHP,FORME,DJAC)
 101 :           IF (IERR.NE.0) GOTO 9990
 102 :           IF (DJAC.LT.XZero) iFois=iFois+1
 103 :           DJAC = ABS(DJAC)
 104 : C =======
 105 : C  2.3.2 - Erreur si le jacobien est nul en ce point de Gauss
 106 : C =======
 107 :           IF (DJAC.LT.XPetit) THEN
 108 :             INTERR(1) = iElt
 108 :             CALL ERREUR(259)
 109 :             GOTO 9990
 110 :           ENDIF
 111 : C =======
 112 : C  2.3.3 - Calcul du terme Rho.Cp.Vol en ce point de Gauss avec prise
 113 : C          en compte d'un eventuel changement de phase et de la section
 114 : C          dans le cas d'un element BARRe (erreur si celle-ci est nulle)
 115 : C =======
 115 :           CALL CAPA5(iGau,iElt,IVAMAT,NVAMAT,IVAPHA,NVAPHA,VACOMP)
 116 :           CAPA = DJAC * POIGAU(iGau) * VACOMP(1)
 117 : C =======
 118 : C  2.3.4 - Calcul de la contribution du point de Gauss a la matrice
 119 : C          CAPACITE elementaire pour cet element fini
 120 : C =======
 120 :           CALL NTNST(FORME,CAPA,NLIGR,1,CAP)
 121 :         ENDDO
 122 : C =====
 123 : C  2.4 - Erreur si, en un point de Gauss, le jacobien change de signe
 124 : C =====
 125 :         IF (iFois.NE.0.AND.iFois.NE.NBPGAU) THEN
 126 :           INTERR(1) = iElt
 126 :           CALL ERREUR(195)
 127 :           GOTO 9990
 128 :         ENDIF
 129 : C =====
 130 : C  2.5 - Stockage de la matrice de CAPACITE pour cet element fini
 131 : C        (remplissage de XMATRI)
 132 : C =====
 132 :         CALL REMPMT(CAP,NLIGR,RE(1,1,iElt))
 133 : C
 134 :       ENDDO
 135 : 
 136 : C  3 - MENAGE : DESACTIVATION/DESTRUCTION DE SEGMENTS
 137 : C ====================================================
 138 :  9990 CONTINUE
 139 :       SEGSUP,MMAT1
 140 : 
 141 :       RETURN
 142 :       END
 143 : 
 144 :  

© Cast3M 2003 - All rights reserved.
Disclaimer