Download konvaxi.dgibi

Back to the list

* fichier :  konvaxi.dgibi
************************************************************************
************************************************************************
**** Finite Volume, "Cell-Centred Formulation".                     ****
**** 'MODE' 'AXIS'                                                  ****
**** We check that 3D axis-symmetrical = 2D 'MODE' 'AXIS'           ****
**** Operateurs 'KONV' et ('FIMP' 'VF' 'AXIS)                       ****
****                                                                ****
**** A. BECCANTINI, LTMF   FEBRUARY 2004                            ****
************************************************************************
************************************************************************
*
 GRAPH = FAUX ;
*
**** Nothing from here
*
 'SI' FAUX ;
* 
**** Till here
*
 'FINSI' ;

* 
*****************************
**** QUA4 and TRI3 **********
*****************************
*
* Axi
*
 'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'MODE' 'AXIS' ;
*
 P1 = 0.9 1.01 ;
 P2 = 2.1 0.99 ;
 P3 = 3.2 1.01 ;
 P6 = 1.1 1.99 ;
 P5 = 1.9 1.99 ;
 P4 = 3.0 2.01 ;
*
 DX = 0.5 ;
*
 MAIL = ('MANUEL' 'QUA4' P1 P2 P5 P6) 'ET'
   ('MANUEL' 'QUA4' P2 P3 P4 P5) ;
 'SI' GRAPH ;
    'TRACER' MAIL 'TITR' 'Maillage 2D' ;
 'FINSI' ;
*
 MODM  = 'MODELISER' MAIL 'EULER' ;
 TABM  = 'DOMA' MODM 'VF' ;
 QMAIL = TABM . 'QUAF' ;
 PCEN1 = 'POIN' 1 (TABM . 'CENTRE') ;
 PCEN2 = 'POIN' 2 (TABM . 'CENTRE') ;
*
* We compute the flux at the interfaces
*
 GAMN = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 1 'SCAL' 1.4 ; 
 RN = 'BRUI' 'BLAN' 'UNIF' 1.0 1.0D-1 (TABM . 'CENTRE') ;
 PN = 'BRUI' 'BLAN' 'UNIF' 1.0 1.0D-1 (TABM . 'CENTRE') ;
 UX = 'BRUI' 'BLAN' 'UNIF' 0.3 1.0D-1 (TABM . 'CENTRE') ;
 UY = 'BRUI' 'BLAN' 'UNIF' 0.3 1.0D-1 (TABM . 'CENTRE') ;
 UN = ('NOMC' 'UX' UX) '+' ('NOMC' 'UY' UY) ;
 RU  = RN '*' UN ;
 RECIN = 0.5D0 '*'
    ('PSCAL' RU RU ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY')) ;
 RECIN = RECIN '/' RN ;
 REIN = PN '/' (GAMN '-' 1.0) ;
 REN = REIN '+' RECIN ;
*
* UN PN1 = 'PRIM' 'PERFMONO' RN RU REN GAMN ;  
* 'LISTE' ('MAXIMUM' (PN '-' PN1) 'ABS') ;
 ROF VITF PF GAMF =  'PRET' 'PERFMONO'  1 1 MODM RN UN PN GAMN ;
 LISTINCO = ('MOTS' 'RN' 'RUNX' 'RUNY' 'RETN') ;
 CHPFLU DT = 'KONV' 'VF' 'PERFMONO' 'FLUX' 'VLH' 
             MODM ROF VITF PF GAMF LISTINCO ;
 RESI   DT = 'KONV' 'VF' 'PERFMONO' 'RESI' 'VLH' 
             MODM ROF VITF PF GAMF LISTINCO ;
 GRADP = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 2 'P1DX' 0.0
    'P1DY' 0.0 ;
 ALP = 'MANUEL' 'CHPO' (TABM . 'CENTRE') 1 'P1' 0.0 ;
 RESIP = 'FIMP' 'VF' 'AXIS' 'RESI' MODM
       ('MOTS' 'RN' 'RUNX' 'RUNY' 'RETN') PN GRADP ALP ;
 RESI = RESI '+' RESIP ;
* FGEO = (TABM . 'XXSUR2D') '/' (TABM . 'XXVOLUM') ;
* RESI = RESI '+' ('NOMC' 'RUNX' (PN '*' FGEO)) ;
*
*** 3D
*
 'OPTION' 'DIME' 3 'ELEM' 'CUB8' 'MODE' 'PLAN' ;
 LISTINC2 = ('MOTS' 'RN' 'RUNX' 'RUNY' 'RUNZ' 'RETN') ;
 LISTTH = 'PROG' 10 5 2.5 1.25 ;
 LISTER = 'PROG' ;
 LISTPRE = 'PROG' ;
 LISTRES = 'PROG' ;
 'REPETER' BLTH ('DIME' LISTTH) ;
    TH = ('EXTRAIRE' LISTTH &BLTH) ;
    SUR1 = MAIL 'TOURNER' (-0.5 * TH)
       (0.0 0.0 0.0) (0.0 1.0 0.0) ;
    SUR2 = MAIL 'TOURNER' (0.5 * TH)
       (0.0 0.0 0.0) (0.0 1.0 0.0) ;
    MAIL2 = 'VOLU' SUR1 1 SUR2 ;
    MODM2  = 'MODELISER' MAIL2 'EULER' ;
    TABM2  = 'DOMA' MODM2 'VF' ;
    QMAIL2 = TABM2 . 'QUAF' ;
    NN1 = 'NBNO' ((TABM2 . 'CENTRE') 'ET' (TABM . 'CENTRE')) ;
    NN2 = 'NBNO' ((TABM2 . 'FACE') 'ET' (TABM . 'FACE')) ;
    'ELIMINATION' (TABM2 . 'CENTRE') (DX '/' 5) (TABM . 'CENTRE') ;
    'ELIMINATION' (TABM2 . 'FACE') (DX '/' 5) (TABM . 'FACE') ;
    NN3 = 'NBNO' ((TABM2 . 'CENTRE') 'ET' (TABM . 'CENTRE')) ;
    NN4 = 'NBNO' ((TABM2 . 'FACE') 'ET' (TABM . 'FACE')) ;
    'SI' ((NN1 '-' NN3) 'NEG' 2) ;
       'ERREUR' 'Probleme axi 1' ;
    'FINSI' ;
    'SI' ((NN2 '-' NN4) 'NEG' 7) ;
       'ERREUR' 'Probleme axi 2' ;
    'FINSI' ;
    UN2 = UN '+' ('MANUEL' 'CHPO' (TABM2 . 'CENTRE') 1 'UZ' 0.0) ;
    RUN2 = RN '*' UN2 ;
*    UN PN1 = 'PRIM' 'PERFMONO' RN RUN2 REN GAMN ;  
*    'LISTE' ('MAXIMUM' (PN '-' PN1) 'ABS') ;
    ROF2 VITF2 PF2 GAMF2 =  'PRET' 'PERFMONO'  1 1 MODM2 RN UN2 PN
       GAMN ;
    CHPFLU2 DT2 = 'KONV' 'VF' 'PERFMONO' 'FLUX' 'VLH' 
                 MODM2 ROF2 VITF2 PF2 GAMF2 LISTINC2 ;
    RESI2 DT2 = 'KONV' 'VF' 'PERFMONO' 'RESI' 'VLH' 
                 MODM2 ROF2 VITF2 PF2 GAMF2 LISTINC2 ;
*   Normal orientation is the same???
    AA = 'REDU' (TABM2 . 'XXNORMAF') (TABM . 'FACE') ;
    ORIENT = 'PSCAL' AA (TABM . 'XXNORMAF') ('MOTS' 'UX' 'UY')
       ('MOTS' 'UX' 'UY')  ;
*    'LISTE' ORIENT ;
    BB = ('REDU' CHPFLU2 (TABM . 'FACE')) '*' ORIENT '/'
        ((TH '*' PI) '/' 180.) ;
    ERRO = 'MAXIMUM' (BB '-' CHPFLU) 'ABS' ;
    LISTER = LISTER 'ET' ('PROG' ERRO) ;
*
*   The flux on the FACES not belonging to the 2D
*
    AFAC = 'DIFF' (TABM2 . 'FACE') (TABM . 'FACE') ;
    NN = 'NBEL' AFAC ;
    'SI' (NN 'NEG' 4) ;
       'ERREUR' 'Probleme axi 3' ;
    'FINSI' ;
*
    AFA1 = ('COORDONNEE' 3 AFAC) 'POIN' 'SUPERIEUR' 0.0 ;
    AFA2 = ('COORDONNEE' 3 AFAC) 'POIN' 'INFERIEUR' 0.0 ;
    NN1 = 'NBNO' AFA1 ;
    NN2 = 'NBNO' AFA2 ;
    'SI' (NN1 'NEG' NN2) ;
       'ERREUR' 'Probleme axi 4' ;
    'FINSI' ;
    'DEPLACER' AFA1 'TOURNER' TH
       (0.0 0.0 0.0) (0.0 1.0 0.0) ;
    AA = AFA1 'ET' AFA2 ;
    'ELIMINATION' AA (DX '/' 10) ;
    AA = AFA1 'ET' AFA2 ;
    AA = 'CHANGER' AA 'POI1' ;
    NN2 = 'NBNO' AA ;
    'SI' (NN1 'NEG' NN2) ;
       'ERREUR' 'Probleme axi 5' ;
    'FINSI' ;
    BB = 'REDU' CHPFLU2 AA ;
    CC = 'MAXIMUM' BB 'ABS' 'AVEC' ('MOTS' 'RN' 'RUNY' 'RUNZ' 'RETN') ;
    'SI' (CC > 1.0D-6) ;
       'ERREUR' 'Probleme axi 7' ;
    'FINSI' ;
    CC = (-1 '*' ('EXCO' BB 'RUNX')) '/' ((TH * PI) '/' 180) ;
    POI1 = 'POIN' 1 (('COORDONNEE' 1 AA) 'POIN' 'INFERIEUR' 2.0) ;
    POI2 = 'POIN' 1 (('COORDONNEE' 1 AA) 'POIN' 'SUPERIEUR' 2.0) ;
    VAL1 = 'EXTRAIRE' CC POI1 'SCAL' ;
    VAL2 = 'EXTRAIRE' CC POI2 'SCAL' ;
    VAL3 = 'EXTRAIRE' (PN '*' (TABM . 'XXSUR2D')) PCEN1 'SCAL' ;
    VAL4 = 'EXTRAIRE' (PN '*' (TABM . 'XXSUR2D')) PCEN2 'SCAL' ;
    ERRP = 'MAXIMUM' ('PROG' ((VAL1 '-' VAL3) '/' VAL3)
          ((VAL2 '-' VAL4) '/' VAL4)) 'ABS' ;
*
    LISTPRE = LISTPRE 'ET' ('PROG' ERRP) ;
*
    ERRES = 'MAXIMUM' (RESI2 '-' RESI) 'ABS'
      ;
*      'AVEC' ('MOTS' 'RN' 'RUNY' 'RUNZ' 'RETN') ;
    LISTRES = LISTRES 'ET' ('PROG' ERRES) ;
      
 'FIN' BLTH ;
*
  EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
      (('LOG' LISTER) '/' ('LOG' 10.)) ;
 'SI' GRAPH ;
    'DESSIN' EVERR 'TITR' 'Error on numerical flux' ;
 'FINSI' ;
 'SI' (ERRO > 1.0D-3) ;
    'ERREUR' 'Probleme axi' ;
 'FINSI' ;
  EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
      (('LOG' LISTPRE) '/' ('LOG' 10.)) ;
 'SI' GRAPH ;
    'DESSIN' EVERR 'TITR' 'Error on pressure flux' ;
 'FINSI' ;
 'SI' (ERRP > 1.0D-2) ;
    'ERREUR' 'Probleme axi' ;
 'FINSI' ;
  EVERR = 'EVOL' 'MANU' 'theta °' LISTTH 'Log10(err)'
      (('LOG' LISTRES) '/' ('LOG' 10.)) ;
 'SI' GRAPH ;
    'DESSIN' EVERR 'TITR' 'Error on residuum' ;
 'FINSI' ;
 'SI' (ERRES > 1.0D-2) ;
    'ERREUR' 'Probleme axi' ;
 'FINSI' ;
 'FIN' ; 
 

© Cast3M 2003 - All rights reserved.
Disclaimer