Download inimur.procedur

Back to the list

   1 : * INIMUR    PROCEDUR  MAGN      01/10/16    21:15:16     4216           
   2 : 'DEBPROC' INIMUR rxt*TABLE tbt*TABLE ;
   3 : 
   4 : *------------------------------------------------------------
   5 : * Procedure d'initialisation des murs pour la procedure ENCEINTE
   6 : *
   7 : * La definition des murs se fait de la facon suivante :
   8 : * 1/ on definit les materiaux utilises et leurs proprietes
   9 : * rxt.'MATMUR' = TABLE ;
  10 : * rxt.'MATMUR'.'NMAT' = 2 ; Nombre de materiaux definis
  11 : * rxt.'MATMUR'.'LAMBDA'.1 = 0.15 ; Definition de Lambda (W/m/K)
  12 : * rxt.'MATMUR'.'ROCP'.1 = 120000. ; Definition de rho*cp (J/M3/K)
  13 : *
  14 : * 2/ on definit les murs en contact avec le fluide
  15 : * rxt.'TABMUR' = TABLE ;
  16 : * rxt.'TABMUR'.'NMUR' = 3 ; Nombre de murs
  17 : * rxt.'TABMUR'.'TYPE'.1 = 'THERM' ou 'CLIMT' thermique paroi ou CLIM
  18 : * rxt.'TABMUR'.'MAILLAGE'.1 = mail1 ; maillage associe au mur
  19 : *                             surface ou volume suivant TYPE
  20 : * rxt.'TABMUR'.'MATER'.1 = 1 ou 2 : numero du materiau si TYPE=THERM
  21 : * rxt.'TABMUR'.'TPINI'.1 = cste ou 'Tp1' : conditions initiales
  22 : *                          cste : si THERM
  23 : *                          'Tp1' : nom de Tp(t) dans rxt.scenario
  24 : *                                  pour CLIMT
  25 : *----------------------------------------------------------------
  26 : * Entree : TABLE RXT
  27 : * Sortie : TABLE RXT avec aux indices suivants :
  28 : * 'vtp' : maillage contenant les elements pour la thermique paroi
  29 : * 'rocpb' : CHAMPOINT SCAL CENTRE sur $vtp contenant les rhocp
  30 : * 'lamb' : CHAMPOINT SCAL CENTRE sur $vtp contenant les lambda
  31 : * 'paroif' : paroi du fluide en contact avec des murs THERM
  32 : * 'THERMP' : logique pour le traitement de la thermique paroi
  33 : * 'paroic' : maillage pour la condensation (surface totale THERM et
  34 : *               CLIMT ) = PAROIC1 ET MTPI
  35 : * 'paroic1' : maillage pour l'equation en TF (que murs THERM)
  36 : * 'mtpi' : maillage pour les CLIM de TF (que murs CLIMT)
  37 : * 'TPAROIC' : logique pour le traitement des parois condensantes
  38 : * 'TTIMP' : logique pour le traitement des CLIM sur TF
  39 : * Il faut aussi les modeles correspondants a chaque maillage
  40 : * $vtp $paroic $paroic1 $mtpi $paroif
  41 : * Un CHAMPOINT TP0 sur $vtp pour les CI de l'inconnue TP (SOMMET)
  42 :  TBM = rxt.'TABMUR' ;
  43 :  THERMP = FAUX ;
  44 :  TPAROIC = FAUX ;
  45 :  TTIMP = FAUX ;
  46 :  NBMUR = TBM.'NMUR' ;
  47 :  NTHER = 0 ;
  48 :  NCLIM = 0 ;
  49 :  T_MTHER = TABLE 'VECTEUR' ;
  50 :  T_MCLIM = TABLE 'VECTEUR' ;
  51 :  T_LAMBD = TABLE 'VECTEUR' ;
  52 :  T_ROCP  = TABLE 'VECTEUR' ;
  53 :  T_TTP0  = TABLE 'VECTEUR' ;
  54 :  T_CTP0  = TABLE 'VECTEUR' ;
  55 : 
  56 : vtf=rxt.'vtf'                                                ;
  57 : 
  58 : 'REPETER' BOUC0 NBMUR                                        ;
  59 :   'SI' ('EGA' TBM.'TYPE' . &BOUC0 'ADIAB')                   ;
  60 :      mess '============> Paroi adiabatique <============'    ;
  61 :      'SI' (NON ('EGA' ('VALE' 'DIME') 3 ))                   ;
  62 :         paroif      =      (cont vtf)                        ;
  63 :      'SINON'                                                 ;
  64 :         paroif      =      (enve vtf)                        ;
  65 :      'FINSI'                                                 ;
  66 :      GEO.'paroif'   =       paroif                           ;
  67 :      'QUITTER' inimur                                        ;
  68 :   'FINSI'                                                    ;
  69 : 'FIN'     BOUC0                                              ;
  70 : 
  71 :  'REPETER' BOUC1 NBMUR ;
  72 : *-- On regarde le type pour mettre a jour les variables logiques
  73 :      'SI' ( 'NON' ( ('EGA' TBM.'TYPE' . &BOUC1 'THERM') 'OU'
  74 :                     ('EGA' TBM.'TYPE' . &BOUC1 'CLIMT') 'OU'
  75 :                     ('EGA' TBM.'TYPE' . &BOUC1 'CLIMI') ) ) ;
  76 :           'ERRE' 5 ;
  77 :      'FINSI' ;
  78 :      'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'THERM' ) ;
  79 :              NTHER = NTHER + 1 ;
  80 :              'SI' ( 'NON' THERMP ) ;
  81 :                   vtp = TBM.'MAILLAGE' . &BOUC1 ;
  82 :              'SINON' ;
  83 :                   vtp = rxt.'vtp' 'ET' TBM.'MAILLAGE'. &BOUC1 ;
  84 :              'FINSI' ;
  85 :              T_MTHER.NTHER = TBM.'MAILLAGE' . &BOUC1 ;
  86 :              IMATM = TBM.'MATER' . &BOUC1 ;
  87 :              TMAT = rxt.'MATMUR' ;
  88 :              T_LAMBD . NTHER = TMAT.'LAMBDA' . IMATM ;
  89 :              T_ROCP . NTHER = TMAT.'ROCP' . IMATM ;
  90 :              T_TTP0 . NTHER = TBM.'TPINI' . &BOUC1 ;
  91 :              THERMP = VRAI ;
  92 :              TPAROIC = VRAI ;
  93 :      'FINSI' ;
  94 :      'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'CLIMT' ) ;
  95 :              NCLIM = NCLIM + 1 ;
  96 :              'SI' ( 'NON' TTIMP  ) ;
  97 :                  mtpi = TBM.'MAILLAGE' . &BOUC1 ;
  98 :              'SINON' ;
  99 :                  mtpi = mtpi 'ET' TBM.'MAILLAGE' . &BOUC1 ;
 100 :              'FINSI' ;
 101 :              T_MCLIM . NCLIM = TBM.'MAILLAGE' . &BOUC1 ;
 102 :              T_CTP0 . NCLIM = TBM.'TPINI' . &BOUC1 ;
 103 :              TPAROIC = VRAI ;
 104 :              TTIMPI= FAUX ;
 105 :              TTIMP = VRAI ;
 106 :      'FINSI' ;
 107 :      'SI' ( 'EGA' TBM.'TYPE' . &BOUC1 'CLIMI' ) ;
 108 :              NCLIM = NCLIM + 1 ;
 109 :              'SI' ( 'NON' TTIMP  ) ;
 110 :                  mtpi = TBM.'MAILLAGE' . &BOUC1 ;
 111 :              'SINON' ;
 112 :                  mtpi = mtpi 'ET' TBM.'MAILLAGE' . &BOUC1 ;
 113 :              'FINSI' ;
 114 :              T_MCLIM . NCLIM = TBM.'MAILLAGE' . &BOUC1 ;
 115 :              T_CTP0 . NCLIM = TBM.'TPINI' . &BOUC1 ;
 116 :              TPAROIC = VRAI ;
 117 :              TTIMP = VRAI ;
 118 :              TTIMPI= VRAI ;
 119 :      'FINSI' ;
 120 :  'FIN' BOUC1 ;
 121 : *---------------------------------------------------------
 122 : * Traitement des maillages THERMIQUE PAROI
 123 : 'SI' ( THERMP ) ;
 124 :  'MESS' '==>  THERMIQUE PAROI '                          ;
 125 :     vtf = rxt.'vtf'                                      ;
 126 :     vtp = rxt.'vtp'                                      ;
 127 :     Mvtf = GEO.'Mvtf'                                    ;
 128 :     'SI' (NON ('EGA' ('VALE' 'DIME') 3 ))                ;
 129 :      paroif      = inte (cont vtf) (cont vtp)            ;
 130 :     'SINON'                                              ;
 131 :      paroif      = inte (enve vtf) (enve vtp)            ;
 132 :     'FINSI'                                              ;
 133 :      paroic  = paroif                                    ;
 134 :      paroic1 = paroif                                    ;
 135 :     'SI' TBT.'GRAPH' ;
 136 :        'TRACE' paroic 'TITR' 'Surface contact FLUIDE/THERM' ;
 137 :     'FINSI' ;
 138 : 
 139 :     'SI' (exist rxt 'paroif')                             ;
 140 :          paroif    = rxt.'paroif' et paroif                   ;
 141 :     'FINSI'                                               ;
 142 : *--- Creation du modele sur le maillage VTP
 143 :   'SI' TBT.'GRAPH' ;
 144 :        'TRACE' vtp 'TITR' 'Maillage pour THERMIQUE ' ;
 145 :   'FINSI' ;
 146 :   Mvtp        = 'CHAN' vtp 'QUAF'                         ;
 147 :   'ELIM' GEO.'epsi' (Mvtf 'ET' Mvtp) ;
 148 :   $vtp        = 'MODE' Mvtp 'NAVIER_STOKES' TBT.'discr'   ;
 149 : 
 150 : *--- Creation des champs points sur VTP : Lambda, rocp et Tp0
 151 :   lambda = 'KCHT' $vtp SCAL SOMMET 0.0 ;
 152 :   rocpb  = 'KCHT' $vtp SCAL SOMMET 0.0 ;
 153 :   Tp0    = 'KCHT' $vtp SCAL SOMMET 0.0 ;
 154 : 
 155 :  'REPETER' BOUC2 NTHER ;
 156 :   maili = T_MTHER . &BOUC2 ;
 157 :   tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_LAMBD . &BOUC2
 158 :                       'NATURE' 'DISCRET' ;
 159 :   lambda = 'KCHT' $vtp SCAL SOMMET lambda tempo ;
 160 :   tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_ROCP . &BOUC2
 161 :                       'NATURE' 'DISCRET' ;
 162 :   rocpb  = 'KCHT' $vtp SCAL SOMMET rocpb tempo ;
 163 :   tempo = 'MANU' 'CHPO' maili 1 'SCAL' T_TTP0 . &BOUC2
 164 :                       'NATURE' 'DISCRET' ;
 165 :   Tp0    = 'KCHT' $vtp SCAL SOMMET Tp0 tempo ;
 166 :  'FIN' BOUC2 ;
 167 : *---- On doit passer par ELNO NOEL pour les points milieux
 168 :   lambdac= NOEL $vtp lambda ;
 169 :   rocpc  = NOEL $vtp rocpb  ;
 170 :   tp0c   = NOEL $vtp Tp0    ;
 171 :   Tp0    = ELNO $vtp tp0c   ;
 172 :   'SI' (('EGA' TBT.'discr' 'LINE' ) 'OU' ('EGA' ('VALE' 'DIME') 2)) ;
 173 :        FACT = 1.0 ;
 174 :   'SINON' ;
 175 :        FACT = 2.0 ;
 176 :   'FINSI' ;
 177 : 
 178 :   lambda = 'KCHT' $vtp SCAL CENTRE (lambdac * FACT) ;
 179 :   rocpb  = 'KCHT' $vtp SCAL CENTRE (rocpc * FACT) ;
 180 :   Tp0    = 'KCHT' $vtp SCAL SOMMET (Tp0 * FACT ) ;
 181 : *--- Trace de verification
 182 :   'SI' TBT.'GRAPH' ;
 183 :        lambdan = 'ELNO' $vtp lambda ;
 184 : *       'TRACE' lambdan vtp
 185 : *        'TITR' 'Conductivite Thermique initiale (W/m/K)' ;
 186 : *       rocpbn  = 'ELNO' $vtp rocpb  ;
 187 : *       'TRACE' rocpbn  vtp
 188 : *        'TITR' 'Rho.Cp initiale (J/m3/K)';
 189 :       Si (exist tic 'TP');
 190 :        'TRACE' tic.'TP'     vtp
 191 :         'TITR' 'Température Initiale (C)';
 192 :       Finsi ;
 193 :   'FINSI' ;
 194 : 'FINSI' ;
 195 : *---------------------------------------------------------
 196 : * Traitement des maillages CONDITIONS AUX LIMITES
 197 : 'SI' ( TTIMP ) ;
 198 : *--- Ajout des maillages pour paroif et paroic
 199 :   'SI' THERMP ;
 200 :      paroif = paroif 'ET' mtpi ;
 201 :      paroic = paroic 'ET' mtpi ;
 202 :   'SINON' ;
 203 :      paroif = mtpi ;
 204 :      paroic = mtpi ;
 205 :   'FINSI' ;
 206 : 
 207 : *--- Creation du modele sur le maillage MTPI
 208 :   Mmtpi        = 'CHAN' mtpi 'QUAF'                         ;
 209 :   'ELIM' GEO.'epsi' (Mvtf 'ET' Mmtpi) ;
 210 :   $mtpi        = 'MODE' Mmtpi 'NAVIER_STOKES' TBT.'discr'   ;
 211 :   mtpi         = doma $mtpi maillage                        ;
 212 :   GEO.'$mtpi'  = $mtpi                                      ;
 213 :   GEO.'mtpi'   = mtpi                                       ;
 214 :   'SI' TBT.'GRAPH' ;
 215 :        'TRACE' mtpi 'TITR' 'Maillage pour C.L. THERMIQUE ' ;
 216 :   'FINSI' ;
 217 : 
 218 : *--- Creation des champs points sur MTPI : cTp0
 219 :   cTp0    = 'KCHT' $mtpi SCAL SOMMET 0.0 ;
 220 : 
 221 :  'REPETER' BOUC3 NCLIM ;
 222 :   maili = T_MCLIM . &BOUC3 ;
 223 : *--- Calcul de la temperature a partir du nom de la table
 224 :   t        = rxt.'scenario'.'t'                        ;
 225 :   ctp1     = 'IPOL' 0.0 t (rxt.'scenario'. (T_CTP0 . &BOUC3) ) ;
 226 :   tempo = 'MANU' 'CHPO' maili 1 'SCAL' ctp1
 227 :                       'NATURE' 'DISCRET' ;
 228 :   cTp0    = 'KCHT' $mtpi SCAL SOMMET cTp0 tempo ;
 229 :  'FIN' BOUC3 ;
 230 :   ctp0c   = NOEL $mtpi cTp0    ;
 231 :   cTp0    = ELNO $mtpi ctp0c   ;
 232 :   'SI' (('EGA' TBT.'discr' 'LINE' ) 'OU' ('EGA' ('VALE' 'DIME') 2)) ;
 233 :        FACT = 1.0 ;
 234 :   'SINON' ;
 235 :        FACT = 4.0/ 3.0 ;
 236 :   'FINSI' ;
 237 :   cTp0    = 'KCHT' $mtpi SCAL SOMMET (cTp0 * FACT ) ;
 238 : *--- Trace de verification
 239 :   'SI' TBT.'GRAPH' ;
 240 :        'TRACE' cTp0     mtpi
 241 :         'TITR' 'Température Initiale (C)';
 242 :        'SI' THERMP ;
 243 :        'TRACE' (Tp0 et cTp0)  (vtp et mtpi)
 244 :         'TITR' 'Température Initiale (C)';
 245 :        'FINSI' ;
 246 :   'FINSI' ;
 247 : 'FINSI' ;
 248 : 
 249 : * Sauvegarde dans la TABLE RXT
 250 : *
 251 :  TBT.'THERMP' = THERMP ;
 252 :  TBT.'TPAROIC' = TPAROIC  ;
 253 :  TBT.'TTIMP' = TTIMP ;
 254 :  TBT.'TTIMPI' = TTIMPI ;
 255 : 
 256 :  'SI' THERMP ;
 257 :  GEO.'vtp' = vtp ;
 258 :  GEO.'$vtp' = $vtp ;
 259 :  GEO.'paroic1' = paroic1 ;
 260 :  tbt.'lambda' = lambda ;
 261 :  tbt.'rocpb' = rocpb ;
 262 :  tbt.'Tp0' = Tp0 ;
 263 :  'FINSI' ;
 264 : 
 265 :  GEO.'paroif' = paroif ;
 266 : 
 267 :  'SI' TPAROIC ;
 268 :  GEO.'paroic' = paroic ;
 269 :  'FINSI' ;
 270 : 
 271 :  'SI' (TTIMP) ;
 272 :  TBT.'cTp0' = cTp0 ;
 273 : *----------- Sauvegarde pour INTERPOLATION
 274 :  TBT.'NCLIM'= NCLIM ;
 275 :  TBT.'T_MCLIM' = T_MCLIM ;
 276 :  TBT.'T_CTP0' = T_CTP0 ;
 277 :  'FINSI' ;
 278 : 'FINPROC'                ;
 279 :  

© Cast3M 2003 - All rights reserved.
Disclaimer