* fichier :  condmass.dgibi
*
********************* CAS TEST : condmass.dgibi ********************
*
* Test de la prise en compte de la condensation en masse dans la procédure métier execrxt.
*
* On considère une enceinte de 100 m3 isolée thermiquement. Initialement, la pression et la
* température sont P0=3bar et T0=100°C ; l'enceinte contient un mélange air-vapeur d'eau saturé
* en vapeur (l'humidité relative est donc de 100%, soit Pvap = Psat(T0)).
*
* La condensation en masse est provoquée par une injection massive d'azote froide par une brèche
* de section Sinj localisée au centre du plafond de l'enceinte et dirigée vers le bas. La durée, le
* débit massique et la température de l'azote sont les suivants : tinj=10s ; Qinj=10 kg/s ;
* Tinj=-100°C.
*
* L'enceinte est 2D plan, de section carrée, de coté égal à 10m.
* La longueur de la brèche Linj est de 0.1m.
*
'OPTI' 'DIME' 2 'ELEM' 'QUA4' 'TRAC' 'X' 'EPTR' 10 ;
'DENS' 1. ;
*
COMPLET = faux ;
GRAPH   = faux ;
CTRL    = faux ;
*
*
* Mesh
*
*
*
* Cavité de taille LX*LY maillée avec des quadrangles
* epsi0 = Characteristic length for points comparison
* Linj  = Breach length
* Ninj  = Number of elements at the half-breach length
* MT    = Maillage du domaine fluide
LX    = 10. ;
LY    = 10. ;
epsi0 = 1.e-5 ;
Linj  = 0.1 ;
Ninj  = 2 ;
*
*
* PM0-------PMM--------PMI--P0--PPI--------PPM-------PP0
PM0 = (-1. '*' LX '/' 2.)           0. ;
PMI = (-1. '*' LINJ '/' 2.)         0. ;
PMM = (LINJ '+' LX '/' 4. '*' -1.)  0. ;
P0  = 0.                            0. ;
PPI = (LINJ '/' 2.)                 0. ;
PP0 = (LX '/' 2.)                   0. ;
PPM = (LINJ '+' LX '/' 4.)          0. ;

Lfin  = Linj '/' Ninj '/' 2 ;
Lgros = Lfin '*' 20 ; 
C_MM  = pm0 'DROI' 'DINI' Lfin  'DFIN' Lgros pmm ;
C_M   = pmm 'DROI' 'DINI' Lgros 'DFIN' Lfin  pmi ;
C_INJ = pmi 'DROI' ninj p0 'DROI' ninj ppi ;
C_P   = ppi 'DROI' 'DINI' Lfin  'DFIN' Lgros ppm ;
C_PP  = ppm 'DROI' 'DINI' Lgros 'DFIN' Lfin pp0 ;
C_HAU = C_MM 'ET' C_M 'ET' C_inj 'ET' C_P 'ET' C_PP ;

MT1    = c_hau 'TRAN' 'DINI' Lfin 'DFIN' Lgros (0. (-1. '*' (LY/2.))) ;
C_DRO1 = 'COTE' 2 mt1 ;
C_BAS1 = 'INVE' ('COTE' 3 mt1) ;
C_GAU1 = 'COTE' 4 mt1 ;
MT2    = c_bas1 'TRAN' 'DINI' Lgros 'DFIN' Lfin (0. (-1. '*' (LY/2.))) ;
C_DRO2 = 'COTE' 2 mt2 ;
C_BAS  = 'COTE' 3 mt2 ;
C_GAU2 = 'COTE' 4 mt2 ;
C_DRO  = c_dro1 'ET' c_dro2 ;
C_GAU  = c_gau2 'ET' c_gau1 ;
MT     = mt1 'ET' mt2 ;

*
* Mesh Control
'SI' ctrl ;
   'TRAC' (c_bas 'ET' c_dro 'ET' c_hau 'ET' c_gau) ;
   'TRAC' mt ;
'FINS' ;
*
*
* Data for execrxt.procedur
*
*
rxt = 'TABLE' ;             
rxt . 'VERSION' = 'V0' ;
rxt . 'vtf'     = mt ;
rxt . 'epsi'    = epsi0 ;
rxt . 'pi'      = 0. (LY '/' -2.) ;

rxt . 'DISCR'   = 'LINE' ;
rxt . 'KPRE'    = 'MSOMMET' ;

rxt . 'CORLIM'  = vrai ;
rxt . 'CONDMAS' = vrai ;
rxt . 'CORTEMP' = faux ;

rxt . 'MODTURB' = 'LMEL' ;
rxt . 'LMEL'    = Linj '/' 2. ;

rxt . 'DETMAT'  = vrai ;
rxt . 'RENU'    = 'RIEN' ;

*
* Chronologie
* DT0   = Time step (s)
* epsdt = Delay between phases 1 and 2 (s)
* tph1  = N2 inerting phase duration (s)
* tph2  = Post-inerting relaxation phase duration (s)
DT0   = 0.1 ;
epsdt = DT0 ;
'SI' COMPLET ;
  tph1  = 10. ;
  tph2  = 40. ;
'SINO' ;
  tph1  = 5. '*' DT0 ;
  tph2  = 5. '*' DT0 ;
'FINS' ;

t0 = 0.D0 ;
t1 = t0  '+' tph1 ; t11 = t1 '+' epsdt ;
t2 = t11 '+' tph2 '-' epsdt ;

*
* Initial conditions
* PT0   = Pressure
* TF0   = Temperature
* Yvap0 = Steam mass fraction (Yair0=1-Yvap0)
PT0   = 3.e5 ;
TF0   = 373.15 - 273.15 ;
Yvap0 = 0.243 ;
*HR=0.5  rxt . 'Yvap0'  = 0.113 ;
*HR=1.   rxt . 'Yvap0'  = 0.243 ;
*HR=1.05 rxt . 'Yvap0'  = 0.257 ;
*HR=1.5  rxt . 'Yvap0'  = 0.393 ;

rxt . 'PT0'    = PT0 ;
rxt . 'TF0'    = TF0 ;
rxt . 'N2'     = vrai ;
rxt . 'Yn20'   = 0. ;
rxt . 'VAPEUR' = vrai ;
rxt . 'Yvap0'  = Yvap0 ;

*
* Boundary conditions (Breches)
Tn2_1 = -100. ; Tn2_2 = TF0 ;
Qn2_1 = 10.   ; Qn2_2 = 0. ;

RXT . 'Breches' = table ;
RXT . 'Breches' . 'A' = table ;
RXT . 'Breches' . 'A' . 'Maillage' = c_inj ;
RXT . 'Breches' . 'A' . 'diru'     = (0. -1.) ;
RXT . 'Breches' . 'A' . 'scenario' = 'TABLE' ;
RXT . 'Breches' . 'A' . 'scenario' . 't'    = 'PROG' t0    t1    t11   t2    ;  
RXT . 'Breches' . 'A' . 'scenario' . 'qair' = 'PROG' 0.    0.    0.    0.    ;
RXT . 'Breches' . 'A' . 'scenario' . 'qeau' = 'PROG' 0.    0.    0.    0.    ;
RXT . 'Breches' . 'A' . 'scenario' . 'qn2'  = 'PROG' Qn2_1 Qn2_1 Qn2_2 Qn2_2 ;
RXT . 'Breches' . 'A' . 'scenario' . 'tinj' = 'PROG' Tn2_1 Tn2_1 Tn2_2 Tn2_2 ;

'SAUT' 2 'LIGN' ;
'MESS' '------------------------------------------------' ;
'MESS' 'Injection ' ;
'MESS' '------------------------------------------------' ;
'MESS' 't      :' ' ' t1    ' ' t2 ;
'MESS' 'Tinj   :' ' ' Tn2_1 ' ' Tn2_2 ;
'MESS' 'Azote  :' ' ' Qn2_1 ' ' Qn2_2 ;
'MESS' '------------------------------------------------' ;

'SI' ctrl ;
  rxt . 'GRAPH'  = faux ;
  rxt . 'DT0'    = DT0 ;
  execrxt  0 rxt ;
  'MESS' ' Volume ' ('SOMT' rxt . 'GEO' . 'Diag') ;
'FINS' ;
rxt . 'GRAPH' = GRAPH ;

*
*
* Transient computation
*
*
* nbit = number of time steps
*
* The numerical diffusion is set to zero for the equation devoted to fluid temperature
*'SI' COMPLET ;
*   rxt . 'TBT' . 'RTF' . '1TSCA' . 'KOPT' . 'CMD' = 0. ;
*'FINS' ;

*
* N2 interting phase
rxt . 'DT0'    = DT0 ;
nbit  = 'ENTI' (t1 '-' t0 / DT0 '+' (DT0 '/' 100.)) ;
execrxt  nbit rxt ;
'SI' ctrl ;
  'OPTI' 'SAUV' 'condmass_1.sauv' ; 'SAUV' ;
'FINS' ;

TEMP_1 = rxt . 'TIC' . 'TF' ;
PSAT_1 = 'VARI' 'PSATT' (rxt . 'TIC' . 'TF' + 273.15) ;
RSAT_1 = 'VARI' 'ROVAP' PSAT_1 (rxt . 'TIC' . 'TF' + 273.15) ;
HR_1   = rxt . 'TIC' . 'RVP' '/' RSAT_1 ;
YN2_1  = rxt . 'TIC' . 'YN2' ;
YVAP_1 = rxt . 'TIC' . 'YVAP' ;

*
* Post-inerting phase (the breach is suppressed)
*rxt = 'ENLE' rxt 'Breches' ;
'OUBL' rxt 'Breches' ;
rxt . 'REINIT' = vrai ;
nbit  = 'ENTI' (t2 '-' t1 / DT0 '+' (DT0 '/' 100.)) ;
execrxt  nbit rxt ;
'SI' ctrl ;
  'OPTI' 'SAUV' 'condmass_2.sauv' ; 'SAUV' ;
'FINS' ;

TEMP_2 = rxt . 'TIC' . 'TF' ;
PSAT_2 = 'VARI' 'PSATT' (rxt . 'TIC' . 'TF' + 273.15) ;
RSAT_2 = 'VARI' 'ROVAP' PSAT_2 (rxt . 'TIC' . 'TF' + 273.15) ;
HR_2   = rxt . 'TIC' . 'RVP' '/' RSAT_2 ;
YN2_2  = rxt . 'TIC' . 'YN2' ;
YVAP_2 = rxt . 'TIC' . 'YVAP' ;

*
*
* Post-processing
*
*
'SI' GRAPH ;

GEO = rxt . 'GEO' ;
VTotal = geo . 'VTotal' ;
*VTotal  = 'MAXI' ('RESU' ('DOMA' GEO . '$vtf'   'VOLUME')) ;

*
* 2D graphs
'TRAC' geo . 'vtf' geo . 'menvf' temp_1 'TITR' 'Phase 1 : Temperature TF' ;
'TRAC' geo . 'vtf' geo . 'menvf' temp_2 'TITR' 'Phase 2 : Temperature TF' ;
'TRAC' geo . 'vtf' geo . 'menvf' HR_1   'TITR' 'Phase 1 : Relative Humidity' ;
'TRAC' geo . 'vtf' geo . 'menvf' HR_2   'TITR' 'Phase 2 : Relative Humidity' ;
'TRAC' geo . 'vtf' geo . 'menvf' YN2_1  'TITR' 'Phase 1 : N2 mass fraction' ;
'TRAC' geo . 'vtf' geo . 'menvf' YN2_2  'TITR' 'Phase 2 : N2 mass fraction' ;
'TRAC' geo . 'vtf' geo . 'menvf' YVAP_1 'TITR' 'Phase 1 : Steam mass fraction' ;
'TRAC' geo . 'vtf' geo . 'menvf' YVAP_2 'TITR' 'Phase 2 : Steam mass fraction' ;

*
* 1D graphs
TAB1 = 'TABLE' ;
TAB1 . 'TITRE' = 'TABLE' ;
TAB1 . 1 = 'MOT' ' MARQ CROI REGU ';
TAB1 . 2 = 'MOT' ' MARQ CARR REGU TIRC';
TAB1 . 3 = 'MOT' ' MARQ LOSA REGU TIRC';
TAB1 . 4 = 'MOT' ' MARQ TRIU REGU TIRC';
TAB1 . 5 = 'MOT' ' MARQ TRID REGU TIRC';
TAB1 . 'TITRE' . 1 = 'NAUTILUS';

Ltps = rxt . 'TIC' . 'LTPS' ;
evrho2 = 'EVOL' 'MANU' Ltps rxt . 'TIC' . 'Rhomn' ;
evm2   = evrho2 * VTotal ;
evp2   = 'EVOL' 'MANU' Ltps rxt . 'TIC' . 'PT'    ;
evt2   = 'EVOL' 'MANU' Ltps rxt . 'TIC' . 'Tfm'   ;

'DESS' (evp2)
'TITR' 'Pressure' 'MIMA'
'GRIL' 'POIN' 'GRIS' 'TITX' 's' 'TITY' ' Pa' 'LEGE' tab1 ;
'DESS' (evt2)
'TITR' 'Mean gas temperature' 
'GRIL' 'POIN' 'GRIS' 'TITX' 's' 'TITY' ' C' 'LEGE' tab1 ;
'DESS' (evrho2)
'TITR' 'Mean gas density'                                     
'GRIL' 'POIN' 'GRIS' 'TITX' 's' 'TITY' 'kg/m3' 'LEGE' tab1 ;
'DESS' (evm2)
'TITR' 'Mass'                                     
'GRIL' 'POIN' 'GRIS' 'TITX' 's' 'TITY' 'kg' 'LEGE' tab1 ;

'FINS' ;

*
*
* Non-régression
*
*
max_1 = 'MAXI' hr_1 ; test_1 = max_1 '>' 1.05 ;
'MESS' 'Phase 1 :' ' ' max_1 ' ' test_1 ;

max_2 = 'MAXI' hr_2 ; test_2 = max_2 '>' 1.05 ;
'MESS' 'Phase 2 :' ' ' max_2 ' ' test_2 ;

'SI' (test_1 'OU' test_2) ;
   'ERRE' 5 ;
'FINS' ;

*'OPTI' donn 5 ;
'FIN' ;
 

