Download nsclim.procedur

Back to the list

   1 : * NSCLIM    PROCEDUR  MAGN      05/07/25    21:15:01     5133           
   2 : 'DEBPROC' NSCLIM                                                       ;
   3 : 
   4 :  ARGU tit*'MOT' KIMPR/'LOGIQUE' NOMQ*'MOT'                             ;
   5 : 
   6 :  Si (Exist KIMPR)                                                      ;
   7 :  TIMPR = KIMPR                                                         ;
   8 :  Sinon                                                                 ;
   9 :  TIMPR = VRAI                                                          ;
  10 :  FinSi                                                                 ;
  11 : 
  12 :  Si TIMPR                                                              ;
  13 :  mess '#### NSCLIM #######################################'
  14 :       '#########################'                                      ;
  15 :  FinSi                                                                 ;
  16 : 
  17 :  lnomq = mots 'DEBIT' 'VITESSE' 'TEMPERATURE' 'ADHERENCE'              ;
  18 :  Si (NON (EXIST lnomq nomq))                                           ;
  19 :  Mess '*********************************************************'      ;
  20 :  Mess ' ERREUR   ERREUR   ERREUR   ERREUR   ERREUR   ERREUR     '      ;
  21 :  Mess '                                                         '      ;
  22 :  Mess 'L entree ' NOMQ   ' n existe pas '                              ;
  23 :  Mess 'Choisir : VITESSE ou DEBIT ou TEMPERATURE ou ADHERENCE   '      ;
  24 :  Mess '*********************************************************'      ;
  25 :  erreur 21                                                             ;
  26 :  quitter NSCLIM                                                        ;
  27 :  Finsi                                                                 ;
  28 : 
  29 :  Si((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT')
  30 :                          ou (EGA NOMQ 'TEMPERATURE') )     ;
  31 :   ARGU Udebt/'EVOLUTION'                                   ;
  32 :   Si(NON (Exist Udebt))                                    ;
  33 :   ARGU Udeb/'FLOTTANT'                                     ;
  34 :   FinSi                                                    ;
  35 : 
  36 :   ARGU    NCO*'MOT'             Tps*'FLOTTANT'             ;
  37 : 
  38 :   SWIRL=FAUX                                               ;
  39 :   Si(EGA NCO 'SWIRL')                                      ;
  40 :   SWIRL=VRAI                                               ;
  41 :   asw = tps                                                ;
  42 :   ARGU    NCO*'MOT'             Tps*'FLOTTANT'             ;
  43 :   Finsi                                                    ;
  44 : 
  45 :   ARGU
  46 :   $mf*'MMODEL'   $sentr*'MMODEL'    clim/'CHPOINT'  NOMG*'MOT'
  47 :   NOMM/'MOT'  sgm/'FLOTTANT' portee/'FLOTTANT'             ;
  48 : 
  49 :   Si (EXIST NOMM)                                          ;
  50 :   NOMT = NOMM                                              ;
  51 :   Sinon                                                    ;
  52 :   NOMT='XXXX'                                              ;
  53 :   FinSi                                                    ;
  54 :  FinSi                                                     ;
  55 : 
  56 :  Si(EGA NOMQ 'ADHERENCE')                                 ;
  57 :   ARGU    NCO*'MOT'
  58 :   $mf*'MMODEL'   $sentr*'MMODEL'    clim/'CHPOINT'  NOMG*'MOT' ;
  59 :  FinSi                                                     ;
  60 : 
  61 :  lnomg = mots 'LARGEMENT' 'STRICTEMENT'                     ;
  62 :  Si (NON (EXIST lnomg nomg))                                ;
  63 :  Mess '*********************************************************' ;
  64 :  Mess ' ERREUR   ERREUR   ERREUR   ERREUR   ERREUR   ERREUR     ' ;
  65 :  Mess '                                                         ' ;
  66 :  Mess 'L entree ' NOMG   ' n existe pas '                         ;
  67 :  Mess 'Choisir : LARGEMENT ou STRICTEMENT                       ' ;
  68 :  Mess '*********************************************************' ;
  69 :  erreur 21 ;
  70 :  quitter NSCLIM ;
  71 :  Finsi ;
  72 : 
  73 : *
  74 : *  NOMQ = DEBIT        Débit imposé    (Débit entrant >0)
  75 : *         VITESSE      Vitesse imposée (Vitesse entrante >0)
  76 : *          alfa  swirl
  77 : *         TEMPERATURE  Température imposée (ou scalaire)
  78 : *         ADHERENCE    u=v=w=0     imposées
  79 : *         FPAROI       u.n=0  et Fparoi
  80 : *         SYMETRIE     u.n=0 et rien si vitesse rien si Température
  81 : *         SORTIE       -> p=0
  82 : *         PRESSION     -> p=p0
  83 : *  NCO    nom de la composante
  84 : *
  85 : *  NOMG = STRICTEMENT
  86 : *         LARGEMENT
  87 : *
  88 : *  NOMT = SGE
  89 : *         XXXXXXXXX
  90 : *
  91 : *
  92 : 
  93 : *!!!!!!! Petites vérifications !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  94 : 
  95 : * 1/ sentr doit être inclus dans mf
  96 : * 2/ Faire le 2D
  97 : * 3/ Traiter les cas des TRI7 -> ELNO QUAD ou MSOMMET
  98 : * 5/ Objet Chargement
  99 : * 6/ Completer les CL FPAROI SYMETRIE SORTIE PRESSION
 100 : * 7/ Dans le cas Strictement le débit est faux
 101 : 
 102 : *!!!!!!! Petites vérifications !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 103 : 
 104 : *##############################################################
 105 : * Préparation géométrie calcul normales et tangentes
 106 :  AT = doma $sentr 'TABLE'                                   ;
 107 :  Si (EXIST AT 'nx' )                                        ;
 108 : 
 109 : 
 110 :    nx = AT.'nx'                                             ;
 111 :    ny = AT.'ny'                                             ;
 112 : 
 113 :    tx = AT.'tx'                                             ;
 114 :    ty = AT.'ty'                                             ;
 115 : 
 116 :   Si(EGA (VALE DIME) 3)                                     ;
 117 :    nz = AT.'nz'                                             ;
 118 :    tz = AT.'tz'                                             ;
 119 : 
 120 :    ax = AT.'ax'                                             ;
 121 :    ay = AT.'ay'                                             ;
 122 :    az = AT.'az'                                             ;
 123 :   FinSi                                                     ;
 124 : 
 125 :  Sinon                                                      ;
 126 : 
 127 :  mess tit ': Préparation géométrie : calcul normales et tangentes';
 128 : 
 129 :    vol   = doma $mf maillage                                ;
 130 :    Sentr = doma $sentr maillage                             ;
 131 :    volr = vol elem 'APPUYE' 'LARGEMENT' Sentr               ;
 132 :    sent = Sentr                                             ;
 133 :    inefmd = (doma $mf 'TABLE').'INEFMD';                    ;
 134 :    mess 'inefmd=' inefmd ;
 135 :    Si (ega inefmd 3)                                        ;
 136 :     $volr = model volr 'NAVIER_STOKES' 'MACRO'              ;
 137 :     volr = doma $volr maillage                              ;
 138 :     $sentr= model sentr 'NAVIER_STOKES' 'MACRO'             ;
 139 :     sent = doma $sentr maillage                             ;
 140 :     volr = volr elem 'APPUYE' 'LARGEMENT' Sent              ;
 141 :    FinSi                                                    ;
 142 :    mo   = mode volr mecanique elastique                     ;
 143 :    chp = pres mass mo Sent  1.                              ;
 144 :    Si (EGA (vale mode) 'AXIS' )                             ;
 145 :    fx = 'FR'                                                ;
 146 :    fy = 'FZ'                                                ;
 147 :    Sinon                                                    ;
 148 :    fx = 'FX'                                                ;
 149 :    fy = 'FY'                                                ;
 150 :    finSi                                                    ;
 151 :    chnm = (((exco chp fx)**2)+((exco chp fy)**2))           ;
 152 :   Si(EGA (VALE DIME) 3)                                     ;
 153 :    chnm = chnm + ((exco chp fz)**2)                         ;
 154 :   FinSi                                                     ;
 155 :    chnm = chnm **0.5                                        ;
 156 :    chn = chp / chnm                                         ;
 157 : 
 158 :    nx = (exco fx chn) ;
 159 :    ny = (exco fy chn) ;
 160 : 
 161 :   Si(EGA (VALE DIME) 3)                                     ;
 162 :    nz = (exco fz chn) ;
 163 : *
 164 :    ax = (maxi (coor 1 sent)) - (mini (coor 1 sent));
 165 :    ay = (maxi (coor 2 sent)) - (mini (coor 2 sent));
 166 :    az = (maxi (coor 3 sent)) - (mini (coor 3 sent));
 167 :    av = ax ay az;
 168 :    nav = norm av ;
 169 :    av = av * (1./nav) ;
 170 :    ax = manu chpo sent 'SCAL' (coor 1 av);
 171 :    ay = manu chpo sent 'SCAL' (coor 2 av);
 172 :    az = manu chpo sent 'SCAL' (coor 3 av);
 173 : *
 174 :    tx = (ny * az) - (nz * ay) nomc 'UX' ;
 175 :    ty = (nz * ax) - (nx * az) nomc 'UY' ;
 176 :    tz = (nx * ay) - (ny * ax) nomc 'UZ' ;
 177 :    cht = tx + ty + tz ;
 178 :    ncht = PSCA cht cht (MOTS 'UX' 'UY' 'UZ') (MOTS 'UX' 'UY' 'UZ');
 179 :    nicht = inve ncht ;
 180 :    tx = (tx nomc 'SCAL') * nicht ;
 181 :    ty = (ty nomc 'SCAL')* nicht ;
 182 :    tz = (tz nomc 'SCAL') * nicht ;
 183 : *
 184 :    ax = (ny * tz) - (nz * ty) ;
 185 :    ay = (nz * tx) - (nx * tz) ;
 186 :    az = (nx * ty) - (ny * tx) ;
 187 : *
 188 :    nx = nomc 'UX' nx ;
 189 :    ny = nomc 'UY' ny ;
 190 :    nz = nomc 'UZ' nz ;
 191 : *
 192 :    tx = nomc 'UX' tx ;
 193 :    ty = nomc 'UY' ty ;
 194 :    tz = nomc 'UZ' tz ;
 195 : *
 196 :    ax = nomc 'UX' ax ;
 197 :    ay = nomc 'UY' ay ;
 198 :    az = nomc 'UZ' az ;
 199 : *
 200 :    AT.'nx' = nx                                  ;
 201 :    AT.'ny' = ny                                  ;
 202 :    AT.'nz' = nz                                  ;
 203 :    MNC=1                                         ;
 204 :    Si( ((ABS nx MAXI) > (ABS ny MAXI)) et
 205 :    ((ABS nx MAXI) > (ABS nz MAXI)) ); MNC=1;FinSi;
 206 :    Si( ((ABS ny MAXI) > (ABS nx MAXI)) et
 207 :    ((ABS ny MAXI) > (ABS nz MAXI)) ); MNC=2;FinSi;
 208 :    Si( ((ABS nz MAXI) > (ABS ny MAXI)) et
 209 :    ((ABS nz MAXI) > (ABS nx MAXI)) ); MNC=3;FinSi;
 210 :    AT.'MNC' = MNC                                ;
 211 : 
 212 :    AT.'tx' = tx                                  ;
 213 :    AT.'ty' = ty                                  ;
 214 :    AT.'tz' = tz                                  ;
 215 : 
 216 :    AT.'ax' = ax                                  ;
 217 :    AT.'ay' = ay                                  ;
 218 :    AT.'az' = az                                  ;
 219 : 
 220 :    AT.'chn'  = nx + ny + nz                      ;
 221 :    AT.'cht'  = tx + ty + tz                      ;
 222 :    AT.'cha'  = ax + ay + az                      ;
 223 :   FinSi                                          ;
 224 : 
 225 :   Si(EGA (VALE DIME) 2)                          ;
 226 :    tx = nomc 'UX' ny                             ;
 227 :    ty = nomc 'UY' nx ;                           ;
 228 :    nx = nomc 'UX' nx                             ;
 229 :    ny = nomc 'UY' ny                             ;
 230 :    MNC=1                                         ;
 231 :    Si( ((MAXI nx) > (MAXI ny)) ); MNC=2; FinSi   ;
 232 :    AT.'MNC' = MNC                                ;
 233 : 
 234 :    AT.'tx' = tx                                  ;
 235 :    AT.'ty' = ty                                  ;
 236 :    AT.'nx' = nx                                  ;
 237 :    AT.'ny' = ny                                  ;
 238 : 
 239 :    AT.'chn'  = nx + ny                           ;
 240 :    AT.'cht'  = tx + ty                           ;
 241 :   FinSi                                          ;
 242 : 
 243 :    AT.'Sentr'=Sentr                              ;
 244 :    AT.'Sentr1'= chan Sentr  'POI1'               ;
 245 :    Si (EGA (VALE DIME) 3)                        ;
 246 :    CSentr = cont Sentr coul VERTE                           ;
 247 :    Sinon                                                    ;
 248 :    CSentr = MANU 'SEG2'
 249 :               (Sentr POINT 'INITIAL')  (Sentr POINT 'FINAL');
 250 :    FinSi                                                    ;
 251 :    CSentr =  CSentr COUL ROUGE                              ;
 252 :    CSentr1= chan CSentr 'POI1' COUL ROUGE                   ;
 253 :    Si('EGA' (VALE MODE ) 'AXIS')                            ;
 254 :    xstr1= coor 1 CSentr1                                    ;
 255 :    dr =((maxi xstr1) - (mini xstr1))/(nbel CSentr1)/100.    ;
 256 :    pax = (CSentr1 'POINT' 'DROIT' (0. 0.) (0. 1.e5) dr)     ;
 257 :    Csentr1= diff pax Csentr1                                ;
 258 :    FinSi                                                    ;
 259 : 
 260 :    Sentro = diff CSentr1 AT.'Sentr1' COUL VERT              ;
 261 :    AT.'Sentro' = Sentro                                     ;
 262 :    AT.'Csentr1'= Csentr1                                    ;
 263 :    AT.'Cgrav'  = bary (Sentro et  Csentr1)                  ;
 264 : 
 265 :    Si TIMPR                                                 ;
 266 :    trace  (Sentro et Csentr1) TITR
 267 :    (chai tit '  Intérieur et contour')                      ;
 268 :    trace  (AT.'Cgrav' et Csentr1) TITR
 269 :    (chai tit '  Centre de gravité et contour')              ;
 270 :    FinSi                                                    ;
 271 : 
 272 :  Si(EGA (nbel Sentro) 0 )                                 ;
 273 :  Mess '*********************************************************' ;
 274 :  Mess ' ERREUR   ERREUR   ERREUR   ERREUR   ERREUR   ERREUR     ' ;
 275 :  Mess '                                                         ' ;
 276 :  Mess tit '  L intérieur est vide                               ' ;
 277 :  Mess '*********************************************************' ;
 278 :  erreur 21 ;
 279 :  quitter NSCLIM                                             ;
 280 :  Finsi ;
 281 : 
 282 : * On en déduit que connaissant q on a u = q*q1              ;
 283 :    Setr   = mesu Sentr                                      ;
 284 :    AT.'Setr' = Setr                                         ;
 285 : * Calcul du facteur géométrique EF
 286 : *  list AT.'chn';
 287 :    v1 = kcht $Sentr vect sommet (redu (AT.'chn') Sentro)    ;
 288 : *  v1 = kcht $Sentr vect sommet (0. 0. 1.)   ;
 289 : *  list v1 ;
 290 : *  ung = vect v1 0.1 ux uy uz jaune ;
 291 : *  trace ung (doma $Sentr maillage)  ;
 292 : *
 293 :    q1 = dbit $Sentr v1 'IMPR'                               ;
 294 : *  trace (doma $Sentr maillage) TITR 'Sentr';
 295 : *  list q1 ;
 296 :    AT.'facgeo' = Setr/q1 'ABS'                              ;
 297 :    mess tit ' Surface = ' Setr
 298 :                      ' Facteur géométrique '   AT.'facgeo'  ;
 299 :    AT.'Sentro' = Sentro                                     ;
 300 :    AT.'CSentr' = CSentr                                     ;
 301 : 
 302 :  FinSi                                                      ;
 303 : *##############################################################
 304 : 
 305 :    Sentr   = AT.'Sentr'                                     ;
 306 :    Setr    = AT.'Setr'                                      ;
 307 : 
 308 :  Si(NON(EGA NOMQ 'ADHERENCE'))                              ;
 309 :      IK1=0                                                  ;
 310 :    Si (NON (EXIST Udebt))                                   ;
 311 :      Ud = Udeb                                              ;
 312 :      IK1 = IK1 + 1                                          ;
 313 :    FinSi                                                    ;
 314 :    Si (EXIST Udebt)                                         ;
 315 :      t  = extr Udebt 'ABSC'                                 ;
 316 :      u  = extr Udebt 'ORDO'                                 ;
 317 :      Ud = 'IPOL' tps t  u                                   ;
 318 :      IK1 = IK1 + 1                                          ;
 319 :    FinSi                                                    ;
 320 : 
 321 :    Si (NON (EGA IK1 1 ))                                    ;
 322 :      ERREUR 5                                               ;
 323 :      QUITTER NSCLIM                                         ;
 324 :    FinSi                                                    ;
 325 :  FinSi                                                      ;
 326 : 
 327 : 
 328 :  Si(EGA NOMQ 'DEBIT')                                       ;
 329 :    Qd = Ud                                                  ;
 330 :    Ud = Ud / Setr                                           ;
 331 :    Si (EGA NOMG 'STRICTEMENT'); Ud = Ud * AT.'facgeo';FinSi ;
 332 :  FinSi                                                      ;
 333 :  Si(EGA NOMQ 'VITESSE')                                     ;
 334 :    Qd = Ud * Setr                                           ;
 335 :  FinSi                                                      ;
 336 :  Si(EGA NOMQ 'TEMPERATURE')                                 ;
 337 :    Qd = ' '                                                 ;
 338 :  FinSi                                                      ;
 339 : 
 340 :  Si TIMPR                                                   ;
 341 :  mess '**** Conditions limites ***** ' tit '  ' NOMQ ' ' NCO
 342 :                               ' Ud = ' Ud  'Qd = ' Qd       ;
 343 :  FinSi                                                      ;
 344 : 
 345 : ***************************************************************
 346 : *  Imposition d'une fluctuation
 347 : 
 348 :  Si (EGA NOMT 'SGE')                                        ;
 349 :  Si TIMPR                                                   ;
 350 :  mess ' Modèle SGE : Imposition d une fluctuation :'
 351 :  ' Ecart type ' sgm '  portée ' portee                      ;
 352 :  FinSi                                                      ;
 353 : 
 354 : * Ne concerne que VITESSE et DEBIT
 355 :  Si(NON ((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT')))       ;
 356 :  Mess '*********************************************************' ;
 357 :  Mess ' ERREUR   ERREUR   ERREUR   ERREUR   ERREUR   ERREUR     ' ;
 358 :  Mess '                                                         ' ;
 359 :  Mess 'L imposition d une fluctuation ne concerne que           ' ;
 360 :  Mess ' VITESSE ou DEBIT                                        ' ;
 361 :  Mess '*********************************************************' ;
 362 :  erreur 21 ;
 363 :  quitter NSCLIM                                             ;
 364 :  Finsi ;
 365 : 
 366 : * La portee doit être > 0
 367 :  Si (portee '<EG' 0.)                                       ;
 368 :  ERREUR 5                                                   ;
 369 :  QUITTER NSCLIM                                             ;
 370 :  FinSi                                                      ;
 371 : 
 372 :     sgp = sgm / 2.                                          ;
 373 : 
 374 :    Si (NON (EXIST AT 'unct1' ))                             ;
 375 : * initialisation unct1,uncn1,unca1
 376 :   unct2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 377 :         'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee            ;
 378 :   unct2=(unct2 - Ud)                                        ;
 379 : *   trace unct2 Sentr TITR 'unct2'                          ;
 380 : 
 381 :   uncn2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 382 :         'SIGMA' sgm 'MOYENNE' Ud 'LAMBDA' portee            ;
 383 : 
 384 : *   trace uncn2 Sentr TITR 'uncn2'                          ;
 385 : 
 386 :   unca2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 387 :         'SIGMA' sgp  'MOYENNE' Ud 'LAMBDA' portee           ;
 388 :   unca2=(unca2 - Ud)                                        ;
 389 : *   trace unca2 Sentr TITR 'unca1'               ;
 390 : 
 391 :    AT.'unct2' = unct2                            ;
 392 :    AT.'uncn2' = uncn2                            ;
 393 :    AT.'unca2' = unca2                            ;
 394 :    AT.'t1'    = 0.                               ;
 395 :    AT.'t2'    = 0.1*Tps                          ;
 396 :    FinSi                                           ;
 397 : 
 398 :     t1  = AT.'t1'                                ;
 399 :     t2  = AT.'t2'                                ;
 400 :     alf = (Tps - t1)/(t2 - t1)                   ;
 401 : 
 402 :    Si (ALF >EG 1.)                                 ;
 403 :     alf = 0.                                     ;
 404 :     AT.'unct1'=AT.'unct2'                        ;
 405 :     AT.'uncn1'=AT.'uncn2'                        ;
 406 :     AT.'unca1'=AT.'unca2'                        ;
 407 :     t1 = Tps                                     ;
 408 :     t2 = Tps + (portee / (abs Ud))               ;
 409 :     AT.'t1'= t1                                  ;
 410 :     AT.'t2'= t2                                  ;
 411 : 
 412 :   unct2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 413 :         'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ;
 414 :   unct2=(unct2 - Ud);
 415 : *   trace unct2 Sentr TITR 'unct2'               ;
 416 : 
 417 :   uncn2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 418 :         'SIGMA' sgm 'MOYENNE' Ud 'LAMBDA' portee ;
 419 : 
 420 : *   trace uncn2 Sentr TITR 'uncn2'               ;
 421 : 
 422 :   unca2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO'
 423 :         'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ;
 424 :   unca2=(unca2 - Ud);
 425 : *   trace unca2 Sentr TITR 'unca2'               ;
 426 : 
 427 :    AT.'unct2' = unct2                            ;
 428 :    AT.'uncn2' = uncn2                            ;
 429 :    AT.'unca2' = unca2                            ;
 430 : 
 431 :    FinSi ;
 432 : 
 433 :  unct1=AT.'unct1'                                ;
 434 :  unct2=AT.'unct2'                                ;
 435 :  uncn1=AT.'uncn1'                                ;
 436 :  uncn2=AT.'uncn2'                                ;
 437 :  unca1=AT.'unca1'                                ;
 438 :  unca2=AT.'unca2'                                ;
 439 : 
 440 :  unct = (alf * unct1) + ((1. - alf) * unct2);
 441 :  uncn = (alf * uncn1) + ((1. - alf) * uncn2);
 442 :  unca = (alf * unca1) + ((1. - alf) * unca2);
 443 : 
 444 :    Si TIMPR                                            ;
 445 :  tt=chai tit ' uncn' ' Tps=' Tps ' t1=' t1 ' t2=' t2   ;
 446 :  trace uncn Sentr TITR tt                              ;
 447 :  tt=chai tit ' unca'             ' Alf=' alf           ;
 448 :  trace unca Sentr TITR tt                              ;
 449 :  trace unct Sentr TITR (chai tit ' unct')              ;
 450 :    FinSi                                               ;
 451 :  Sinon                                                 ;
 452 : ***************************************************************
 453 :   uncn = Ud                                            ;
 454 :   unct = 0.                                            ;
 455 :   unca = 0.                                            ;
 456 :  FinSi                                                 ;
 457 : ***************************************************************
 458 : 
 459 : 
 460 : Si((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT'))         ;
 461 : NC1 = chai 1 NCO                                       ;
 462 : NC2 = chai 2 NCO                                       ;
 463 : NC3 = chai 3 NCO                                       ;
 464 : LNC = MOTS NC1 NC2                                     ;
 465 : UCxyzn=         (nomc NC1 (uncn*nx) 'NATU' 'DISCRET')
 466 :              et (nomc NC2 (uncn*ny) 'NATU' 'DISCRET')  ;
 467 : 
 468 : UCxyzt=         (nomc NC1 (unct*tx) 'NATU' 'DISCRET')
 469 :              et (nomc NC2 (unct*ty) 'NATU' 'DISCRET')  ;
 470 : 
 471 : 
 472 :   Si(EGA (VALE DIME) 3)                                ;
 473 : UCxyza=         (nomc NC1 (unca*ax) 'NATU' 'DISCRET')
 474 :              et (nomc NC2 (unca*ay) 'NATU' 'DISCRET')  ;
 475 : 
 476 : UCxyzn=UCxyzn et (nomc NC3 (uncn*nz) 'NATU' 'DISCRET') ;
 477 : UCxyzt=UCxyzt et (nomc NC3 (unct*tz) 'NATU' 'DISCRET') ;
 478 : UCxyza=UCxyza et (nomc NC3 (unca*az) 'NATU' 'DISCRET') ;
 479 : LNC = LNC et (MOTS NC3)                                ;
 480 : Si SWIRL                                               ;
 481 :  mess ' SWIRL : ' asw ' * Ud'                          ;
 482 :   xyzw = extr uncn maillage                            ;
 483 :   xw   = (coor 1 xyzw) - (coor 1 AT.'Cgrav') ;
 484 :   yw   = (coor 2 xyzw) - (coor 2 AT.'Cgrav') ;
 485 :   zw   = (coor 3 xyzw) - (coor 3 AT.'Cgrav') ;
 486 :   GM   =        (nomc 'UX' xw 'NATU' 'DISCRET')
 487 :              et (nomc 'UY' yw 'NATU' 'DISCRET')
 488 :              et (nomc 'UZ' zw 'NATU' 'DISCRET')        ;
 489 :   AM   =        (nomc 'UX' ax 'NATU' 'DISCRET')
 490 :              et (nomc 'UY' ay 'NATU' 'DISCRET')
 491 :              et (nomc 'UZ' az 'NATU' 'DISCRET')        ;
 492 :   TM   =        (nomc 'UX' tx 'NATU' 'DISCRET')
 493 :              et (nomc 'UY' ty 'NATU' 'DISCRET')
 494 :              et (nomc 'UZ' tz 'NATU' 'DISCRET')        ;
 495 :   xa = PSCA GM (MOTS 'UX' 'UY' 'UZ') AM (MOTS 'UX' 'UY' 'UZ');
 496 :   ya = PSCA GM (MOTS 'UX' 'UY' 'UZ') TM (MOTS 'UX' 'UY' 'UZ');
 497 :   R    = (xw*xw)+(yw*yw)+(zw*zw) **0.5                       ;
 498 :   R0   = maxi R                                              ;
 499 :   sw = (Ud/R0)*asw                                           ;
 500 : UCxyza= UCxyza et (nomc NC1 (ya*ax*sw) 'NATU' 'DISCRET')
 501 :                et (nomc NC2 (ya*ay*sw) 'NATU' 'DISCRET')
 502 :                et (nomc NC3 (ya*az*sw) 'NATU' 'DISCRET')     ;
 503 : 
 504 : UCxyzt= UCxyzt et (nomc NC1 (xa*tx*(-1.)*sw) 'NATU' 'DISCRET')
 505 :                et (nomc NC2 (xa*ty*(-1.)*sw) 'NATU' 'DISCRET')
 506 :                et (nomc NC3 (xa*tz*(-1.)*sw) 'NATU' 'DISCRET') ;
 507 : 
 508 : FinSi                                                  ;
 509 :   FinSi                                                ;
 510 : 
 511 :   UCxyz = UCxyzn et UCxyzt                             ;
 512 :   Si(EGA (VALE DIME) 3)                                ;
 513 :   UCxyz = UCxyz et UCxyza                              ;
 514 :   FinSi                                                ;
 515 : * UCxyz = (UCxyzn*0.) et UCxyzt et UCxyza;
 516 : 
 517 :  Si (EGA NOMG 'LARGEMENT')                             ;
 518 : ***************************************************
 519 : * NNC=chai AT.'MNC' NCO                                ;
 520 : * UCc = EXCO (REDU UCxyzn (AT.'CSentr')) NNC NNC       ;
 521 : * Sur la paroi seule la composante normale est retenue
 522 : * Il semblerait plus simple et correct de faire comme suit
 523 : ***************************************************
 524 :   UCc =       REDU UCxyzn (AT.'CSentr')                ;
 525 :   UCxyz=(REDU UCxyz (AT.'Sentro')) et UCc              ;
 526 :  FinSi                                                 ;
 527 : 
 528 :   Si (EGA NOMG 'STRICTEMENT')                          ;
 529 :   UCxyz= REDU UCxyz (AT.'Sentro')                      ;
 530 :   FinSi                                                ;
 531 :    Si TIMPR                                            ;
 532 :    Si(EGA (VALE DIME) 3)                               ;
 533 :    ung = vect UCxyz 0.05 NC1 NC2 NC3 jaune             ;
 534 :    Sinon                                               ;
 535 :    ung = vect UCxyz 0.05 NC1 NC2 jaune                 ;
 536 :    FinSi                                               ;
 537 :    trace ung (AT.'CSentr')      TITR tit               ;
 538 :    FinSi                                               ;
 539 : 
 540 : FinSi                                                  ;
 541 : 
 542 : Si(EGA NOMQ 'TEMPERATURE')                             ;
 543 : LNC = MOTS NCO                                         ;
 544 : UCxyz= MANU 'CHPO' Sentr 'NATU' 'DISCRET' NCO uncn     ;
 545 :   Si (EGA NOMG 'STRICTEMENT')                          ;
 546 :   UCxyz = REDU UCxyz (AT.'Sentro')                     ;
 547 :   FinSi                                                ;
 548 :    Si TIMPR                                            ;
 549 :    titt = chai tit ' composante : ' NCO                ;
 550 :    trace UCxyz Sentr      TITR titt                    ;
 551 :    FinSi                                               ;
 552 : FinSi                                                  ;
 553 : 
 554 : Si(EGA NOMQ 'ADHERENCE')                               ;
 555 : NC1 = chai 1 NCO                                       ;
 556 : NC2 = chai 2 NCO                                       ;
 557 : NC3 = chai 3 NCO                                       ;
 558 : LNC = MOTS NC1 NC2                                     ;
 559 : UCxyz= (MANU 'CHPO' Sentr 'NATU' 'DISCRET' NC1 0.)
 560 :     et (MANU 'CHPO' Sentr 'NATU' 'DISCRET' NC2 0.)     ;
 561 :   Si(EGA (VALE DIME) 3)                                ;
 562 : UCxyz=UCxyz
 563 : et (MANU 'CHPO' Sentr 'NATU' 'DISCRET' NC3 0.)         ;
 564 : LNC = LNC et (MOTS NC3)                                ;
 565 :   FinSi                                                ;
 566 :   Si (EGA NOMG 'STRICTEMENT')                          ;
 567 :   UCxyz = REDU UCxyz (AT.'Sentro')                     ;
 568 :   FinSi                                                ;
 569 : FinSi                                                  ;
 570 : 
 571 : 
 572 :  Si(EXIST CLIM)                                        ;
 573 :     unc=exco LNC (redu CLIM Sentr)      'NOID'         ;
 574 :     unc = nomc LNC LNC unc ;
 575 :     RESU = (CLIM - unc ) + UCxyz                       ;
 576 :  Sinon                                                 ;
 577 :     RESU = UCxyz                                       ;
 578 :  FinSi                                                 ;
 579 : 
 580 :  Si TIMPR                                              ;
 581 :  mess '#### FIN NSCLIM ###################################'
 582 :       '#########################'                                      ;
 583 :  FinSi                                                 ;
 584 :  FINPROC RESU                                                          ;
 585 :  
 586 :  
 587 :  

© Cast3M 2003 - All rights reserved.
Disclaimer