Download flux2.eso

Back to the list

   1 : C FLUX2     SOURCE    BP208322  13/07/30    21:15:08     7809           
   2 : 
   3 : C=======================================================================
   4 : C=                            F L U X 2                                =
   5 : C=                            ---------                                =
   6 : C=                                                                     =
   7 : C=  Fonction :                                                         =
   8 : C=  ----------                                                         =
   9 : C=   Calcul des flux nodaux equivalents aux conditions de flux imposes =
  10 : C=                                                                     =
  11 : C=  Parametres :  (E)=Entree  (S)=Sortie                               =
  12 : C=  ------------                                                       =
  13 : C=   IPMODE   (E)   Pointeur sur le segment MMODEL de la structure     =
  14 : C=   IPCHPO   (E)   Pointeur sur le CHPOINT (ou le MCHAML) de flux     =
  15 : C=                  imposes aux noeuds de la structure                 =
  16 : C=                  (champ variable ou constant)                       =
  17 : C=   NUMPOI   (E)   Vaut -1 si le flux impose est normal a la surface, =
  18 : C=                  sinon pointeur sur un POINT correspondant a la     =
  19 : C=                  direction du flux (par rapport au repere global)   =
  20 : C=   MOCOMP   (E)   Nom de la composante de flux                       =
  21 : C=   PEAU     (E)   Indique la peau consideree (elements COQUES)       =
  22 : C=   MLMOTX   (E)   Pointeur MLMOTS de la liste des composantes de     =
  23 : C=                  IPCHPO associees aux 3 directions x,y,z.           =
  24 : C=   IPFLUX   (S)   Pointeur sur le champ des flux nodaux equivalents  =
  25 : C=                                                                     =
  26 : C=  Variables locales :                                                =
  27 : C=  -------------------                                                =
  28 : C=   IMASSI   Tableau contenant les numeros dans NOMTP des elements    =
  29 : C=            thermiques de type MASSIF                                =
  30 : C=   LMASSI   Longueur du tableau IMASSI                               =
  31 : C=   ICOQUE   Tableau contenant les numeros dans NOMTP des elements    =
  32 : C=            thermiques de type COQUE                                 =
  33 : C=   LCOQUE   Longueur du tableau ICOQUE                               =
  34 : C=                                                                     =
  35 : C=  Remarque :  Le MODELE doit contenir exclusivement un seul type     =
  36 : C=  ----------  d'elements, soit MASSIFs, soit COQUEs.                 =
  37 : C=                                                                     =
  38 : C=  Denis ROBERT, le 29 janvier 1988.                                  =
  39 : C=======================================================================
  40 : 
  41 :       SUBROUTINE FLUX2 (IPMODE,IPCHPO,NUMPOI,MOCOMP,PEAU,MLMOTX, IPFLUX)
  42 : 
  43 :       IMPLICIT INTEGER(I-N)
  44 :       IMPLICIT REAL*8 (A-H,O-Z)
  45 : 
  46 : -INC CCOPTIO
  47 : -INC SMMODEL
  48 : -INC SMCHPOI
  49 : -INC SMCHAML
  50 : -INC SMELEME
  51 : 
  52 :       CHARACTER*(*) MOCOMP,PEAU
  53 : 
  54 :       PARAMETER (LMASSI=16,LCOQUE=5)
  55 :       INTEGER IMASSI(LMASSI),ICOQUE(LCOQUE)
  56 : 
  57 :       LOGICAL ltelq
  58 : 
  59 : C ----------
  60 : C  Elements         TRI3 TRI6 QUA4 QUA8 CUB8 CU20 PRI6 PR15 TET4 TE10
  61 : C  MASSIFs          PYR5 PY13 T1D2 T1D3 M1D2 M1D3
  62 : C ----------
  63 :       DATA IMASSI /    4,   6,   8,  10,  14,  15,  16,  17,  23,  24,
  64 :      .                25,  26, 191, 192, 193, 194 /
  65 : C -------------
  66 : C  Elts COQUEs      COQ2 COQ3 COQ8 COQ4 COQ6
  67 : C -------------
  68 :       DATA ICOQUE /   44,  27,  41,  49,  56 /
  69 : 
  70 : C  1 - VERIFICATIONS SUR LE MODELE
  71 : C =================================
  72 : C  ERREUR si l'objet MODELE ne contient pas uniquement un seul type
  73 : C  d'elements soit MASSIF, soit COQUE.
  74 : C  ERREUR si la PEAU n'est pas indiquee dans le cas d'elements COQUE.
  75 : C =====
  76 :       jMASSi=0
  77 :       jCOQue=0
  78 :       MMODEL=IPMODE
  79 :       SEGACT,MMODEL
  80 :       NSOU=KMODEL(/1)
  81 :       DO i=1,NSOU
  82 :         IMODEL=KMODEL(i)
  83 :         SEGACT,IMODEL
  83 :         CALL PLACE2(IMASSI,LMASSI,iOK,NEFMOD)
  84 :         IF (iOK.NE.0) THEN
  85 :           jMASSi=jMASSi+1
  86 :         ELSE
  86 :           CALL PLACE2(ICOQUE,LCOQUE,iOK,NEFMOD)
  87 :           IF (iOK.NE.0) jCOQue=jCOQue+1
  88 :         ENDIF
  89 :         SEGDES,IMODEL
  90 :       ENDDO
  91 :       SEGDES,MMODEL
  92 :       IF (jMASSi.NE.NSOU.AND.jCOQue.NE.NSOU) THEN
  92 :         CALL ERREUR(409)
  93 :         RETURN
  94 :       ENDIF
  95 :       IF (jCOQue.EQ.NSOU) THEN
  96 :         IF (PEAU.EQ.'    ') THEN
  96 :           CALL ERREUR(513)
  97 :           RETURN
  98 :         ENDIF
  99 :         MOCOMP(1:4)='Q'//PEAU(1:3)
 100 :       ENDIF
 101 : 
 102 : C  2 - PREPARATION DES DONNEES POUR LE CALCUL
 103 : C ============================================
 104 : C= Creation d'un objet MAILLAGE contenant une seule fois tous les points
 105 : 
 106 : C= 2.1 du CHAMELEM -IPCHPO
 107 :       if(IPCHPO.lt.0) then
 108 :       
 109 :         MCHELM=-1*IPCHPO
 110 :         segact,MCHELM
 111 :         N1=IMACHE(/1)
 112 :         if(N1.eq.0)then
 113 :           moterr(1:8)='CHAMELEM'
 114 :           interr(1)=MCHELM
 114 :           CALL ERREUR(356)
 115 :           RETURN
 116 :         endif
 117 : c       verif que l'on est sur les points de gauss pour la thermique
 118 :         ISUPPO=INFCHE(1,6)
 119 :         if(ISUPPO.ne.6) then
 119 :            call CHASUP(IPMODE,MCHELM,MCHEL2,IRET,6)
 119 :            if(IRET.NE.0) call erreur(IRET)
 120 :            MCHELM=MCHEL2
 121 :            segact,MCHELM
 122 :         endif
 123 :         MELEME=IMACHE(1)
 124 :         segact,MELEME
 124 :         call CHANGE(MELEME,1)
 125 :         segdes,MELEME
 126 :         IPGEOM = MELEME
 127 :         if(N1.gt.1) then
 128 :         do i=2,N1
 129 :           MELEME=IMACHE(2)
 130 :           segact,MELEME
 130 :           call CHANGE(MELEME,1)
 131 :           segdes,MELEME
 132 :           ltelq=.FALSE.
 132 :           CALL FUSE(IPGEOM,MELEME,IRET,ltelq)
 133 :           IF (IERR.NE.0) RETURN
 134 :           IPGEOM=IRET        
 135 :         enddo
 136 :         endif
 137 :         segdes,MCHELM
 138 :       
 139 : C= 2.2 du CHPOINT IPCHPO (fusion des maillages supports de tous les MSOUPO)
 140 :       else
 141 :      
 142 :         MCHPOI=IPCHPO
 143 :         SEGACT,MCHPOI
 144 :         NSOUPO=IPCHP(/1)
 145 :         IF (NSOUPO.EQ.0) THEN
 145 :           CALL ERREUR(156)
 146 :           RETURN
 147 :         ENDIF
 148 :         MSOUPO=IPCHP(1)
 149 :         SEGACT,MSOUPO
 150 :         IPGEOM=IGEOC
 151 :         SEGDES,MSOUPO
 152 :         DO i=2,NSOUPO
 153 :           MSOUPO=IPCHP(i)
 154 :           SEGACT,MSOUPO
 155 :           IGEO1=IGEOC
 156 :           SEGDES,MSOUPO
 157 :           ltelq=.FALSE.
 157 :           CALL FUSE(IPGEOM,IGEO1,IRET,ltelq)
 158 :           IF (IERR.NE.0) RETURN
 159 :           IPGEOM=IRET
 160 :         ENDDO
 161 :         SEGDES,MCHPOI
 162 :       
 163 :       endif
 164 : 
 165 : C  3 - CALCUL DES FLUX EQUIVALENTS
 166 : C =================================
 167 : C  3.1 - Cas des elements MASSIFS (1D,2D,3D)
 168 : C =====
 169 :       IF (jMASSi.EQ.NSOU) THEN
 169 :         CALL FLUMAS(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
 170 : C =====
 171 : C  3.2 - Cas des elements de COQUE
 172 : C =====
 173 : C*    ELSE IF (jCOQue.EQ.NSOU) THEN
 174 :       ELSE
 174 :         CALL FLUCOQ(IPMODE,IPGEOM,IPCHPO,NUMPOI,MOCOMP,MLMOTX, IPFLUX)
 175 :       ENDIF
 176 : 
 177 :       RETURN
 178 :       END
 179 : 
 180 :  
 181 :  
 182 :  

© Cast3M 2003 - All rights reserved.
Disclaimer